👈 🤖 Factory Automation – Chia sẻ kiến thức tự động hóa | Cung cấp tài liệu & mô hình ứng dụng thực tế 🎅 🎅 🎅 🎅 👈 🤖 Factory Automation – Chia sẻ kiến thức tự động hóa | Cung cấp tài liệu & mô hình ứng dụng thực tế 🎅 🎅 🎅 🎅

HƯỚNG DẪN GIAO TIẾP MODBUS RTU VỚI PLC MITSUBISHI

📖 HƯỚNG DẪN GIAO TIẾP MODBUS RTU VỚI PLC MITSUBISHI

Sử dụng thư viện Python pymodbus 2.5.3


🏭 Giới thiệu

Modbus RTU là giao thức truyền thông công nghiệp phổ biến, được sử dụng rộng rãi trong PLC Mitsubishi như dòng FX Series, iQ-R và iQ-F. Trong bài viết này, chúng ta sẽ tìm hiểu cách thiết lập và giao tiếp Modbus RTU giữa PLC Mitsubishi và máy tính sử dụng Python, thông qua thư viện pymodbus 2.5.3.

Tài liệu này phù hợp cho kỹ sư tự động hóa, sinh viên, và người làm PLC muốn xây dựng hệ thống:

  • Giám sát dữ liệu

  • Điều khiển thiết bị

  • Lấy dữ liệu sản xuất

  • Kết nối HMI/SCADA tự phát triển bằng Python


🔌 Kết nối phần cứng

Sơ đồ kết nối RS485

PC (USB-RS485) ←→ PLC Mitsubishi
│ │
A+ ──────────────── A+
B- ──────────────── B-
GND ─────────────── GND (tùy chọn)

Thiết bị cần:

  • USB–RS485 Converter: CH340 / FT232 / CP2102

  • PLC Mitsubishi hỗ trợ Modbus RTU

  • Dây RS485 dạng twisted pair

📌 Lưu ý: Nếu khoảng cách > 10m nên dùng trở 120Ω và nối GND chung.


⚙️ Cấu hình PLC Mitsubishi

1️⃣ FX3U / FX3G (Module FX3U-485-BD)

Trong GX Works2:

MOV H40A1 D8120 ; Baudrate 9600, 8N1
MOV K3 D8121 ; Station = 3

Hoặc set:

  • Baudrate: 9600–38400

  • Data bits: 8

  • Parity: None

  • Stop bit: 1

  • Mode: Modbus RTU Slave


2️⃣ FX5U (Built-in RS485)

GX Works3:

  • Module Parameter → RS-485

  • Protocol: Modbus RTU Slave

  • Station: 3

  • Baudrate: 38400


3️⃣ iQ-R Series

  • Thêm module RJ71C24 hoặc dùng built-in

  • Protocol: Modbus RTU Slave


📊 Ánh xạ địa chỉ Modbus Mitsubishi

Vùng PLC Modbus Ví dụ
M Coil M30 = Coil 30
D Holding Register D15 = HR 15

Function code hỗ trợ

FC Chức năng Vùng
01 Read Coils M
05 Write Single Coil M
03 Read Holding Registers D
06 Write Single Register D
16 Write Multiple Registers D

🐍 Lập trình Python với pymodbus

Cài thư viện

pip install pymodbus==2.5.3

Khởi tạo client

from pymodbus.client.sync import ModbusSerialClient

client = ModbusSerialClient(
method='rtu',
port='COM4',
baudrate=38400,
parity='N',
bytesize=8,
stopbits=1,
timeout=2.0
)

slave_id = 3

Đọc thanh ghi D

result = client.read_holding_registers(0, 1, unit=slave_id)
print(result.registers[0])

Ghi thanh ghi D

client.write_register(15, 500, unit=slave_id)

Đọc Coil M

result = client.read_coils(30, 1, unit=slave_id)
print(result.bits[0])

Ghi Coil M

client.write_coil(31, True, unit=slave_id)

🧪 Ví dụ hoàn chỉnh

from pymodbus.client.sync import ModbusSerialClient
import time

client = ModbusSerialClient(method='rtu', port='COM4', baudrate=38400)
slave = 3

if client.connect():
print("Kết nối thành công!")

result = client.read_holding_registers(0, 1, unit=slave)
print("D0 =", result.registers[0])

client.write_register(15, 500, unit=slave)
print("Đã ghi D15 = 500")

client.write_coil(31, True, unit=slave)
print("M31 ON")
time.sleep(0.2)
client.write_coil(31, False, unit=slave)
print("M31 OFF")

client.close()
else:
print("Kết nối thất bại!")


🔍 Xử lý lỗi thường gặp

Lỗi Nguyên nhân Khắc phục
Failed to connect Sai COM Kiểm tra Device Manager
Timeout Baudrate sai Đồng bộ PLC & PC
No response Sai slave ID Kiểm tra D8121 / RS485 config
Invalid message Wiring sai Kiểm tra A+, B-
Không đọc được PLC chưa enable Modbus Enable lại protocol

Mẹo debug

import logging
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)

📌 Quy tắc vàng khi giao tiếp Modbus

1️⃣ Baudrate phải đồng bộ
2️⃣ Slave ID đúng với cấu hình PLC
3️⃣ Khoảng cách xa → thêm trở 120Ω
4️⃣ Không polling quá nhanh (delay ≥ 100ms)
5️⃣ Shield dây RS485 nếu môi trường nhiễu


🎯 Ứng dụng thực tế

  • Cân điện tử giao tiếp PLC

  • Thu thập dữ liệu sản xuất

  • Kết nối Python HMI/SCADA

  • IoT gateway cho PLC Mitsubishi

  • Điều khiển động cơ, cảm biến, relay

Link Tài Liệu : Tài Liệu Ở Đây ___ Google Drive


📚 Tài liệu tham khảo


🎉 Kết luận

Thông qua Python và thư viện pymodbus, việc giao tiếp Modbus RTU với PLC Mitsubishi trở nên:

  • Dễ triển khai

  • Chi phí thấp

  • Linh hoạt

  • Phù hợp HMI/SCADA tự viết

Bài viết giúp bạn hiểu từ phần cứng – cấu hình PLC – đến lập trình Python và xử lý lỗi thực tế.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *