گروه مهندسی آزند کنترل

برای دریافت پیش فاکتور و هر گونه استعلام قیمت با ما تماس بگیرید.

همه دسته بندی ها
ارتباط با ما

سبد خرید

مثال های کاربردی یک PLC دلتا

پنج‌شنبه - 4 دی 1399
مطالعه 4 دقیقه

مثال 1 : فرض کنید بطری های ما بر روی کانوایر حرکت می کنند. یک جک داریم. جک پنوماتیک با نام  Y0، دو تا سنسور داریم با نام های X1 و  X0. سنسورهای بطری خوابیده روی کانوایر را باید تشخیص بدهند. به این صورت زمانی که بطری خوابیده رو کانوایر را دید، دستور صادر بشود و جک Y0 بطری را داخل جعبه بیندازد.

 

کافی است برنامه را به این صورت بنویسیم : ld x0  (sensor 1) و سپس ldi x1 (sensor 2) ، خروجی Y0 را فعال کن. به این صورت که برنامه را سیموله می کنیم. اگر محصولی ایستاده جلو چشمی قرار گرفته باشد، X0 باز وX1  بسته است و Y0 فعال نمی شود. اگر محصولی افتاده جلوی سنسورها قرار گیرد، سنسور X1 چون نمی بیند و بالاتر بود، کنتاکتش بسته میمونه و سنسور X0 ما جسم را می بیند، می فهمد که جسمی افتاده. از طریق دستور Y0 و جک به داخل جعبه انداخته می شود.

مثال 2: در اینجا به مثالی اشاره می کنیم که مشابه تصویر زیر است.

دو موتور داریم، یک موتور به عنوان موتور اصلی و یک موتور به عنوان موتور روغن کاری. برنامه می خواهیم بنویسیم که با زدن شستی X0، موتور روغن کاری روشن و با زدن شستی x2 این موتور خاموش شود. با زدن شستی X1موتور اصلی روشن و با زدن شستی X3، موتور اصلی خاموش شود. شرط این برنامه این است که اگر موتور روغن کاری روشن نشده بود، موتور اصلی نتواند روشن شود و با زدن stop  موتور روغن، هر دو موتور خاموش شوند ولی با زدن stop موتور اصلی، موتور اصلی به تنهایی خاموش شود.

برنامه را به این صورت می نویسیم. ابتدا موتور اول را روشن می کنیم. ld x0 به عنوان به عنوان  start oil pump و بعد Set Y0 به عنوان Oil pump . بعد از این ld Y0، اجازه می دهیم که شستی X2، که مربوط به استارت موتور اصلی است یعنی به عنوان start main motor ، set y1  را برای ما ست کند. Ld x1 هم به عنوان stop y0، هم y0 باید ریست شود. (rst y0) و هم y1 که موتور اصلی ماست. (rst y1) ولی با زدن x3،  stop y1، فقط y1 خاموش شود. (rst y1). این مثال، مشابه مدار یکی پس از دیگری در طراحی های مدار فرمان است؛ در واقع مدار را بهم دیگه وابسته کردیم یا به عبارتی بین دو خروجی Interlock‎ انجام داده ایم.

 

مثال 3: در این قسمت قصد داریم که با مثالی ساده در مورد کانترها بیشتر آشنا شویم. فرض کنید محصولات از جلو چشمی و سنسور X0 از روی کانوایر در حال عبور هستند. ما می خواهیم وقتی تعداد محصولات عبور کرده از جلو چشمی که یک سنسور چشمی فوتوالکتریکه، به پنج تا رسید، y0 فعال بشه، جک بیاد پایین و در جعبه رو ببنده. وقتی سنسور x1 را دید یعنی در جعبه بسته شد، Y0 دوباره غیرفعال بشه برگرده بالا و سنسور به شمارش خود ادامه دهد.

