آخرین بلوک ها در Miscellaneous لوگو

آخرین بلوک ها در Miscellaneous لوگو

سه بخش پایانی از بلوک های برنامه نویسی لوگو در قسمت Miscellaneous عبارتند از:

  • Mathematic instruction error detection
  • Float/Integer
  • Integer/Float

تابع تشخیص خطا در عملیات ریاضی

هنگام انجام محاسبات ریاضی مانند تقسیم یک عدد بر 0 با خطا روبه رو خواهیم شد. این خطا ها ممکن است در محاسبات مربوط به PLC نیز رخ دهد. در صورت استفاده از بلوک عملیات ریاضی یا Mathematic instruction در برنامه نویسی لوگو امکان بروز خطای تقسیم بر صفر یا Zero division و سرریز یا Overflow وجود دارد. به منظور کسب اطلاع از وقوع این گونه خطاها باید از بلوک Mathematic instruction error detection استفاده کرد. طبق تصویر زیر این بلوک دارای دو پایه ورودی دیجیتال En و Reset و یک خروجی دیجیتال Q است. از En و R به ترتیب جهت فعال سازی بلوک و صفر کردن خروجی Q استفاده می‌ شود.

تابع تشخیص خطا در عملیات ریاضی لوگو

در تصویر زیر پنجره مشخصات بلوک Mathematic instruction error detection آورده شده است.

پنجره مشخصات بلوک تشخیص خطا در عملیات ریاضی لوگو

پارامترهای بلوک تشخیص خطا در عملیات ریاضی عبارت اند از:

  • Referenced FB: هدف استفاده از بلوک Mathematic instruction error detection، تشخیص خطا در محاسبات ریاضی بلوک Mathematic instruction است. بدیهی است که جهت کسب اطلاع از محاسبات در تابع Mathematic instruction باید آن را به بلوک تشخیص خطا معرفی کرد. به عبارت ساده تر بلوک تشخیص خطا برای خطایابی نیاز به معرفی بلوک تابع ریاضی به عنوان مرجع یا Reference دارد. به منظور تعیین مرجع در بلوک تشخیص خطا از قسمت Referenced mathematic instruction block استفاده می‌شود. قابل ذکر است که در صورت عدم استفاده از بلوک Mathematic instruction در برنامه، مرجع و رفرنسی در کادر زیر قابل انتخاب نخواهد بود. به بیان دیگر پیش از استفاده از بلوک تشخیص خطا باید از بلوک محاسبات ریاضی در برنامه استفاده شده باشد.

  • Error to detect: خطای سر ریز یا Overflow و خطای تقسیم بر صفر یا Zero division خطا های مورد بررسی در بلوک تشخیص خطا هستند. در پنجره مشخصات این بلوک جهت انتخاب نوع خطا می توان یکی از سه گزینه ی زیر را انتخاب کرد:
    1. Zero division یا خطای تقسم بر صفر
    2. Overflow یا خطای سرریز
    3. Zero division or overflow: با انتخاب این گزینه هر دو خطا مورد بررسی قرار می‌گیرد.
  • Auto Reset: با انتخاب این گزینه و در صورت رفع خطا مجدد خروجی Q ریست خواهد شد. به بیان دیگر فعال کردن گزینه Automatically reset در پنجره مشخصات این بلوک موجب صفر شدن خودکار خروجی آن پس از رفع خطا می‌شود.

جهت آشنایی با تایمر تاخیر در وصل لطفا مقاله ی On-Delay timer لوگو را مطالعه کنید. در این مقاله قابلیت Protection active شرح داده شده است.

تشخیص خطا با استفاده از بلوک Mathematic instruction error detection به دو نکته زیر بستگی دارد:

  1. فعال بودن پایه En
  2. انتخاب مرجع و Reference در پنجره مشخصات این بلوک

پس از برقرای دو شرط بالا و در صورت رخ دادن خطا در تابع محاسبات ریاضی، خروجی بلوک Mathematic instruction error detection فعال می‌شود. وضعیت خروجی Q یکی از دو حالت زیر خواهد بود:

  1. اگر گزینه Automatically reset در پنجره مشخصات بلوک تشخیص خطا فعال باشد، خروجی پس از رفع خطا به صورت اتوماتیک غیر فعال می‌شود.
  2. اگر گزینه Automatically reset فعال نشده باشد باید خروجی به صورت دستی ریست شود. برای اینکار پس از رفع خطا باید پایه ی Reset را فعال کرد.

