Lỗi 16#8180 trên S7‑1200 dùng CM1241: Nguyên nhân và cách xử lý

Khi PLC Siemens S7‑1200 truyền thông với đồng hồ điện, đầu cân, biến tần hoặc cảm biến thông minh qua CM1241, khối MB_COMM_LOAD có thể trả về trạng thái 16#8180.

Theo tài liệu Siemens, mã này có nghĩa là giá trị PORT không hợp lệ hoặc chương trình đang sử dụng sai Hardware Identifier của module truyền thông. Bảng mã trạng thái MB_COMM_LOAD của Siemens.

Do đó, nếu MB_COMM_LOAD đang báo 16#8180, bước đầu tiên không phải đảo dây A/B hoặc thay đổi Slave ID. Cần sửa đúng tham số PORT để PLC nhận diện được CM1241.

Lỗi 16#8180 có ý nghĩa gì?

Mã lỗi có thể được hiểu như sau:

Thành phần Ý nghĩa
16# Giá trị được hiển thị ở hệ thập lục phân
8180 PORT ID không hợp lệ
Khối thường báo lỗi MB_COMM_LOAD hoặc Modbus_Comm_Load
Nhóm nguyên nhân Cấu hình phần cứng hoặc chương trình
Chưa liên quan trực tiếp Địa chỉ Slave, thanh ghi và dây A/B

Lỗi xảy ra trước khi yêu cầu Modbus được truyền đến thiết bị Slave. Vì PLC chưa cấu hình được cổng truyền thông nên đèn TX/RX trên CM1241 có thể chưa nhấp nháy.

Vì sao đây chưa phải lỗi dây RS485?

Quá trình truyền Modbus RTU trên S7‑1200 gồm hai giai đoạn:

  1. Cấu hình cổng CM1241 bằng MB_COMM_LOAD.
  2. Gửi yêu cầu Modbus bằng MB_MASTER.

Nếu giai đoạn một bị lỗi, giai đoạn hai chưa thể hoạt động đúng.

PLC khởi động
MB_COMM_LOAD cấu hình CM1241
├── ERROR 16#8180 → kiểm tra PORT/HW ID
MB_MASTER gửi yêu cầu
CM1241 phát dữ liệu RS485
Thiết bị Slave phản hồi

Đảo A/B chỉ có ý nghĩa sau khi cổng đã được cấu hình thành công và khối Master thực sự phát yêu cầu.

Kiểm tra đúng Hardware Identifier của CM1241

PORT phải nhận Hardware Identifier của đúng cổng CM1241 đang sử dụng.

Không nên nhập:

  • Địa chỉ đầu vào của module.
  • Địa chỉ đầu ra.
  • Số thứ tự module trên thanh DIN.
  • Địa chỉ DB.
  • Địa chỉ Slave.
  • Một con số sao chép từ dự án khác.
  • Hardware ID của CPU hoặc module khác.

Cách chọn Hardware Identifier trong TIA Portal

Thực hiện theo trình tự:

  1. Mở Device configuration.
  2. Kiểm tra CM1241 đã được thêm bên trái CPU.
  3. Chọn đúng module truyền thông.
  4. Mở phần Properties hoặc System constants.
  5. Tìm Hardware Identifier của module/cổng truyền thông.
  6. Quay lại lời gọi MB_COMM_LOAD.
  7. Tại tham số PORT, sử dụng danh sách lựa chọn của TIA Portal.
  8. Chọn đúng tên hệ thống của CM1241.
  9. Compile lại phần cứng và phần mềm.
  10. Download cả Hardware configuration xuống PLC.

Nên chọn bằng danh sách biểu tượng của TIA Portal thay vì tự nhập một số nguyên. Khi chuyển chương trình sang CPU khác hoặc thay đổi vị trí module, Hardware ID có thể thay đổi.

Cấu hình khối MB_COMM_LOAD

Những tham số chính cần kiểm tra gồm:

Tham số Chức năng Lưu ý
REQ Kích hoạt cấu hình Cần cạnh lên
PORT Cổng truyền thông Phải là HW ID của CM1241
BAUD Tốc độ truyền Phải phù hợp thiết bị Slave
PARITY Kiểm tra chẵn lẻ Hai phía phải giống nhau
MB_DB Liên kết vùng dữ liệu Modbus Dùng đúng DB theo khối
DONE Cấu hình hoàn tất Cho phép chuyển sang bước đọc
ERROR Báo lỗi Kiểm tra STATUS tại đúng chu kỳ
STATUS Mã trạng thái Nên lưu lại để chẩn đoán

PORT

Đây là tham số trực tiếp gây ra lỗi 16#8180. Cần chọn đúng Hardware Identifier của CM1241.

Nếu dự án có nhiều CM1241, mỗi cổng có Hardware ID riêng. Không được dùng chung một giá trị PORT cho tất cả module.

BAUD