برای این کار، از سنسور x0 که چشمی خودمونه، استفاده می کنیم. سنسور شمارش از دستور CNT C0 K5 برای شمارش است. LD C0، Out Y0 را می آورد که مربوط به جک ماست و زمانی که سنسور x1 را دیدیم، از لبه بالارونده x1 استفاده می کنیم که اسمش را RESET JACK می گذاریم. چی بشه؟، y0 من غیرفعال شود. جهت غیرفعال کردن y0 فقط کافیه ما کانترش رو ریست کنیم، RST C0.

برنامه رو simule می کنیم. محصول اول عبور کرد، مقدار کانتر برابر یک میشود و همینطور تا محصول پنجم که کانتر برابر 5 می شود. محصول گنجم که عبور کرد، جکی که به خروجی y0 وصل شده، شروع به حرکت می کند به سمت پایین. طبق شکلی که دیدیم، در جعبه را می بندد. به محض اینکه در جعبه را می بندد، سنسور x1 ما یک لحظه می بیند، باعث می شود مقدار کانتر C0 من به صفر تغییر کند، به واسطه باز شدن C0 و پشت خروجی y0، دوباره کار شمارش انجام می شود.

مثال 4: در این قسمت، می خواهیم مثالی بزنیم که شما بیشتر با دستورات مقایسه و اعمال ریاضی آشنا شوید. برنامه ای می خواهیم بنویسیم که اگر اپراتور عددی را داخل HMI وارد کرد و داخل PLC ما. برای مثال، در رجیستر d0 ذخیره شود، اگر این عدد فرد بود موتور 1 روشن شود و اگر این عدد زوج بود، موتور2 روشن شود. به چه صورت عمل می کنیم؟ از دستور LD M1000 استفاده می کنیم، جهت کنتاکت همیشه بسته پشت دستور تقسیم. حال می گوییم div کن (تقسیم کن) محتوای داخل رجیستر D0 را که اپراتور وارد می کند به عدد 2 و نتیجه تقسیم را داخل رجیستر D2 بریز. (div do k2 d2). همانطور که در بخش نرم افزار PLC دلتا آموزش دادم، PLC دلتا در قسمت تقسیم، فقط عدد صحیح را داخل d2 می ریزد، باقی مانده را در  داخل رجیستر بعدی یعنی d3. پس یک شرط می نویسیم ld=d3 k1  یعنی تقسیم ماعدد فرد بوده که باقی مانده بر تقسیمش، یک شده. در این حالت، موتور 1 روشن شود و اگر نتیجه تقسیم ما، ld=d3 k0 ، موتور 2 روشن شود.

برنامه را simule می کنیم، عدد وارد شده توسط اپراتور در اینجا صفر است، پس عدد زوج است و موتور دوم روشن می شود. این عدد را با کلیک راست کردن و در قسمت present value تغییر می دهیم بهk9. ملاحظه می شود که عدد فرد است و موتور 1 روشن می شود.

اگر عدد 15 باشد، باز هم موتور 1 و اگر 12 باشد، چون زوج میشود، موتور 2 روشن می شود؛ همینطور به همین صورت، هر عددی را که شما وارد کنید، مثلا عدد101 تقسیم بر 2بشه، قسمت صحیح 50 می شود و باقیمانده تقسیم میشه عدد 1 که در رجیستر بعدی می توانیم تشخیص دهیم که عدد زوج است یا فرد.

مثال 5: در این بخش از بخش آموزش، قصد داریم مثالی در رابطه با تایمر تاخیر در قطع بزنیم. تایمر تاخیر در قطع در PLC های دلتا و محیط برنامه نویسی Wplsoft باید ساخته شود. به چه صورت؟ برنامه ای مشابه برنامه زیر می نویسیم.

ld   x0، تیغه ی بسته تایمر ldi   t1،   out   y1، تیغه ی بسته x0، ldi   x0 وk50tmr   t1. بعد از چند ثانیه می خواهیم خاموش شود؟ برای مثال k50، پنج ثانیه. همانطور که مشاهده می شود در لحظه ی اول که x0 را فشار دهیم، y1 فعال می شود، به واسطه ی خودنگهدار خودش. بعد از اینکه خاموش می کنیم، تایمر شروع به زمان گرفتن می کنه و مسیر را باز می کند.

