مقدمة:
وفي هذا المقال سنقوم بجولةٍ شاملة لجميع لغات البرمجة الخاصّة بمتحكّمات PLC.
أشهر خمس ِ لغاتٍ برمجيّة للـ PLC هي:
- لغة Ladder Diagram (LD).
- لغة Sequential Function Charts (SFC).
- لغة Function Block Diagram (FBD).
- لغة Structured Text (ST).
- لغة Instruction List (IL).
لنتعرّف معاً هذه اللُّغات، وسنبدأ بلُغة Ladder Diagram والّتي هي نوعٌ من لغات البرمجة الرّسوميّة لمتحكّم PLC.
لغة (Ladder Diagram (LD:
صُمِّمَت لغة Ladder Diagram بشكلٍ أساسيٍّ اعتماداً على relay-logic المُستخدَم بالأجهزة المادّية كما في المفاتيح (switch) و الرّيليات الميكانيكيّة المُستخدمة للتّحكُّم بالعمليّات، استبدلَت لغة LD هذه التجهيزات بالأوامر المنطقيّة باستنثاء بعض التجهيزات الّتي تتطلّب إشارةً كهربائيّةً لتعمل.
تملك هذه اللّغة الرسومية مجموعةً من الخطوط الأفقيّة و خطّين عموديّين يمثّلان الوصلات الكهربائيّة في مُخطّطات relay-logic، وبالإمكان برمجة الدّخل لنحصل على الخرج المطلوب سواءً كانت منطقيّةً أم فيزيائيّة.
فوائد لغة Ladder Diagram:
إنّ المزايا الأساسيّة لهذه اللّغة هي:
- وجود الخطوط الأفقيّة يسمح بتتبُّعٍ سهلٍ ومُنظَّم.
- تتيح أيضاً توثيق التّعليقات بسهولة.
- تدعم التّعديل (التّحرير) عبر الإنترنت بشكلٍ ناجحٍ جداً.
مساوئ لغة Ladder Diagram:
إنّ السّيّئة الرّئيسيّة للغة LD عدم وجود بعض التعليمات وهذا يزيد صعوبة البرمجة مثل الحركة أو التّجميع.
– نتحدّث فيما يلي عن اللّغة الثانية من لغات برمجة المتحكّم المنطقيّ القابل للبرمجة (PLC) وهي لغة Sequential Function Charts والّتي تستخدم نمط البرمجة الرّسوميّ أيضاً.
لغة (Sequential Function Charts (SFC:
تُشبه هذه اللّغة المُخطّطات التّدفقيّة (Flowcharts)، ولذلك إن كان لديك أيّةُ خِبرةٍ سابقة مع المخطّطات التّدفقيّة ستكون لغة SFC مألوفةً لديك؛ ففي هذه اللّغة نستخدم الخطوات ((Steps والانتقالات (Transition) حتى نصل إلى النّتيجة النّهائيّة.
تعمل الخطوات بمثابة وظيفةٍ رئيسةٍ في البرنامج، حيث تضمّ هذه الخطوات الأحداث(actions) التي ستُتّمِ نتيجة البرمجة، و يمكن أن يعتمد هذا القرار على الزّمن، وعلى طورٍ معيّنٍ من العمليّة، أوعلى الحالة الفيزيائيّة للتّجهيزات، بينما تكون الانتقالات عبارةً عن التعليمات المستخدمة للانتقال من خطوةٍ لأُخرى عبر ضبط الحالات إمّا true أو false.
يوضّح الخطوات والانتقالات في لغة SFC.
يمكن للغة SFC أخذ عدّة مساراتٍ فرعيّةٍ من المسارات الرئيسة وذلك على عكس المُخطّطات التدفقيّة التّقليديّة، كما يمكنك استخدام تلك الفروع لبدْء خطواتٍ عديدة في وقتٍ واحد.
مزايا لغة SFC:
- يمكن تقسيم العمليّات إلى خطواتٍ رئيسة ممّا يجعل استكشاف الأخطاء وتصحيحها أسرع وأسهل.
يوجد وصولٌ مباشرٌ للبرمجة و معرفة مكان العطل في المعدّات.
- إمكانيّة تسريع تصميم وكتابة المنطق وذلك وفقاً للقدرة على استخدام التّنفيذ المُتكرّر لحالات فرديّة من المنطق.
مساوِئ لغة SFC:
حتّى مع وجود العديد من المزايا لهذه اللّغة إلّا أنّها لا تناسب دائماً جميع التّطبيقات.
– والآن سنتحدّث عن ثالث لغةٍ لبرمجة المتحكّمات المنطقيّة القابلة للبرمجة.
لغة (Function Block Diagram (FBD:
هي أيضاً أحد أنواع اللغات الرسومية، حيث تحدّد هذه اللّغة تابعاً بين المداخل والمخارج المتّصلة مع بعضها بشكل بلوكات BLOCKS تصل بينها خطوط .
طُوِّرَت هذه اللّغة بشكلٍ أساسيٍّ لإنشاء نظامٍ يمكّنُك من القيام بالعديد من المهام الشّائعة القابلة للتكرار، مثل العدّادات وأجهزة ضبط الوقت وحلقات PID وغيرها، حيث تقوم ببرمجة البلوكات على صفحةٍ ثمّ تعمل المتحكّمات على فحص الصفحات في ترتيبٍ رقمي أو يتمّ تحديدها عن طريق التوصيلات والتي تكون قد تمّت برمجتها بين الكتل (البلوكات).
مساوِئ لغة FBD:
يمكن أن يكون الكود البرمجيّ غير منظّمٍ باستخدام هذه اللّغة ، وذلك لأن المبرمج قد يضع البلوكات في أيّ مكانٍ في الصفحة ممّا يجعل إمكانيّة إصلاح الأخطاء عمليّةً صعبةً بعض الشيء.
مزايا لغة FBD:
- تعمل بشكلٍ جيّدٍ مع متحكّمات الحركة.
- تكون الطريقة البصريّة أسهل بالنّسبة لبعض المستخدمين.
- تكمن الفائدة الكبرى لهذه اللّغة بالقدرة على وضع عدّة سطورٍ برمجيّةٍ ضمن بلوك واحد أو ضمن عدّة بلوكات وظيفية.
يظهر القدرة على وضع عدّة سطورٍ برمجيّةٍ ضمن بلوك أو أكثر.
لغة (Structured Text (ST:
تعتبر لغةً برمجةٍ نصيّة، وهي لغة برمجةٍ عالية المستوى مثل Basic، Pascal، و”C”، وتوصف بأنّها أداةٌ فعالةٌ جداً حيث لها القدرة على تنفيذ المهام المعقّدة باستخدام خوارزميات وتوابع رياضيّة مع المهام المتكرّرة، كما يستخدم الكود البرمجي عبارات تكون منفصلةً عن بعضها بواسطة فواصل منقوطة ثم بعد ذلك يمكن تغيير كلٍّ من المداخل والمخارج أو المتغيّرات من خلال هذه العبارات، ويجب كتابة كلّ سطرٍ من الكود البرمجيّ مع استخدام التوابع مثل FOR, WHILE, IF, ELSE, ELSEIF AND CASE.
إذا كان لديك تجربةً سابقةً مع اللّغات العالية المستوى مثل C فسيكون من السهل عليك التعامل مع لغة ST أكثر من اللغات الآنفة الذكر والخاصّة لبرمجة PLC.
فوائد لغة ST:
- تعتبر منظّمةً جداً وجيّدةً لحساب العمليّات الرياضيّة الكبيرة.
- تسمح باستخدام التعليمات غير المتاحة من قبل بعض اللّغات السابقة كلغة LD.
مساوئ لغة ST:
- قد يكون بناء العبارة البرمجيّة صعباً.
- يعتبر تصحيحه صعب.
- يصعب تحريره (تعديله) عبر الانترنت.
لغة (Instruction List (IL:
هي اللّغة الخامسة والأخيرة من لغات برمجة متحكّم PLC، وهي نوعٌ من أنواع اللغات النصيّة، حيث تشبه هذه اللّغة لغة التجميع وعند استخدامها في برمجة PLC علينا استخدام الأكواد المختزلة مثل AND، OR، و(LD (loadوتتضمّن تعليمات في كلّ سطرٍ مع أيّ تعليقاتٍ ترغب بإضافتها في نهاية كلّ سطر.
مزاياها:
تعتبر لغةً قيّمة للتطبيقات التي تحتاج أكواداً برمجيّةً مضغوطةً ووقتاً حرجاً (زمن حقيقي).
مساوِئها:
- ضعف في قدرات الهيكلة والأمر GOTO واحدٌ منها.
- يوجد أيضاً العديد من الأخطاء التي يصعب التعامل معها مقارنةً مع اللّغات السابقة.
بعد قراءة العديد من الآراء ومن خلال التجربة تبيّن أنّ لغة Ladder Diagram هي الأكثر استخداماً والسّبب في ذلك هو أنها تتبع التقدّم التكنولوجيّ بشكلٍ طبيعيٍّ من منطق الريليه الفيزيائي إلى المنطق الرقميّ ؛ مما سمح للمهندسين والاحترافييّن بمتابعة واستكشاف الأخطاء وإصلاحها وإجراء هذا الانتقال، وباختصار تُحدَّد اللّغة التي عليك التعامل معها بالاعتماد على العمل والتطبيق الذي تقوم به بما يخصّ متحكّمات PLC.