منطق السلم
كانت منطق السلم في الأصل طريقة مكتوبة لتوثيق تصميم وبناء رفوف المرحلات المستخدمة في التصنيع والتحكم في العمليات . [ 1 ] يُمثَّل كل جهاز في رف المرحلات برمز على مخطط السلم، مع توضيح الوصلات بين هذه الأجهزة. بالإضافة إلى ذلك، تُوضَّح على مخطط السلم العناصر الخارجية الأخرى لرف المرحلات، مثل المضخات والسخانات وما إلى ذلك.
تطورت لغة منطق السلم لتصبح لغة برمجة تمثل البرنامج بمخطط بياني يعتمد على مخططات دوائر أجهزة منطق المرحلات . تُستخدم لغة منطق السلم لتطوير برامج وحدات التحكم المنطقية القابلة للبرمجة (PLCs) المستخدمة في تطبيقات التحكم الصناعية. ويستند الاسم إلى ملاحظة أن البرامج المكتوبة بهذه اللغة تُشبه السلالم، حيث تتكون من خطين رأسيين وسلسلة من الدرجات الأفقية بينهما. كانت مخططات السلم في السابق الطريقة الوحيدة لتسجيل برامج وحدات التحكم القابلة للبرمجة، ولكن اليوم، توجد أشكال أخرى موحدة في معيار IEC 61131-3 . على سبيل المثال، بدلاً من الشكل البياني لمنطق السلم، توجد لغة تُسمى النص المُهيكل ، وهي مشابهة للغة C، ضمن معيار IEC 61131-3 .
ملخص