برنامه را simule می کنیم. این برنامه یکی از برنامه های پرکاربرد جهت تاخیر در قطع بودن تایمر است. موتور را روشن می کنیم، ملاحظه می کنید موتور روشن است و تایمر صفر. موتور را خاموش می کنیم، بعد از 5 ثانیه موتور خاموش می شود.

مثال 6: در این قسمت از بخش مثال ها، قصد داریم یک مثال ورودی و خروجی و نمایش تعداد فضای باقیمانده در پارکینگ بزنیم. فرض می کنیم یک پارکینگ دارای یک ورودی و یک خروجی است. یک نمایشگر داریم که می خواهد مقدار ظزفیت خالی پارکینپ را به ما نمایش دهد. فرض کنید که سنسور x0 به عنوان سنسور ورودی پارکینگ استفاده شده با لبه ی بالا رونده، ldp x0 . از دستور increase استفاده می کنیم که دستور جدیدی ست و در بخش نرم افزاری در موردش صحبت نکردیم. Inc d0، این دستور چیکار می کنه؟ با هر بار تحریک شدن x0، یک واحد، یک عدد به محتوای d0 اضافه می کند. ldf x0، از لبه ی پایین رونده یعنی سنسور خروج زمانی که خودرو از آن رد شد، استفاده می کنیم. جهت کاهش دادن محتوای داخلی d0، dec do و خط پایین ld m1000 می نویسیم و از دستور تفریق استفاده می کنیم. sub . فرض کنید ظرفیت کلی این پارکینگ 200 خودرو است، k200 را از d0 کم کن و در داخل d2 نمایش می دهد.

Sub k200 d0 d2 . d2 جهت نمایش ظرفیت باقیمانده در پارکینگ است.

برنامه را simule می کنیم، ملاحظه می شود که d2 برابر 200 یعنی پارکینگ ما،  200 خودرو جا دارد. فرض می کنیم که خودروی اول وارد می شود، ملاحظه می کنید 199 خودرو جا دارد.

به همین صورت با وارد شدن خودروها، مقدار ظرفیت باقی مانده پارکینگ کاهش پیدا می کند. فرض کنید 6 خودرو وارد شده، 194 خودرو در این پارکینگ جا باقی می ماند. حال یک خودرو خارج می شود، ملاحظه می شود که ظرفیت باقیمانده افزایش پیدا می کند.

از این دستور می توانیم برای برنامه نویسی ورودی و خروجی پارکینگ استفاده کنیم.

مثال 7: جهت تکمیل بخش مثال های plc  دلتا، در این جلسه قصد دارم که با دستور جدیدی آشناتون کنم. برنامه ای می خواهیم بنویسیم که با فشار بر شستی x0، موتور اول که y0 است، روشن و با فشار بر روی همان شستی، موتور خاموش شود. ld x0، از دستور altp  y0 استفاده می کنیم. p نشانگر پالسی بودن آن می باشد.

پس از  Simule کردن برنامه، میبینم با فشار بر روی شصتی x0، y0 روشن می شود و با مجددا زدن آن، y0 خاموش می شود. حجم برنامه را ملاحظه کنید، در یک خط با یک شصتی (پوش باتن) شما می توانید موتوری را روشن و همان موتور را خاموش نمایید.

مثال 8: در این قسمت قصد داریم که با مثال مقایسه کننده ها و دما، شما را بیشتر آشنا کنیم. فرض کنید دمای خوانده شده توسط کارت دمای ما در رجیستر d0 ذخیره می شود. می خواهیم اگر دما بین 10 تا 20 درجه سانتیگراد بود، فن شماره 1 روشن شود و اگر دمای بین 25 تا 35 درجه سانتیگراد بود، فنو شماره 2 روشن و فن شماره 1 خاموش شود. فرض کنید دما در رجیستر d0 ذخیره می شود. ld>=d0 k10 یعنی از 10 درجه سانتیگراد بیشتر بود و ld<=d0 k20، در این صورت فن شماره 1 روشن شود، out y0 . به همین ترتیب ld>=d0 k25 و ld<=d0 k35 ، فن بعدی روشن شود، out y1 .

