به گروه آموزشی مهندس فرجی خوش آمدید
گروه آموزشی مهندس فرجی|آموزش اتوماسیون صنعتیگروه آموزشی مهندس فرجی|آموزش اتوماسیون صنعتیگروه آموزشی مهندس فرجی|آموزش اتوماسیون صنعتی
09190263668
info@mrfaraji.ir

برنامه‌نویسی با استفاده از بلاک‌های GET و PUT

FB14 مخصوص CPU-300

برنامه‌نویسی با استفاده از بلاک‌های GET و PUT

این سرویس به منظور ارتباط سرور/کلاینت مورد استفاده قرار گرفته و خصوصیات آن عبارتست از:

  • در این سرویس، کلاینت می‌تواند با استفاده از بلاک GET دیتایی را از سرور بخواند (Read) و با استفاده از بلاک PUT دیتایی را در سرور بنویسد (Write).
  • در این سرویس برنامه‌نویسی فقط در سمت کلاینت انجام می‌شود و در سمت سرور نیازی به برنامه‌نویسی وجود ندارد.
  • حجم دیتای قابل تبادل نسبت به استفاده از بلاک‌های BSEND و BRCV خیلی کمتر است. این حجم در S7-300 حداکثر برابر 160 Bytesو در S7-400 برابر 4 × 100 bytes است.
  • کار با این بلاک‌ها نسبت به بلاک‌های BSEND و BRCV، ساده‌تر است.

آشنایی با بلاک GET (FB14/SFB14)

این بلاک فقط در سمت PLC کلاینت مورد استفاده قرار گرفته و نیازی به برنامه‌نویس خاصی در PLC سرور وجود ندارد. با استفاده از این بلاک می‌توان دیتایی را از PLC سرور خوانده و در حافظه مشخصی ذخیره نمود. در شکل 2-8 این بلاک‌ها نشان داده شده است.

FB14 مخصوص CPU-300

SFB14 مخصوص CPU-400
الف) FB14 مخصوص CPU-300

ب) SFB14 مخصوص CPU-400

شکل 2-8

همچنین در جدول 2-6 پارامترهای این بلاک و شرح عملکرد آنها نشان داده شده است.

جدول 2-6 پارامترهای بلاک GET (FB14)

پارامتر ورودی/ خروجی Data/Type عملکرد
REQ Input BOOL فعال‌ساز دریافت دیتا توسط بلاک (با اعمال مقدار یک منطقی دریافت دیتا آغاز می‌شود)
ID Input WORD ID مربوط به کانکشن تعریف شده در NetPro
DONE Output BOOL نشان دهنده پایان دریافت دیتا با گرفتن مقدار یک منطقی، مقدار صفر منطقی بیانگر این است که دریافت دیتا انجام نشده و یا به پایان نرسیده است.
ERROR Output BOOL مقدار یک منطقی بیانگر بروز خطا و مقدار صفر منطقی بیانگر عدم بروز خطا در ارسال اطلاعات است.
STATUS Output WORD کد وضعیت را نشان می‌دهد که در شرایط بروز خطا کد متناسب با نوع خطا را نشان می‌دهد. این کدها در Help بلاک موجود است.
ADDR_i IN_OUT ANY آدرس ناحیه مبدا جهت خواندن دیتا، به فرم Pointer مثلاً                     p# DB10.DBX5.0 Byte 10
RD_i IN_OUT ANY آدرس ناحیه مقصد جهت ذخیره‌سازی دیتا

 

نکته: در S7-400 (با استفاده از SFB14) می‌توان حدأکثر 4 دیتای مختلف را توسط پارامترهای ADDR_1 الی ADDR_4 و RD_1 الی RD_4 خوانده و در حافظه دلخواه قرار داد. ولی در S7-300 (با استفاده از FB14) فقط یک دیتا را می‌توان خواند.

آشنایی با بلاک PUT (FB15/SFB15)

این بلاک فقط در سمت PLC کلاینت مورد استفاده قرار گرفته و نیازی به برنامه‌نویس خاصی در PLC سرور وجود ندارد. با استفاده از این بلاک می‌توان دیتایی را در PLC سرور نوشت. شکل 2-9 این بلاک را در زبان LAD نشان می‌دهد.