عملکرد خروجی Q هنگام رخ دادن خطای تقسیم بر صفر یا خطای سر در جدول زیر بررسی شده است. علامت “x” نشان دهنده ی بیت یک یا صفر است که تاثیری روی وضعیت خروجی ندارد.

خطای مورد نظر جهت تشخیص خطای رخ داده خروجی Q
تقسیم بر صفر یا Zero division سرریز یا Overflow
تقسیم بر صفر 1 x 1
تقسیم بر صفر 0 x 0
سرریز x 1 1
سرریز x 0 0
تقسیم بر صفر یا سرریز 1 0 1
تقسیم بر صفر یا سرریز 0 1 1
تقسیم بر صفر یا سرریز 1 1 1
تقسیم بر صفر یا سرریز 0 0 0

در تصویر زیر بلوک تشخیص خطا در عملیات ریاضی به همراه پارامترهای آن نمایش داده شده است. عبارت های درج شده در کنار این بلوک عبارتنداز:

  • حرف Rem نماینده قابلیت Retentivity در پنجره مشخصات بلوک است.
  • Source نشان دهنده‌ی مرجع یا Reference انتخاب شده در بلوک است. عبارت null در این قسمت نشان دهنده‌ی عدم انتخاب یک تابع ریاضی در بلوک تشخیص خطا است.
  • Zero div در صورت فعال بودن گزینه ی تقسیم بر صفر، این گزینه در پنجره مشخصات بلوک به شکل حرف Y نمایش داده می‌شود.
  • فعال بودن یا نبودن خطای Overflow یا سرریز نیز از پنجره مشخصات بلوک قابل مشاهده است. در تصویر زیر در مقابل هر دو خطای سرریز و تقسیم بر صفر حرف Y (Yes) نوشته شده است. این عبارت نشان دهنده ی انتخاب گزینه ی  Zero division or Overflow در پنجره مشخصات بلوک است.
  • Auto Rst مخفف عبارت Automatic reset بوده و موجب ریست شدن خودکار خروجی Q در صورت از بین رفتن خطای می‌شود.

بلوک تشخیص خطا در عملیات ریاضی به همراه پارامترهای آن

مبدل Float/Integer

استفاده از این بلوک تنها در ورژن های LOGO! 8.FS4 به بعد امکان پذیر است. این تابع یک عدد Float ذخیره شده در VM را به یک عدد Integer یا صحیح تبدیل کرده و نتیجه را به صورت AQ یا eAQ ارائه می کند. در نظر داشته باشید که لوگو تنها با اعداد صحیح سر و کار دارد. به عبارت دیگر اعداد Float را نمی توان به صورت مستقیم از سیستم خارجی مانند شبکه با پروتکل S7/Modbus به لوگو منتقل کرد. در این حالت باید به وسیله‌ی یک مبدل Float به Integer اعداد Float ذخیره شده در VM را به اعداد صحیح تبدیل کرد. در تصویر زیر شماتیک کلی یک بلوک مبدل Float/Integer را مشاهده می کنید.

مبدل Float/Integer

این بلوک دارای خروجی آنالوگ AQ با ویژگی‌های زیر است:

  • می توان آن را به عنوان ورودی توابع دیگر استفاده کرد.
  • یک عدد 16 بیتی Signed است.
  • رنج مقادیر آن در بازه -32768 تا 32767 است.

خروجی eAQ یا Extended analog output در جعبه پارامتر این بلوک به عنوان پارامتر مرجع برای بلوک های دیگر قابل استفاده است. eAQ یک مقدار 32 بیتی Signed با رنج مقادیر متغیر از -999,999,999 تا 999,999,999 می‌باشد. در تصویر زیر موقعیت eAQ در جعبه پارامتر بلوک را مشاهده می‌کنید.

موقعیت eAQ در جعبه پارامتر بلوک تشخیص خطا

