الدرس التانى من كورس شرح 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 نقطه مغلقة من الاوفرلود