FB15 مخصوص CPU-300 SFB15 مخصوص CPU-400

الف) FB15 مخصوص CPU-300

ب) SFB15 مخصوص CPU-400

شکل 2-9

همچنین در جدول 2-7 پارامترهای این بلاک و شرح عملکرد آنها نشان داده شده است.

جدول 2-7 پارامترهای بلاک PUT

پارامتر ورودی/ خروجی Data/Type عملکرد
REQ Input BOOL فعال‌ساز ارسال دیتا توسط بلاک (با اعمال مقدار یک منطقی دریافت دیتا آغاز می‌شود)
ID Input WORD ID مربوط به کانکشن تعریف شده در NetPro
DONE Output BOOL نشان دهنده پایان ارسال دیتا با گرفتن مقدار یک منطقی، مقدار صفر منطقی بیانگر این است که دریافت دیتا انجام نشده و یا به پایان نرسیده است.
ERROR Output BOOL مقدار یک منطقی بیانگر بروز خطا و مقدار صفر منطقی بیانگر عدم بروز خطا در ارسال اطلاعات است.
STATUS Output WORD کد وضعیت را نشان می‌دهد که در شرایط بروز خطا کد متناسب با نوع خطا را نشان می‌دهد. این کدها در Help بلاک موجود است.
ADDR_i IN_OUT ANY آدرس ناحیه مقصد جهت ذخیره‌سازی دیتا، به فرم Pointer مثلاً               p# DB10.DBX5.0 Byte 10
SD_i IN_OUT ANY آدرس ناحیه مبدا جهت خواندن دیتا

 

نکته: در S7-400 (با استفاده از SFB15) می‌توان حدأکثر 4 دیتای مختلف را توسط پارامترهای ADDR_1 الی ADDR_4 و RD_1 الی RD_4 در CPU مقصد نوشت(منتقل نمود)، ولی در S7-300 (با استفاده از FB15) فقط یک دیتا را می‌توان منتقل نمود.

مثال 3 تبادل دیتا بین دو PLC با استفاده از بلاک‌های GET و PUT

برنامه‌ای بنویسید که اطلاعات IB1 در PLC1 را به QB4 در PLC2 منتقل نماید.

مراحل انجام تمرین:

  • در سمت PLC1 وارد بلاک OB35 شده و برنامه نشان داده شده در شکل 2-10 را پیاده‌سازی نمایید.
PLC1 وارد بلاک OB35 PLC1 وارد بلاک OB35

شکل 2-10

  • برنامه را به PLC1 دانلود نموده و تست نمایید.

2-4  ارتباطات Open با استفاده از Blocks SEND/RECIVE

این سرویس دارای مشخصات ذیل است:

  • ارتباطات استاندارد توسط این سرویس پشتیبانی می‌شود.
  • ارتباطات می‌تواند با استفاده از CP و یا پورت پروفی‌نت روی CPU انجام شود (البته مطابق ملاحضات فنی)
  • برای انجام ارتباطات نیاز به ایجاد کانکشن در Net Pro وجود دارد.
  • به جز در سرویس UDP، تایید دریافت دیتا توسط گیرنده انجام می‌شود.
  • تایید دریافت دیتا توسط “برنامه درون گیرنده” انجام نمی‌شود. توجه شود که این مفهوم با مفهوم “تایید دریافت توسط گیرنده” متفاوت است.

جدول 2-8 خصوصیات و بلاک‌های مورد استفاده در این روش را نشان می‌دهد.

جدول 2-8 خصوصیات و بلاک‌های مورد استفاده در ارتباطات Open

بلاک‌های مورد استفاده در ارتباطات Open

نکته: به جز سرویس ISO که فقط با استفاده از کارت CP قابل پیاده‌سازی است، سایر سرویس‌ها را می‌توان با استفاده از پورت پروفی‌نت روی CPU نیز پیاده‌سازی نمود. البته در این حالت تنظیمات با استفاده از نرم‌افزار Open Communication Wizard انجام شده و با استفاده از بلاک‌های AG_SEND و AG_REC امکان‌پذیر نمی‌باشد.

