PLC ModbusTCP¶
Class: ModbusTCPBlockV1
Source: inference.enterprise.workflows.enterprise_blocks.sinks.PLC_modbus.v1.ModbusTCPBlockV1
This Modbus TCP block integrates a Roboflow Workflow with a PLC using Modbus TCP.
It can:
- Read registers from a PLC if mode='read'.
- Write registers to a PLC if mode='write'.
- Perform both read and write in a single run if mode='read_and_write'.
Parameters depending on mode:
- If mode='read' or mode='read_and_write', registers_to_read must be provided as a list of register addresses.
- If mode='write' or mode='read_and_write', registers_to_write must be provided as a dictionary mapping register addresses to values.
If a read or write operation fails, an error message is printed to the terminal, and the corresponding entry in the output dictionary is set to "ReadFailure" or "WriteFailure".
Type identifier¶
Use the following identifier in step "type" field: roboflow_core/modbus_tcp@v1to add the block as
as step in your workflow.
Properties¶
| Name | Type | Description | Refs |
|---|---|---|---|
name |
str |
Enter a unique identifier for this step.. | ❌ |
plc_ip |
str |
IP address of the target PLC.. | ✅ |
plc_port |
int |
Port number for Modbus TCP communication.. | ❌ |
mode |
str |
Mode of operation: 'read', 'write', or 'read_and_write'.. | ❌ |
registers_to_read |
List[int] |
List of register addresses to read. Applicable if mode='read' or 'read_and_write'.. | ✅ |
registers_to_write |
Dict[str, int] |
Dictionary mapping register addresses to values to write. Applicable if mode='write' or 'read_and_write'.. | ✅ |
The Refs column marks possibility to parametrise the property with dynamic values available
in workflow runtime. See Bindings for more info.
Available Connections¶
Compatible Blocks
Check what blocks you can connect to PLC ModbusTCP in version v1.
- inputs:
Detections Classes Replacement,Morphological Transformation,Image Preprocessing,Email Notification,VLM As Classifier,Halo Visualization,Morphological Transformation,Detections Transformation,Pixel Color Count,Object Detection Model,Time in Zone,Template Matching,Image Threshold,Text Display,BoT-SORT Tracker,Model Monitoring Inference Aggregator,Pixelate Visualization,Keypoint Detection Model,Time in Zone,Qwen-VL,OpenAI,CogVLM,Crop Visualization,Cosine Similarity,SAM 3,Dot Visualization,Detections Merge,Google Vision OCR,Detections List Roll-Up,PLC EthernetIP,Florence-2 Model,Dimension Collapse,Roboflow Dataset Upload,Qwen3.5-VL,Mask Edge Snap,Roboflow Vision Events,Polygon Zone Visualization,Qwen2.5-VL,Polygon Visualization,SIFT Comparison,Absolute Static Crop,S3 Sink,Twilio SMS/MMS Notification,QR Code Generator,SIFT Comparison,Contrast Enhancement,Per-Class Confidence Filter,Single-Label Classification Model,Cache Get,Stitch OCR Detections,Dynamic Zone,Detections Filter,OCR Model,Byte Tracker,Color Visualization,Roboflow Dataset Upload,Gaze Detection,Bounding Rectangle,Roboflow Custom Metadata,Environment Secrets Store,LMM For Classification,Detections Stabilizer,Line Counter Visualization,Image Blur,Stability AI Inpainting,Object Detection Model,Blur Visualization,OpenAI-Compatible LLM,Path Deviation,Current Time,SAM 3,Perspective Correction,Keypoint Visualization,Byte Tracker,Detection Offset,Anthropic Claude,MQTT Writer,MoonshotAI Kimi,Google Gemini,Identify Changes,Image Slicer,SAM 3,Depth Estimation,Detections Consensus,Detections Stitch,Ellipse Visualization,Google Gemma API,Object Detection Model,PLC ModbusTCP,Slack Notification,Overlap Analysis,Rate Limiter,Identify Outliers,Inner Workflow,Time in Zone,Image Stack,Delta Filter,Google Gemini,Cache Set,Bounding Box Visualization,Label Visualization,Keypoint Detection Model,Size Measurement,Camera Focus,Stitch OCR Detections,CSV Formatter,Keypoint Detection Model,Multi-Label Classification Model,OpenAI,SIFT,Perception Encoder Embedding Model,Anthropic Claude,Image Convert Grayscale,Roboflow Asset Library Attributes,OC-SORT Tracker,Moondream2,CLIP Embedding Model,Florence-2 Model,Seg Preview,Overlap Filter,EasyOCR,YOLO-World Model,Buffer,Segment Anything 2 Model,Multi-Label Classification Model,Twilio SMS Notification,Local File Sink,Single-Label Classification Model,Icon Visualization,Triangle Visualization,VLM As Classifier,Qwen 3.5 API,Mask Area Measurement,Path Deviation,JSON Parser,OpenRouter,Dominant Color,Instance Segmentation Model,Distance Measurement,Qwen3-VL,Instance Segmentation Model,OpenAI,Background Color Visualization,MoonshotAI Kimi,Continue If,Byte Tracker,Google Gemini,Grid Visualization,Clip Comparison,Semantic Segmentation Model,Corner Visualization,Image Slicer,Single-Label Classification Model,Reference Path Visualization,SmolVLM2,Line Counter,First Non Empty Or Default,Halo Visualization,Dynamic Crop,Webhook Sink,Instance Segmentation Model,Stability AI Outpainting,Detection Event Log,VLM As Detector,Relative Static Crop,Anthropic Claude,Expression,Clip Comparison,Multi-Label Classification Model,SORT Tracker,OpenAI,Llama 3.2 Vision,Barcode Detection,ByteTrack Tracker,Velocity,Motion Detection,Detections Combine,Camera Calibration,Model Comparison Visualization,Data Aggregator,Trace Visualization,Google Gemma,PTZ Tracking (ONVIF),Line Counter,OPC UA Writer Sink,QR Code Detection,Circle Visualization,Email Notification,LMM,Event Writer,Instance Segmentation Model,Camera Focus,Contrast Equalization,Heatmap Visualization,Background Subtraction,Image Contours,SAM2 Video Tracker,Qwen 3.6 API,GLM-OCR,Qwen3.5,VLM As Detector,Classification Label Visualization,Llama 3.2 Vision,Property Definition,Stitch Images,Mask Visualization,Microsoft SQL Server Sink,Stability AI Image Generation,Semantic Segmentation Model,Polygon Visualization - outputs:
Detections Classes Replacement,Roboflow Asset Library Attributes,Email Notification,Florence-2 Model,VLM As Classifier,Halo Visualization,Seg Preview,YOLO-World Model,Buffer,Object Detection Model,Time in Zone,VLM As Classifier,Triangle Visualization,Qwen 3.5 API,Path Deviation,Keypoint Detection Model,Time in Zone,Qwen-VL,Crop Visualization,SAM 3,Dot Visualization,PLC EthernetIP,Detections List Roll-Up,OpenRouter,Florence-2 Model,Instance Segmentation Model,Roboflow Dataset Upload,Polygon Zone Visualization,Instance Segmentation Model,Polygon Visualization,OpenAI,MoonshotAI Kimi,Twilio SMS/MMS Notification,Google Gemini,Grid Visualization,Clip Comparison,Corner Visualization,Reference Path Visualization,Line Counter,Halo Visualization,Webhook Sink,Color Visualization,Roboflow Dataset Upload,Instance Segmentation Model,VLM As Detector,LMM For Classification,Line Counter Visualization,Anthropic Claude,Object Detection Model,Clip Comparison,Path Deviation,OpenAI,SAM 3,Perspective Correction,Keypoint Visualization,Llama 3.2 Vision,Anthropic Claude,Motion Detection,MoonshotAI Kimi,Google Gemini,Trace Visualization,SAM 3,Google Gemma,Detections Consensus,Ellipse Visualization,Google Gemma API,Object Detection Model,Line Counter,Circle Visualization,Email Notification,Time in Zone,Google Gemini,Instance Segmentation Model,Qwen 3.6 API,Cache Set,VLM As Detector,Classification Label Visualization,Label Visualization,Bounding Box Visualization,Keypoint Detection Model,Size Measurement,Llama 3.2 Vision,Keypoint Detection Model,Mask Visualization,OpenAI,Anthropic Claude,Polygon Visualization
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
PLC ModbusTCP in version v1 has.
Bindings
-
input
plc_ip(string): IP address of the target PLC..registers_to_read(list_of_values): List of register addresses to read. Applicable if mode='read' or 'read_and_write'..registers_to_write(list_of_values): Dictionary mapping register addresses to values to write. Applicable if mode='write' or 'read_and_write'..depends_on(*): Reference to the step output this block depends on..
-
output
modbus_results(list_of_values): List of values of any type.
Example JSON definition of step PLC ModbusTCP in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/modbus_tcp@v1",
"plc_ip": "10.0.1.31",
"plc_port": 502,
"mode": "read",
"registers_to_read": [
1000,
1001
],
"registers_to_write": {
"1005": 25
},
"depends_on": "$steps.some_previous_step"
}