مقدمة:

يوجد خمسُ لغاتٍ برمجيّة خاصّةً بالمتحكّمات المنطقيّة القابلة للبرمجة (PLC) ، وجميعها تنتمي إلى المعيار (3-61131) الذي وضعته اللّجنة الكهروتقنيّة الدّوليةInternational Electrotechnical Commission (IEC) ، ويُحدّد هذا المعيار القواعدَ الأساسيّة لمتحكّمات PLC ولغات البرمجة الخاصّة بها.
وفي هذا المقال سنقوم بجولةٍ شاملة لجميع لغات البرمجة الخاصّة بمتحكّمات PLC.

أشهر خمس ِ لغاتٍ برمجيّة للـ PLC هي:

  1. لغة Ladder Diagram (LD).
  2. لغة Sequential Function Charts (SFC).
  3. لغة Function Block Diagram (FBD).
  4. لغة Structured Text (ST).
  5. لغة Instruction List (IL).
مخطّطٌ يُظهِر لغات البرمجة الخاصّة بمتحكّم PLC.
مخطّطٌ يُظهِر لغات البرمجة الخاصّة بمتحكّم PLC.

لنتعرّف معاً هذه اللُّغات، وسنبدأ بلُغة Ladder Diagram والّتي هي نوعٌ من لغات البرمجة الرّسوميّة لمتحكّم PLC.

