انتقل إلى المحتوى

30من المختبر إلى المصنع

نفس الكود عند كل شركة: SCL و Studio 5000 و CODESYS و TwinCAT

ما يتغير وما يبقى عندما تنقل برنامج ST بين Siemens و Rockwell و CODESYS و Beckhoff و Schneider و Omron و Mitsubishi.

الدرس 30 من 3414 دقائقIEC 61131-3

المعيار واحد والتطبيق مختلف

المعيار IEC 61131-3 يصف اللغة، لكن كل شركة تبني مترجمها ومكتبتها ومحرّرها. النتيجة: الفكرة تنتقل بنسبة 90%، والتفاصيل تحتاج مراجعة. السطر التالي يعمل في كل بيئة بلا تعديل:

Pump := (Start OR Pump) AND NOT Stop AND Level < 95.0;

والسطر الذي يستدعي مؤقتاً هو الذي يتغير.

Siemens SCL في TIA Portal

تسمي سيمنس اللغة SCL (Structured Control Language). أهم ثلاث نقاط:

  • علامة # قبل المتغيرات المحلية: #Pump، #T1. والمتغيرات العامة بين علامتي تنصيص: "MotorDB".Running.
  • المؤقت اسمه TON_TIME في مكتبة IEC، ويحتاج نسخة في بيانات الكتلة.
  • الكتل المحسّنة (Optimized Block Access): الذاكرة لا عنوان ثابت لها، لذلك لا تصل إلى المتغير بـ %MD20 بل بالاسم. هذا أسرع وأأمن، لكنه يمنع الوصول المطلق.
// Siemens SCL
#T1(IN := #Level >= 60.0, PT := T#3s);
#Soaked := #T1.Q;
IF #Soaked THEN
    #Valve := TRUE;
END_IF;

لاحظ الفاصلة المنقوطة بعد END_IF: سيمنس تطلبها.

Rockwell Studio 5000 ST

أقرب إلى ST القياسية في الشكل، أبعدها في المؤقتات:

  • لا توجد #. الأسماء مباشرة، والعلامة . للوصول إلى عضو داخل UDT.
  • المؤقت ليس كتلة وظيفية بالمعنى القياسي بل تعليمة على بنية TIMER فيها PRE و ACC و DN و EN و TT. الزمن بالميلي ثانية كعدد صحيح، لا بنوع TIME.
  • المنطق المتكرر يُغلّف في AOI (Add-On Instruction)، وهو مكافئ Rockwell للـ FUNCTION_BLOCK.
(* Rockwell Studio 5000 *)
T1.PRE := 3000;
TONR(T1);
Soaked := T1.DN;
IF Soaked THEN
    Valve := 1;
END_IF;

هنا T1.ACC تقابل T1.ET، و T1.DN تقابل T1.Q. انتبه أن TONR في Rockwell تصفّر العدّاد عند انقطاع التمكين، وهو سلوك TON القياسي، لكن أسماء الأعضاء مختلفة فلا ينقل الكود حرفياً.

CODESYS

المرجع العملي للغة. مكتبة Standard فيها TON و TOF و TP و CTU بأسمائها وأعضائها كما في المعيار، والنوع TIME بصيغة T#500ms. إذا كتبت كوداً يعمل في CODESYS بلا حيل خاصة، فهو أقرب ما يكون إلى الكود المحمول.

Beckhoff TwinCAT 3

مبني على CODESYS، فكل ما سبق ينطبق، مع إضافتين:

  • بيئة Visual Studio، وبناء المشروع يشبه بناء البرمجيات.
  • دعم كامل لـ OOP: METHOD و PROPERTY و INTERFACE و EXTENDS. وهذا يجعل كود TwinCAT المتقدم غير قابل للنقل إلى متحكم لا يدعم الإصدار الثالث من المعيار.

Schneider EcoStruxure / Machine Expert

Machine Expert مبني على CODESYS أيضاً، فسلوكه قياسي. أما Control Expert القديم (Unity Pro) فله مكتبته الخاصة وتسمية %M و %MW للعناوين المباشرة، ويحتاج انتباهاً أكبر.

Omron Sysmac Studio

يتبع المعيار بدقة لافتة ويستخدم أسماء مثل TON. أهم فرق عملي: بادئة المتغيرات العامة بـ % للعناوين، وتصنيف المتغيرات إلى Internal و Input و Output و External في جدول واحد، مع خيار Retain لكل متغير.

Mitsubishi GX Works3

يدعم ST لكن ثقافة المنصة قائمة على Ladder و FBD. الأسماء الأصلية للأجهزة (D100، M0، T5) تظهر كثيراً في الكود القديم، والمؤقت التقليدي جهاز T بقاعدة زمن 100 ms. استخدام TON القياسي ممكن لكنه ليس العرف السائد في المشاريع القديمة.

جدول ما يتغير

العنصر

Siemens SCL

Rockwell ST

CODESYS / TwinCAT

Omron Sysmac

بادئة المتغير المحلي

#Name

بلا بادئة

بلا بادئة

بلا بادئة

المؤقت

TON_TIME

TONR على بنية TIMER

TON

TON

الزمن المضبوط

PT : TIME

PRE : DINT بالميلي ثانية

PT : TIME

PT : TIME

الزمن المنقضي

.ET

.ACC

.ET

.ET

مخرج المؤقت

.Q

.DN

.Q

.Q

الاحتفاظ بالقيمة

Retain في الكتلة، أو DB غير محسّن

Tag غير متقلب في وحدة الذاكرة