پایه سبز رنگ Par در بلوک Float/Integer نماینده پارامترهای زیر است:

  • Type: این قسمت نوع داده‌ی ورودی را مشخص می‌کند. به صورت کلی دو نوع ورودی Float و Double قابل انتخاب بوده که ویژگی های زیر را دارند:
    1. Float: یک عدد 32 بیتی Single-precision
    2. Double: یک عدد 64 بیتی Double-precision
  • VM، آدرس حافظه متغیر یا Variable Memory address: آدرس شروع Float یا Double ذخیره شده در VM از این قسمت تعیین می‌شود. دامنه مقادیر آن برای Float برابر با 0-847 و برای Double برابر با 0-843 است.
  • Resolution: رزولوشن، یک تقسیم کننده برای داده های ورودی است. رنج مقادیر رزولوشن از 001 تا 1000 با فواصل مشخص است.

در تصویر زیر پنجره مشخصات بلوک Float/Integer نمایش داده شده است.

پنجره مشخصات بلوک Float/Integer

بلوک Float/Integer پایه ی ورودی نداشته و داده ی آن از VM دریافت می‌ شود. از قسمت Type می توان نوع داده ی ورودی Float/Integer را انتخاب کرد. در قسمت VM Address می توان یک یک آدرس VM برای ذخیره ورودی Float اختصاص داد. در این مرحله دو نکته زیر وجود دارد:

  • Size: ورودی Float چهار بایت و ورودی Double هشت بایت را اشغال می‌کند.
  • Range: رنج یا دامنه در Float از 0 تا 847 و در Double از 0 تا 843 است.

در قسمت رزولوشن یا Resolution اعداد 0.001 تا 1000 با دقت 1/1000 قابل تنظیم هستند. تصویر زیر مقادیر قابل انتخاب را نمایش می دهد.

قسمت رزولوشن یا Resolution اعداد 0.001 تا 1000 با دقت 1/1000 در بلوک تشخیص خطای لوگو

به منظور انجام کامل یک task نیاز به هر دو مبدل Float/Integer و Integer float می باشد. یکی از رایج ترین روش های استفاده از این تابع به این شرح است:

  • انتقال داده‌ی Float از طریق شبکه با پروتکل S7/Modbus و ذخیره آن‌ها در VM
  • تبدیل داده‌ی Float ذخیره شده در VM به Integer با استفاده از بلوک Float/Integer
  • پردازش مقدار Integer با استفاده از ماژول اصلی لوگو
  • تبدیل نتیجه به Float با استفاده از بلوک Integer/Float و ذخیره آن‌ها در VM
  • انتقال داده‌ی Float به سیستم خارجی با استفاده از پروتکل S7/Modbus

خروجی Q در قانون محاسباتی این بلوک به صورت زیر تعریف می شود:

\[Define\;Q = Data\;Input/Resolution\]

مقدار خروجی آنالوگ AQ برابر است با:

  • اگر -32768≤ Q ≤32767 باشد آنگاه خروجی آنالوگ AQ=Q است.
  • اگر Q ≥ 32767 باشد آنگاه خروجی آنالوگ AQ=32767 است.
  • اگر Q ≤ -32768 باشد آنگاه خروجی آنالوگ AQ= -32768 است.

مقدار خروجی آنالوگ eAQ یا Extended analog Output برابر است با:

  • اگر -999,999,999 ≤ Q ≤ 32767 باشد آنگاه Q eAQ =است.
  • اگر Q ≥ 999,999,999 آنگاه 999,999,999 = eAQ است.
  • اگر Q ≤ -999,999,999 باشد آنگاه eAQ = -999,999,999 است.

مطالب شرح داده‌شده در این مقاله را می‌توانید به‌صورت ویدئو در دوره تصویری لوگو زیمنس مشاهده کنید. در این دوره‌ی آموزشی با انواع پی ال سی، زبان‌های برنامه‌نویسی و مینی پی ال سی لوگو زیمنس آشنا می‌شویم. آموزش لوگو از ابتدا صورت گرفته و شامل بررسی ماژول اصلی، کارت‌های توسعه، نصب، سیم بندی، برنامه‌نویسی و کنترل توسط اپلیکیشن و وب سرور می‌شود. در بخش برنامه‌نویسی تمام بلوک‌های دیجیتال، شبکه، آنالوگ و غیره بررسی‌شده و نحوه‌ی کار آن‌ها روی لوگو نمایش داده‌شده است. مانیتورینگ و کنترل لوگو از طریق اپلیکیشن، وب سرور و صفحه‌های طراحی‌شده توسط LWE صورت می‌گیرد. این موارد نیز در دوره‌ی تصویری شرح داده‌شده‌اند. لطفاً جهت مشاهده‌ی سرفصل‌ها و لیست ویدئوهای این دوره روی عبارت لوگو زیمنس کلیک کنید.

