- industrial ethernet port mirroring SPAN, Modbus TCP MBAP header exception code, OPC UA BadCertificateInvalid diagnosis, OPC UA packet analysis Wireshark, Schneider Modicon M580 OPC UA session, TCP retransmission DCS network fault, Wireshark Modbus TCP DCS troubleshooting, Yokogawa CENTUM VP Modbus TCP timeout
Chẩn đoán sự cố Ethernet công nghiệp: Tìm hiểu sâu Wireshark cho Modbus TCP và OPC UA trong mạng DCS

Hỏi: Tại sao phân tích cấp gói lại quan trọng trong mạng DCS?
Ethernet công nghiệp mang dòng chảy quan trọng của điều khiển quy trình. Modbus TCP và OPC UA là hai giao thức phổ biến nhất — khi giao tiếp thất bại, sản xuất sẽ dừng lại. Hệ thống DCS Yokogawa CENTUM VP dựa vào Vnet/IP cho truyền thông nội bộ, nhưng nhiều thiết bị hiện trường vẫn sử dụng Modbus TCP trên cổng 502. Card giao diện Vnet/IP Yokogawa VI701 cung cấp kết nối xương sống Vnet/IP tốc độ cao cho các nút FCS của CENTUM VP, trong khi Switch quản lý công nghiệp Schneider TCSESM083F23F0 cung cấp khả năng phản chiếu cổng SPAN cần thiết để bắt gói Wireshark trên mạng DCS. Cổng Prosoft PLX32-EIP-MBTCP EtherNet/IP sang Modbus TCP là cầu nối giao thức phổ biến giữa hệ thống DCS EtherNet/IP và thiết bị hiện trường Modbus TCP — thường là nguồn gây lỗi timeout mà hướng dẫn này đề cập.
Hỏi: Cấu trúc khung Modbus TCP tôi cần biết là gì?
Modbus TCP đóng gói dữ liệu trong một header MBAP 7 byte cộng với PDU. Header chứa ID giao dịch, ID giao thức (luôn là 0x0000), trường độ dài và định danh đơn vị. Một yêu cầu đọc FC 03 bình thường dưới dạng hex: 00 01 00 00 00 06 01 03 00 00 00 0A. Các mã chức năng phổ biến: 0x03 đọc thanh ghi giữ, 0x06 ghi một thanh ghi, 0x10 ghi nhiều thanh ghi.
Khi thiết bị slave trả về phản hồi ngoại lệ, mã chức năng có bit 7 được đặt (ví dụ, 0x83 = lỗi trên FC 03). Mã ngoại lệ 01 = chức năng không hợp lệ, 02 = địa chỉ dữ liệu không hợp lệ, 03 = giá trị dữ liệu không hợp lệ. Những mã này là manh mối chẩn đoán đầu tiên của bạn trong Wireshark.
Hỏi: Giao thức nhị phân OPC UA hoạt động thế nào cho phân tích Wireshark?
OPC UA sử dụng cổng 4840 theo mặc định. Client gửi thông điệp Hello, server phản hồi bằng Acknowledge, sau đó client mở kênh bảo mật, tạo phiên và kích hoạt phiên đó. Trong môi trường Yokogawa, server OPC UA thường chạy sau tường lửa — hãy kiểm tra cổng 4840 đã mở và có thể truy cập được. Với các phiên mã hóa, tải khóa riêng của server ở định dạng PEM trong Edit → Preferences → Protocols → OPC UA để kích hoạt giải mã thời gian thực các lỗi xác thực và timeout phiên.
Hỏi: Làm thế nào để thiết lập phản chiếu cổng và bắt gói Wireshark?
- Bước 1: Đăng nhập vào CLI hoặc giao diện web của switch công nghiệp (Hirschmann, Moxa hoặc Cisco IE series). Xác định cổng nguồn kết nối với PLC hoặc bộ điều khiển DCS.
- Bước 2: Cấu hình phản chiếu SPAN: đặt cổng nguồn là cổng Ethernet của PLC và cổng đích là laptop chẩn đoán của bạn. Bật phản chiếu lưu lượng hai chiều.
-
Bước 3: Mở Wireshark, chọn giao diện được phản chiếu, và đặt bộ lọc bắt:
tcp port 502 or tcp port 4840. Bắt đầu bắt gói. - Bước 4: Tái tạo điều kiện lỗi. Cho lưu lượng chạy ít nhất 30 giây.
-
Bước 5: Dừng bắt gói và lưu file .pcapng. Áp dụng bộ lọc hiển thị: dùng
modbushoặcopcualàm bộ lọc bắt đầu, sau đótcp.analysis.retransmissionđể tách biệt các bất thường.
Hỏi: Nghiên cứu trường hợp — Timeout Modbus TCP trên Yokogawa CENTUM VP?
Một nhà máy hóa dầu báo cáo mất dữ liệu gián đoạn trên các liên kết Modbus TCP. Hệ thống DCS CENTUM VP quét 24 bộ truyền tín hiệu hiện trường mỗi 500 ms, thỉnh thoảng mất ba hoặc bốn bộ trong danh sách quét. Sau khi thiết lập phản chiếu cổng trên switch Hirschmann và bắt hai giờ lưu lượng, lọc theo tcp.analysis.retransmission và phản hồi ngoại lệ Modbus cho thấy nhiều lần truyền lại TCP đến các địa chỉ slave cụ thể.
Nguyên nhân gốc rễ: một cổng RS-485 sang Ethernet với lỗi firmware đã bỏ gói khi tải cao khi hơn 16 slave phản hồi đồng thời. Giải pháp: cập nhật firmware cổng và giảm kích thước nhóm quét xuống còn 12 thiết bị mỗi cổng.
Hỏi: Nghiên cứu trường hợp — Lỗi xác thực OPC UA trên Schneider Modicon M580?
Client SCADA của một nhà máy xử lý nước không thể thiết lập phiên OPC UA sau khi gia hạn chứng chỉ. Wireshark hiển thị phản hồi OpenSecureChannel với mã trạng thái BadCertificateInvalid. Chứng chỉ CA trung gian bị thiếu trong kho tin cậy của client. Sau khi thêm CA trung gian và khởi động lại client OPC UA, các phiên được kích hoạt thành công.
Vấn đề thứ hai xuất hiện: các yêu cầu Publish OPC UA không có phản hồi trong tới 10 giây. Lọc theo opcua.service == Publish cho thấy thông báo TCP zero-window — CPU bộ điều khiển Modicon đạt 95% công suất. Chuyển bớt logic sang bộ điều khiển phụ đã giảm độ trễ đăng ký xuống dưới 200 ms.
Những mẹo chuyên nghiệp quan trọng là gì?
- Không bao giờ phản chiếu lưu lượng đến cổng đang mang lưu lượng sản xuất — điều này tạo vòng lặp phát sóng.
- Luôn đặt bộ lọc bắt trước khi bắt đầu. Bắt không lọc trên mạng DCS bận rộn sẽ làm đầy bộ đệm 1 GB trong chưa đầy 60 giây.
- Sử dụng Follow TCP Stream để tái tạo toàn bộ cuộc trò chuyện client-server.
- Xuất các khung bất thường dưới dạng hex dump để hỗ trợ kỹ thuật nhà cung cấp. Bao gồm dấu thời gian và thông tin giao diện.
- Lưu trữ file .pcapng với tên mô tả (ngày, model bộ điều khiển, mô tả lỗi) để phân tích xu hướng.
Tác giả: Zhang Minghui là kỹ sư tự động hóa công nghiệp với hơn 10 năm kinh nghiệm trong PLC, DCS và hệ thống điều khiển.
