توجه : تمامی مطالب زیر برگرفته از فصل دهم کتاب کارور PLC ، نوشته مهندس محمد شهری فریمانی ، میباشد .
نگاهی به انواع OB ها :
تا اینجا با OB1 آشنا شدهاید ، ولی OBهای دیگری نیز وجود دارد که برای کارهای پیشرفتهتر برنامهنویسی بهکار میروند .
به طور کلی میتوان OBها را به سه دسته اصلی تقسیم کرد :
1- OB اجرای سیکلی برنامه : مانند OB1
2- OBهای راهاندازی : مانند OB100 ، OB101 ، OB102
3- OBهای وقفه : مانند OB 30 تا OB38 که Cyclic Interrupt هستند و به صورت پریودیک و سیکلی در برنامه وقفه ایجاد می کنند ، که مبتنی بر Event میباشند ، وقفههای مبتنی بر Error نیز وجود دارد که برای حفاظت از سیستم کنترلی ، در زمان خطای سخت افزاری یا نرم افزاری PLC را به حالت وقفه خواهند برد تا خطا و Error برطرف گردد .
OBهای وقفه دیگر نیز وجود دارد که مبتنی بر Event هستند مانند: OB10 تا OB17 که Time of day Interrupt هستند ، OB20 تا OB23 که Time Delay Interrupt هستند ، OB40 تا OB47 که Hardware Interrupt میباشند و ...
توجه : میخواهیم برنامهای در محیط نرمافزار Simatic Manager بنویسیم که علاوه بر ایجاد فانکشن بلاک ( FB ) ، از OB های وقفه نیز در اجرای برنامه استفاده کنیم ، برنامه زیر را به طور کامل در فیلم آموزشی توضیح دادهایم .
ایجاد متغیرهای ورودی ، خروجی و ... در قسمت Declaration از پنجره فانکشن بلاک FB1 :
ایجاد بلاک FB1 ( فانکشن بلاک Function Block ) و نوشتن برنامه در FB1 :
ایجاد بلاک OB33 ( بلاک وقفه Cyclic Interrupt ) و نوشتن برنامه در OB33 :
ایجاد بلاک OB1 ( اجرای سیکلی برنامه ) و فراخوانی بلاک FB1 و نوشتن برنامه در OB1 :
دانلود بلاکهای FB1 ، OB33 و OB1 در Simulation :
فیلم آموزشی ایجاد فانکشن بلاک ( FB ) در محیط نرمافزار Simatic Manager و نحوه نوشتن برنامه در FB1 و فراخوانی آن در OB1 و همچنین نحوه ایجاد بلاک وقفه OB33 ، دانلود برنامه روی Simulation و بررسی عملکرد برنامه :
توجه : مطالب زیر برگرفته از فصل نهم کتاب کارور PLC ، نوشته مهندس محمد شهری فریمانی ، میباشد .
نکته : در مقایسهکنندهها ( Comparators ) حرف I برای اعداد 16 بیتی ، حرف D برای اعداد 32 بیتی و حرف R برای اعداد حقیقی ( Real ) استفاده می شود که در اینجا فقط مقایسهکنندههای 16 بیتی را نشان دادهایم .
مقایسهکنندهها ( Comparators ) :
شمارندهها ( Counters ) :
مثال : میخواهیم برنامهای بنویسیم که از عدد صفر شروع به شمارش کند ، و زمانی که شمارش به عدد 10 رسید ، مجدد از عدد صفر شروع به شمارش کند ، مثلاً فرض بگیرید قطعات از روی نوار نقاله از مقابل یک سنسور بدون تماس خازنی ( BERO ) در حال عبور است و با عبور هر قطعه ، سنسور که به ورودی CU شمارنده متصل شده ، یکی به مقدار شمارش اضافه می کند و 10 قطعه درون کارتن بستهبندی قرار می گیرد و برای کارتن بعدی ، مجدد باید از عدد صفر شمارش را آغاز کند .
بنابراین برنامه را به دو Network تقسیم می کنیم در Network1 از یک شمارنده صعودی و در Network2 از یک مقایسهگر مساوی استفاده می کنیم .
فیلم آموزشی کوتاه برنامه نویسی به زبان FBD و آموزش نحوه استفاده از Comparator و Counter در برنامه :
توجه : مطالب زیر برگرفته از فصل نهم کتاب کارور PLC نوشته مهندس محمد شهری فریمانی ، میباشد .
دستورات توابع صحیح ( Integer Function ) :
در این دستورات حرف I برای اعداد 16 بیتی ، حرف D برای اعداد 32 بیتی و حرف R برای اعداد حقیقی ( Real ) استفاده میگردد .
توجــــه : مطالب زیر بخشی از فصل هشتم کتاب کارور PLC ، نوشته مهندس محمد شهری فریمانی ، میباشد .
آکومولاتور ( انبــــاره ) :
بعضی دستورات پرکاربرد در S7 :
فیلم آموزشی برنامه نویسی Simatic Manager و استفاده از دستورات P و N :
مثال کاربردی : برنامه جک پنوماتیک به زبان FBD ;
Edit Symbols :
مثـــال :
توجــــه : مدار فرمان و قدرت راه اندازی ، 3 الکتروموتور سه فازه به صورت یکی پس از دیگری مطابق شکل زیر را در نظر بگیرید ، اکنون به زبان برنامه نویسی FBD ، مدار فرمان مذکور را در محیط نرمافزار Simatic Manager اجرا خواهیم کرد.
مدار فرمان - قدرت راهاندازی سه الکتروموتور سه فازه به صورت یکی پس از دیگری به طور اتوماتیک :
برنامه مدار راه اندازی سه الکتروموتور به صورت یکی پس از دیگری به طور اتوماتیک به زبان FBD :
یادآوری :
تایمر S - ODTS : خروجی این تایمر فقط به لبه بالا رونده ورودی S ، حساس است .
فیلم آموزشی برنامهنویسی ، مدار راه اندازی سه الکتروموتور به صورت یکی پس از دیگری اتوماتیک به زبان FBD به همراه توضیحاتی درباره Edit Symbol