مبدل Integer/Float

این مبدل در لوگو ورژن های LOGO! 8.FS4 به بعد قابل استفاده است. وظیفه ی بلوک Integer/Float تبدیل اعداد صحیح یا Integer به اعداد Float و ذخیره ی آن‌ها در VM است. در نظر داشته باشید که لوگو تنها با اعداد صحیح سر و کار دارد. با استفاده از بلوک Integer/Float می توان از لوگو خروجی Float دریافت کرد. در تصویر زیر شماتیک مبدل Integer به Float را مشاهده می کنید.

این بلوک برعکس بلوک Float/Integer دارای یک پایه ورودی آنالوگ Ax بوده که در پنجره مشخصات آن قابل تنظیم است. در قسمت Measurement range می توان بازه ی نمایش داده شده برای مقادیر ورودی آنالوگ را تنظیم کرد.

پنجره مشخصات بلوک مبدل Integer/Float

ورودی Ax می‌تواند از مقادیر زیر انتخاب شود:

  • AI1 تا AI8
  • AM1 تا AM16 در لوگو 7 و AM1 تا AM64 در لوگو 8
  • NAI1 تا NAI32
  • AQ1 تا AQ2 در لوگو 7 و AQ1 تا AQ8 در لوگو 8
  • NAQ1 تا NAQ16 و غیره

اگر ورودی آنالوگ Ax در دسترس نبود می‌توان یک مقدار به Extended analog value یا eAQ نسبت داد. این کار از دو روش قابل انجام است:

  • وارد کردن یک مقدار در قسمت eAQ در پنجره مشخصات بلوک
  • استفاده از پایه ی eAQ در جعبه پارامتر بلوک

در تصویر زیر موقعیت پایه ی eAQ در جعبه پارامتر بلوک نمایش داده شده است.

موقعیت پایه ی eAQ در جعبه پارامتر بلوک مبدل Integer/Float

پارامتر های این بلوک عبارت اند از:

  • Type: در این قسمت نوع داده ی خروجی انتخاب می شود. این داده می‌تواند یک عدد Float سی و دو بیتی Single-precision و یا یک عدد Double شصت و چهار بیتی Double-precision باشد.
  • VM: آدرس حافظه ی متغیر یا Variable Memory address است. آدرس شروع یک Float یا Double ذخیره شده در VM در این قسمت قابل انتخاب است. این آدرس برای Float از 0 تا 847 و برای Double از 0 تا 843 می باشد.
  • Resolution: رزولوشن یک ضریب برای داده های ورودی بوده که رنج مقادیر آن از 0.001 تا 1000 است.
  • eAx یا Extended analog output به عنوان پارامتر مرجع سایر بلوک ها استفاده می‌شود. این متغیر یک مقدار 32 بیتی Signed با رنج مقادیر -999,999,999 تا 999,999,999 است.

برخی از ویژگی های ورودی Ax عبارت اند از:

  1. امکان استفاده از آن به عنوان مقدار ورودی سایر بلوک ها
  2. یک مقدار 16 بیتی Signed
  3. بازه مقادیر -32768 تا 32767

پارامتر های موجود در پنجره مشخصات بلوک Float/Integer عبارت اند از:

  • Type: در این قسمت می توان داده خروجی به عنوان Float یا Double را انتخاب کرد.
  • VM Address: در این قسمت شروع VM Addressیا همان محل ذخیره خروجی Float تعیین می شود. در نظر داشته باشید که ورودی Float 4 بایت و ورودی Double 8 بایت را اشغال می‌کند. هم‌چنین بازه و رنج مقادیر Float از 0 تا 847 و Double از 0 تا 843 است.

پارامتر های موجود در پنجره مشخصات Integer.Float

