آموزش PLC S7-1500 نمایندگی زیمنس بخش نرم افزاری: بلوک های برنامه نویسی

>آموزش PLC S7-1500 نمایندگی زیمنس بخش نرم افزاری: بلوک های برنامه نویسی

نمایندگی زیمنس و بلوک های برنامه نویسی

نمایندگی زیمنس آموزش بخش دوم را که مربوط به بخش نرم افزاری PLC S7-1500 می باشد را آغاز نموده است. بخش اول شامل 39 قسمت آموزش سخت افزاری PLC S7-1500 زیمنس می باشد. با زیمنس سیماتیک همراه باشید تا 0 تا 100 پی ال سی S7-1500 را فرا بگیرید. مطالعه این فصل شما را با مباحث زیر آشنا خواهد کرد: 

- انواع بلوک های OB

- بلوک های FB 

- بلوک های FC 

 

مقدمه بلوک های برنامه نویسی FC, FB, OB

برای اینکه بتوان PLC را برنامه نویسی کرد، بخشی با عنوان PLC Programming در نرم افزار STEP7 TIA Portal V13 تعبیه شده است. در این بخش، امکان انتخاب و ایجاد بلوک هایی موسوم به بلوک های برنامه نویسی وجود دارد و با باز کردن هر کدام از این بلوک های برنامه نویسی، به محیط برنامه نویسی هدایت می شوید تا بتوانید برنامه مربوط به پروژه خود را بنویسید.

 

بلوک های برنامه نویسی

در این فصل به معرفی و بررسی کلی نحوه ایجاد هر یک از بلوک های برنامه نویسی OB ,FB و FC و برخی نکات مربوط به آن ها می پردازیم. با استفاده از این بلوک های برنامه نویسی، می توان وظایف مختلف اتوماسیون را در سیستم اتوماسیون S7-1500 اجرا کرد .این بلوک ها در ادامه به طور کامل شرح داده می شوند.

 

 بلوک های OB

بلوک های OB از مهم ترین بلوک های برنامه نویسی محسوب می شوند .به طوری که بدون وجود این بلوک ها،شروع برنامه نویسی ممکن نیست.بلوک OB دارای انواع مختلفی می باشند و از لحاظ کاربرد، با یکدیگر متفاوتند .از مهم ترین بلوک های OB می توان به بلوک OB1 اشاره کرد که به "بلوک اصلی برنامه نویسی"معروف است. انواع بلوک OB در ادامه تشریح م شوند.

 

1. بلوک OB1 (Program cycle)

این بلوک همان طورکه گفته شد، بلوک اصلی برنامه نویسی است و بدون وجود آن ، امکان اجرای برنامه کاربر وجود ندارد.در واقع کاربر ،برنامه خود را در این بلوک می نویسد و سپس آن را برای اجرا به cpu می فرستد. می توانید تنها از بلوک OB1 استفاده کنید یا بر حسب نیاز وبرای تکمیل برنامه خود،از سایر بلوک های برنامه نویسی مانند بلوک های FB,FC یا سایر بلوک های OB نیز در کنار بلوک OB1 بهره ببرید.

 

2. بلوک OB100 (STARTUP)

این بلوک ،به بلوک راه اندازی معروف است.زمانی که CPU در حال راه اندازی ،یعنی در زمان تغییر حالت کاری از حالت توقف (STOP) به حالت اجرا (RUN) است بلوک OB100 فعال میشود و برنامه موجود در آن تنها برای یک بار اجرا می گردد.می توانید با توجه به نیاز پروژه خود برنامه مناسب را در بلوک OB100 بنویسید.برای مثال ،این برنامه می تواند شامل فعال کردن یک خروجی دیجیتال یا ارسال یک مقدار آنالوگ به یک خروجی آنالوگ باشد.پس از اجرای برنامه موجود در این بلوک در فاز راه اندازی، CPU به حالت اجرا می رود وبلوک OB1  به صورت سیکلی شروع به اجرا می کند.

 

3. بلوک های OB2x (TIME DELAY INTERRUPT)

زمانی که بخواهیم در اجرای یک دستور وقفه زمانی ایجاد کنیم از بلوک های OB2x (OB20-OB23) که به بلوک های وقفه معروفند استفاده می کنیم.این وقفه می تواند با دقت بالا و حتی در حد 1 نانو ثانیه تعیین شود.برای مثال از بلوک OB20 برای ایجاد یک وقفه زمانی دقیق،هنگام اجرای وظایف اتوماسیون حساس و با دقت بالا، در صنایعی مانند صنایع پتروشیمی ،نفت و گاز استفاده می شود.شایان ذکر است که برای استفاده از این بلوک ، به دستور SRT-DINT در کنار بلوک های OB2x نیاز داریم که این دستور و نحوه استفاده از آن در فصل بعدی شرح داده می شود.

