در قسمت چهارم از آموزش دوره پیشرفته پی ال سی S7-300 زیمنس که توسط نمایندگی زیمنس (زیمنس کنترل) برای شما کاربران گرامی تولید شده است، با چندین دستور جدید سیگنال های آنالوگ که در پی ال سی S7-300 استفاده می شوند آشنا خواهید شد که این دستورات را همزمان با طراحی یک کمپرسور برای شما توضیح خواهیم داد. برنامه کمپرسور را در نرم افزار Step7 زیمنس طراحی خواهیم کرد.
مثالی که می خواهیم در این قسمت برای شما کاربران نمایندگی زیمنس (شرکت زیمنس کنترل) طراحی کنیم، دارای یک سنسور فشار می باشد که یک کمپرسور می باشد به ازای فشار 0 تا 1000 میلی بار خروجی 4mA تا 20mA را به ما می دهد. می خواهیم این سنسور را که کمپرسور ما می باشد به یک ورودی آنالوگ پی ال سی S7-300 زیمنس متصل کنیم.
Range مفیدی که درون این سنسور فشار یا همان کمپرسور برای ما کار می کند بین 500 تا 900 میلی بار می باشد که بی این معناست اگر بین این Range باشد این کمپرسور بهترین بازده و کارکرد را برای ما دارد یعنی بادی که ما از این کمپرسور دریافت می کنیم و آن عملکردی که می خواهد برای ما انجام دهد اگر در Range یا همان بازه 500 تا 900 میلی بار باشد بسیار بهتر و مفیدتر می باشد.
حال می خواهیم این کار را انجام دهیم که چنانچه مقدار فشار از 600 میلی بار کمتر شد موتور کمپرسور موردنظر روشن شود و اگر فشار از 800 میلی بار بیشتر شد موتور کمپرسور ما که در پی ال سی S7-300 زیمنس آن را طراحی خواهیم کرد، خاموش شود که یعنی ما می خواهیم کمپرسور ما بین بازه 600 تا 800 برای ما کار کند که همانطور که در بالا گفتیم کار کردن کمپرسور در این بازه بیشتر بازده و کیفیت خود را برای ما دارد.
چنانچه کمپرسور روشن شد و بعد از 10 ثانیه 100 میلی بار افزایش فشار نداشت موتور کمپرسور موردنظر ما خاموش شود و صدای آلارمی که کمی بعد طراحی خواهیم کرد فعال شود. که این به این معناست که اگر کمپرسور به هر دلیلی بعد از 10 ثانیه 100 میلی بار افزایش فشار نداشته باشد موتور آن کمپرسور خاموش شود و آلارم وجود داشتن خطا در کمپرسور به صدا درآید که کسی که مسئول آن است متوجه شود که مشکلی در کمپرسور وجود دارد به برطرف کردن آن مشکل اقدام کند.
برای شروع طراحی همانطور که در قسمت اول این دوره آموزشی پیشرفته پی ال سی S7-300 زیمنس برای شما کاربران نمایندگی زیمنس توضیح داده شده باید یک پروژه جدید ایجاد کنیم. ما نام این پروژه را کمپرسور قرار خواهیم داد که البته شما می توانید یک نام دلخواه برای پروژه خود انتخاب کنید اما این نام باید مناسب و هماهنگ با وظیفه ای که پروژه بر عهده دارد باشد که بعد اگر دوباره خواستید وارد پروژه شوید یا فرد دیگری خواست روی پروژه شما کار کند بتواند به آسانی موضوع پروژه را از روی نام آن تشخیص دهد که کار بسیار آسان تر خواهد شد.
بعد از ایجاد پروژه و اضافه کردن رک یک CPU از نوع CPU 314C-2 DP (با کد قطعه 6ES7314-6CG03-0AB0) ورژن 3.3 که کامپکت می باشد به رک خود اضافه می کنیم.
حال آدرس ورودی/خروجی دیجیتال خود که دارای 24 ورودی و 16 خروجی می باشد را از 0 شروع می کنیم که یعنی هم ورودی و هم خروجی دیجیتال ما از 0 شروع می شوند.
حال آدرس ورودی / خروجی آنالوگ خود را از 100 شروع می کنیم که یعنی هم ورودی و هم خروجی آنالوگ ما از 100 شروع خواهند شد.
به خاطر سنسوری که می خواهیم باید از 4mA تا 20mA باشد وقتی که وارد پنجره ورودی/خروجی آنالوگ شدید وارد زبانه Inputs شده و در رو به روی Measurement type اولین باکس را از V (ولتاژ) به I (جریان) تغییر داده و در رو به روی Measuring range اولین باکس را به 4-20 mA تغییر دهید.
این کاری که ما انجام دادیم به این معناست که اولین کانال ورودی ما 4-20 mA می باشد که در کل دارای 5 کانال ورودی می باشد. حال سنسور یا همان کانال دوم فرقی نمی کند که جریانی یا ولتاژی باشد مگر اینکه بسته به نیاز خود آن را به ولتاژی یا جریانی در شرایط به خصوص تغییر دهید.
به دلیل این که ما فقط با کانال اول که در بالای آن با عدد 0 نمایش داده شده است کار خواهیم کرد و فقط به آن در طراحی کمپرسور در PLC S7-300 زیمنس نیاز داریم بقیه کانال ها که از 1 تا 4 می باشند را کاری نداریم و آن ها را در حالت پیشفرض رها خواهیم کرد.
بعد از تغییراتی که در بالا برای شما توضیح داده شد حال باید برنامه خود را Save و کامپایل کنید. و پنجره مربوط و رک و CPU اضافه شده را ببندید و همانطور که در قسمت اول از این سری آموزش گفته شده وارد بلاک برنامه نویسی OB1 شوید که این بلاک را می توانید در آدرس زیر پیدا کنید:
نام CPU > S7 Program(1) > Blocks > OB1
وقتی که وارد قسمت Blcoks شدید روی OB1 دابل کلیک کنید تا پنجره Properties آن بلاک برای شما نمایش داده شود و در پنجره Properties این بلاک در قسمت Symbolic Name یک نام برای بلاک خود وارد کنید که این نام دل به خواه و سلیقه ای می باشد که ما نام آن را همان نام پروژه یعنی Compressor قرار می دهیم. بعد از انتخاب Symbolic Name باری آن بلاک روی گزینه OK در پایین و سمت چپ همان پنجره کلیک کنید تا وارد قسمت طراحی و برنامه نویسی آن بلاک در نرم افزار Step7 زیمنس شوید.
ما در طراحی این برنامه حدودا به 6 یا 7 نتورک نیاز داریم. در نتورک اول می خواهیم ورودی را به صورت مستقیم به کمپرسور خود متصل کنیم که این کار را با استفاده از دستور SCALE انجام خواهیم داد.
حال باید پایه های دستور SCALE را تعیین کنیم که به صورت زیر می باشد:
در کل دستور SCALE ما بعد از تعیین پایه ها به صورت زیر می شود:
حال ما می خواهیم کاری کنیم که اگر خروجی دستور SCALE کمتر از 600 میلی بار شد موتور کمپرسور ما روشن شود.
برای اینکار یک نتورک جدید اضافه کرده تا طراحی روشن شدن موتور کمپرسور را انجام دهید. برای تشخیص دادن کمتر بودن ورودی ما از 600 میلی بار باید از دستورهای مقایسه گر استفاده کنیم. حال از دستور LE_R که از نوع REAL می باشد استفاده میکنیم که معنای آن "کوچکتر مساوی" می باشد. حال پایه های دستور LE_R را به صورت زیر مقدار دهی خواهیم کرد:
معنای دستور LE_R که به پایه های آن مقدار دادیم این است که اگر مقدار MD100 کوچکتر یا مساوی عدد 600 شد خروجی را فعال کند. که خروجی ما که Q0.0 می باشد را با استفاده از دستور SET فعال می کند که در کل نتورک دوم ما به صورت زیر در عکس برای شما نمایش داده شده است:
حال در نتورک دوم می خواهیم کاری انجام دهیم که اگر مقداری ورودی SCALE شده ما مساوی یا بزرگنر از 800 شد موتور را برای ما خاموش کند که نتورک سوم ما به صورت زیر می شود:
حال که موتور کمپرسور ما برحسب مقدار میلی بار 600 و 800 خاموش و روشن می شود یعنی قسمت اول مثال را طراحی کرده ایم. قسمت دوم مثال این بود که اگر کمپرسور روشن شد و بعد از 10 ثانیه 100 میلی بار افزایش فشار نداشت موتور کمپرسور خاموش شود.
برای طراحی قسمت دوم باید از یک تایمر استفاده کنیم تا 10 ثانیه بعد از اینکه موتور کمپرسور روشن شد یک عملیاتی را برای ما انجام بدهد.
برای شروع یک نتورک جدید ایجاد می کنیم و نام آن را عملیات صحت فشار قرار می دهیم حال یک کنتاکت باز قرار می دهیم و آن را به خروجی موتور کمپرسور متصل می کنیم که به این معناست که اگر موتور فعال شد این کنتاکت باز نیز فعال می شود حال ما می خواهیم وقتی که موتور روشن شد یک مقداری به داخل یک رجیستر حرکت کند برای اینکار از پالس های بالا رونده استفاده خواهیم کرد. یک پالس بالا رونده بعد از کنتاکت باز خود اضافه خواهیم کرد و آن را به M0.1 متصل می کنیم. حال باید از دستور MOVE برای ارسال مقدار MD100 به یک رجیستر دیگر که MD1001 می باشد استفاده کنیم که در کل نتورک چهارم ما به صورت زیر می شود:
حال در همان نتورک بالا در یک لبه اضافه می خواهیم وقتی که موتور روشن شد و کنتاکت ما را فعال کرد تایمر نیز شروع به شمارش کند. که برای اینکار از تایمر نوع S_ODT استفاده خواهیم کرد که بعد از اضافه کردن تایمر نتورک چهارم ما به صورت زیر می شود:
همانطور که در عکس بالا مشاهده می کنیم ما فقط به پایه TV تایمر خود مقدار داده زیرا که فعلا فقط به این پایه نیاز داریم و شما می توانید یک Reset برای پایه R تایمر نیز استفاده کنید.
حال یک نتورک جدید اضافه می کنیم و نام آن را عملیات اندازه گیری فشار بعد از 10 ثانیه قرار می دهیم، در این نتورک می خواهیم مقدار رجیستر قبل از 10 ثانیه و مقدار رجیستر بعد از شمردن 10 ثانیه تایمر را با یکدیگر مقایسه و تحلیل کنیم. حال در نتورک 5 خود یک کنتاکت باز قرار می دهیم و آن را به تایمر خود که در نتورک 4 اضافه کردیم و نام آن را T0 قرار دادیم متصل می کنیم پس کنتاکت خود را به T0 متصل می کنیم.
اکنون بعد از کنتاکت باز خود یک پالس بالا رونده قرار می دهیم و آن را به M0.2 متصل می کنیم. حال با استفاده از این پالس می خواهیم وقتی که تایمر ما 10 ثانیه شمرد مقدار MD100 رو انتقال بدیم به MD102 که این یعنی مقدار فشار بعد از 10 ثانیه پس برای اینکار از دستور MOVE استفاده می کنیم و MD100 را به MD102 انتقال می دهیم و در همان نتورک با استفاده از یک لبه بعد از کنتاکت باز که با تایمر ما متصل است قرار می دهیم و در آن لبه از دستور SUB_DI استفاده می کنیم که به صورت زیر می شود:
همانطور که در عکس بالا می بینید با استفاده از دستور SUB_DI مقدار رجیسترهای MD102 و MD101 را با هم مقایسه کرده و در رجیستر MD103 ذخیره کرده ایم. حال عدد به دست آمده در رجیستر MD103 را باید با عدد 50 یا 100 بسته به عددی که موردنظر شماست مقایسه کنید که اگر کوچکتر بود موتور باید ریست شود و آلارم را روشن کند و اجازه ندهد که موتور روشن شود تا وقتی ایراد برطرف شود. برای اینکار یک نتورک جدید اضافه کرده که این نتورک ما به صورت زیر می شود:
حال برای اینکه دیگر تا وقتی که مشکل برطرف نشده است هیچ کدام از نتورک ها نتواننده موتور را روشن کنند یک کنتاکت بسته در نتورک دوم بعد از دستور مقایسه گر قرار می دهیم و آن را به M0.5 متصل می کنیم که به صورت زیر تغییر پیدا می کند. حال این کنتاکت به این صورت عمل می کند که وقتی که آلارم مشکل به صدا درآمد باز می شود و اجازه نمی دهد که دیگر موتور روشن شود که این نتورک به صورت زیر تغییر پیدا می کند:
در اینجا برنامه ما به پایان می رسد. زیمنس کنترل امیدوار است در این بخش از دوره آموزشی مطالب مفیدی را یاد گرفته باشید.