رزولوشن این بلوک قابل تنظیم روی مقادیر 0.001 تا 1000 با فواصل مشخص بوده و دقت آن 1/1000 است. امکان تنظیم ورودی آنالوگ از طریق قسمت Extended analog value نیز وجود دارد. در صورت عدم اتصال ورودی به پایه ی AX، مقدار تنظیم شده در eAX به عنوان ورودی بلوک Integer/Float در نظر گرفته می‌شود. رنج مقادیر eAx از -999,999,999 تا 999,999,999 است.

قابل ذکر است که امکان استفاده از پارامتر eAq به عنوان مرجع برای پارامترهای دیگری وجود دارد. به این منظور از جعبه پارامتر بلوک استفاده می شود. طبق تصویر زیر پارامتر eAx در ورودی این جعبه و پارامتر eAq در خروجی آن دارای انشعاب است.

پارامتر eAx در ورودی این جعبه و پارامتر eAq در خروجی جعبه پارامتر

معمولا هر دو بلوک مبدل Float/Integer و  Integer/Float به شکل هم‌زمان مورد نیاز هستند. یک روش معمول در استفاده ی هم زمان از این بلوک ها به ترتیب زیر است:

  • انتقال داده ی Float از سیستم خارجی به وسیله ی شبکه با پروتکل S7/Modbus و ذخیره ی آن در VM
  • تبدیل Float ذخیره شده در VM به Integer با استفاده از مبدل Float/Integer
  • پردازش مقدار Integer در ماژول اصلی لوگو یا LOGO! BM
  • تبدیل نتیجه به Float با استفاده از مبدل Integer/Float و ذخیره آن در VM
  • انتقال Float به سیستم خارجی از طریق پروتکل S7/Modbus

مقدار Float در VM address از طریق فرمول زیر محاسبه می‌شود:

\[Float\;value\;in\;VM\;Address = analog\;input\; \times Resolution\]

مقدار خروجی آنالوگ به اتصال یا عدم اتصال ورودی به پایه Ax بستگی دارد. با توجه به وضعیت پایه Ax یکی از حالات زیر رخ می دهد:

  1. اتصال یک ورودی در پایه Ax موجب برابر شدن خروجی AQ با مقدار ورودی آنالوگ متصل به ورودی می‌شود. به عبارت دیگر در این حالت Analog output = Analog value می‌شود.
  2. به پایه Ax در این بلوک ورودی متصل نشده است. در این قسمت ممکن است یکی از 3 حالت زیر ایجاد شود:
    • اگر \( – 32768{\rm{\;}} \le {\rm{\;Extended\;analog\;input\;}} \le {\rm{\;}}32767\) آنگاه Analog output برابر با Extended analog input است.
    • اگر ورودی آنالوگ Ax ≥ 32767آنگاه خروجی آنالوگ برابر با مقدار 32767خواهد بود.
    • اگر ورودی آنالوگ Ax ≤ -32768 آنگاه خروجی آنالوگ برابر با مقدار -32768 خواهد بود.

خروجی آنالوگ Extended analog output یا eAQ ممکن است یکی از حالت های زیر باشد:

  1. اگر ورودی به پایه Ax بلوک متصل شده باشد؛ مقدار خروجی آنالوگ برابر با ورودی آنالوگ می‌شود.
  2. در صورت عدم اتصال ورودی به پایه eAQ یکی از 3 حالت زیر رخ خواهد داد:
    • اگر \( – 999999999{\rm{\;\;}} \le {\rm{\;Extended\;analog\;input\;}} \le {\rm{\;}}999999999\) باشد آنگاه Extended analog output برابر با Extended analog input می‌شود.
    • اگر Extended analog input ≥ 999,999,999 باشد آنگاه Extended analog output برابر با 999,999,999 می‌شود.
    • اگر Extended analog input ≤ -999,999,999 باشد آنگاه Extended analog output برابر با -999,999,999 می‌شود.

به منظور مطالعه ی سایر مقالات برنامه نویسی لوگو لطفا به قسمت مقالات PLC مراجعه کنید.

این مقاله تا چه حد برای شما مفید بود؟

میانگین امتیاز 5 / 5. تعداد رای: 1

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

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