18الكتل الوظيفية القياسية
العدّادات: CTU و CTD و CTUD
العدّادات القياسية وأطرافها CU و CD و R و LD و PV و Q و CV، وعدّ الدفعات، ولماذا يجب أن يسبقها R_TRIG دائماً.
ثلاثة عدّادات
الكتلة | الاتجاه | الأطراف المميزة |
|---|---|---|
| تصاعدي | |
| تنازلي | |
| الاتجاهان | |
والأطراف المشتركة:
الطرف | النوع | المعنى |
|---|---|---|
| INT | القيمة المضبوطة (Preset Value) |
| INT | القيمة الحالية (Current Value) |
| BOOL | وصل العدّاد إلى الهدف |
| BOOL | تصفير إلى صفر (للتصاعدي) |
| BOOL | تحميل |
CTU · التصاعدي
CV يبدأ من صفر ويزيد واحداً مع كل حافة صاعدة على CU. Q يصبح TRUE عندما CV >= PV. طرف R يرجعه إلى صفر، وله الأولوية على العدّ.
Batches(CU := PartEdge.Q, R := Reset, PV := 12);
Full := Batches.Q;
Count := Batches.CV;CTD · التنازلي
LD يحمّل PV في CV، ثم كل حافة على CD تنقص واحداً. Q يصبح TRUE عندما CV <= 0. هذا هو نمط «اعبئ 20 عبوة ثم توقف»: تحمّل 20 وتعد للخلف، وتقرأ CV فتعرف كم بقي.
CTUD · الاتجاهان
للمخزون: قطعة تدخل فتزيد، وقطعة تخرج فتنقص. ملاحظة: مختبر هذا الموقع يدعم CTU و CTD فقط ولا يدعم CTUD، لذلك برنامج المختبر أدناه يستخدم CTU و CTD معاً، وهو ما تفعله عملياً عند غياب CTUD في منصة ما.
القاعدة الذهبية: حافة قبل العدّاد
العدّاد القياسي يعدّ على الحافة داخلياً، لكن الإشارة التي تصل إليه غالباً ليست نظيفة. لو ربطت CU := LSH مباشرة ومستوى الخزان يهتز حول 90%، فسيعدّ كل اهتزاز دفعة. ضع R_TRIG على الإشارة المنطقية التي تعني «دفعة انتهت» ولا على حالة حسّاس خام:
FullEdge(CLK := LSH);
Batches(CU := FullEdge.Q, R := Stop, PV := 5);وإن كان الحسّاس يهتز، مرّر الإشارة على TON قصير أولاً ثم على الحافة.
أخطاء متكررة
- قراءة Q بدل CV عندما تريد الرقم على الشاشة.
Qسؤال نعم/لا، وCVهو العدد. - تصفير دائم:
R := TRUEثابتة تجعل العدّاد صفراً للأبد. - نسيان الحد الأعلى:
CVمن نوعINT، أي حتى 32767. عدّاد إنتاج يومي قد يتجاوزه، فاستخدمDINTفي عدّادك اليدوي أو صفّر العدّاد عند بداية كل وردية. - توقع أن Q يصفّر العدّاد. لا يصفّره، بل يبقى
CVيزيد فوقPV. التصفير مسؤوليتك.
جرّبه في المختبر
المختبر يعمل في متصفحك: محرر ST، وعملية افتراضية تناسب الدرس، ونفس البرنامج كمخطط Ladder حي، وجدول مراقبة، وتصدير إلى Siemens SCL.
ماذا تجرّب
- شغّل البرنامج واضغط START: Left.CV يبدأ من 8.
- راقب Total.CV يزيد مع كل صندوق، و Left.CV ينقص مع الصناديق القصيرة فقط.
- عندما يصل Left.CV إلى 0 يتوقف السير ويضيء المصباح. اضغط START لطلبية جديدة.
- غيّر PV := 8 إلى 3 وأعد التحميل.
يبحث الناس عن هذا الدرس بـ
CTU في PLCCTD عداد تنازليCTUDcounter structured textعداد الدفعات PLCCU R PV CVالعدادات في IEC 61131-3
محتوى الدورة
- 01ما هي لغة ST؟ ومتى تستخدمها بدل Ladder
- 02كيف يشتغل الـ PLC: دورة المسح وصورة المداخل والمخارج
- 03هيكل البرنامج: POU و PROGRAM و FUNCTION و FUNCTION_BLOCK
- 04أول برنامج: تشغيل مضخة بالإمساك الذاتي (Seal-in)
- 05أنواع البيانات: BOOL و INT و REAL و TIME وغيرها
- 06التصريح عن المتغيرات: VAR و VAR_INPUT و RETAIN
- 07القيم الحرفية والثوابت: 16#FF و 2#1010 و T#5s
- 08التحويل بين الأنواع وتحجيم إشارة 4-20 مللي أمبير
- 09الإسناد والحساب في ST: := وأولوية العمليات
- 10المنطق البولياني والمقارنات وعمليات البتات
- 11الدوال القياسية: ABS و SQRT و MIN و MAX و LIMIT و SEL و MUX
- 12الشرط IF و ELSIF و ELSE: القواعد ومتى تتجنبه
- 13التعليمة CASE وأول آلة حالات
- 14حلقة FOR والحارس Watchdog
- 15WHILE و REPEAT و EXIT و CONTINUE و RETURN
- 16كشف الحافة: R_TRIG و F_TRIG ومشكلة «نفّذ في كل مسح»
- 17المؤقتات: TON و TOF و TP
- 18العدّادات: CTU و CTD و CTUD
- 19القلّابات: SR و RS ومن يغلب عند التعارض
- 20اكتب دالتك: FUNCTION وقيمة الإرجاع
- 21اكتب كتلتك الوظيفية: FUNCTION_BLOCK لمحرك
- 22المصفوفات: ARRAY وفلتر المتوسط المتحرك
- 23الأنواع المركّبة: STRUCT والتعدادات
- 24المراجع والمؤشرات: REF_TO و POINTER TO ولماذا تتجنبها
- 25آلة الحالات: تسلسل دفعة كامل بـ CASE لا يعلق أبداً
- 26إدارة الإنذارات على أصول ISA-18.2: تأخير، نطاق ميت، إقرار، وأول خروج
- 27معالجة الإشارة التناظرية: من العدّات إلى وحدة هندسية، و NE43، وفلتر EMA
- 28التحكم المغلق في ST: من التشغيل والإيقاف بفجوة إلى PID عملي
- 29تشغيل المحركات والصمامات: سماحيات، تشابيك، رجع تشغيل، وزمن حركة
- 30نفس الكود عند كل شركة: SCL و Studio 5000 و CODESYS و TwinCAT
- 31الاختبار وتصحيح الأخطاء: جدول المراقبة والفرض والمحاكاة
- 32دليل أسلوب ST: التسمية والتعليقات والثوابت وإدارة النسخ
- 33المشروع الختامي: محطة خزان كاملة بآلة حالات وإنذار وعدّ دفعات
- 3420 سؤال مقابلة في ST وبرمجة PLC بإجابات قصيرة