در جدول 2-8:

AG_xSEND به معنای امکان استفاده از بلاک‌های AG_SEND، AG_LSEND و AG_SSEND است.

AG_xREC به معنای امکان استفاده از بلاک‌های AG_RECV، AG_LRECV و AG_SRECV است.

جداول 2-9 و 9-10 بلاک‌های مورد استفاده سرویس ارتباطی SEND/RECIVE را نشان می‌دهد.

 جدول 2-9

بلاک‌های مورد استفاده سرویس ارتباطی SEND/RECIVE

جدول 2-10

بلاک‌های مورد استفاده سرویس ارتباطی SEND/RECIVE

جدول 2-11 محل قرارگیری این بلاک‌ها در نرم‌افزار STEP7 را نشان می‌دهد.

جدول 2-11 محل قرارگیری بلاک‌های ارتباطات Open در نرم‌افزار STEP7

بلاک‌های ارتباطات Open در نرم‌افزار STEP7

نکته: در سرویس Fetch/Write کاربرد PLC S7 بعنوان سرور بوده و کلاینت می‌تواند دیتایی را از آن بخواند (Fetch) و یا در آن Write نماید. کلاینت می‌تواند یک سیستم غیر زیمنسی و یا مثلاً PLC S5 باشد.

2-5 بررسی سرویس ارتباطی ISO Transport (ISO)

این سرویس یک سرویس استاندارد محسوب شده و به‌منظور ارتباط با هر نوع سیستمی که قابلیت پشتیبانی از استاندارد ISO را داشته باشد، قابل استفاده است. برخی از خصوصیات این سرویس عبارتست از:

  • انتقال دیتا می‌تواند با استفاده از سرویس‌های SEND/RECEIVE و FETCH/WRITE انجام شود.
  • تبادل دیتا بین ایستگاه‌های مختلف با استفاده از MAC address انجام می‌شود.
  • حداکثر حجم دیتای ارسالی با استفاده از بلاک‌های AG_SEND و AG_ RECV برابر 8 Kbytes است.
  • دریافت دیتا توسط گیرنده، تایید می‌شود.
  • انتقال دیتا در این روش دارای قابلیت اطمینان بسیار بالایی است.
  • استفاده از Router یا مسیریاب را پشتیبانی نمی‌کند.

نکته: این سرویس در زیمنس، فقط با استفاده از کارت شبکه (CP) قابل استفاده است.

آشنایی با بلاک‌های AG_SEND و AG_RECV

از آنجا که این دو بلاک در بخش Profibus تشریح شدند، از ذکر مجدد نکات آنها خودداری نموده و صرفاً یک مثال ارائه می‌نماییم.

مثال4 تبادل دیتا بین دو PLC با استفاده از سرویس ارتباطی ISO و بلاک‌های AG_SEND و AG_RECV

برنامه‌ای بنویسید که اطلاعات درون MB90 از PLC1 را به حافظه MB60 در PLC2 منتقل نماید.

مراحل انجام تمرین:

  • دو عدد Station 300 تعریف نمایید.
  • در محیط پیکربندی برای هر کدام از PLCها یک کارت CP343-1 قرار دهید.
  • هر دو کارت CP343-1 را به یک شبکه اترنت واحد متصل نمایید.
  • وارد محیط NetPro شده و بین دو PLC یک کانکشن از نوع ISO Transport ایجاد نمایید.
  • تنظیمات را Compile نموده و سپس به هر دو PLC دانلود نمایید.
  • در سمت PLC1 وارد بلاک OB35 شده و برنامه نشان داده شده در شکل 2-11 را پیاده‌سازی نمایید.
PLC1 وارد بلاک OB35 PLC1 وارد بلاک OB35
PLC1 وارد بلاک OB35
PLC1 وارد بلاک OB35 PLC1 وارد بلاک OB35

شکل 2-11

  • در سمت PLC2 وارد OB1 شده و برنامه نشان داده شده در شکل 2-12 را پیاده‌سازی نمایید.
PLC2 وارد OB1 PLC2 وارد OB1

شکل 2-12

 

پیام بگذارید