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