شرح IEC 104 ومحاكي IEC 104 مجاني
IEC 60870-5-104 (أو IEC 104 اختصاراً) بروتوكول تحكم عن بُعد دولي يربط مركز SCADA (الـ master) بوحدات RTU أو متحكمات المحطات الفرعية أو متحكمات محطات التوليد (الـ outstation) عبر TCP/IP، على المنفذ 2404 افتراضياً. وهو منتشر في أتمتة شبكات التوزيع والمحطات الفرعية ومحطات الطاقة المتجددة المرتبطة بمشغل الشبكة. يشرح هذا المقال البروتوكول باختصار، ثم يوضح كيف تختبره باستخدام محاكي IEC 104.
مفاهيم IEC 104 الأساسية
| المصطلح | المعنى |
|---|---|
| Master / Client | الطرف الذي يطلب البيانات: SCADA أو بوابة |
| Outstation / Server | الطرف الذي يقدم البيانات: RTU أو متحكم |
| Common Address (CA) | عنوان المحطة في الـ ASDU، ويجب أن يتطابق في الطرفين |
| IOA | عنوان كل نقطة (3 بايت في IEC 104) |
| Type ID | نوع النقطة: حالة مفردة، حالة مزدوجة، قياس، أمر |
| COT | سبب الإرسال: دوري، تلقائي، رد على استجواب، تأكيد أمر |
| GI | الاستجواب العام: طلب «أرسل كل النقاط» (C_IC_NA_1) |
كيف تسير جلسة IEC 104؟
- يتصل الـ master بالـ outstation عبر TCP 2404.
- يرسل الـ master إطار STARTDT act، فيرد الـ outstation بـ STARTDT con ويبدأ تدفق البيانات.
- يرسل الـ master استجواباً عاماً (C_IC_NA_1، النوع 100). يرد الـ outstation بتأكيد (COT 7)، ثم كل النقاط (COT 20)، ثم إنهاء (COT 10).
- بعد ذلك تصل التغييرات تلقائياً (COT 3).
- عند خمول الخط يتبادل الطرفان إطارات TESTFR للتأكد من أن الاتصال حي.
محاكي server أم محاكي client؟
| تريد أن تثبت أن… | استخدم | وهو يحل محل |
|---|---|---|
| الـ SCADA أو البوابة تفسّر النقاط بشكل صحيح | محاكي server (RTU) | الـ RTU |
| الـ RTU يرسل النقاط الصحيحة ويقبل الأوامر | محاكي client (master) | الـ SCADA |
محاكي الـ server مهم بشكل خاص في بداية المشروع، إذ يستطيع جانب SCADA أو مشغل الشبكة التحقق من قائمة النقاط المتفق عليها بينما الموقع ما زال قيد الإنشاء. وتظهر معظم أخطاء الربط في المختبر قبل أن يذهب أحد إلى الموقع.
خطوة بخطوة: اختبار master بمحاكي RTU
- جهّز قائمة النقاط: الـ CA، والـ IOA ونوع كل نقطة. هذه هي الوثيقة المتفق عليها بين مورد الـ RTU وجانب SCADA.
- شغّل المحاكي: في وضع الـ server عرّف الـ CA والنقاط واستمع على المنفذ 2404.
- وجّه الـ master إليه: غيّر عنوان IP الهدف في الـ master إلى الجهاز الذي يعمل عليه المحاكي، وتأكد أن المنفذ 2404 مفتوح في الجدار الناري.
- افحص رد الاستجواب العام: يجب أن تظهر كل النقاط في الـ master بالاسم والقيمة الصحيحين.
- غيّر قيمة: غيّر قياساً أو حالة في المحاكي وتأكد أن التحديث التلقائي وصل إلى الـ master.
- أرسل أمراً: أصدر أمراً من الـ master وتأكد أنه وصل إلى الـ IOA الصحيح في المحاكي.
خطوة بخطوة: اختبار RTU حقيقي بمحاكي client
- اتصل بعنوان IP الخاص بالـ RTU على المنفذ 2404. إذا كان الـ RTU يقبل عناوين master محددة فقط، فاطلب إضافة عنوان حاسوبك.
- أرسل استجواباً عاماً وقارن النقاط الواردة بقائمة النقاط.
- افحص الـ Type ID: إذا وصلت قيمة scaled حيث يُتوقع float فستنحرف النتيجة بمضاعفات العشرة.
- جرّب الأوامر أولاً على كائن مفصول أو مخصص للاختبار.
الإجراء التفصيلي على مستوى البروتوكول (STARTDT، المؤقتات، قيم COT، جدول الأعطال) موجود في How to test an IEC 104 connection (بالإنجليزية).
الأنواع الأكثر استخداماً في قائمة النقاط
| Type ID | الاسم المختصر | الاستخدام |
|---|---|---|
| 1 | M_SP_NA_1 | حالة مفردة: إنذار، بت حالة |
| 3 | M_DP_NA_1 | حالة مزدوجة: قاطع مفتوح/مغلق |
| 13 | M_ME_NC_1 | قياس (float): قدرة، جهد، تيار |
| 30 / 31 / 36 | …_TB_1 / …_TF_1 | حالات وقياسات بختم زمني |
| 45 | C_SC_NA_1 | أمر مفرد |
| 46 | C_DC_NA_1 | أمر مزدوج: فتح/إغلاق قاطع |
| 50 | C_SE_NC_1 | قيمة ضبط (float): حد القدرة |
Ranaliz iOT Tester: محاكي IEC 104 client وserver في تطبيق واحد
Ranaliz iOT Tester تطبيق سطح مكتب مجاني يشغّل وضعي IEC 104 معاً:
- Client: الاتصال بـ RTU، والاستجواب العام، ومتابعة تحديثات النقاط مباشرةً، وكتابة الأوامر.
- Server: محاكي RTU بنقاط تعرّفها بنفسك، مع أدوات التشغيل والمراقبة.
تشمل أنواع النقاط M_SP وM_DP وM_ME وC_SC وC_DC وC_SE وغيرها. ويحتوي التطبيق نفسه على أداة اختبار Modbus (TCP/UDP/RTU) وعميل MQTT، ما يسهّل اختبار جانبي بوابة تحويل Modbus إلى IEC 104 من حاسوب واحد. تتوفر إصدارات جاهزة لـ Windows 10/11 وmacOS على Apple Silicon، والكود المصدري منشور على GitHub بترخيص MIT.
أسئلة شائعة
هل يوجد محاكي IEC 104 مجاني؟
نعم. Ranaliz iOT Tester مجاني ويتضمن محاكي client ومحاكي server (RTU). أمثلة المكتبات مثل lib60870 مجانية أيضاً لكنها تحتاج إلى بناء. ومعظم المحاكيات التجارية مجانية فقط كنسخ تقييم محدودة المدة.
ما المنفذ الذي يستخدمه IEC 104؟
TCP 2404 افتراضياً، وقد يُغيَّر في بعض التركيبات، لذا راجع إعدادات الـ outstation.
ما الفرق بين IEC 101 وIEC 104؟
يعمل IEC 101 عبر خطوط تسلسلية، بينما يحمل IEC 104 طبقة التطبيق نفسها عبر TCP/IP، عادةً بـ Common Address من 2 بايت وIOA من 3 بايت.
هل يمكن اختبار SCADA بدون RTU حقيقي؟
نعم. شغّل محاكي RTU بقائمة النقاط المتفق عليها ووجّه الـ master إليه، وستظهر معظم أخطاء الربط والأوامر هناك أولاً.
المصادر
- IEC 60870-5-104 — Network access for IEC 60870-5-101 using standard transport profiles
- IEC 60870-5-101 — Companion standard for basic telecontrol tasks