- 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
تشخيص أعطال إيثرنت الصناعية: تحليل متعمق باستخدام Wireshark لبروتوكولات Modbus TCP و OPC UA في شبكات DCS

س: لماذا يُعتبر تحليل مستوى الحزمة مهمًا في شبكات DCS؟
يحمل الإيثرنت الصناعي شريان الحياة للتحكم في العمليات. بروتوكولا Modbus TCP وOPC UA هما من أكثر البروتوكولات شيوعًا — عندما تفشل الاتصالات، يتوقف الإنتاج. تعتمد أنظمة Yokogawa CENTUM VP DCS على Vnet/IP للرسائل الداخلية، لكن العديد من الأجهزة الميدانية لا تزال تستخدم Modbus TCP على المنفذ 502. توفر بطاقة واجهة Yokogawa VI701 Vnet/IP اتصال العمود الفقري عالي السرعة Vnet/IP لعقد FCS في CENTUM VP، بينما يوفر المفتاح الصناعي المدار Schneider TCSESM083F23F0 خاصية انعكاس منفذ SPAN اللازمة لالتقاط الحزم باستخدام Wireshark على شبكات DCS. يُعد بوابة Prosoft PLX32-EIP-MBTCP EtherNet/IP إلى Modbus TCP جسر بروتوكول شائع بين أنظمة DCS EtherNet/IP وأجهزة Modbus TCP الميدانية — وهو مصدر متكرر لأخطاء انتهاء المهلة التي يتناولها هذا الدليل.
س: ما هي بنية إطار Modbus TCP التي أحتاج إلى معرفتها؟
يُغلف Modbus TCP البيانات في رأس MBAP مكون من 7 بايت بالإضافة إلى PDU. يحتوي الرأس على معرف المعاملة، معرف البروتوكول (دائمًا 0x0000)، حقل الطول، ومعرف الوحدة. طلب قراءة FC 03 عادي بالهيكس: 00 01 00 00 00 06 01 03 00 00 00 0A. رموز الوظائف الشائعة: 0x03 لقراءة سجلات الحجز، 0x06 لكتابة سجل واحد، 0x10 لكتابة سجلات متعددة.
عندما يعيد العبد استجابة استثنائية، يكون البت 7 في رمز الوظيفة مضبوطًا (مثلاً، 0x83 = خطأ في FC 03). رمز الاستثناء 01 = وظيفة غير قانونية، 02 = عنوان بيانات غير قانوني، 03 = قيمة بيانات غير قانونية. هذه الرموز هي أول دليل تشخيصي لك في Wireshark.
س: كيف يعمل بروتوكول OPC UA الثنائي لتحليل Wireshark؟
يستخدم OPC UA المنفذ 4840 بشكل افتراضي. يرسل العميل رسالة Hello، يرد الخادم بـ Acknowledge، ثم يفتح العميل قناة آمنة، ينشئ جلسة، ويفعلها. في بيئات Yokogawa، غالبًا ما تعمل خوادم OPC UA خلف جدران حماية — تحقق من أن المنفذ 4840 مفتوح ويمكن الوصول إليه. للجلسات المشفرة، قم بتحميل المفتاح الخاص بالخادم بصيغة PEM تحت Edit → Preferences → Protocols → OPC UA لتمكين فك التشفير الفوري لفشل المصادقة وانتهاء الجلسة.
س: كيف أُعد انعكاس المنفذ والتقاط Wireshark؟
- الخطوة 1: سجّل الدخول إلى واجهة CLI أو الويب للمفتاح الصناعي الخاص بك (Hirschmann، Moxa، أو سلسلة Cisco IE). حدد منفذ المصدر المتصل بـ PLC أو وحدة تحكم DCS.
- الخطوة 2: قم بتكوين مرآة SPAN: اضبط منفذ المصدر على منفذ إيثرنت الخاص بالـ PLC ومنفذ الوجهة على حاسوبك التشخيصي. فعّل انعكاس حركة المرور ثنائي الاتجاه.
-
الخطوة 3: افتح Wireshark، اختر الواجهة المعكوسة، واضبط فلتر الالتقاط:
tcp port 502 or tcp port 4840. ابدأ الالتقاط. - الخطوة 4: أعد إنتاج حالة الخطأ. دع حركة المرور تتدفق لمدة لا تقل عن 30 ثانية.
-
الخطوة 5: أوقف الالتقاط واحفظ الملف بصيغة .pcapng. طبق فلاتر العرض: استخدم
modbusأوopcuaكفلاتر بداية، ثمtcp.analysis.retransmissionلعزل الشذوذ.
س: دراسة حالة — انتهاء مهلة Modbus TCP في Yokogawa CENTUM VP؟
أبلغ مصنع بتروكيماويات عن فقدان بيانات متقطع على روابط Modbus TCP. كان نظام CENTUM VP DCS يستطلع 24 جهاز إرسال ميداني كل 500 مللي ثانية، مع انقطاعات عرضية لثلاثة أو أربعة أجهزة من قائمة المسح. بعد إعداد انعكاس المنفذ على مفتاح Hirschmann والتقاط ساعتين من الحركة، كشف التصفية باستخدام tcp.analysis.retransmission واستجابات استثناء Modbus عن عدة إعادة إرسال TCP لعناوين عبيد محددة.
السبب الجذري: بوابة RS-485 إلى إيثرنت بها خلل في البرنامج الثابت أسقطت الحزم تحت حمل عالٍ عندما استجاب أكثر من 16 عبدًا في نفس الوقت. الحل: تحديث البرنامج الثابت للبوابة وتقليل حجم مجموعة الاستطلاع إلى 12 جهازًا لكل بوابة.
س: دراسة حالة — فشل مصادقة OPC UA في Schneider Modicon M580؟
لم يتمكن عميل SCADA في محطة معالجة مياه من إنشاء جلسات OPC UA بعد تجديد الشهادة. أظهر Wireshark ردود OpenSecureChannel برمز الحالة BadCertificateInvalid. كانت شهادة CA الوسيطة مفقودة من مخزن ثقة العميل. بعد إضافة شهادة CA الوسيطة وإعادة تشغيل عميل OPC UA، تم تفعيل الجلسات بنجاح.
ظهرت مشكلة ثانية: طلبات نشر OPC UA لم تتلق ردًا لمدة تصل إلى 10 ثوانٍ. كشف التصفية باستخدام opcua.service == Publish عن إشعارات نافذة TCP صفرية — كانت وحدة تحكم Modicon تعمل بنسبة 95% من طاقة المعالج. أدى نقل المنطق إلى وحدة تحكم ثانوية إلى خفض زمن استجابة الاشتراك إلى أقل من 200 مللي ثانية.
ما هي النصائح الاحترافية الرئيسية؟
- لا تعكس حركة المرور إلى منفذ يحمل حركة إنتاج — فهذا يخلق حلقة بث.
- دائمًا اضبط فلتر الالتقاط قبل البدء. الالتقاطات غير المفلترة على شبكة DCS مزدحمة تملأ مخزن 1 جيجابايت في أقل من 60 ثانية.
- استخدم Follow TCP Stream لإعادة بناء المحادثة الكاملة بين العميل والخادم.
- صدّر الإطارات الشاذة كتفريغ هيكس لدعم فني من البائع. أدرج الطوابع الزمنية ومعلومات الواجهة.
- أرشف ملفات .pcapng بأسماء وصفية (التاريخ، طراز وحدة التحكم، وصف الخطأ) لتحليل الاتجاهات.
المؤلف: Zhang Minghui مهندس أتمتة صناعية بخبرة تزيد عن 10 سنوات في PLC وDCS وأنظمة التحكم.
