Giao tiếp đọc dữ liệu từ các bộ điều khiển lập trình PLC (Programmable Logic Controller) như Mitsubishi (dòng FX3U, FX5U), Siemens (dòng S7-1200, S7-200 SMART) và Delta (dòng DVP-SS2, DVP-SV2) thông qua mạng truyền thông Modbus RTU/TCP là kỹ năng căn bản nhưng đòi hỏi độ chính xác tuyệt đối của kỹ sư tự động hóa khi triển khai các hệ thống IoT công nghiệp, SCADA và quản trị sản xuất MES/OEE. Bài viết này tổng hợp chi tiết bản đồ thanh ghi (Register Mapping), cấu hình hàm truyền thông và sơ đồ chân đấu nối chống nhiễu thực tế tại hiện trường.
Bài viết này nằm trong cẩm nang chuyên sâu về gateway Modbus RS485 của DeviceLab, hướng dẫn chi tiết từ cấu hình thiết bị đến quy chuẩn vận hành hiện trường.
📌 Tóm Tắt Quy Chuẩn Giao Tiếp PLC Qua Modbus (Key Takeaways):
- Quy tắc lệch địa chỉ 0-based vs 1-based: Rất nhiều kỹ sư gặp lỗi kết nối do không nắm rõ quy tắc địa chỉ Modbus. Ví dụ: Thanh ghi PLC Holding Register 40001 tương ứng với địa chỉ giao thức
0x0000; thanh ghi 40010 tương ứng với địa chỉ0x0009. - PLC Mitsubishi FX3U: Cần bo mở rộng FX3U-485-BD hoặc module FX3U-485ADP-MB. Ánh xạ vùng nhớ D sang Holding Register theo công thức quy chuẩn trong hướng dẫn lập trình FX Communication Manual.
- PLC Siemens S7-1200: Bắt buộc dùng khối hàm
MB_COMM_LOADđể khởi tạo cấu hình baudrate/parity và khốiMB_SLAVEtrỏ vào Data Block (DB) đã bỏ chọn thuộc tính “Optimized block access”. - PLC Delta DVP: Tích hợp sẵn cổng RS485 (COM2), cấu hình chế độ Modbus RTU qua thanh ghi đặc biệt D1036 và gán địa chỉ Slave qua D1121.
- Quy chuẩn dây cáp RS485: Bắt buộc dùng cáp xoắn đôi có vỏ bọc kim (Shielded Twisted Pair – STP 24AWG), đấu nối điện trở kết thúc 120 ohm tại 2 điểm mút xa nhất của tuyến cáp.

