سنتعرف في هذا المقال على إحدى لغات برمجة المتحكمات المنطقية القابلة للبرمجة (PLC)، وهي Sequential Function Chart، يرمز لها اختصاراً SFC والتي تعني لغة مخطط الوظائف التسلسلي.
يتضمن معيار IEC 61131-3 لبرمجة المتحكمات المنطقية القابلة للبرمجة PLC IEC 61131-3 خمسُ لغاتِ برمجةٍ:
- لغة المنطق السُّلَّميّ – Ladder Diagram
- مخطط الكتل الوظيفية – Function Block Diagram
- لغة قائمة التعليمات – Instruction List
- لغة النصوص المهيكلة – Structured Text
- لغة مخطط الوظائف التسلسلي – Sequential Function Chart
تختلف لغة البرمجة SFC عن اللغات الأربع الأخرى حيث تُستخدم هذه اللغة لبرمجة سلسة من العمليات مباشرة في ضمن المتحكم PLC.
ما معنى “سلسلة العمليات” و التسلسل في لغة البرمجة SFC؟
هي عملية تنفَّذ خطوةً بخطوة لأداء المهمة، مثل عملية طلي جسم ما والتي تنقسم للخطوات التالية:
- وضع القطعة المراد طلاؤها في الآلة.
- توزيع الطبقة الأولى من الطلاء.
- التجفيف.
- توزيع وآخر خطوة هي الطبقة الأخيرة من الطلاء.
والآن لنلقي نظرة حول كيفية تنفيذ هذه الخطوات باستخدام لغة البرمجة SFC التي تُسهّل برمجة المتحكم مباشرةًً، إذ يتكوّن برنامج SFC من رموز رسومية يمثّل كل منها خطوة واحدة (أي الحالة).
الخطوة الابتدائية Init:
يُستخدَم أول رمز رسومي للتهيئة ويدعى الخطوة الابتدائية Init وهو عبارة عن مربع مزدوج، ويكون اسم الخطوة داخل المربع إذ تُعرّف كل خطوة باسم مشابه لـ Step_1 (باختلاف الرقم) ويجب أن يكون الاسم مميّزاً في البرنامج الذي نعمل عليه، وعند تشغيل المتحكم PLC سيبدأ تنفيذ البرنامج من الخطوة الابتدائية بانتظار الانتقال للخطوة التالية.
خطوة (أو حالة):
يعبّر عن الخطوة بمربع مكوّن من خط واحدعادي، والخطوة الموضَّحة أدناه تسمّى Step_10.
الانتقال:
تتّصل كل خطوة بالخطوة التي تليها عن طريق خط اتصال يقطعه خط أفقي صغير، ويدعى هذا الرمز بخط الانتقال وأيضاً يجب أن يرافقه شرط للانتقال للخطوة التالية، فإذا كان B1 متغيراً بوليانيّاً تكون حالته إما TRUE أو FALSE، أيّ عند تغير حالة B1 من FALSE إلى TRUE ينتقل البرنامج من Step_10 إلى Step_20.
وقد يكون للانتقال شرط منطقي أيضاً، فعند إضافة المعامل المنطقي AND على المتغيّرين B1 وB2، ينبغي أن تكون حالة كل من المتغيّرين TRUE للانتقال من Step_10 إلى Step_20.
ويوجد انتقال آخر شائع الاستخدام هو انتقال التأخير، وهو جزء من مربع الخطوة في لغة SFC أيّ سهل الاستخدام، إذ نكتب ضمن المكان المخصص للانتقال اسم الخطوة متبوعاً بنقطة وبعدها نكتب t متبوعة بعلامة (أكبر من < ) ثم ندخل قيمة زمن التأخير كالتالي:
ندخل العبارة #t للإشارة إلى أن التنسيق زمنيّ، وأخيراً ندخل زمن التأخير وفي مثالنا هذا أدخلنا الرقم 2 أي ثانيتين.
الإجراء والمعايير
يمكن إضافة إجراء إلى الخطوة إذا لزم الأمر إذ يصل بينهما خط، ويوجد داخل مربع الإجراء معيار N يشير إلى ما يلزم تخزينه ضمن المتغيّر VarName (variable name) وهو متغيّر بوليانيّ، ويعني المعيار N أن المتغير VarName بحالة TRUE فقط عندما تكون الخطوة بالوضع النشط لذلك لا حاجة لتعيين VarName على الحالة FALSE بعد انتهاء تنفيذ إجراء الخطوة Step_10، ولنلقي الآن نظرة على معيارين آخرين مهمّين للتعرف عليهما:
المعيار S: يفيد بتخزين المتغير VarName بحالة TRUE في الذاكرة دون أن تتغير قيمته بعد انتهاء تنفيذ الخطوة الحالية.
المعيار R: يستخدم لتعديل القيمة المسندة إلى المتغير VarName.
إضافةً إلى ما سبق، يوجد العديد من المعايير الأخرى التي ستذكر في مقالة لاحقة.
مثال بلغة SFC
تنفيذ مصباح وامِض بفاصل زمني قدره 2 ثانية بين الومضة والأخرى، ولبرمجة المشروع بلغة SFC نبدأ بالخطوة الابتدائية ثم سنحتاج إلى إضافة خطوتين، إذ تتضمن السلسلة خطوة واحدة لتشغيل المصباح، وخطوة أخرى لإيقاف تشغيل المصباح.
لا بد من وجود انتقال دائم بين كل خطوة، أيّ أنّ الشرط محقق دائماً فنكتب فقط TRUE كما هو موضّح بين الخطوة الابتدائية Init والخطوة Step1 في الشكل التالي.
سينتقل البرنامج إلى الخطوة Step1 مباشرةً بعد بدء تنفيذه من الخطوة الابتدائية، ويجب أيضاً تكرار البرنامج لتحقيق الوميض المستمر، لذا نرسم خطاً من الخطوة Step2 إلى ما قبل الخطوة Step1، أما ليومض المصباح كل ثانيتين فسنحتاج إلى ضبط تأخير زمني قدره ثانيتين بين الخطوتين السابقتين، وبما أن زمن التشغيل وزمن الإطفاء متماثلان فنستخدم زمن التأخير نفسه.
ثم نضيف إجراءً يستخدم المعيار N للتحكم في المصباح لأنه يجب تشغيل المصباح في الخطوة Step1 فقط، وهكذا ينطفئ المصباح تلقائياً بعد انتهاء الخطوة، ولا يلزم اتخاذ أي إجراء للخطوة Step2 لأن المصباح ينطفئ عند بدئها.
اسم المتغير أو اسم الوسم TAG هو Lamp وهو مخصص لوحدة الخرج حيث يوصل المصباح الفعلي بسلك، ويمكن تنفيذ فكرة المصباح الوامِض باستخدام المعيار S لتشغيل المصباح والمعيار R لإيقاف تشغيله.
الملخّص
تعلّمنا في هذا المقال الرموز الرسوميّة الأساسيّة في لغة SFC وتعرّفنا إلى:
- الخطوة الابتدائية Init
- الخطوة (أو الحالة)
- الانتقال
- الإجراء
- المعايير
المصدر: هنا.
ترجمة: ميس حمود، مراجعة: ايليا سليمان، تدقيق لغوي: بولا ابراهيم، تصميم: علي العلي، تحرير: نور شريفة.