من فضلك ادعم الموقع على جوجل بالضغط على علامة g+1

الاثنين، 25 سبتمبر 2017

شرح انواع blocks فى Siemens PLC

الكاتب elec engineer   بتاريخ   12:35 ص   SIEMENS

الدرس التانى من كورس شرح Siemens PLC نوع S7-300


ها نشرح انواع blocks المختلفة و استخدام كل نوع و عمل calling لبلوك داخل بلوك اخر و شرح scan cycle
كنا وصانا فى الدرس الاول لعمل hardware configuration و ده الرابط : شرح Hardware Configurationبعد عمل save and compile نقفل صفحة hardware configuration و افتح الخانة blocks كما بالشكل


ها يظهر عندى بلوك واحد فقط و هو OB1
لو ضغطت right click فى اى مكان فاضى و اختار insert new object ها يضهر blocks الاتية

شرح كل block بالتفصيل :

Organization Block : اختصارا OB
و ديه البلوكات التنظيمية و ديه المسئولة عن تنظيم العمل بين CPU و user program المبرمج عن طريقى
من امثلة blocks ديه OB 100 : و ده بيتم تفعيل ذه عند عمل power reset ( اى عمل Warm Restart )
OB 1 : و ده نوعه cyclic block و ده بيتم تنفيذه كل cycle
و غيرها كتير من OB اللى مش كلها موجوده فى اى CPU و كل ما كان CPU بيدعم OB s اكتر , بيكون اغلى 


Function : اختصارا FC
و ده عباره عن برنامج انا ببرمجه بلغات البرمجة المختلفة مثل LADDER diagram او Statement List او Function Block Diagram
بس ده عادة لا يكون البرنامج بالكامل و بيكون جزء فقط من البرنامج
مع العلم ان اى اوامر مكتوبة داخل FC لا يتم تنفيذها الا عند عمل CALL لها داخل اى من OB بمعنى تانى CPU لا يقرا اى حاجة الا OB و من خلالها انا بوجه CPU لقراءة FC عن طريق عمل Call لل FC داخل اى OB


Data Block : اختصارا DB
و ده ببساطه مكان لتخذين القيم و البيانات لاستخدامها داخل OB او FC او FB او اى مكان اخر فى البرنامج
البيانات ديه مثلا وقت او سرعة او قيمة عددية و غيرها
و البلوك ده نوعين رئيسيين :
1- shared data block : و ده بيتم استخدامه داخل اى مكان فى البرنامج بدون اى قيود
2- Instance data block : و ده بيكون مخصص لخدمة function block او System function block (ها يتم شرحه لاحقا ) 

بحيث بيتم تخصيص instance data block لكل function block و اخر لكل system function block


Function Block  : اختصارا FB
و ده مشابه تماما ل function و الفرق ان function block لازم يحتاج instance data block عشان يشتغل بمعنى لو انا عملت insert ل FB 2 مثلا يبقى لازم احددله instance data block , ليكن DB 5 و ما اقدرش استخدم DB 5 ده فى اى مكان اخر مره ثانيه


Data Type  : اختصارا UDT
او يطلق عليها user data type
و ده بستخدمه لو عايز اعمل مجموعة من البيانات الجاهزه و اللى بيتم استخدامها بشكل مجمع داخل اى مكان فى البرنامج مثل OB او FC او FB 


Variable Table : اختصارا VAT
و ده مجرد جدول بضع فيه المتغيرهات بتاعتى اعملها monitor بغرض الصيانة مثلا انى اعرف قيمة المتغير ده كام دلوقتى و كمان اقدر اغير فى قيمته يدويا


طيب ازاى اعمل insert لاى block من البلوكات ديه
مثلا انى اعمل insert ل function
بضغط على function تظهر القائمة التالية

بعد الضغط على OK تظهر الصفحة التالية


و ديه صفحة كتابة الكود فى اى لغة مثلا STL ( اختصار Statement List ) او LAD ( اختصار Ladder Diagram )
او FBD ( اختصار Function Block Diagram )


و بتتكون من ثلاث اجزاء اساسية :
declaration table : و ده يستخدم فى تحديد متغيرات الدخل و الخرج و Temps ( ها يتم شرحها لاحقا بالتفصيل )
code section : و ده مكان كتابة كود البرمجة
Detail Window : و ده فيه معلومات مفصلة عن اى متغير ( اللى ممكن يكون دخا او خرج او قيمة ) و كمان بيوضح لو فيه error فى البرمجة 