برنامه را simule می کنیم، دما در وهله اول صفر است. مقدار دما را به صورت دستی تغییر می دهیم. فرض کنید دمای خوانده شده به 15 درجه می رسد، چون 15 در بازه ای بین کوچکتر مساوی 10 و بزرگتر مساوی 20 است، فن 1 روشن می شود. فرض می کنیم 22 باشد. در هیچ بازه ای از این دو دستور قرار نمی گیرد و اگر k30 باشد، در بازه ی دوم قرار می گیرد. از دستورات مقایسه ای به صورت سری می توانیم استفاده کنیم و کاربرد زیادی در نوشتن دستورات شرطی دارد.

مثال 9: در ان=ین قسمت، قصد داریم در قسمت مثال های  PLC دلتا با ترفندی جالب برای افزایش زمان تایمرها آشناتون کنم. فرض کنید ما می خواهیم بعد از مدت شصت ساعت، یک خروجی را فعال کنیم. ماکزیمم عددی که یک تایمر می تواند به خودش بگیرد، چون 16 بیتی است، 32767 است. اگر از تایمر 100ms استفاده کنیم، 32767*100ms است، آن را به ثانیه و سپس به دقیقه تبدیل کنی. ملاحظه خواهید کرد که نمی تواند این تایمر زمان بگیرد. حال ما برای این کار، دو تایمر را با هم cascade می کنیم یا به عبارتی پشت سر هم می بندیم. به چه صورت؟ ld x0، tmr  t0  k32767 ، بعد از تیغه باز این تایمر t0 جهت فعال کردن تایمر بعدی برای مثال tmr  t1  k200 استفاده می کنیم.

با فعال کردن simulator تایمر اول شروع به شمارش می کند، وقتی به 32767 برسد، ملاحظه می شود که تایمر بعدی فعال شد، بخاطر همین 20 ثانیه بیشتر، شما نمی توانستید از دستور بالا استفاده کنید زیرا ماکزیمم عدد آن 32767 را وارد کرده بودید، بنابراین به همین خاطر از تیغه باز آن در خط بعد استفاده کردیم و از تایمر دیگری جهت cascade کردن با تایمر اول استفاده کردیم. ترفند جالبی است برای افزایش مدت زمان تایمرهایی که می خواهیم بیش از 54 دقیقه زمان بگیرند.

مثال 10: در این بخش از مثال های کاربردی PLC دلتا قصد داریم نحوه ی ساخت یک تایمر توسط internal clock puls پی ال سی و رجیستر خاص M1013 و یک کانتر شما را آشنا کنیم. برای مثال میخواهیم تایمری داشته باشیم که 3000 ثانیه بشمارد؛ شما از رجیستر خاص M1013 استفاده می کنید. (ld   m1013)که نیم ثانیه روشن و نیم ثانیه خاموش و کلاک پالسش 1 ثانیه است و یک کانتر cnt   c0   k3000 . از تیغه باز این کانتر استفاده می کنیم (ld   c0)، برای روشن کردن یک خروجی (out   y0).

برنامه را simule می کنیم، هر 1 ثانیه یک پالس می فرستد و کانتر می شمارد تا برسد به 3000. توسط نرم افزار مقدار کانتر را به 2990 تغییر می دهیم، ده ثانیه دیگر انتظار داریم خروجی روشن شود. ملاحظه می کنید که این ترفند جالبی است جهت ساخت یک تایمر توسط کانتر و فلگ خاص  M1013.

دیدگاهتان را بنویسید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تمامی حقوق وبسایت برای آزند کنترل محفوظ است.