2-3 تبادل دیتا بین دو یا چند PLC
در این روش که کم کاربردترین عملکرد MPI است، میتوان بین دو یا چند PLC S7-300,S7-400 با یکدیگر تبادل دیتا نمود. برای این امر، سرویسهای ارتباطی مختلفی توسط زیمنس ارائه شده است که در بخش بعدی بررسی میشود.
شکل 1-3 کاربردهای مختلف شبکه MPI
3- سرویسهای ارتباطی MPI
زیمنس بهمنظور انجام ارتباطات مختلف توسط شبکه MPI، اقدام به ارائه سرویسهای مختلف به شرح ذیل نموده است:
- PG/OP communication: جهت ارتباط با مانیتورینگ، جهت ارتباط Programming
- S7 communication: به منظور تبادل دیتا بین چند PLC
- S7 basic communication: به منظور تبادل دیتا بین دو PLC
- (Global Data Communication (GD: به منظور تبادل دیتا بین چند PLC
هر کدام از سرویسهای فوق دارای خصوصیات و تنظیمات خاص خود است که سه مورد آخر سرویسهای ارتباطی در ادامه این بخش بررسی میگردد.
الف) سرویسهای قابل پشتیبانی در شبکه MPI توسط S7-300
همانطور که در جدول … مشخص است، سرویسهای قابل پشتیبانی توسط S7-300 در شبکه MPI عبارتند از:
- (Global Data Communication (GD
- S7 basic communication
- S7 communication: فقط با استفاده از بلاکهای PUT و GET میتوان در PLC S7-300 دیتایی را خواند یا نوشت. این بلاکها باید در سمت سیستم کلاینت (مثلا یک PLC S7-400) فراخوانی شوند.
جدول 1-3
ب) سرویسهای قابل پشتیبانی در شبکه MPI توسط S7-400
همانطور که در جدول 1-3 مشخص است، سرویسهای قابل پشتیبانی توسط S7-400 در شبکه MPI عبارتند از:
- (Global Data Communication (GD
- S7 basic communication
- S7 communication با استفاده از همه بلاکهای ارائه شده توسط این سرویس
جدول 2-3
در این بخش ارتباطات مختلف بین S7-300 و S7-400 بررسی میشود.
الف) ارتباط S7-300 با S7-300
سرویسهای قابل استفاده در این ارتباط:
- سرویس GD
- سرویس S7 basic
جدول 3-3
ب) ارتباط S7-300 با S7-400 یا S7-400 با S7-300
سرویسهای قابل استفاده:
- سرویس GD
- سرویس S7 basic
- سرویس S7 Connection با استفاده از بلاکهای PUT و GET در سمت S7-400 (تست شود.)
جدول 4-3
همانطور که در جدول 4-3 نشان داده شده است، در ارتباط S7(S7-Connection)، سیستم PLC S7-300 بعنوان سرور (سرویسدهنده) محسوب شده و PLC S7-400 بعنوان کلاینت (سرویسگیرنده) محسوب میشود. برای برنامهنویسی این نوع ارتباط، بلاکهای PUT و GET در سمت کلاینت (S7-400) مورد استفاده قرار میگیرد.
ج) ارتباط S7-400 با S7-400
سرویسهای قابل استفاده:
- سرویس GD
- سرویس S7 basic
- سرویس S7 Connection با استفاده از همه بلاکهای ارائه شده توسط سرویس
جدول 5-3
3-1 سرویس ارتباطی S7 basic communication
با استفاده از این سرویس ارتباطی میتوان بدون انجام تنظیمات پیکربندی ارتباط در نرمافزار STEP7، بین دو PLC با یکدیگر به تبادل دیتا پرداخت. از اینرو این سرویس در زمره ارتباطات پیکربندی نشده قرار میگیرد.
3-1-1 خصوصیات سرویس S7 basic communication
برخی از خصوصیات این سرویس عبارتست از:
- تبادل دیتا با استفاده از SFCهای خاص انجام میپذیرد.
- حداکثر حجم تبادل دیتا در این سرویس، برابر 76 بایت است.
- تبادل دیتا میتواند بین دو CPU در دو رک مجزا با هم باشد که به این حالت External گفته میشود.
- تبادل دیتا میتواند بین CPU در یک رک (S7-400) یا CPU با FM باشد که به این حالت Internal گفته میشود.
- در این روش نیازی به تعریف ارتباط در نرمافزار NetPro وجود ندارد و فقط اتصال هر PLC به شبکه MPI در محیط نرمافزار HW Config کافیست.
- ارتباط در این سرویس به صورت سرور/کلاینت و نیز کلاینت/کلاینت است. کلاینت ارسالکننده دیتا و سرور دریافتکننده دیتا است.
- در ارتباط کلاینت/کلاینت هر دو طرف میتوانند دیتایی را ارسال و دریافت نمایند.
- در ارتباط کلاینت/سرور فقط کلاینت است که میتواند دیتایی را برای سرور ارسال نموده و یا از آن دریافت نماید.
- در این سرویس، یک ارتباط منطقی داینامیک بین سرور و کلاینت ایجاد میشود. پس از پایان تبادل دیتا، این ارتباط غیرفعال میشود. در عمل تعداد کانکشنهای منطقی محدود بوده و بستگی به مشخصات CPU دارد.
جدول 6-3 تعداد کانکشنهای مجاز برای CPU 315-2DP با کد فنی 6ES7315-2AF83-0AB0 را نشان میدهد. در این جدول منظور از dynamic، کانکشنهای بدون انجام پیکربندی و منظور از Static، کانکشنهای پیکربندی شده است.
جدول 6-3
سرویس S7 basic communication خود دارای سه سرویس ذیل است: {رفرنس1}
الف) سرویس I_GET/ I_PUT: برای خواندن و نوشتن اطلاعات در ماژولهای Internal از قبیل FM
ب) سرویس X_ SEND/ X_RCV: ارسال و دریافت اطلاعات به صورت تایید شده با انجام برنامهنویسی در دو PLC موجود در ارتباط (حالت کلاینت/کلاینت)
ج) سرویس X_GET/ X_PUT: خواندن و یا نوشتن اطلاعات از یک PLC، بدون برنامهنویسی در آن (حالت سرور/کلاینت)
جدول 7-3 سرویسهای مختلف ارائه شده توسط S7 basic communication و خصوصیات آنها را نشان میدهد. در هر سرویس، SFCهای استفاده شده متفاوت با روش دیگر میباشد. سرویسهای X برای ارتباط External و سرویس I برای ارتباط Internal استفاده میشود.
جدول 7-3
جدول 8-3 بلاکهای مختلف ارائه شده برای ارتباط S7 basic communication را نشان میدهد.
جدول 8-3
توجه: همانطور که در جداول 8-3 و 7-3 مشخص است، بلاکهای I_PUT و I_GET مخصوص ارتباط Prifibus DP بوده و برای شبکه MPI قابل استفاده نمیباشند.
3-1-2 سرویس ارتباطی X_SEND/ X_RCV
این سرویس همانند سرویس X_GET/X_PUT برای ارتباط بین دو CPU مختلف در شبکه MPI استفاده میشود. ویژگی مهم این سرویس (بر خلاف سرویس X_GET/X_PUT) اینست که یک ارتباط دو طرفه را پیادهسازی میکند (ارتباط کلاینت/کلاینت) و هر دو CPU میتوانند دیتایی را ارسال و دریافت نمایند در حالی که در ارتباط سرور/کلاینت، تبادل دیتا توسط کلاینت مدیریت شده و کلاینت میتواند دیتایی را از سرور خوانده و یا در آن بنویسد. در سرویس ارتباطی X_SEND/ X_RCV، ارسال دیتا توسط بلاک X_SEND انجام شده و هرگاه بلاک X_RCV دریافت دیتا را تایید نمود، ارسال دیتا به پایان میرسد.
بلاک X_SEND
بلاک X_SEND یا SFC 65 بلاکی است که بهمنظور ارسال دیتا استفاده میشود. شکل … این بلاک و پایههای آنرا در زبان LAD نشان میدهد. محل قرارگیری این بلاک در بخش Library > Standard Library > System Function Block است.
شکل 2-3
جدول 9-3 پارامترهای SFC 65 “X_SEND” را نشان میدهد.
جدول 9-3
پارامتر | ورودی/خروجی | عملکرد |
REQ | Input | فعالساز ارسال دیتا توسط بلاک (با مقدار یک منطقی ارسال دیتا آغاز میشود) |
CONT | Input | مقدار صفر منطقی: یعنی پس از پایان ارسال دیتا، کانکشن منطقی ایجاد شده بین دو CPU غیرفعال شود. در این حالت منبع اختصاص داده شده به این ارتباط، برای سایر ارتباطات آزاد میشود.
مقدار یک منطقی: یعنی پس از پایان ارسال دیتا، همچنان ارتباط منطقی بین دو CPU برقرار بماند. بهتر است این پایه دارای مقدار همیشه صفر باشد. |
DEST_ID | Input | آدرس MPI مربوط به PLC دریافتکننده اطلاعات |
REQ_ID | Input | کد مشخصکننده جهت اطمینان از حصول دریافت اطلاعات در گیرنده |
SD | Input | دیتای مورد نظر جهت ارسال به فرم Pointer |
RET_VAL | Output | کد خطا در صورت بروز خطا در ارسال دیتا |
BUSY | Output | دریافت مقدار یک منطقی از این پایه، به معنی اشتغال به ارسال اطلاعات توسط بلاک است |