Hướng Dẫn Cấu Hình Modbus Slave Trên PLC Mitsubishi FX3U / FX5U
1.1. Phần cứng giao tiếp
PLC dòng FX3U mặc định chỉ có cổng tròn lập trình RS422 (MD8). Để giao tiếp Modbus RTU qua RS485, kỹ sư cần gắn thêm bo mở rộng FX3U-485-BD (gắn trên mặt PLC, tối đa 50m cáp) hoặc module adapter FX3U-485ADP-MB (gắn bên trái PLC, tích hợp sẵn driver Modbus phần cứng, cự ly truyền tới 500m).
1.2. Bảng ánh xạ thanh ghi (Register Mapping) trên FX3U:
Khi FX3U hoạt động ở chế độ Modbus RTU Slave (thông qua lệnh ADPRW hoặc thiết lập thanh ghi đặc biệt):
| Vùng nhớ PLC Mitsubishi | Lệnh Modbus (Function Code) | Địa chỉ Modbus tương ứng | Mục đích ứng dụng |
|---|---|---|---|
| Coil M0 – M255 | FC 01 (Read) / FC 05 (Write) | 00001 – 00256 (0x0000 – 0x00FF) | Trạng thái Run/Stop máy, cờ báo lỗi Alarm |
| Input Relay X0 – X177 | FC 02 (Read Discrete Inputs) | 10001 – 10128 (0x0000 – 0x007F) | Tín hiệu cảm biến quang, nút nhấn vật lý |
| Data Register D0 – D499 | FC 03 (Read) / FC 06, 16 (Write) | 40001 – 40500 (0x0000 – 0x01F3) | Sản lượng đếm, thời gian chu kỳ (Cycle time), tốc độ |
Hướng Dẫn Cấu Hình Modbus Slave Trên PLC Siemens S7-1200
PLC Siemens S7-1200 hỗ trợ giao tiếp Modbus RTU thông qua card mở rộng gắn mặt CB 1241 RS485 (6ES7 241-1CH30-1XB0) hoặc module gắn bên CM 1241 RS485 (6ES7 241-1CH32-0XB0). Trên phần mềm TIA Portal (V16, V17, V18), quy trình cấu hình gồm 3 bước bắt buộc:
| 3 BƯỚC LẬP TRÌNH MODBUS SLAVE TRÊN TIA PORTAL S7-1200 |
+———————————————————————————–+
| 1. TẠO DATA BLOCK (DB_Modbus_Data): |
| – Tạo DB dạng Global (DB1) chứa mảng Array[0..99] of Word |
| – Chuột phải vào DB -> Properties -> BỎ CHỌN “Optimized block access” |
| (Bắt buộc để TIA Portal phân bổ địa chỉ Offset bộ nhớ dạng Standard) |
| |
| 2. GỌI KHỐI HÀM KHỞI TẠO (MB_COMM_LOAD): |
| – Đặt trong khối khởi động Startup OB100 hoặc kích hoạt bằng cờ FirstScan |
| – Cấu hình Port ID phần cứng (Hardware Identifier của module CB/CM 1241) |
| – Baudrate: 19200 (hoặc 9600), Parity: 0 (None), Stop bit: 1 |
| |
| 3. GỌI KHỐI HÀM XỬ LÝ TRUYỀN THÔNG (MB_SLAVE): |
| – Đặt trong khối chu kỳ quét chính Main OB1 |
| – MB_ADDR: Đặt địa chỉ trạm Slave (Ví dụ: 1) |
| – MB_HOLD_REG: Trỏ vào con trỏ Pointer P#DB1.DBX0.0 WORD 100 |
+———————————————————————————–+
MB_SLAVE sẽ báo lỗi mã 16#818C (Invalid data area pointer) và cổng truyền thông hoàn toàn không phản hồi bất kỳ lệnh nào từ Gateway.

Hướng Dẫn Cấu Hình Modbus Slave Trên PLC Delta DVP
PLC Delta dòng DVP (DVP-14SS2, DVP-28SV2) là dòng PLC cực kỳ phổ biến trong các máy đóng gói, máy chiết rót và máy công cụ tại Việt Nam nhờ giá thành hợp lý và tích hợp sẵn cổng RS485 (COM2) trên thân CPU.
Các thanh ghi đặc biệt dùng để cấu hình COM2 (Modbus RTU):
- D1120: Cấu hình giao thức truyền thông. Ví dụ gán giá trị
H0088tương ứng với 9600 bps, 8 Data bits, No parity, 1 Stop bit. - D1121: Cấu hình địa chỉ trạm Modbus Slave (Cài đặt từ 1 đến 247).
- M1120: Cờ giữ cấu hình truyền thông (Set M1120 = ON).
- M1143: Chọn chế độ Modbus ASCII hay Modbus RTU (M1143 = ON: Chế độ Modbus RTU).
Ánh xạ vùng nhớ Delta D sang Holding Register:
Địa chỉ Modbus tương ứng với thanh ghi D của Delta được tính theo hệ Hex rất đơn giản: Thanh ghi D0 tương ứng địa chỉ 0x1000 (Holding Register 44097). Kỹ sư chỉ cần cấu hình Gateway Modbus Master đọc từ địa chỉ 0x1000 trở đi là có thể lấy trọn vẹn toàn bộ dữ liệu máy móc.

Bộ Thu Thập Dữ Liệu Máy Móc & Tủ Điện DL-M400
Tích hợp sẵn profile thanh ghi cho hơn 50 dòng PLC phổ biến (Siemens, Mitsubishi, Delta, Omron, LS). Tự động nhận diện tín hiệu Run/Stop, đếm sản phẩm và đẩy lên phần mềm MES/OEE qua giao thức MQTT.
Zalo Hỗ trợ kết nối PLC: 0982.503.355