👈 🤖 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 Kết Nối Python Với PLC Mitsubishi Q Seri Qua Ethernet (MC Protocol)

🔌 Hướng Dẫn Kết Nối Python Với PLC Mitsubishi Q03UDE Qua Ethernet (MC Protocol)

Tác giả: Factory Automation (tvTech Project)

Trong thời đại chuyển đổi số và công nghiệp 4.0, việc kết nối PLC công nghiệp với phần mềm Python trên máy tính để giám sát, điều khiển và xử lý dữ liệu đang trở thành xu hướng phổ biến.
Bài viết này sẽ hướng dẫn từng bước chi tiết cách kết nối Python với PLC Mitsubishi Q03UDE thông qua MC Protocol (3E Frame) bằng thư viện pymcprotocol.


📌 1. Giới thiệu tổng quan

MC Protocol là gì?

MC Protocol (MELSEC Communication Protocol) là giao thức truyền thông do Mitsubishi Electric phát triển, cho phép các thiết bị bên ngoài (PC, SCADA, HMI, phần mềm tự viết…) giao tiếp trực tiếp với PLC Mitsubishi qua:

  • Ethernet (TCP/IP)

  • Serial (RS232 / RS485)

Giao thức này hỗ trợ:

  • Đọc/Ghi thanh ghi D

  • Điều khiển relay M, X, Y

  • Giao tiếp CC-Link, Link Register, File Register…


PLC Mitsubishi Q03UDE có gì đặc biệt?

  • Thuộc Q Series

  • CPU Q03UDE

  • Ethernet tích hợp sẵn

  • Hỗ trợ MC Protocol – Type 3E

  • Phù hợp cho:

    • Hệ thống giám sát

    • Kết nối PC – PLC

    • Ứng dụng xử lý ảnh, AI, Python, SCADA custom


Thư viện pymcprotocol

pymcprotocol là thư viện Python mã nguồn mở giúp giao tiếp với PLC Mitsubishi cực kỳ đơn giản.

Ưu điểm:

  • Không cần MX Component

  • Hỗ trợ Binary & ASCII

  • Hỗ trợ Q Series, iQ-R, FX, L Series

  • Dễ tích hợp với PyQt, Flask, AI, Vision


🖥️ 2. Yêu cầu hệ thống

Phần cứng

  • PLC Mitsubishi Q03UDE

  • PC/Laptop

  • Cáp Ethernet RJ45

Phần mềm

  • Python 3.6 trở lên

  • GX Works2 hoặc GX Works3

  • Thư viện pymcprotocol

Mạng ví dụ

  • PLC: 192.168.0.39

  • PC: 192.168.0.100

  • Subnet: 255.255.255.0


⚙️ 3. Cài đặt thư viện Python

pip install pymcprotocol

Kiểm tra cài đặt:

import pymcprotocol
print(pymcprotocol.__version__)

(Tùy chọn)

pip install PyQt5 numpy pandas

🧩 4. Cấu hình PLC trong GX Works2 (Rất quan trọng)

Bước 1: Cấu hình Ethernet

Vào:

Parameter → PLC Parameter → Built-in Ethernet Port Setting

Thiết lập IP:

IP Address: 192.168.0.39
Subnet Mask: 255.255.255.0

Bước 2: Open Setting (Quan trọng nhất)

Thông số Giá trị
Protocol TCP
Open System MC Protocol
Port 1025
Communication Data Code Binary hoặc ASCII

⚠️ Lưu ý:

  • PLC chọn Binary → Python mặc định

  • PLC chọn ASCII → Python phải set ASCII

Sau khi cấu hình:

  • Download Parameter

  • Restart PLC


🔗 5. Kết nối PLC bằng Python

Kết nối Binary (mặc định)

from pymcprotocol import Type3E

plc = Type3E()
plc.connect(“192.168.0.39”, 1025)

# thao tác đọc/ghi

plc.close()

Kết nối ASCII

plc = Type3E()
plc.setaccessopt(commtype="ascii")
plc.connect("192.168.0.39", 1025)

📥 6. Đọc & Ghi D Register

Đọc D Register

values = plc.batchread_wordunits("D0", 5)
print(values)

Ghi D Register

plc.batchwrite_wordunits("D100", [100, 200, 300])

Làm việc với số 32-bit

value = 100000
low = value & 0xFFFF
high = value >> 16
plc.batchwrite_wordunits("D100", [low, high])

🔘 7. Đọc & Ghi M Relay

Đọc M

m = plc.batchread_bitunits("M0", 1)

Ghi M

plc.batchwrite_bitunits("M100", [1]) # ON
plc.batchwrite_bitunits("M100", [0]) # OFF

🧠 8. Các Device khác hỗ trợ

Device Chức năng
X Input
Y Output
B Link Relay (hex)
W Link Register
R, ZR File Register

⚠️ 9. Lỗi thường gặp & cách xử lý

Lỗi Nguyên nhân
Timeout Sai IP / Port
Connection refused Chưa Open Setting
Sai dữ liệu Binary / ASCII không khớp

🧪 10. Ví dụ ứng dụng thực tế

Giám sát PLC liên tục

while True:
d = plc.batchread_wordunits("D0", 5)
m = plc.batchread_bitunits("M0", 8)
print(d, m)

Điều khiển theo điều kiện

if plc.batchread_wordunits("D0", 1)[0] > 1000:
plc.batchwrite_bitunits("M100", [1])

Ghi log dữ liệu PLC

  • Kết hợp CSV

  • Dùng cho SCADA, AI, Machine Vision

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

Để 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 *