تُستخدم لغة السلم المنطقية على نطاق واسع لبرمجة وحدات التحكم المنطقية القابلة للبرمجة (PLCs) ، حيثما يلزم التحكم التسلسلي في عملية أو عملية تصنيع. تُعدّ لغة السلم المنطقية مفيدة لأنظمة التحكم البسيطة ولكنها بالغة الأهمية، أو لإعادة تصميم دوائر المرحلات السلكية القديمة . ومع تطور وحدات التحكم المنطقية القابلة للبرمجة، أصبحت تُستخدم أيضًا في أنظمة الأتمتة بالغة التعقيد. غالبًا ما يُستخدم برنامج لغة السلم المنطقية بالتزامن مع برنامج واجهة التفاعل بين الإنسان والآلة (HMI) الذي يعمل على محطة عمل حاسوبية.
كان الدافع وراء تمثيل منطق التحكم التسلسلي في مخطط السلم هو تمكين مهندسي وفنيي المصانع من تطوير البرمجيات دون الحاجة إلى تدريب إضافي على لغة برمجة مثل فورتران أو أي لغة حاسوبية عامة أخرى. وقد تم تبسيط التطوير والصيانة نظرًا لتشابهها مع أنظمة أجهزة الترحيل المألوفة. [ 2 ] قد تتضمن تطبيقات منطق السلم خصائص، مثل التنفيذ التسلسلي ودعم ميزات تدفق التحكم، مما يجعل التشبيه بالأجهزة غير دقيق إلى حد ما.
يمكن اعتبار منطق السلم لغةً قائمة على القواعد، لا لغةً إجرائية . يُمثل كل "درجة" في السلم قاعدةً. عند تطبيقه باستخدام المرحلات وغيرها من الأجهزة الكهروميكانيكية، تُنفذ القواعد المختلفة في آنٍ واحد وفورًا. أما عند تطبيقه في وحدة تحكم منطقية قابلة للبرمجة، فتُنفذ القواعد عادةً بالتسلسل بواسطة البرمجيات في حلقة مستمرة، أو "مسح". ومن خلال تنفيذ الحلقة بسرعة كافية، عادةً عدة مرات في الثانية، يتحقق تأثير التنفيذ المتزامن والفوري. يتطلب الاستخدام الأمثل لوحدات التحكم القابلة للبرمجة فهمًا لقيود ترتيب تنفيذ درجات السلم.
بناء الجملة والأمثلة
يمكن النظر إلى اللغة نفسها على أنها مجموعة من الروابط بين المدققات المنطقية (الموصلات) والمشغلات (الملفات). عندما يوجد مسار من الجانب الأيسر للحلقة إلى المخرج عبر موصلات مُفعّلة (صحيحة أو "مغلقة")، تُعتبر الحلقة صحيحة، ويتم ضبط بت تخزين ملف المخرج على 1 (صحيح). إذا لم يكن هناك مثل هذا المسار، يكون المخرج خاطئًا (0)، ويُعتبر "الملف"، قياسًا على المرحلات الكهروميكانيكية، "غير مُفعّل". وقد وضع كلود شانون هذا التشبيه بين القضايا المنطقية وحالة موصل المرحل .
تعتمد دوائر المنطق السلمي على نقاط تلامس لفتح أو قطع الدوائر الكهربائية للتحكم في الملفات. كل ملف أو نقطة تلامس تُقابل حالة بت واحد في ذاكرة وحدة التحكم القابلة للبرمجة. على عكس المرحلات الكهروميكانيكية، يمكن لبرنامج المنطق السلمي الرجوع إلى حالة بت واحد عددًا غير محدود من المرات، وهو ما يُعادل مرحلًا بعدد لا نهائي من نقاط التلامس.
قد تشير ما يسمى بـ "الوصلات" إلى المدخلات المادية ("الصلبة") لوحدة التحكم القابلة للبرمجة من الأجهزة المادية مثل أزرار الضغط ومفاتيح الحد عبر وحدة إدخال مدمجة أو خارجية، أو قد تمثل حالة بتات التخزين الداخلية التي يمكن إنشاؤها في مكان آخر في البرنامج.
تحتوي كل درجة من درجات لغة السلم عادةً على ملف واحد في أقصى اليمين. وقد يسمح بعض المصنّعين بوجود أكثر من ملف إخراج واحد على الدرجة الواحدة.
- إدخال رقمي
- جهات الاتصال (المدققون)
—[ ]—نقطة تلامس مفتوحة عادةً، وتُغلق عند تنشيط الملف المقابل لها أو عند تنشيط المدخل الذي يتحكم بها. (نقطة تلامس مفتوحة في حالة السكون).—[\]—نقطة تلامس مغلقة عادةً ("غير مغلقة")، وتكون مغلقة عندما لا يتم تنشيط الملف المقابل لها أو المدخل الذي يتحكم بها. (نقطة تلامس مغلقة في حالة السكون).
- مخرج الدرجة
- المحركات (الملفات)
—( )—ملف غير نشط عادةً، يتم تنشيطه عند إغلاق أحد أطرافه. (غير نشط في حالة السكون).—(\)—ملف نشط عادةً ("غير نشط")، يتم تنشيطه عندما تكون حلقته مفتوحة. (نشط في حالة السكون).
قد يمثل "الملف" (مخرج السطر) مخرجًا ماديًا يقوم بتشغيل جهاز متصل بوحدة التحكم القابلة للبرمجة، أو قد يمثل بت تخزين داخلي لاستخدامه في مكان آخر في البرنامج.
يمكن تذكر هذه المعلومات بتخيل المربعات (الموصلات) كزر ضغط، والمشغلات (الملفات) كمخرج مصباح. يشير وجود خط مائل داخل المربعات أو المشغلات إلى الحالة الافتراضية للجهاز في وضع السكون.
منطقي و
-----[ ]-------------[ ]------------------( ) مفتاح التشغيل 1 مفتاح التشغيل 2 محرك الباب |
يُحقق ما سبق الوظيفة التالية: محرك الباب = مفتاح التشغيل 1 ومفتاح التشغيل 2
تُظهر هذه الدائرة مفتاحين رئيسيين قد يستخدمهما حراس الأمن لتشغيل محرك كهربائي على باب خزنة البنك. عند إغلاق نقاط التلامس المفتوحة عادةً لكلا المفتاحين، يتدفق التيار الكهربائي إلى المحرك الذي يفتح الباب.
استخدام "و" المنطقي مع "ليس"
------[ ]--------------[\]----------------( ) إغلاق الباب، عائق، محرك الباب |
ما سبق يحقق الوظيفة التالية: محرك الباب = إغلاق الباب وليس وجود عائق.
تُظهر هذه الدائرة زر ضغط لإغلاق الباب، وجهاز استشعار للعوائق يستشعر وجود أي عائق أمام إغلاق الباب. عند إغلاق نقطة تلامس زر الضغط المفتوح عادةً، وإغلاق جهاز استشعار العوائق المغلق عادةً (أي عدم وجود عائق)، يتدفق التيار الكهربائي إلى المحرك الذي يُغلق الباب.
أو المنطقي
--+-------[ ]------------+-----------------( ) | فتح خارجي | فتح | | +-------[ ]------------+ فتح داخلي |
ما سبق يحقق الوظيفة التالية: فتح القفل = فتح القفل الداخلي أو فتح القفل الخارجي
توضح هذه الدائرة الكهربائية العاملين اللذين يُمكنهما تشغيل أقفال الأبواب الكهربائية في السيارة . جهاز الاستقبال عن بُعد موصول بالكهرباء باستمرار. أما ملف فتح القفل فيحصل على الطاقة عند إغلاق أي من مجموعتي التلامس.
إيقاف/تشغيل صناعي
في منطق بدء/إيقاف التشغيل الصناعي الشائع، لدينا زر "بدء" لتشغيل موصل المحرك، وزر "إيقاف" لإيقاف تشغيل الموصل.
عند الضغط على زر "بدء"، يصبح الإدخال صحيحًا عبر نقطة التلامس المغلقة عادةً (NC) لزر "إيقاف". وعندما يصبح إدخال "تشغيل" صحيحًا، تُغلق نقطة التلامس المفتوحة عادةً (NO) الخاصة بـ "تشغيل" والمتصلة بالتوازي مع نقطة التلامس المفتوحة عادةً (NO) لـ "بدء"، مما يحافظ على منطق الإدخال صحيحًا (مثبتًا أو مغلقًا). بعد تثبيت الدائرة، يمكن الضغط على زر "إيقاف"، مما يؤدي إلى فتح نقطة التلامس المغلقة عادةً (NC) الخاصة به، وبالتالي يصبح الإدخال خاطئًا. ثم تُفتح نقطة التلامس المفتوحة عادةً (NO) الخاصة بـ "تشغيل"، ويعود منطق الدائرة إلى حالته غير النشطة.
--+----[ ]--+----[\]----( ) | بدء | إيقاف التشغيل | | +----[ ]--+ يجري -------[ ]--------------( ) محرك التشغيل |
ما سبق يحقق الوظيفة التالية: تشغيل = (بدء أو تشغيل) و ( ليس إيقاف)
يُعدّ هذا التكوين للقفل أسلوبًا شائعًا في منطق السلم، ويُشار إليه أيضًا بمنطق الإغلاق . يكمن مفتاح فهم القفل في إدراك أن مفتاح "البدء" هو مفتاح لحظي (بمجرد أن يحرر المستخدم الزر، يُفتح المفتاح مرة أخرى). بمجرد أن يعمل الملف اللولبي "التشغيل"، فإنه يُغلق نقطة التلامس "المفتوحة" الخاصة به، مما يُثبّت الملف اللولبي في وضع التشغيل. وبالتالي، لا يكون لفتح مفتاح "البدء" أي تأثير.
- ملاحظة: في هذا المثال، يمثل "Run" حالة بت في وحدة التحكم المنطقية القابلة للبرمجة (PLC) ، بينما يمثل "Motor" الإخراج الفعلي إلى المرحل في العالم الحقيقي الذي يغلق دائرة المحرك في العالم الحقيقي .
لأسباب تتعلق بالسلامة، قد يتم توصيل زر التوقف الطارئ ("ES") بشكل مباشر على التوالي مع مفتاح "البدء"، ويجب أن يعكس منطق المرحل هذا الأمر.
--[\]----[\]----+--[ ]--+---------( ) إيقاف | بدء | تشغيل ES | | +--[ ]--+ يجري -------[ ]--------------( ) محرك التشغيل ما سبق يحقق الوظيفة التالية: تشغيل = ( ليس ES) و ( ليس إيقاف) و (بدء أو تشغيل) |
لاحظ أنه لضمان أقصى درجات الأمان، يتم توصيل نقاط التلامس المادية لأزرار الإيقاف والإيقاف الطارئ بحيث يتلقى جهاز التحكم المنطقي القابل للبرمجة (PLC) إشارة عالية (حقيقية) عندما لا تكون الأزرار مضغوطة، وبالتالي يجب عكس منطق جهاز التحكم المنطقي القابل للبرمجة (PLC) في هذه الحالة. في هذه الحالة، سيبدو مخطط السلم كما يلي: [ 3 ]
--[ ]----[ ]----+--[ ]--+---------( ) إيقاف | بدء | تشغيل ES | | +--[ ]--+ يجري -------[ ]--------------( ) محرك التشغيل ما سبق يحقق الوظيفة التالية: تشغيل = ES و إيقاف و (بدء أو تشغيل) |
المنطق المعقد
هذا مثال على شكل درجتين في برنامج منطقي سلمي. في التطبيقات العملية، قد يصل عدد الدرجات إلى المئات أو الآلاف.
عادةً، تُقرأ دوائر المنطق السلمي المعقدة من اليسار إلى اليمين ومن الأعلى إلى الأسفل. عند تقييم كل خط (أو درجة)، قد تُغذّي ملفات الخرج الخاصة بكل درجة المرحلة التالية من السلم كمدخل. في النظام المعقد، يوجد العديد من "الدرجات" على السلم، والتي تُرقّم حسب ترتيب التقييم.
يمثل هذا نظامًا أكثر تعقيدًا بعض الشيء للمستوى الثاني. بعد تقييم السطر الأول، يتم تغذية ملف الإخراج "A/C" إلى المستوى الثاني، والذي يتم تقييمه بدوره، ويمكن تغذية ملف الإخراج "Cooling" إلى جهاز الإخراج "Compressor" أو إلى المستوى الثالث في سلم الدوائر. يتيح هذا النظام تحليل وتقييم تصميمات منطقية بالغة التعقيد.
وظائف إضافية
يمكن إضافة وظائف إضافية إلى تطبيق منطق السلم من قِبل مُصنِّع وحدة التحكم المنطقية القابلة للبرمجة (PLC) كوحدة خاصة. عند تشغيل هذه الوحدة، تُنفِّذ التعليمات البرمجية على وسائط مُحدَّدة مسبقًا، والتي يمكن عرضها داخلها.
+-------+ -----[ ]--------------------+ A +---- فتح القفل عن بعد +-------+ عداد عن بعد +-------+ -----[ ]--------------------+ B +---- فتح داخلي +-------+ طاولة داخلية +--------+ --------------------+ أ + ب +----------- |الج ج | +--------+ أفعى |
في هذا المثال، سيقوم النظام بحساب عدد مرات الضغط على زري فتح القفل الداخلي والبعيد. سيتم تخزين هذه المعلومات في موقعي الذاكرة A وB. أما موقع الذاكرة C فسيحتوي على إجمالي عدد مرات فتح الباب إلكترونيًا.
تحتوي وحدات التحكم المنطقية القابلة للبرمجة (PLCs) على أنواع عديدة من الوحدات الخاصة، تشمل المؤقتات، وعوامل التشغيل والمقارنات الحسابية، والبحث في الجداول، ومعالجة النصوص، والتحكم التناسبي التكاملي التفاضلي (PID) ، ووظائف التصفية. ويمكن لوحدات PLCs الأكثر تطورًا العمل على مجموعة من مواقع الذاكرة الداخلية وتنفيذ عملية ما على نطاق من العناوين، على سبيل المثال، لمحاكاة وحدة تحكم أسطوانية تسلسلية فعلية أو آلة ذات حالات محدودة . وفي بعض الحالات، يمكن للمستخدمين تعريف وحداتهم الخاصة، والتي تُعدّ بمثابة إجراءات فرعية أو وحدات ماكرو. وقد أتاحت المكتبة الواسعة من الوحدات الخاصة، إلى جانب سرعة التنفيذ العالية، استخدام وحدات PLCs لتنفيذ أنظمة أتمتة بالغة التعقيد.
القيود واللغات اللاحقة
يُعدّ ترميز السلم الأنسب لمشاكل التحكم التي تتطلب متغيرات ثنائية فقط ، حيث يكون التداخل والتسلسل الثنائي هما المشكلة الأساسية للتحكم. وكما هو الحال في جميع لغات البرمجة المتوازية ، قد يكون الترتيب التسلسلي للعمليات غير مُحدد أو غامضًا؛ وقد تحدث حالات تضارب منطقية تُؤدي إلى نتائج غير متوقعة. ولتجنب هذه المشكلة، يُفضّل تقسيم الخطوات المعقدة إلى عدة خطوات أبسط. يتجنب بعض المصنّعين هذه المشكلة بتحديد ترتيب تنفيذ كل خطوة بشكل صريح وكامل، ومع ذلك، قد يواجه المبرمجون صعوبة في فهم الدلالات المعقدة الناتجة بشكل كامل.
يصعب التعبير عن الكميات التناظرية والعمليات الحسابية باستخدام منطق السلم، ولكل مصنّع طرق مختلفة لتوسيع نطاق الترميز لهذه المسائل. عادةً ما يكون الدعم للمصفوفات والحلقات محدودًا، مما يؤدي غالبًا إلى تكرار التعليمات البرمجية للتعبير عن حالات تتطلب في لغات أخرى استخدام متغيرات مفهرسة.
مع ازدياد قوة المعالجات الدقيقة ، باتت رموز مثل مخططات الوظائف التسلسلية ومخططات كتل الوظائف قادرة على استبدال منطق السلم في بعض التطبيقات المحدودة. وقد تُبرمج بعض وحدات التحكم المنطقية القابلة للبرمجة (PLCs) الحديثة كليًا أو جزئيًا بلغة برمجة تُشبه لغة BASIC أو C أو غيرها من لغات البرمجة ذات الروابط المناسبة لبيئة تطبيقات الوقت الحقيقي.
شعبية
في عام 2019، صنّفت مجلة IEEE Spectrum منطق السلم في المرتبة الخمسين من أصل 52 لغة برمجة شائعة. [ 4 ]
انظر أيضاً
مراجع
- ↑ "أساسيات منطق السلم" .
يستخدم منطق السلم مفاتيح أو نقاط تلامس مرحلات لتنفيذ التعبيرات المنطقية. في الماضي، كان منطق السلم ممكنًا باستخدام المرحلات المنفصلة، وكان يُطلق عليه أحيانًا منطق المرحلات.
- ↑ إدوارد دبليو. كامين، الضوابط الصناعية والتصنيع ، (دار النشر الأكاديمية، 1999) ISBN 0123948509الفصل الثامن: مخططات منطق السلم وتطبيقات وحدات التحكم المنطقية القابلة للبرمجة (PLC)
- ↑ بيتر (2015-07-08). "لماذا يجب عليك استخدام الوضع المغلق عادةً لأزرار الإيقاف" . أكاديمية PLC . تم الاسترجاع في 2026-03-11 .
- ↑ "التفاعلية: أفضل لغات البرمجة" . مجلة IEEE Spectrum . مؤرشفة من الأصل بتاريخ 18-09-2019.
للمزيد من القراءة
- ووكر، مارك جون (2012-09-08). وحدة التحكم المنطقية القابلة للبرمجة: تاريخها، نشأتها، وتطبيقاتها (ملف PDF) (أطروحة دكتوراه). قسم الاتصالات والأنظمة، كلية الرياضيات والحوسبة والتكنولوجيا: الجامعة المفتوحة . مؤرشفة (ملف PDF) من الأصل بتاريخ 2018-06-20 . تاريخ الاسترجاع: 2018-06-20 .
روابط خارجية
- "الفصل السادس: منطق السلم" بقلم توني ر. كوبالدت
- أتمتة التصميم الإلكتروني
- وحدات التحكم المنطقية القابلة للبرمجة
- لغات البرمجة المرئية
