در قسمت اول این آموزش با محیط داخلی نرم افزار wplsoft آشنا شدید و حالا میخواهیم کمی جلوتر برویم و دستورات و اصطلاحات برنامهنویسی را یاد بگیریم. یادگیری این دستورات میتواند به شما کمک کند برنامه نویسی پی ال سی دلتا را به صورت مقدماتی شروع کنید. ما در تیم نیک صنعت با تهیه مقالات، فیلمهای رایگان آموزش پی ال سی دلتا و همچنین برگزاری دوره آموزشی پی ال سی دلتا صنعتی سعی کردهایم به بهبود یادگیری اصولی این مهارت مهم کمک کنیم.
فهرست دستورات نرم افزار wplsoft
مثال با زدن لحظه ای شستی (X0)، خروجی به طور دائم روشن شود و با فشردن شستی دیگر به طور آنی (X1) خروجی خاموش شود.
دستور ZRST
زمانی که بخواهید چندین خروجی را به طور همزمان خاموش کنید از دستور ZRST استفاده کنید. اینگونه حجم برنامه نیز کم می شود.
مثال : برنامه ای بنویسید که با فشردن کلید ورودی(X0) سه خروجی (Y0 ,Y1 ,Y2) روشن شوند و با فشردن ورودی دیگر، تمامی خروجی ها خاموش شوند.
دستور ALT
این دستور میتواند وضعیت خروجی را معکوس کند. یعنی اگر خروجی روشن باشد آن را خاموش میکند و اگر خروجی خاموش باشد آن را روشن میکند.
نکته: وقتی این دستور را استفاده میکنید باید ورودی لبه بالا رونده (Rising Edge) یا پایین رونده (Falling Edge) انتخاب کنید. البته میتوانید بجای ALT از ALPT استفاده کنید.
زمانی که شما X را تحریک کنید تعداد بسیاری پالس به دستور ALT میرسد. این امر موجب ناپایداری این دستور میشود. برای همین از تیغه حساس به لبه یا دستور ALTPاستفاده می شود تا تنها یک پالس در هنگام تحریک ورودی به دستور برسد.
در مثال زیر با هر بار set on یا set off ورودی X1، وضعیت خروجی Y0 تغییر وضعیت می دهد.
مثال بالا را به شکل زیر هم میتوان نوشت:
دستور المانهای حساس به لبه پالس
بعضی مواقع در برنامهنویسی نیاز است در لحظه قطع یا وصل یک کنتاکت، یک پالس موقت تولید شود.
در مثال زیر، به محض فعال شدن ورودی X0 (لبه ی بالا رونده)، پالسی به مدت یک سیکل، خروجی Y0 را روشن میکند. کلید میانبر این دستور F3است.
منظور از یک سیکل، اجرای یک دورکامل یک برنامه است. همه المانها میتوانند حساس به لبه بالا رونده باشند.
چنانچه بخواهید در صورت تحریک چند المان ورودی یک پالس با لبه بالا رونده تولید شود از دستور NP استفاده کنید.
برای شرکت در دوره آموزشی پی ال سی دلتا، با شماره تلفن 87700210 تماس حاصل فرمایید.
همان گونه که در مثال بالا مشاهده میکنید. ابتدا X0 فعال شده است. اگر به محض فعال شدن X1 و بعد از آن M0 وصل شود. آنگاه یک پالس با مدت زمان سیکل تولیدمیشود.
از مثال بالا متوجه می شوید چندین المان به صورت موازی و سری میتوانند قبل از دستور NP قرار بگیرند.
دستور المان حساس به لبه ی پایین رونده
همان طور که میبینید این بار با فعال کردن X0 هیچ پالسی فرستاده نمیشود اما به محض غیرفعال کردن ورودی X0 (لبه پایین رونده)، پالسی به مدت یک سیکل تولید شده است. بعد از آن خروجی Y0 روشن میشود. کلید میانبر این دستور F4 است.
چنانچه بخواهیم در صورت تحریک چند المان ورودی، یک پالس با لبه ی پایین رونده تولید شود از دستور PN استفاده کنید.
دستورSET
میتوانید به جای استفاده از خروجی (Y0) از دستور (SET Y0) استفاده کنید.
دستورRST
هر زمانی که از دستور SET در برنامه استفاده کردید، برای غیر فعال کردن خروجی مورد نظر از دستور RST استفاده کنید در غیر این صورت خروجی به طور دائم روشن میماند!
حال مثال زیر را در نظر بگیرید:میتوانید به جای استفاده از خروجی (Y0) از دستور (SET Y0) استفاده کنید.
دستورRST
هر زمانی که از دستور SET در برنامه استفاده کردید، برای غیر فعال کردن خروجی مورد نظر از دستور RST استفاده کنید در غیر این صورت خروجی به طور دائم روشن میماند!
چناچه ورودی المانها به هم وصل شود هیچ پالسی تولید نمیشود. فرض کنید ورودی های X0 ،X1, و M0 وصل شده باشند. به محض قطع یکی از ورودیها (لبه پایین رونده) خروجی Y0 مدت یه سیکل روشن و سپس خاموش خواهد شد.
در این جا نیز میتوانید چندین ورودی با المانهای متفاوت به صورت سری و موازی قبل از دستور PN استفاده کنید.
دستور NOT
اگر بخواهید برنامه مورد نظر، به طور معکوس عمل کند از دستور INV استفاده کنید.
این دستور منطق برنامه را معکوس میکند.
در این مثال اگر یکی یا همه ورودیها غیرفعال باشند آنگاه به صورت معکوس عمل میکند. در نتیجه خروجی Y0 روشن میشود. در صورتی که هر سه ورودی وصل باشند خروجی Y0 خاموش میشود. یعنی در این دستور کاملا برعکس خواهد شد.
دستور تایمرها (Timer)
دستورات متعددی برای زمانسنجی وجود دارد. در این مبحث در مورد برخی از این تایمرها توضیحاتی در اختیار شما قرار میدهیم.
در ابتدا لازم به ذکر است که تایمرها با توجه به شمارهای که دارند به سه دسته تقسیم میشوند:
- تایمر با ضریب (رزولوشن) 100 میلی ثانیه
- تایمر با ضریب (رزولوشن) 10 میلی ثانیه
- تایمر با ضریب (رزولوشن) 1 میلی ثانیه
تایمرهای 100ms حداقل زمانی را که می توانند زمان سنجی کنند 100ms است. برای اطلاع از مشخصات تایمر های PLC ها به فایل راهنمای آن مراجعه کنید.
دستور TMR
از دستورات پر کابرد تایمر است. با استفاده از این دستور میتوانیم تایمر های تاخیر در وصل (ON DELAY) و تاخیر در قطع (OFF DELAY) را بسازیم.
دستور TMR به ورودی خود وابسته است. یعنی اگر ورودی این دستور خاموش باشد تایمر نیز متوقف میشود و ورودی روشن باشد تایمر نیز فعال میشود.
حال چند مثال متفاوت را باهم بررسی میکنیم:
دستور TMR
از دستورات پر کابرد تایمر است. با استفاده از این دستور میتوانیم تایمر های تاخیر در وصل (ON DELAY) و تاخیر در قطع (OFF DELAY) را بسازیم.
دستور TMR به ورودی خود وابسته است. یعنی اگر ورودی این دستور خاموش باشد تایمر نیز متوقف میشود و ورودی روشن باشد تایمر نیز فعال میشود.
حال چند مثال متفاوت را باهم بررسی میکنیم:
مثال: با زدن شستی استارت (X1)، موتور (Y1) روشن شود و پس از 10 ثانیه خاموش شود.
در برنامه بالا با تحریک X1 موتور Y1 روشن میشود و تیغه ی Y1، تایمر را فعال کرده است. در ادامه تایمر شروع به شمارش میکند. بعد از آن که به زمان داده شده رسید از تیغه داخلی تایمر استفاده کرده و موتور را خاموش میکند. علت اینکه ما به تایمر K100 دادیم چون مدت زمان برحسب میلی ثانیه است، برابر 10 ثانیه میشود.
مثال: برنامه ای بنویسید که با تحریک ورودی با تحریک ورودی X0 خروجی Y0 فعال شود و بعد از 3 ثانیه خروجی Y1 روشن شود و بعد 5 ثانیه هر دو خروجی خاموش شود.
دستور ATMR
تفاوت آن با TMR آن است که میتواند مستقیما خروجی را فعال کند.
استفاده از دیتا رجیسترها (D) به جای اعداد ثابت
از دیتا رجیسترها که با D نمایش داده میشوند میتوان به جای اعداد ثابت که با پیشوند K هستند استفاده کرد. که انواع آن را میتوانید در قسمت راهنمای نرم افزار WPLSoft مشاهده کنید. زمانی از این رجیسترها استفاده میشود که مقدار همیشه متغییر است.
در دستورات 32 بیتی، دو رجیستر به طور متوالی اشغال میشوند.
دستور HOUR
این دستور به ساعت سنج معروف است. شما می توانید با استفاده از این دستور مدت زمان فعال و غیر فعال بودن خروجی را ثبت کنید.
مثال: با فشردن شستی X0 موتور Y0روشن می شود. دستور HOUR بعد از گذشت مثلا 10 ساعت(K10) ، M0 فعال میشود و Y0 را خاموش میکند. مدت زمان مورد نظر برحسب ساعت در D0 و برحسب ثانیه در D1 ذخیره می شود. دو رجیستر متوالی اشغال شدند.
ساختن پالس با استفاده از تایمر
با استفاده از تایمرها می توان سیگنال پالس ساخت. البته دستورهای مختلفی برای تولید پالس در PLC DELTA وجود دارد. اما در این بخش می خواهیم با استفاده از تایمرها این کار را انجام دهیم. به طور کلی برای ساختن پالس زیر به دو تایمر احتیاج است.
با توجه به شکل زمان ton را به یک تایمر و زمان toff را به یک زمان دیگر اختصاص می دهیم.
برنامه زیر مربوط به ساختن پالس است. در این برنامه خروجی بیت T0 همان پالسی است که مد نظر ماست.
در این برنامه D0 رجیستری است که مقدار زمان toff را برای تایمر T0 تنظیم میکند و همچنین D1 رجیستری است که مقدار ton را برای تایمر T1 ست میکنیم. میتوانید مقادیر ثابتی را برای رجیسترها تنظیم کنید.
دستور شمارنده CNT
این دستور به ازای هر پالس در ورودی، یک واحد به مقدار قبلی خود اضافه میکند. کانترها به دستههای 16 بیتی، 32 بیتی، کانترهای سرعت بالا (سخت افزاری و نرم افزاری) تقسیم میشوند. برای به دست آوردن اطلاعات کانترها به فایل راهنمای هر PLC مراجعه کنید.
مثال: برنامه بنویسید که تعداد محصولات تولید شده را توسط یک نوارنقاله حمل و توسط یک سنسور دیجیتال شمارش می شوند را کنترل کنیم و هنگامی که تعداد 10 محصول شمارش شد، سیستم برای هشدار به اپراتور چراغ آلارمی را به مدت 5 ثانیه روشن کند و نوار نقاله نیز متوقف شود.
در برنامه بالا مشخص است با فعال شدن استارت (X0) و خاموش بودن آلارم (Y1) نوار نقاله روشن میشود (Y0). با روشن شدن نوار نقاله و با هر بار محصول دیدن سنسور (X3) کانتر شمارش میکند تا به 10 بار محصول دیدن برسد. با روشن شدن (C0) نوار نقاله و کانتر غیرفعال و آلارم روشن میشود. پس از 5 ثانیه آلارم نیز خاموش میشود.
دستور CNTD
زمانی که تعداد دفعات ارسال پالس به کارنتر از محدودهی یک عدد 16 بیتی یعنی 32767 بیشتر شود، باید از یک کانتر 32 بیتی برای شمارش استفاده شود. برای آگاهی از شماره کانترها در PLC های مختلف به فایل راهنمای آن PLC مراجعه کنید.
نکته: تمام شمارندههای 16 بیتی، شمارندههای Up Counter یا همان بالا رونده هستند.
نکته: تمامی شمارنده های 32 بیتی دو حالت up counter (بالارونده) و down counter (پایینرونده) هستند. در حالت عادی آنها بالارونده هستند اما اگر بیت حافظه مخصوص شماره آن کانتر set شود آنگاه کانتر مورد نظر پایینرونده میشود.
برای مثال در PLC SS2 برای کانترهای C200 تا C223 بیتهای M1200 تا M1223 اختصاص یافته است. این بیتها به صورت LATCH می باشند یعنی اگر یک بار آنها را SET کنیم، آن وقت با خاموش و روشن شدن PLC، SET باقی میماند.
دستور INC
این دستور به صورت یک شمارنده افزایشی است برای مواقعی که نیاز داریم ثبت شود، یک خروجی چند بار فعال شده است.
مثال: در برنامه پایین ، با هربار فشردن شستی X0، دستور INC در هر سیکل اجرای برنامه یک واحد به D0 اضافه میکند. چون سرعت هر سیکل خیلی بالا است. با هر بار فشردن تعدادی زیادی سیکل اجرا شده و D0 بیشتر از یک واحد اضافه میشود.
اگر میخواهید با هر بار فشردن ورودی X0، فقط یک واحد D0 اضافه شود. از نکات زیر استفاده کنید:
- از ورودی های پالس یعنی استفاده از لبه های بالا رونده و پایین رونده.
- استفاده از دستور INCP.
دستور DEC
این دستور به صورت معکوس شمارش میکند. همانند برعکس دستور INC.
دستورات ریاضی
اعمال ریاضی برای 16 بیتی:
جمع: ADD
تفریق: SUB
ضرب: MUL
تقسیم: DIV
اعمال ریاضی برای 32 بیتی:
جمع: DADD
تفریق: DSUB
ضرب: DMUL
تقسیم: DDIV
اعمال ریاضی برای اعداد اعشاری:
جمع: DADDR
تفریق:DSUBR
ضرب: DMULR
تقسیم: DDIVR
محدوده اعداد 16 بیتی از 32768+ و 32767- است. اعداد بزرگتر از این محدوده به عنوان 32 بیتی در نظر گرفته میشوند.
دستور جمع (ADD) برای اعداد صحیح
با استفاده از این دستور میتوانید دو مقدار ثابت و یا محتویات درون دو رجیستر را باهم جمع کرده و حاصل را درون یک رجیستر دیگر قرار دهید.
این دستور به صورت معکوس شمارش میکند. همانند برعکس دستور INC.
دستورات ریاضی
اعمال ریاضی برای 16 بیتی:
جمع: ADD
تفریق: SUB
ضرب: MUL
تقسیم: DIV
اعمال ریاضی برای 32 بیتی:
جمع: DADD
تفریق: DSUB
ضرب: DMUL
تقسیم: DDIV
اعمال ریاضی برای اعداد اعشاری:
جمع: DADDR
تفریق:DSUBR
ضرب: DMULR
تقسیم: DDIVR
محدوده اعداد 16 بیتی از 32768+ و 32767- است. اعداد بزرگتر از این محدوده به عنوان 32 بیتی در نظر گرفته میشوند.
دستور جمع (ADD) برای اعداد صحیح
با استفاده از این دستور میتوانید دو مقدار ثابت و یا محتویات درون دو رجیستر را باهم جمع کرده و حاصل را درون یک رجیستر دیگر قرار دهید.
مثال: دو عدد ثابت K250 و K60 را با یکدیگر جمع کنید.
با فعال شدن X0، مقادیر K250 و K60 با هم جمع شده و مقدار K310 در D0 ریخته شده است.
دقت کنید که حاصل اعمال ریاضی در دستورات 16 بیتی از 32768+ تا 32767- بیشتر نشود.
دستور تقسیم (DIV) اعداد صحیح
با این دستور میتوان دو مقدار ثابت یا محتویات درون دو رجیستر را بر هم تقسیم کرد و در رجیستری دیگر قرار داد.
دستور تفریق (SUB) در اعداد صحیح
مثال: دو عدد صحیح K689 و K248 را از هم کسر کنید.
دستور جمع (ADD) در اعداد صحیح
با توجه به مثال:
دستورات 32 بیتی هم مانند 16 بیتی اجرا می شود. فقط دقت کنید دو رجیستر اشغال می شود. مثلا اگر در مثال بالا 32 بیتی بود، رجیستر D0 و D1 اشغال میشد.
تبدیل فرمت عدد صحیح (INT) به عدد اعشاری (FLOAT)
دستور FLT و DFLT
با استفاده از دستور FLT میتوان فرمت عدد صحیح 16 بیتی را به فرمت 32 بیتی اعشاری تغییر داد و با استفاده از دستور DFLT میتوان فرمت عدد صحیح 32 بیتی را به فرمت 32 بیتی اعشاری تغییر داد.
مثال: در این برنامه عدد صحیح 16 بیتی درون رجیستر D0 به فرمت اعشاری 32 بیتی تبدیل شده و درون رجیسترهای D1 و D2 منتقل میشود.
بعد از تبدیل فرمت عدد صحیح به عدد اعشاری باید نحوه نمایش عدد در برنامه را نیز به حالت اعشاری تغییر دهیم. کافیست به ترتیب زیر عمل کنید:
بعد از انتخاب Float، نحوه نمایش اعداد نیز به صورت اعشاری خواهد شد.
دستور جمع اعداد اعشاری (DADDR)
به عنوان مثال دو عدد اعشاری 32.8 و 123.542 را با یکدیگر جمع کرده و حاصل را در یک رجیستر مانند D0 میبینیم:
رجیستر های D0 و D1 به دلیل 32 بیتی بودن این دستور مورد استفاده میگیرد.
برای وارد کردن اعداد ثابت اعشاری باید از پیشوند F استفاده کرد.
دستور جمع اعداد اعشاری (DADDR) با مقدار دادن به رجیستر های برنامه:
برای مقدار دادن به رجیسترها بعد از دانلود برنامه روی حالت ONLINE دستور فوق را انتخاب کنید. سپس روی آن کلیک راست کرده و گزینه Change present value انتخاب میکنید.در پنجره باز شده از کادر سمت چپ رجیستر مورد نظر انتخاب کرده و درکادر سمت راست، عدد مورد نظر را با پیشوند F مینویسیم. همچنین گزینه 16 یا 32 بیتی بودن را نیز انتخاب میکنید.
دیگر دستورات ضرب، تقسیم و تفریق همانند جمع انجام میشوند.
دستور انتقال MOV
با استفاده از این دستور می توان مقدار درون یک رجیستر یا یک عدد ثابت را به یک رجیستر دیگر انتقال داد.
مثال: با توجه به مثال باید دقت کنید که دستور برای اعداد 32 بیتی به صورت DMOV است همچنین برای اعداد اعشاری DMOVR استفاده می شود.
نکته: به این نکته توجه داشته باشید برای این که عدد درون رجیستر به صورت اعشاری داده شود به صورت زیر عمل کنید.
View > Monitoring Data Format > Float
دستورات مقایسه کننده
این دستورات که برای عمل مقایسه بین دو عدد است. که به صورت زیر هستند:
LD= : حالت مساوی
LD<> : حالت نامساوی
LD< :="" حالت="">
LD> : حالت بزرگتر
LD<= :="" حالت="" کوچکتر="" یا="">
LD>= : حالت بزرگتر یا مساوی
این دستورات برای اعداد 16 بیتی هستند. برای اعداد 32 بیتی کافی است به ابتدای دستورات D اضافه کنید. برای مثال LD= ، به DLD= تغییر میکند.
=>
مثال: دمای مطلوب درون سالنی 20 درجه است. اگر دما بین 20 تا 30 درجه بود چیلر اول کار کند اگر بین 30 تا 35 بود چیلر دوم هم اضافه شود اگر 35 به بالا بود هر سه چیلر باهم کار کند اگر دما به 27 درجه رسید چیلر دوم تا سوم خاموش شود و اگر از 17 درجه دما کمتر شد چیلر اول خاموش شود. chiller 1: Y0 chiller 2: Y1 chiller3: Y2
در مثال بالا با دادن مقدارهای متفاوت به D0 و اجرای برنامه متوجه SET و RST شدن چیلرها می شوید.
راههای ارتباطی نیک صنعت:
- تماس با نیک صنعت: 021:87700210
- واحد فروش نیک صنعت: 09197872783
- واحد تعمیرات نیک صنعت: 09197872789
- ایمیل نیک صنعت: info@nicsanat.com
- آدرس شرکت: تهران، خیابان بهشتی، خیابان میرعماد، خیابان پیمانی(یازدهم)، پلاک 17
مقالات مرتبط
آموزش انواع خروجی پی ال سی PLC
PLC بر اساس خروجی به سه نوع خروجی رله، خروجی ترانزیستور و PLC خروجی Triac تقسیم می شود. نوع خروجی رله برای هر دو دستگاه خروجی AC و DC مناسب است. نوع خروجی ترانزیستور PLC از عملیات سوئیچینگ استفاده می کند و در داخل ریزپردازنده ها استفاده می شود.
30/1/1401
مشاهده مقاله انواع تایمر در برنامه WPLSoft | آموزش تنظیم تایمر در پی ال سی دلتا
در این مقاله به انواع تایمرها در برنامه WPLSoft میپردازیم و نحوه تعیین و تنظیم هر کدام را در پی ال سی دلتا بررسی و آموزش میدهیم
30/1/1401
مشاهده مقاله اتصال انکودر به plc delta
در plc های دلتا دو نوع کانتر برای کانترهای High speed وجود دارد . یک نوع به نام software high speed counter و یک نوع به نام hardware high speed counter . در حقیقت یک نوع نرم افزاری هست و یک نوع سخت افزاری.
30/1/1401
مشاهده مقاله آپلود برنامه از روی plc زیمنس
در این آموزش مراحل آپلود یک برنامه از PLC به کامپیوتر با استفاده از TIA پورتال زیمنس برای پی ال سیs7-300 و s7-400 را توضیح دادهایم.
30/1/1401
مشاهده مقاله
1402/شهریور/13|10:55
تشکر, توضیحات خیلی خوبی بود. ممنون از زحماتتون /// ممنون از شما، بسیار خرسندیم که آموزش wplsoft برای شما مفید واقع شده است