توابع محاسبات ریاضی و مقایسهگر آنالوگ
توابع محاسبات ریاضی و مقایسهگر آنالوگ لوگو
سه عنصر اصلی در یک چرخه ی کنترلی شامل سنسور، کنترلر یا PLC و عملگر ها می شود. در مقاله ی قبلی با نحوه ی اندازه گیری کمیت های فیزیکی با سنسور، ارسال سیگنال الکتریکی از سنسور به PLC LOGO و نحوه اسکیل کردن ورودی های آنالوگ لوگو آشنا شدیم. به منظور پردازش مقادیر آنالوگ در لوگو باید از توابع آنالوگ یا Special function استفاده کنیم. در این مقاله توابع آنالوگ زیر شرح داده می شود:
- دستورالعملهای ریاضی یا Mathematic instruction
- مقایسه کنندهی آنالوگ یا Analog comparator
دستورالعملهای ریاضی یا Mathematic instruction
از این بلوک جهت انجام یک سری محاسبات ثابت ریاضی استفاده می شود. این محاسبات در پنجره مشخصات بلوک دستورالعمل های ریاضی یا Mathematic instruction تعریف می شوند. به عبارت ساده تر ابتدا باید یک معادله با عملوندها یا operand و عملگرها یا Operator طراحی شود. در ادامه این بلوک می تواند مقدار آنالوگ خروجی را از طریق معادله ی فوق به دست آورد. در تصویر زیر شماتیک بلوک دستورالعمل های ریاضی را مشاهده می کنید.
تنظیمات مربوط به پایه سبز رنگ Par از طریق جعبه پارامتر و یا پنجره مشخصات آن انجام می شود. همانطور که قبلا اشاره شد می توان از طریق علامت + پائین بلوک به جعبه پارامتر آن دسترسی پیدا کرد. در تصویر زیر موقعیت این علامت نمایش داده شده است.
اعمال یک لبه مثبت در ورودی En موجب فعال شدن بلوک خواهد شد. قسمت Instruction از تب Parameter این بلوک شامل پارامترهای زیر است:
- V1 تا V4: به ترتیب operand یا عملوندهای اول تا چهارم با رنج مقادیر -32768 تا 32767 میباشند.
- Operator1 تا Operator 3: به ترتیب عملگرهای اول تا سوم هستند. عملگرها میتواند جمع، تفریق، ضرب و یا تقسیم باشد. تعداد Operator ها روی 3 و تعداد Operand ها روی 4 تنظیم شده است. در صورت نیاز به تعداد کمتری Operator در یک برنامه از ساختار “0+” یا “1*” استفاده کنید.
- Priority 1 تا Priority 3: به ترتیب نشان دهندهی اولویت عملیات اول، اولویت عملیات دوم و اولویت عملیات سوم هستند. در این قسمت 3 حالت H، L و M مخفف High، Low و Medium می باشند. به عنوان مثال اگر اولویت عملگر اول را برابر با H، عملگر دوم را برابر با L و عملگر سوم را برابر با M قرار دهید ترتیب اولویت عملگرها برابر با Operator 1، Operator 3 و Operator 2 خواهد بود. به صورت کلی به هر عملگر یا Operator باید یک اولویت اختصاص داده شود.
تصویر زیر نشان دهنده ی گزینه های فوق در پنجره مشخصات بلوک است:
طبق تصویر زیر در قسمت Decimal Places گزینه ی Decimal Places in the message text یا P وجود دارد. p نماینده Number of decimal بوده و مشخص کننده تعداد رقم اعشار در نمایشگر متنی لوگو یا Message text است. این پارامتر روی یکی از اعداد 0، 1، 2 و یا 3 قابل تنظیم می باشد.
نتیجه ی محسبات انجام شده در خروجی AQ قرار می گیرد. در صورت تقسیم بر 0 یا رخ دادن پدیده سرریز در محاسبات، مقدار خروجی آنالوگ برابر با 32767 و در صورت رخ دادن سرریز منفی، خروجی برابر با -32768 خواهد بود. جهت پیکربندی رفتار بلوک در هنگام صفر بودن پایه Enable یا En میتوان از پنجره مشخصات بلوک استفاده کرد. به این منظور در تب Parameter قسمت Output دو گزینه 0 و Last Value قرار داده شده است. از این قسمت می توان رفتار مقدار خروجی هنگام غیر فعال شدن پایه Enable (En=0) را تنظیم کرد. با انتخاب گزینه 0 در هنگام صفر شدن پایه En مقدار خروجی بلوک برابر با 0 خواهد شد. انتخاب گزینه Last Value موجب حفظ آخرین مقدار خروجی پیش از 0 شدن En می گردد.
در نظر داشته باشید که بلوک Mathematic instruction در لوگو ورژن 6 به بعد وجود دارد. در تصویر زیر، پنجره مشخصات این بلوک به صورت کامل نمایش داده شده است.
به منظور درک بهتر عملکرد این بلوک به مثال های زیر توجه کنید:
مثال اول
در این مثال مقادیر V1 تا V4 به ترتیب برابر با 12، 6 ، 3 و 1 هستند. عملگرهای 1 تا 3 نیز به ترتیب جمع، تقسیم و تفریق با اولویت متوسط، بالا و پایین می باشند. در این مثال نحوه ی عملکرد بلوک به شکل زیر خواهد بود:
- تابع محاسبات ریاضی لوگو ابتدا متغییر با اولویت H را محاسبه می کند. در جدول فوق اولویت V2 با عملگر تقسیم بالاترین اولویت یا همان H است. نتیجه ی این محاسبه حاصل تقسیم مقدار V2 بر V3 خواهد بود: A=6/3=2
- در ادامه مقدار نهایی مرحله ی قبل یا همان A با متغیر اولویت بعدی یعنی M محاسبه می شود. در این مثال مقدار جدید عبارت است از: B=2+12=14
- در مرحله ی آخر و متناسب با عملگر V4 مقدار B با مقدار V4 محاسبه خواهد شد. نتیجه محاسبات فوق برابر با C=14-1=13 است.
مثال دوم
معادله ی این جدول به شکل output=2+(3*(1+4)) تعریف شده و مقدار نهایی آن 17 خواهد بود.
مثال سوم
معادله ی این مثال به شکل output=(100-25)/(2+1) بوده و مقدار آن برابر با 25 است.
مطالب شرح دادهشده در این مقاله را میتوانید بهصورت ویدئو در دوره تصویری لوگو زیمنس مشاهده کنید. در این دورهی آموزشی با انواع پی ال سی، زبانهای برنامهنویسی و مینی پی ال سی لوگو زیمنس آشنا میشویم. آموزش لوگو از ابتدا صورت گرفته و شامل بررسی ماژول اصلی، کارتهای توسعه، نصب، سیم بندی، برنامهنویسی و کنترل توسط اپلیکیشن و وب سرور میشود. در بخش برنامهنویسی تمام بلوکهای دیجیتال، شبکه، آنالوگ و غیره بررسیشده و نحوهی کار آنها روی لوگو نمایش دادهشده است. مانیتورینگ و کنترل لوگو از طریق اپلیکیشن، وب سرور و صفحههای طراحیشده توسط LWE صورت میگیرد. این موارد نیز در دورهی تصویری شرح دادهشدهاند. لطفاً جهت مشاهدهی سرفصلها و لیست ویدئوهای این دوره روی عبارت لوگو زیمنس کلیک کنید.
توابع تو در تو بخش آنالوگ
در برنامه نویسی گاهی اوقات نیاز به پارامترهای متغییر خواهیم داشت. در این روش از بلوک های تو در تو برای جایگزین کردن مقادیر استفاده می شود. در مقاله ی تایمر تاخیر در وصل لوگو می توانید با این روش بیشتر آشنا شوید. تصور کنید نیاز باشد در بلوک Mathematic instruction محاسباتی روی مقادیر متغیر انجام شود. در این حالت می توان به جای تنظیم مقادیر ثابت V1 تا V4 از روش بلوک های تودرتو استفاده کرد. بلوک های تودرتو در واقع ایجاد کننده ی ارتباط میان جعبه پارامتر در بلوکهای مختلف هستند. با استفاده از این روش؛ مقدار پارامتر یک بلوک به بلوک دیگری وابسته خواهد شد. قابل ذکر است که جعبه پارامتر تنها در بلوکهای مجهز به ورودی Par وجود دارد. به منظور دسترسی به جعبه پارامترها می توانید از علامت + در پاییین هر بلوک استفاده کنید.
به عنوان مثال می توان مقدار V1 بلوک Mathematic instruction را با استفاده از مقدار Ax-Ay در بلوک مقایسه کنندهی آنالوگ تعیین کرد. برای این کار ابتدا یک بلوک محاسبات ریاضی و یک بلوک مقایسه کننده ی آنالوگ را وارد برنامه می کنیم.
جهت تنظیم مقدار V1 با استفاده از مقدار خروجی بلوک مقایسه کننده ی آنالوگ باید خروجی Ax-Ay در بلوک Analog comparator را به ورودی P1 از بلوک محاسبات ریاضی متصل کنیم. این اتصال در تصویر زیر انجام شده است. همانطور که مشاهده می کنید پس از اتصال در مقابل V1 عبارت B2 درج خواهد شد. این عبارت به معنی وابستکی پارامتر V1 به مقدار خروجی بلوک B2 است.
با اتصال Ax-Ay به P1 مقدار پارامتر V1 در پنجره مشخصات بلوک محاسبات ریاضی از بلوک مقایسه کنندهی آنالوگ گرفته میشود. این امر در پنجره مشخصات بلوک نیز ثبت خواهد شد. همانطور که مشاهده می کنید در بخش V1 عبارت بلوک analog comparator درج شده است.
به منظور کسب اطلاعات از مقادیر مجاز برای تنظیم مقدار پارامتر هر بلوک می توان از دفترچه راهنمای نرمافزار استفاده کرد. جهت آشنایی با اجزاء مختلف جعبه پارامتر می توانید مقاله ی بلوک های برنامه نویسی در لوگو را مطالعه کنید.
مقایسه کنندهی آنالوگ یا Analog comparator
طبق تصویر زیر از بلوک Analog comparator جهت مقایسه دو مقدار آنالوگ با یکدیگر استفاده میشود. در این بلوک خروجی Q با توجه به مقدار Ax – Ay و دو آستانهی قابل تنظیم؛ فعال یا غیرفعال خواهد شد. ورودیهای بلوک شامل Ax و Ay بوده که هردو سیگنال آنالوگ هستند. موارد زیر را می توان به این ورودی ها متصل کرد:
- AI1 تا AI8 به صورت 0 تا 10 ولت که روی رنج 0 تا 1000 اسکیل شده اند.
- AM1 تا AM6 در لوگو 6، AM1 تا AM16 درلوگو 7 و AM1 تا AM64 در لوگو 8
- NAI1 تا NAI32 در لوگو 7 یا 8
- AQ1 تا AQ2 در لوگو 7 و AQ1 تا AQ8 در لوگو 8
- NAQ1 تا NAQ16 در لوگو 7 یا 8 و غیره
در ویدئوی زیر که برگرفته از دوره جامع لوگو 8 است بلوک مقایسه کننده ی آنالوگ را به صورت کامل بررسی می کنیم:
با دابل کلیک روی بلوک مقایسه کننده می توان پنجره مشخصات آن را باز کرد. با کلیک راست روی این بلوک و انتخاب گزینه Block Properties نیز این پنجره نمایش داده خواهد شد. در این بخش می توان پارامترهای زیر را تنظیم کرد:
1) Sensor: این بخش مشخص کنندهی نوع سیگنال آنالوگ است. این پارامتر میتواند یکی از حالت های ولتاژی 0/10 ولت یا جریانی 0/20 یا 4/20 میلی آمپر، PT100 و غیره را داشته باشد. در تصویر زیر گزینههای قابل انتخاب در کادر Sensor را مشاهده می کنید:
رنج قابل تنظیم برای سایر تنظیمات آنالوگ در جدول زیر آورده شده است:
پارامتر | بازهی قابل تنظیم |
Gain | -10.00 تا 10.00 |
Offset | -10000 تا 10000 |
On یا آستانه روشن شدن | -20000 تا 20000 |
Off یا آستانه خاموش شدن | -20000 تا 20000 |
P یا تعداد رقم اعشار | قابل تنظیم روی یکی از اعداد 0، 1، 2 یا 3 |
2) Measurement Range: در پنجره مشخصات این بلوک و بخش Measurement Range مقادیری با عنوان های Maximum و Minimum وجود دارند. این مقادیر مشخص کنندهی بازهی اندازهگیری بلوک هستند. همانطور که میدانید این رنج در حالت استاندارد بین 0 تا 1000 بوده که با تغییر Gain و Offset به صورت خودکار تعیین می شود.
3) Gain و Offset: فرض کنید ورودی آنالوگ AI1 را به پایه ی Ax و ورودی AI2 را به پایه ی Ay متصل کرده و مقادیر Gain و Offset را به ترتیب روی 3 و 0 تنظیم کنیم. در این حالت رنج اندازه گیری به بازه ی 0 تا 3000 تغییر خواهد کرد. همانطور که می دانید رنج استاندار در بازه ی 0 تا 1000 بوده و این نشان دهنده ی 3 برابر شدن این دامنه است. به عبارت دیگر با تغییر Gain از 1 به 3، بازه استاندار پارامتر Measurement Range از 0 تا 1000 به 0 تا 3000 تغییر می کند. با این کار بازه تغییرات 0 تا 1000 ورودیهای AI1 و AI2 به شکل بازه 0 تا 3000 به بلوک مقایسه کنندهی آنالوگ منتقل میشود. به صورت کلی مقادیر Minimum و Muximum در بازه اندازه گیری متناسب با Gain و Offset تغییر خواهند کرد.
همانطور که در مقاله ی قبلی شرح داده شد با تنظیم اشتباه مقادیر Max و Min، نرم افزار خطا خواهد داد. فرض کنید پارامتر Sensor روی گزینه 4…20 ma تنظیم شده باشد. به این ترتیب پارامترهای Gain و Offset به صورت خودکار به مقادیر 1.25 و -250 تغییر می کنند. طبق تصویر زیر در این حالت مقدار ماکسیمم و مینیمم بازه اندازه گیری برابر با 0 تا 1000 خواهد بود.
در این حالت اگر به دلخواه یکی از مقادیر Maximum یا Minimum را تغییر دهیم عبارت قرمز رنگ زیر نمایش داده می شود. عبارت زیر از کاربر میخواهد که رنج اندازه گیری را در بازهی 1 تا 1001 تنظیم کند. با این کار خطای به وجود آمده برطرف خواهد شد.
نحوه عملکرد این تابع پس از تنظیمات فوق به این شکل خواهد بود:
- مقدار سیگنال ورودی آنالوگ Ax خوانده میشود.
- مقدار خوانده شده در Gain ضرب و با مقدار Offset جمع خواهد شد. به حاصل این معادله مقدار واقعی یا Actual value Ax گفته می شود
- مقدار Ay نیز خوانده شده و در معادله ی فوق قرار می گیرد.
\[\left( {Ay\;*\;gain} \right)\; + \;offset\; = \;Actual\;value\;Ay\]
\[\left( {Ax\;*\;gain} \right)\; + \;offset\; = \;Actual\;value\;Ax\]
- پس از محاسبه مقادیر واقعی Ax و Ay پاسخ معادله Actual value Ax – Axtual value Ay با مقادیر آستانه روشن و خاموش شدن مقایسه میشود. مقدار آستانه روشن و خاموش شدن در قسمت Threshold On و Threshold Off در پنجره پارامتر این بلوک قابل تنظیم هستند. در تصویر زیر موقعیت این پارامتر ها را مشاهده می کنید:
- بر اساس مقادیر انتخاب شده برای آستانه روشن و خاموش شدن، یکی از حالات زیر رخ خواهد داد:
- حالت اول) اگر آستانه روشن شدن یا On ≥ آستانه خاموش شدن یا Off باشد:
\[Q = 1\;\;\;\;\;if\;\;\;\;\;\;\;\;\;\;\left( {{\rm{Actual\;value\;Ax\;}}–{\rm{\;Axtual\;value\;Ay}}} \right) > on\]
\[Q = 0\;\;\;\;\;if\;\;\;\;\;\;\;\;\left( {{\rm{Actual\;value\;Ax\;}}–{\rm{\;Axtual\;value\;Ay}}} \right) \le Off\]
- حالت دوم) اگر آستانه روشن شدن یا On < آستانه خاموش شدن یا Off باشد:
\[Q = 1\;\;\;\;\;if\;:On \le \left( {{\rm{Actual\;value\;Ax\;}}–{\rm{\;Axtual\;value\;Ay}}} \right) < Off\]
\[Q = 0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;Else\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\]
در تصویر زیر نمودار عملکرد تابع مقایسه کنندهی آنالوگ برای یک مثال رسم شده است. در این تصویر آستانه روشن و خاموش شدن با یکدیگر برابر در نظر گرفته شدهاند. به عبارت دیگر در این مثال On = Off = 200 بوده و حالت اول از دو حالت فوق است. در این مثال قسمت هایی که در آن Ax – Ay > 200 باشد، خروجی Q برابر با 1 خواهد بود.
در نظر داشته باشید که بعلت وجود پایه سبز رنگ Par؛ استفاده از روش توابع تودرتو در این بلوک نیز امکان پذیر است. با این ویژگی می توان مقادیر دو پارامتر On و Off در بلوک مقایسه کنندهی آنالوگ را به بلوکهای دیگری وابسته کرد. به بیان دیگر امکان تنظیم مقادیر متغیر برای پارامترهای آستانه روشن شدن یا On و آستانه خاموش شدن یا Off در این بلوک وجود دارد. در تصویر زیر جعبه پارامتر بلوک مقایسه کننده آنالوگ را مشاهده میکنید. جهت کسب اطلاعات بیشتر به دفترچه راهنمای نرمافزار لوگوسافت مراجعه فرمایید.
به منظور شرح عملکرد این بلوک تصور کنید دو سنسور دمای PT100 در یک پروژه وجود دارد. در این مدار هنگام رخ دادن اختلاف دمای بالای 20 درجه باید خروجی Q روشن شده و با کاهش اختلاف دما به 10 درجه و پائین تر مجدد خاموش شود. در پروژه می توان از دو ورودی آنالوگ، یک بلوک مقایسه کننده و یک خروجی Q استفاده کرد. تصویر زیر نحوه اتصال این بلوک ها را نشان می دهد:
در پنجره مشخصات بلوک مقایسه کننده آنالوگ باید سنسور PT100 را انتخاب کنیم. تصویر زیر تنظیمات انجام شده در بلوک Analog comparator را نشان می دهد.
با انجام تنظیمات بالا و دانلود برنامه روی لوگو می توان مقادیر ورودی های آنالوگ AI1 و AI2 متصل به پی ال سی را مقایسه کرد.
به منظور آشنایی با تایمر تاخیر در وصل لطفا مقاله ی On-Delay timer لوگو را مطالعه کنید. در این مقاله قابلیت Protection active شرح داده شده است.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.