لغة (Ladder Diagram (LD:

صُمِّمَت لغة Ladder Diagram بشكلٍ أساسيٍّ اعتماداً على relay-logic المُستخدَم بالأجهزة المادّية كما في المفاتيح (switch) و الرّيليات الميكانيكيّة المُستخدمة للتّحكُّم بالعمليّات، استبدلَت لغة LD هذه التجهيزات بالأوامر المنطقيّة باستنثاء بعض التجهيزات الّتي تتطلّب إشارةً كهربائيّةً لتعمل.

 يبيّن طريقة برمجة لوحة Relay-Logic.
يبيّن طريقة برمجة لوحة Relay-Logic.

تملك هذه اللّغة الرسومية مجموعةً من الخطوط الأفقيّة و خطّين عموديّين  يمثّلان الوصلات الكهربائيّة في مُخطّطات relay-logic، وبالإمكان برمجة الدّخل لنحصل على الخرج المطلوب سواءً كانت منطقيّةً أم فيزيائيّة.

 

يُظهر الخطوط الأُفقيّة والعموديّة المُمثّلة للتّوصيلات الكهربائيّة relay-logic.
يُظهر الخطوط الأُفقيّة والعموديّة المُمثّلة للتّوصيلات الكهربائيّة relay-logic.

 فوائد لغة Ladder Diagram:

إنّ المزايا الأساسيّة لهذه اللّغة هي:

  • وجود الخطوط الأفقيّة يسمح بتتبُّعٍ سهلٍ ومُنظَّم.
  • تتيح أيضاً توثيق التّعليقات بسهولة.
  • تدعم التّعديل (التّحرير) عبر الإنترنت بشكلٍ ناجحٍ جداً.

مساوئ لغة Ladder Diagram:

إنّ السّيّئة الرّئيسيّة للغة LD عدم وجود بعض التعليمات وهذا يزيد صعوبة البرمجة مثل الحركة أو التّجميع.

 يبيّن بعض التّعليمات غير المُتاحة من قبل لغة Ladder Diagram.
يبيّن بعض التّعليمات غير المُتاحة من قبل لغة Ladder Diagram.

– نتحدّث فيما يلي عن اللّغة الثانية من لغات برمجة المتحكّم المنطقيّ القابل للبرمجة (PLC) وهي لغة Sequential Function Charts والّتي تستخدم نمط البرمجة الرّسوميّ أيضاً.

لغة (Sequential Function Charts (SFC:

تُشبه هذه اللّغة المُخطّطات التّدفقيّة (Flowcharts)، ولذلك إن كان لديك أيّةُ خِبرةٍ سابقة مع المخطّطات التّدفقيّة ستكون لغة SFC مألوفةً لديك؛ ففي هذه اللّغة نستخدم الخطوات ((Steps والانتقالات (Transition) حتى نصل إلى النّتيجة النّهائيّة.

 يعرض لغة SFC والتشابه مع المخطّطات التدفقيّة.
يعرض لغة SFC والتشابه مع المخطّطات التدفقيّة.

تعمل الخطوات بمثابة وظيفةٍ رئيسةٍ في البرنامج، حيث تضمّ هذه الخطوات الأحداث(actions) التي ستُتّمِ نتيجة البرمجة، و يمكن أن يعتمد هذا القرار على الزّمن، وعلى طورٍ معيّنٍ من العمليّة، أوعلى الحالة الفيزيائيّة للتّجهيزات، بينما تكون الانتقالات عبارةً عن التعليمات المستخدمة للانتقال من خطوةٍ لأُخرى عبر ضبط الحالات إمّا true أو false.

 يعرض لغة SFC والتشابه مع المخطّطات التدفقيّة.
يعرض لغة SFC والتشابه مع المخطّطات التدفقيّة.

يوضّح الخطوات والانتقالات في لغة SFC.

يمكن للغة SFC أخذ عدّة مساراتٍ فرعيّةٍ من المسارات الرئيسة وذلك على عكس المُخطّطات التدفقيّة التّقليديّة، كما يمكنك استخدام تلك الفروع لبدْء خطواتٍ عديدة في وقتٍ واحد.

 يُظهر إمكانية استخدام الفروع في لغة SFC.
يُظهر إمكانية استخدام الفروع في لغة SFC.

مزايا لغة SFC:

  • يمكن تقسيم العمليّات إلى خطواتٍ رئيسة ممّا يجعل استكشاف الأخطاء وتصحيحها أسرع وأسهل.
يُظهر تقسيم العمليّات إلى خطوات رئيسة.
يُظهر تقسيم العمليّات إلى خطوات رئيسة.

يوجد وصولٌ مباشرٌ للبرمجة و معرفة مكان العطل في المعدّات.

 يُظهر عطلاً في أحد المعدّات وإمكانيّة الوصول المُباشر إليه.
يُظهر عطلاً في أحد المعدّات وإمكانيّة الوصول المُباشر إليه.
  • إمكانيّة تسريع تصميم وكتابة المنطق وذلك وفقاً للقدرة على استخدام التّنفيذ المُتكرّر لحالات فرديّة من المنطق.
 يُظهِر إمكانيّة الاستخدام المُتكرّر لحالات المنطق.
يُظهِر إمكانيّة الاستخدام المُتكرّر لحالات المنطق.

مساوِئ لغة SFC:

حتّى مع وجود العديد من المزايا لهذه اللّغة إلّا أنّها لا تناسب دائماً جميع التّطبيقات.

– والآن سنتحدّث عن ثالث لغةٍ لبرمجة المتحكّمات المنطقيّة القابلة للبرمجة.

لغة (Function Block Diagram (FBD:

هي أيضاً أحد أنواع اللغات الرسومية، حيث تحدّد هذه اللّغة تابعاً بين المداخل والمخارج المتّصلة مع بعضها بشكل بلوكات BLOCKS تصل بينها خطوط .

 يُظهر طريقة عمل لغة FBD.
يُظهر طريقة عمل لغة FBD.

 

طُوِّرَت هذه اللّغة بشكلٍ أساسيٍّ لإنشاء نظامٍ يمكّنُك من القيام بالعديد من المهام الشّائعة القابلة للتكرار، مثل العدّادات وأجهزة ضبط الوقت وحلقات PID وغيرها، حيث تقوم ببرمجة البلوكات على صفحةٍ ثمّ تعمل المتحكّمات على فحص الصفحات في ترتيبٍ رقمي أو يتمّ تحديدها عن طريق التوصيلات والتي تكون قد تمّت برمجتها بين الكتل (البلوكات).

نماذج من بلوكات العمل القابلة للتكرار.
نماذج من بلوكات العمل القابلة للتكرار.

مساوِئ لغة FBD:

يمكن أن يكون الكود البرمجيّ غير منظّمٍ باستخدام هذه اللّغة ، وذلك لأن المبرمج قد يضع البلوكات في أيّ مكانٍ في الصفحة ممّا يجعل إمكانيّة إصلاح الأخطاء عمليّةً صعبةً بعض الشيء.

مزايا لغة FBD:

  • تعمل بشكلٍ جيّدٍ مع متحكّمات الحركة.
  • تكون الطريقة البصريّة أسهل بالنّسبة لبعض المستخدمين.
  • تكمن الفائدة الكبرى لهذه اللّغة بالقدرة على وضع عدّة سطورٍ برمجيّةٍ ضمن بلوك واحد أو ضمن عدّة بلوكات وظيفية.
نماذج من بلوكات العمل القابلة للتكرار.
نماذج من بلوكات العمل القابلة للتكرار.

يظهر القدرة على وضع عدّة سطورٍ برمجيّةٍ ضمن بلوك أو أكثر.

لغة (Structured Text (ST:

تعتبر لغةً برمجةٍ نصيّة، وهي لغة برمجةٍ عالية المستوى مثل Basic، Pascal، و”C”، وتوصف بأنّها أداةٌ فعالةٌ جداً حيث لها القدرة على تنفيذ المهام المعقّدة باستخدام خوارزميات وتوابع رياضيّة مع المهام المتكرّرة، كما يستخدم الكود البرمجي عبارات تكون منفصلةً عن بعضها بواسطة فواصل منقوطة ثم بعد ذلك يمكن تغيير كلٍّ من المداخل والمخارج أو المتغيّرات من خلال هذه العبارات، ويجب كتابة كلّ سطرٍ من الكود البرمجيّ مع استخدام التوابع مثل FOR, WHILE, IF, ELSE, ELSEIF AND CASE.

 

فكرة عن لغة ST.
فكرة عن لغة ST.

إذا كان لديك تجربةً سابقةً مع اللّغات العالية المستوى مثل C فسيكون من السهل عليك التعامل مع لغة ST أكثر من اللغات الآنفة الذكر والخاصّة لبرمجة PLC.

 مقارنة بين لغتي C وST.
مقارنة بين لغتي C وST.

 فوائد لغة ST:

  • تعتبر منظّمةً جداً وجيّدةً لحساب العمليّات الرياضيّة الكبيرة.
  • تسمح باستخدام التعليمات غير المتاحة من قبل بعض اللّغات السابقة كلغة LD.

مساوئ لغة ST:

  • قد يكون بناء العبارة البرمجيّة صعباً.
  • يعتبر تصحيحه صعب.
  • يصعب تحريره (تعديله) عبر الانترنت.
يظهر طريقة كتابة بعض التوابع التكراريّة والشرطيّة.
يظهر طريقة كتابة بعض التوابع التكراريّة والشرطيّة.

لغة (Instruction List (IL:

هي اللّغة الخامسة والأخيرة من لغات برمجة متحكّم PLC، وهي نوعٌ من أنواع اللغات النصيّة، حيث تشبه هذه اللّغة لغة التجميع وعند استخدامها في برمجة PLC علينا استخدام الأكواد المختزلة مثل AND، OR، و(LD (loadوتتضمّن تعليمات في كلّ سطرٍ مع أيّ تعليقاتٍ ترغب بإضافتها في نهاية كلّ سطر.

مزاياها:

تعتبر لغةً قيّمة للتطبيقات التي تحتاج أكواداً برمجيّةً مضغوطةً ووقتاً حرجاً (زمن حقيقي).

يظهر بعض التطبيقات مع لغة IL.
يظهر بعض التطبيقات مع لغة IL.

مساوِئها:

  • ضعف في قدرات الهيكلة والأمر GOTO واحدٌ منها.
  • يوجد أيضاً العديد من الأخطاء التي يصعب التعامل معها مقارنةً مع اللّغات السابقة.
 بعض الأخطاء عند استخدام IL.
بعض الأخطاء عند استخدام IL.

بعد قراءة العديد من الآراء ومن خلال التجربة تبيّن أنّ لغة Ladder Diagram هي الأكثر استخداماً والسّبب في ذلك هو أنها تتبع التقدّم التكنولوجيّ بشكلٍ طبيعيٍّ من منطق الريليه الفيزيائي إلى المنطق الرقميّ ؛ مما سمح للمهندسين والاحترافييّن بمتابعة واستكشاف الأخطاء وإصلاحها وإجراء هذا الانتقال، وباختصار تُحدَّد اللّغة التي عليك التعامل معها بالاعتماد على العمل والتطبيق الذي تقوم به بما يخصّ متحكّمات PLC.


المصدر:هنا
ترجمة: سارة خضر, مراجعة: علي العلي , تدقيق لغوي: مي همدر , تصميم: علي العلي, تحرير: علي العلي.