Tốc độ của PLC và thiết bị Slave phải giống nhau, chẳng hạn:

  • 1.200bit/s.
  • 2.400bit/s.
  • 4.800bit/s.
  • 9.600bit/s.
  • 19.200bit/s.
  • 38.400bit/s.

Giá trị cụ thể phải theo cấu hình của thiết bị, không nên mặc định mọi thiết bị đều sử dụng 9.600bit/s.

PARITY

Ba cấu hình thường gặp:

  • None.
  • Even.
  • Odd.

Sai parity thường khiến thiết bị không phản hồi hoặc dữ liệu bị từ chối, nhưng không phải nguyên nhân chính của mã 16#8180.

MODE

Với mạng RS485 hai dây half-duplex, tài liệu Siemens quy định chế độ tương ứng là Mode 4. Chế độ khác được sử dụng cho RS422 hoặc cấu trúc bốn dây. Mô tả chế độ cổng của Siemens.

Cần kiểm tra phiên bản khối lệnh vì MB_COMM_LOADModbus_Comm_Load có thể có cách tổ chức tham số khác nhau.

Trình tự gọi MB_COMM_LOAD và MB_MASTER

MB_COMM_LOAD nên được kích bằng một xung khi PLC bắt đầu chạy hoặc khi cần cấu hình lại cổng. Không nên để REQ luôn bằng 1.

Trình tự đề xuất:

First Scan
Tạo một xung REQ cho MB_COMM_LOAD
Chờ DONE hoặc ERROR
├── ERROR → lưu STATUS và dừng yêu cầu đọc
Cho phép MB_MASTER hoạt động

Logic quản lý nên có các trạng thái:

  1. Chưa cấu hình.
  2. Đang cấu hình cổng.
  3. Cấu hình thành công.
  4. Đang gửi yêu cầu.
  5. Nhận phản hồi.
  6. Timeout hoặc lỗi.
  7. Chờ trước khi thử lại.

Không phát liên tục yêu cầu mới khi MB_MASTER vẫn đang BUSY.

Phân biệt trạng thái bình thường và lỗi

Trạng thái Nhận xét
16#7000 Khối chưa có yêu cầu mới
16#7001 hoặc 16#7002 Khối đang xử lý
16#0000 Không có lỗi
16#8180 Sai PORT hoặc Hardware Identifier
16#8181 Giá trị tốc độ truyền không hợp lệ
16#8182 Giá trị parity không hợp lệ
16#81AA/81AB Cần kiểm tra chế độ RS422/RS485
Nhóm 16#82xx Thường liên quan yêu cầu hoặc phản hồi Modbus

Trạng thái 7000 không nhất thiết là lỗi. Siemens lưu ý nhiều mã 8xxx mới đi kèm đầu ra ERROR. Một số mã chỉ tồn tại trong một vòng quét nên chương trình nên chốt lại STATUS khi ERROR xuất hiện.

Kiểm tra dây RS485 sau khi hết lỗi 8180

Sau khi MB_COMM_LOAD.DONE hoạt động, mới tiếp tục kiểm tra lớp vật lý.

Đấu đúng A/B

Các nhà sản xuất có thể sử dụng những ký hiệu khác nhau:

Ký hiệu thường gặp Ý nghĩa tham khảo
A/B Hai đường RS485
D+/D− Dữ liệu dương và âm
485+/485− Cực truyền thông
RxTx+/RxTx− Cặp dữ liệu half-duplex

Không nên kết luận A luôn tương đương D+ vì quy ước có thể khác nhau giữa các hãng. Phải đối chiếu tài liệu hai phía.

Sử dụng topology dạng tuyến

PLC/CM1241 ── Slave 1 ── Slave 2 ── Slave cuối

Hạn chế:

  • Đấu hình sao.
  • Tạo nhánh quá dài.
  • Dùng cáp không xoắn.
  • Đi chung máng với cáp biến tần.
  • Nối shield tùy tiện ở nhiều điểm.

Điện trở kết thúc

Điện trở kết thúc tuyến thường chỉ được đặt tại hai đầu vật lý của mạng khi điều kiện chiều dài và tốc độ yêu cầu. Không lắp điện trở tại mọi thiết bị.

Cấu hình MB_MASTER

Sau khi cổng đã sẵn sàng, cần kiểm tra:

  • Địa chỉ Slave.
  • Function Code.
  • Địa chỉ thanh ghi.
  • Số lượng thanh ghi.
  • Vùng dữ liệu đích.
  • Kiểu dữ liệu.
  • Timeout.
  • Chu kỳ truy vấn.

Ví dụ thiết bị ghi thanh ghi 40001 không có nghĩa luôn nhập trực tiếp 40001 vào PLC. Một số thư viện sử dụng địa chỉ bắt đầu từ 0 hoặc địa chỉ tương đối.

Có thể xảy ra các trường hợp:

Tài liệu thiết bị Giá trị cần nhập
Ghi 40001 Có thư viện nhập 0
Ghi 40001 Có thư viện nhập 1
Ghi 40001 Có thư viện cho nhập trực tiếp 40001

Phải đối chiếu hướng dẫn của đúng phiên bản khối Modbus.

Đọc dữ liệu 32 bit

Đồng hồ điện và đầu cân thường trả về:

  • Integer 16 bit.
  • Integer 32 bit.
  • Float 32 bit.
  • Giá trị có dấu.
  • Giá trị có hệ số chia.
  • Hai Word đảo thứ tự.

Nếu PLC có phản hồi nhưng giá trị sai, cần kiểm tra:

  • High Word/Low Word.
  • Byte order.
  • Signed/Unsigned.
  • Kiểu REAL.
  • Hệ số nhân hoặc chia.
  • Đơn vị đo.

Không nên đảo Word theo thử nghiệm rồi sử dụng ngay mà chưa kiểm tra tại nhiều giá trị thực tế.

Quy trình xử lý lỗi 16#8180

  1. Online PLC và quan sát đúng khối MB_COMM_LOAD.
  2. Xác nhận ERROR = TRUE đồng thời với STATUS = 16#8180.
  3. Mở Device configuration.
  4. Kiểm tra đúng mã và vị trí CM1241.
  5. Compile Hardware configuration.
  6. Chọn lại Hardware Identifier cho PORT.
  7. Kiểm tra phiên bản khối Modbus.
  8. Với RS485 hai dây, kiểm tra Mode 4 nếu khối yêu cầu.
  9. Tạo cạnh lên cho REQ.
  10. Chờ DONE.
  11. Chỉ cho phép MB_MASTER sau khi cấu hình thành công.
  12. Kiểm tra đèn TX.
  13. Nếu có TX nhưng không RX, kiểm tra A/B, Slave ID và baud rate.
  14. Nếu có phản hồi nhưng dữ liệu sai, kiểm tra thanh ghi và kiểu dữ liệu.
  15. Lưu mã lỗi cuối cùng lên HMI để thuận tiện bảo trì.

Bảng chẩn đoán nhanh

Hiện tượng Nguyên nhân ưu tiên kiểm tra
MB_COMM_LOAD báo 16#8180 PORT/HW ID
MB_COMM_LOAD không chạy REQ không có cạnh lên
MB_COMM_LOAD DONE nhưng không có TX MB_MASTER chưa được kích
Có TX, không RX A/B, Slave ID, baud, parity
TX/RX đều nhấp nháy nhưng PLC báo lỗi Function Code hoặc thanh ghi
Đọc được nhưng giá trị vô lý Byte/Word order và kiểu dữ liệu
Chỉ thiết bị cuối không phản hồi Cáp, nhánh hoặc kết thúc tuyến
Chạy được lúc biến tần dừng Nhiễu và bố trí cáp
Mất truyền thông ngẫu nhiên Chu kỳ đọc, timeout hoặc đấu mạng

Câu hỏi thường gặp

Lỗi 16#8180 có phải do đảo dây A và B không?

Không phải nguyên nhân trực tiếp. Mã 16#8180 chỉ ra giá trị PORT hoặc Hardware Identifier không hợp lệ.

Có được nhập địa chỉ module vào PORT không?

Không nên nhập địa chỉ I/O. PORT phải sử dụng Hardware Identifier của đúng cổng truyền thông.

MB_COMM_LOAD có phải gọi liên tục không?

Không. Thông thường khối được kích bằng cạnh lên khi PLC khởi động hoặc khi cần cấu hình lại cổng.

Vì sao STATUS hiển thị 16#7000?

Đây thường là trạng thái khối chưa nhận yêu cầu mới, không nhất thiết là lỗi. Cần kiểm tra REQ và tín hiệu ERROR.

CM1241 có hỗ trợ RS422 và RS485 không?

6ES7241‑1CH32‑0XB0 hỗ trợ RS422/RS485 qua đầu nối Sub‑D 9 chân. Thông tin chính thức của Siemens.

CM1241 dùng được với Modbus RTU Master và Slave không?

Có thể sử dụng cho truyền thông nối tiếp khi phần cứng, firmware và khối lệnh tương thích. Cần chọn đúng thư viện và cấu hình cho vai trò Master hoặc Slave.

Tư vấn và hỗ trợ

Khi yêu cầu kiểm tra truyền thông, khách hàng nên gửi:

  • Model CPU và CM1241.
  • Phiên bản TIA Portal.
  • Ảnh lời gọi MB_COMM_LOAD.
  • Ảnh STATUS online.
  • Model thiết bị Slave.
  • Bảng thanh ghi.
  • Sơ đồ đấu dây A/B.
  • Baud rate, parity và Slave ID.
  • Tư vấn bán hàng và yêu cầu báo giá: 0934.384.222
  • Hỗ trợ kỹ thuật: 0912.888.729

Liên kết nội bộ đề xuất