VAR RETAIN

خيار Retain للمتغير

تغليف المنطق

FUNCTION_BLOCK

AOI

FUNCTION_BLOCK

FUNCTION_BLOCK

الفاصلة بعد END_IF

مطلوبة

مطلوبة

اختيارية

اختيارية

وما يبقى كما هو

  • الإسناد := والمقارنة =.
  • IF / ELSIF / ELSE / END_IF و CASE OF و FOR و WHILE.
  • المعاملات AND OR XOR NOT MOD والحساب والمقارنات.
  • دورة المسح، وأن آخر إسناد يغلب، وأن المؤقت يجب أن يُستدعى كل دورة.
  • آلة الحالات، والفلتر، والتحجيم، ومنطق الإنذار: كلها تنتقل بتغيير أسماء فقط.

قاعدة عملية للنقل

اكتب المنطق بأسماء من عندك، واعزل كل ما يلمس مكتبة الشركة في كتل صغيرة. عند النقل تعيد كتابة الكتل الصغيرة فقط، ويبقى 90% من البرنامج كما هو. هذه الفكرة نفسها هي التي تجعل مختبر هذا الموقع مفيداً: تتعلم الجوهر هنا، وتُصدّر إلى SCL عندما تحتاج.

جرّبه في المختبر

المختبر يعمل في متصفحك: محرر ST، وعملية افتراضية تناسب الدرس، ونفس البرنامج كمخطط Ladder حي، وجدول مراقبة، وتصدير إلى Siemens SCL.

ماذا تجرّب

  1. شغّل البرنامج واضغط START: السير يعمل والصناديق الطويلة تُرفض.
  2. انظر إلى لوحة التصدير: نفس البرنامج بصيغة Siemens SCL، المتغيرات بـ # والمؤقت TON_TIME.
  3. غيّر T#600ms إلى T#100ms: النبضة أقصر من أن تدفع الصندوق، فيزيد ERR. هذا الضبط يختلف من آلة لأخرى، لا من شركة لأخرى.

يبحث الناس عن هذا الدرس بـ

SCL ام structured textالفرق بين SCL و STstructured text في Studio 5000TwinCAT structured textCODESYS بالعربيبرمجة ST في TIA Portalنقل برنامج PLC بين الشركات

محتوى الدورة

  1. 01ما هي لغة ST؟ ومتى تستخدمها بدل Ladder
  2. 02كيف يشتغل الـ PLC: دورة المسح وصورة المداخل والمخارج
  3. 03هيكل البرنامج: POU و PROGRAM و FUNCTION و FUNCTION_BLOCK
  4. 04أول برنامج: تشغيل مضخة بالإمساك الذاتي (Seal-in)
  5. 05أنواع البيانات: BOOL و INT و REAL و TIME وغيرها
  6. 06التصريح عن المتغيرات: VAR و VAR_INPUT و RETAIN
  7. 07القيم الحرفية والثوابت: 16#FF و 2#1010 و T#5s
  8. 08التحويل بين الأنواع وتحجيم إشارة 4-20 مللي أمبير
  9. 09الإسناد والحساب في ST: ‎:=‎ وأولوية العمليات
  10. 10المنطق البولياني والمقارنات وعمليات البتات
  11. 11الدوال القياسية: ABS و SQRT و MIN و MAX و LIMIT و SEL و MUX
  12. 12الشرط IF و ELSIF و ELSE: القواعد ومتى تتجنبه
  13. 13التعليمة CASE وأول آلة حالات
  14. 14حلقة FOR والحارس Watchdog
  15. 15WHILE و REPEAT و EXIT و CONTINUE و RETURN
  16. 16كشف الحافة: R_TRIG و F_TRIG ومشكلة «نفّذ في كل مسح»
  17. 17المؤقتات: TON و TOF و TP
  18. 18العدّادات: CTU و CTD و CTUD
  19. 19القلّابات: SR و RS ومن يغلب عند التعارض
  20. 20اكتب دالتك: FUNCTION وقيمة الإرجاع
  21. 21اكتب كتلتك الوظيفية: FUNCTION_BLOCK لمحرك
  22. 22المصفوفات: ARRAY وفلتر المتوسط المتحرك
  23. 23الأنواع المركّبة: STRUCT والتعدادات
  24. 24المراجع والمؤشرات: REF_TO و POINTER TO ولماذا تتجنبها
  25. 25آلة الحالات: تسلسل دفعة كامل بـ CASE لا يعلق أبداً
  26. 26إدارة الإنذارات على أصول ISA-18.2: تأخير، نطاق ميت، إقرار، وأول خروج
  27. 27معالجة الإشارة التناظرية: من العدّات إلى وحدة هندسية، و NE43، وفلتر EMA
  28. 28التحكم المغلق في ST: من التشغيل والإيقاف بفجوة إلى PID عملي
  29. 29تشغيل المحركات والصمامات: سماحيات، تشابيك، رجع تشغيل، وزمن حركة
  30. 30نفس الكود عند كل شركة: SCL و Studio 5000 و CODESYS و TwinCAT
  31. 31الاختبار وتصحيح الأخطاء: جدول المراقبة والفرض والمحاكاة
  32. 32دليل أسلوب ST: التسمية والتعليقات والثوابت وإدارة النسخ
  33. 33المشروع الختامي: محطة خزان كاملة بآلة حالات وإنذار وعدّ دفعات
  34. 3420 سؤال مقابلة في ST وبرمجة PLC بإجابات قصيرة