كيفية عمل call لاى بلوك داخل OB1

داخل FC 1 ها اكتب اى برنامج مثلا تشغيل موتور START و STOP مع وجود نقطة من overload
بفرض ان Q 0.0 هى الخرج اللى هايشغل الموتور
I 0.0 مفتاح تشغيل الموتور و نوعه normally open push button
I 0.1 مفتاح ايقاف الموتور و نوعه normally close push button
I 0.2 نقطه مغلقة من الاوفرلود

هنا كتبت network title
و ها اضغط كليك يمين و اختار insert network comment عشان ادخل كومنت خاص network ديه
و ده بعد ما كتبت كومنت و عملت save


ملحوظات على كتابة برنامج motor start stop
I 0.1 و I 0.2 الخاصين بمفتاح الايقاف و نقطة overload تم اختيارهم داخل البرنامج نقاط مفتوحة
لان PLC لا يفهم ان النقطه ديه تمثل ايه فى الحقيقة
اى ان فى حالة inputs : نقطة مفتوحة تعنى نقطة مشابهة للدخل على موديول الدخل digital input module
نقطة مغلقة تعنى نقطة مخالفة للدخل على موديول الدخل digital input module


طيب بعد ما برمجت FC حتى لو عملت download على CPU الموتور مش ها يشتغل و CPU مش ها يقرا FC 1 اللى انا برمجتها ديه اساسا
لازم اعمل call للبلوك FC 1 داخل OB 1 عشان البرنامج لما يقرا OB 1 و يلاقى امر CALL FC1 ها يروح يقرا FC 1 و بعد كدا يرجع يكمل OB1 تانى و هكذا
ازاى بقى اعمل call
اروح افتح OB 1
اول مره افتح OB 1 بتظهر القائمة ديه 

اختار ok و افتح OB 1
تابع الصورة

كدا انا عملت call
و كدا FC 1 ها تشتغل

ملحوظة : انا ممكن اعمل call لبلوك FC 2 مثلا داخل FC 1 و ارجع اعمل call لبلوك FB 5 داخل FC 2 و هكذا
لو انا عملت كدا
CPU ها يقرا OB 1 و يجد امر call FC 1
يقوم يروح يقرا FC1 و يجد امر call FC 2
يروح CPU يقرا FC 2 و يجد امر call FB 5
يروح ينفذ البلوك FB 5 و بعد ما يخلصه و لا يجد داخله امر call
كدا يرجع البرنامج يكمل تنفيذ OB 1 و يخلصه
و بعد كدا يبدا OB 1 من تانى و يلاقى امر call FC 1 تانى فيروح ينفذه و هكذا 


طيب هل ممكن اكتب كل البرنامج بتاعى فى OB 1 فقط ؟
الاجابة : نعم و هنا ها يكون اسمه Linear ptogram
و فى حالة استخدام اكثر من FC و FB و عمل اكثر من عملية call بينهم ده اسمه structured program


لاحظ ان عملية call اكثر من مره من block الى block اخر الى block ثالث و هكذا , ديه تسمى عملية Nesting
و كلما زادت عمليات nesting زاد scan cycle يعنى البرنامج ها يبقى اتقل و ابطأ
فى حالة PLC من نوع S7-300 : اقصى عدد Nesting مسموح بيه 8 عملية Nesting
ماعدا CPU 318 :  اقصى عدد Nesting مسموح بيه 16 عملية Nesting


الدرس القادم :
شرح Scan Cycle بالتفصل 
انتهى الشرح و اى سؤال اتفضل اسأل فى التعليقات اسفل الموضوع

هذا الموضوع حصرى لموقع electrical engineering نرجو عدم النقل

معلومات كاتب الموضوع

مهندس كهرباء مصرى متخصص فى مجال التحكم الالى
شاهد جميع موضوعاتي: مهندس مصرى

navright

متابعى الموقع

Back to top ↑
كن على تواصل واتصال معنا

Flag Counter

احذر.. الموقع محمى بحقوق الملكية الفكرية

© 2013 موقع الهندسة الكهربية . WP Mythemeshop Converted by Bloggertheme9
Blogger templates . Proudly Powered by Blogger .