PLC ModbusTCP¶
Deprecated
This block is deprecated. Use the PLC Reader / PLC Writer blocks (set Connection mode to 'Direct - Modbus') instead. Note the outputs differ: instead of a single modbus_results list, the PLC Reader returns tag_values (a tag->value dict) and the PLC Writer returns write_result, each alongside an error_status flag.
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:
VLM As Classifier,Line Counter,MoonshotAI Kimi,Stability AI Image Generation,Path Deviation,Trace Visualization,Qwen2.5-VL,Image Stack,Anthropic Claude,Per-Class Confidence Filter,Icon Visualization,SIFT Comparison,Morphological Transformation,Color Visualization,SmolVLM2,LMM For Classification,Single-Label Classification Model,Perspective Correction,Clip Comparison,Corner Visualization,Environment Secrets Store,Roboflow Custom Metadata,Detections Merge,Halo Visualization,Dynamic Zone,Keypoint Detection Model,Qwen-VL,JSON Parser,Email Notification,Halo Visualization,Object Detection Model,Data Aggregator,Google Gemma,Background Color Visualization,Ellipse Visualization,Email Notification,Twilio SMS/MMS Notification,Text Display,Polygon Visualization,Crop Visualization,Absolute Static Crop,Image Preprocessing,Template Matching,Model Monitoring Inference Aggregator,Relative Static Crop,OpenRouter,OpenAI,PLC ModbusTCP,Florence-2 Model,VLM As Detector,Motion Detection,Heatmap Visualization,OCR Model,OpenAI,Detections Filter,Perception Encoder Embedding Model,Blur Visualization,Dimension Collapse,Barcode Detection,Depth Estimation,Instance Segmentation Model,Stability AI Outpainting,Anthropic Claude,YOLO-World Model,Google Gemini,Clip Comparison,Google Gemini,PLC EthernetIP,Background Subtraction,Buffer,Keypoint Visualization,CSV Formatter,Webhook Sink,Byte Tracker,Stitch Images,Florence-2 Model,Current Time,Detections List Roll-Up,Contrast Equalization,Mask Edge Snap,OpenAI,Qwen3-VL,Moondream2,Line Counter,VLM As Detector,Google Gemini,Triangle Visualization,Slack Notification,Overlap Filter,Time in Zone,Inner Workflow,CLIP Embedding Model,First Non Empty Or Default,Detections Stabilizer,SIFT,Local File Sink,Multi-Label Classification Model,Cosine Similarity,Image Contours,Keypoint Detection Model,VLM As Classifier,Pixel Color Count,GLM-OCR,Roboflow Asset Library Attributes,Image Slicer,Polygon Zone Visualization,Time in Zone,Google Gemma API,Semantic Segmentation Model,Stitch OCR Detections,Image Threshold,Line Counter Visualization,Distance Measurement,Semantic Segmentation Model,Multi-Label Classification Model,Contrast Enhancement,Camera Calibration,QR Code Generator,Detection Offset,ByteTrack Tracker,Expression,Detection Event Log,Detections Transformation,S3 Sink,Microsoft SQL Server Sink,Mask Area Measurement,Google Vision OCR,Twilio SMS Notification,Image Blur,Detections Combine,Morphological Transformation,Property Definition,Camera Focus,Delta Filter,Size Measurement,Roboflow Vision Events,Stability AI Inpainting,PTZ Tracking (ONVIF),Classification Label Visualization,Bounding Rectangle,SAM2 Video Tracker,Stitch OCR Detections,Event Writer,Grid Visualization,Qwen3.5-VL,Byte Tracker,Switch Case,Dominant Color,Rate Limiter,Mask Visualization,Llama 3.2 Vision,Reference Path Visualization,Velocity,Label Visualization,Identify Outliers,Image Slicer,SIFT Comparison,Byte Tracker,OPC UA Writer Sink,Dot Visualization,Cache Set,Identify Changes,Dynamic Crop,Detections Stitch,Circle Visualization,Path Deviation,BoT-SORT Tracker,SAM3 Video Tracker,Camera Focus,Llama 3.2 Vision,Gaze Detection,Segment Anything 2 Model,OpenAI-Compatible LLM,MoonshotAI Kimi,Single-Label Classification Model,Overlap Analysis,QR Code Detection,Qwen3.5,CogVLM,Object Detection Model,SAM 3 Interactive,Qwen 3.6 API,Detections Consensus,Bounding Box Visualization,Multi-Label Classification Model,LMM,OpenAI,SAM 3,PLC Reader,Image Convert Grayscale,Instance Segmentation Model,Continue If,Roboflow Visual Search,EasyOCR,Roboflow Dataset Upload,SAM 3,Cache Get,Detections Classes Replacement,Instance Segmentation Model,Pixelate Visualization,Keypoint Detection Model,Roboflow Dataset Upload,SORT Tracker,Instance Segmentation Model,PLC Writer,Track Class Lock,Qwen 3.5 API,Anthropic Claude,Object Detection Model,Time in Zone,MQTT Writer,Polygon Visualization,OC-SORT Tracker,SAM 3,Model Comparison Visualization,Single-Label Classification Model,Seg Preview - outputs:
Polygon Zone Visualization,VLM As Classifier,Line Counter,MoonshotAI Kimi,Time in Zone,Google Gemma API,Seg Preview,Trace Visualization,Path Deviation,Line Counter Visualization,Anthropic Claude,Color Visualization,LMM For Classification,Perspective Correction,Clip Comparison,Corner Visualization,Halo Visualization,Keypoint Detection Model,Qwen-VL,Email Notification,Size Measurement,Halo Visualization,Object Detection Model,Classification Label Visualization,Google Gemma,Grid Visualization,Mask Visualization,Llama 3.2 Vision,Email Notification,Ellipse Visualization,Reference Path Visualization,Twilio SMS/MMS Notification,Label Visualization,Dot Visualization,Polygon Visualization,Cache Set,Crop Visualization,Path Deviation,Circle Visualization,Llama 3.2 Vision,SAM3 Video Tracker,OpenRouter,OpenAI,VLM As Detector,Florence-2 Model,OpenAI,Motion Detection,MoonshotAI Kimi,Object Detection Model,Instance Segmentation Model,Anthropic Claude,YOLO-World Model,Google Gemini,Qwen 3.6 API,Clip Comparison,Google Gemini,PLC EthernetIP,Detections Consensus,Keypoint Visualization,Buffer,Webhook Sink,Bounding Box Visualization,SAM 3,Florence-2 Model,PLC Reader,Instance Segmentation Model,Detections List Roll-Up,OpenAI,Line Counter,VLM As Detector,Google Gemini,Triangle Visualization,Roboflow Dataset Upload,SAM 3,Time in Zone,Instance Segmentation Model,Detections Classes Replacement,Keypoint Detection Model,Instance Segmentation Model,Roboflow Dataset Upload,Qwen 3.5 API,Object Detection Model,Anthropic Claude,Time in Zone,Keypoint Detection Model,VLM As Classifier,Polygon Visualization,SAM 3,Roboflow Asset Library Attributes
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"
}