روش کار با این بلوک ها به این صورت است که ابتدا برنامه مورد نظر را در یک بلوک وقفه،مثلاً بلوک OB20 می نویسیم.سپس دستور SRT-DINT را در بلوک OB1 وارد می کنیم و مدت زمان وقفه را از طریق دستور SRT-DINT  تعیین می نماییم .هنگام اجرای برنامه OB1 زمانی که CPU به دستور SRT-DINT می رسد،ابتدا وقفه زمانی تعیین شده اجرا میشود و بعد از سپری شدن این وقفه زمانی ،اجرای برنامه در بلوک OB1 قطع و برنامه نوشته شده در بلوک OB20 اجرا می گردد. پس از اجرای برنامه موجود در بلوک OB20 ،اجرای برنامه کاربر در بلوک OB1  ادامه می یابد.

 

4. بلوک های OB3x (cyclic Interrupt)

با استفاده از بلوک های OB3x (OB30-OB38) که به بلوک های وقفه سیکلی معروفند ،می توان اجرای برنامه کاربر را در بلوک OB1 و در فواصل زمانی معین متوقف کرد و برنامه نوشته شده در بلوک های وقفه را اجرا نمود. در واقع زمانی که بخواهیم یک برنامه خاص را در فواصل زمانی معین اجرا کنیم ،از بلوک های OB3x استفاده می کنیم .این فواصل زمانی می تواند از 250 تا 60،000،000 میکروثانیه انتخاب شوند.

روش کار به این صورت است که ابتدا برنامه ای را که می خواهیم در فواصل زمانی مشخص تکرار شود، در بلوک OB3x می نویسیم .زمان مورد نظر را برای ایجاد فواصل زمانی ایجاد برنامه موجود در بلوک OB3x، هنگام ایجاد این بلوک ،در نرم افزار تنظیم می کنیم .هنگام اجرای برنامه نوشته شده در بلوک OB1، بعد از سپری شدن زمان تعیین شده برای اجرای بلوک OB3x مثلاً بعد از 250 میکروثانیه ، اجرای برنامه در بلوک OB1 قطع و برنامه بلوک OB3x اجرا می شود. پس از اجرای برنامه موجود در بلوک OB3x ،اجرای برنامه کاربر در بلوک OB1 ادامه می یابد. دوباره بعد از گذشت مدت زمان تنظیم شده 250 میکروثانیه، اجرای برنامه کاربر در بلوک OB1 قطع و برنامه موجود در بلوک OB30 اجرا می شود و پس از اتمام اجرای برنامه در بلوک OB3x  دوباره به بلوک OB1 برمی گردیم.این روند تا زمانی تکرار می شود که وضعیت CPU از حالت اجرا به حالت توقف تغییر کند.شایان ذکر است که هنگام استفاده از بلوک های OB3x نوشتن برنامه در بلوک OB1 اختیاری است.

 

5. بلوک های OB4x (Harware Interrupt)

بلوک های OB4x (OB40-OB47) برای ایجاد وقفه از نوع سخت افزاری می باشند.با اجرای این بلوک ها، اجرای برنامه کاربر در بلوک اصلی OB1 قطع می شود. شرط اجرای بلوک های OB4x ،بروز یک رخداد سخت افزاری است که در این بلوک تعیین می شود.در اینجا منظور بروز یک رخداد، شرایط خطا  (fault) در سخت افزار نیست.بلکه شرایطی مانند بسته شدن یک  سوئیچ یا افزایش یک مقدار آنالوگ و مواردی از این قبیل می باشند.این بلوک ها برای ورودی های آنالوگ و دیجیتالی که به عنوان ورودی های بسیار حساس در یک پروژه تعریف شده اند،استفاده می شوند.در این حالت می توان برنامه ای را در بلوک OB4x نوشت تا زمانی که مثلاً ، ورودی دیجیتال مورد نظر ست شد،با اجرای برنامه نوشته شده ، یک خروجی دیجیتال (که بیانگر ست شدن ورودی دیجیتال مورد نظر باشد )نیز ست شود.

پیش نیاز استفاده از بلوک های OB4x به منظور تعریف رخدادهای سخت افزاری برای سیگنال های خاص این است که ماژول مورد نظر باید از قابلیت وقفه سخت افزاری پشتیبانی کند.شکل 1-5 ،یک ماژول DI 16x24VDC HF  با قابلیت Harware Interrupt  را نشان می دهد.همان طور که در این شکل می بینید عبارت Harware Interrupt  در قسمت Information ماژول مربوط درج شده است که بیانگر پشتیبانی از این قابلیت می باشد.

 

ادامه بلوک ها در قسمت بعدی آموزش شرح داده می شوند.