این اپلیکیشن مثال های کاربردی برای حل مشکلات اتوماسیون را از طریق تعامل چندین مولفه یا کامپوننت در قالب متن، گرافیک و / یا ماژول های نرم افزاری را نشان می دهد.
مثال های این برنامه این برنامه یک سرویس رایگان توسط Siemens AG– یک شرکت تابعه از Siemens AG (“Siemens”) است. در ارتباط با این مثالها هیچ ادعایی درباره کامل بودن یا عملکرد در مورد پیکربندی و تجهیزات وجود ندارد. مثالهای برنامه فقط به کارهای معمول کمک می کنند. آنها راه حل های خاص مشتری را تشکیل شامل نمی شوند. کاربر خود مسئول عملکرد مناسب و ایمن محصولات مطابق با مقررات لازم می باشد و همچنین باید عملکرد نمونه برنامه مربوطه را بررسی کرده و آن را برای سیستم خود سفارشی کند.
1-معرفی اپلیکیشن
1.1-بررسی اجمالی
کاربر می تواند از دستورالعمل های انتقال (XMT) و دریافت (RCV) برای ارتباط بین پردازنده پی ال سی S7‑200 SMART و سایر دستگاه ها یا S7-200 SMART از طریق پورت (های) CPU استفاده کند. هر پردازنده S7‑200 SMART یک درگاه RS485 یکپارچه (پورت 0) را فراهم می کند. پردازنده های استاندارد علاوه بر این از یک پورت اختیاری CM01 Signal Board (SB) RS232 / RS485 (پورت 1) پشتیبانی می کنند و پروتکل ارتباطی باید در برنامه کاربر پیاده سازی شود .
کاربر می تواند با استفاده از برنامه کاربر شما ، حالت Freeport را برای کنترل پورت ارتباطی سریال CPU انتخاب کند. هنگامی که کاربر حالت Freeport را انتخاب می کند ، برنامه با استفاده از وقفه های دریافت ، وقفه های انتقال ، دستورالعمل انتقال و دستورالعمل دریافت ، عملکرد پورت ارتباطی را کنترل می کند و پروتکل ارتباطات را کاملاً در حالت Freeport کنترل می کند.
1.2-کامپوننت های مورد استفاده
در این مثال برنامه با اجزای سخت افزاری و نرم افزاری زیر ایجاد شده است:
یادداشت |
شماره مقاله |
شماره |
اجزا |
0 Firmware Ver. 2.3 |
6ES7288-1ST30-0AA0 |
2 |
CPU ST30 |
|
6ES7288-1ST30-0AA0 |
1 |
STEP 7-MicroWIN SMART V2.3 |
|
– |
1 |
Ethernet Switch |
این مثال کاربردی از اجزای زیر تشکیل شده است:
یادداشت |
نام فایل |
کامپوننت |
|
1) PLC 1 (1st transmit then receive).smart 2) PLC 2 (1st receive then transmit).smart |
S7-200 Smart Freeport Transmit and Receive |
2- مهندسی
2.1- راه اندازی سخت افزار
شکل زیر یک نمای کلی از مهمترین اجزای راه حل مورد نظر را نشان می دهد
3- مهندسی
3.1- شرح دستورالعمل ها
LAD / FBD |
STL |
توضیحات |
XMT TBL, PORT | دستورالعمل انتقال (XMT) در حالت Freeport برای انتقال داده ها توسط پورت (های) ارتباطات استفاده می شود.
|
|
RCV TBL, PORT | دستور Receive (RCV) عملیات دریافت پیام را آغاز یا خاتمه می دهد. کاربر برای شروع کار و شرایط پایان باید Receive Box را تعیین کند.
پیام های دریافتی از طریق پورت مشخص شده (PORT) در بافر داده (TBL) ذخیره می شوند. اولین ورودی در بافر داده تعداد بایت های دریافتی را مشخص می کند. |
ورودی/خروجی |
نوع دیتا |
Operand |
TBL | BYTE | IB, QB, VB, MB, SMB, SB, *VD, *LD, *AC |
PORT | BYTE | Constant: 0 or 1
Note: The two available ports are as follows: Integrated RS485 port (Port 0), CM01 Signal Board (SB) RS232/RS485 port (Port 1) |
می توانید با استفاده از برنامه کاربر خود، حالت Freeport را برای کنترل پورت ارتباطی سریال CPU انتخاب کنید. هنگامی که حالت Freeport را انتخاب می کنید ، برنامه شما از طریق استفاده از وقفه های دریافت ، c ، دستورالعمل Transmit و دستور Receive ، عملکرد پورت ارتباطی را کنترل می کند و پروتکل ارتباطی را کاملاً در حالت Freeport کنترل می کند.
CPU دو بایت حافظه ویژه به دو پورت فیزیکی اختصاص می دهد:
1- SMB30 به پورت RS485 یکپارچه (پورت 0)
2- SMB130 به پورت CM01 RS232 / RS485 Signal Board (SB) ((پورت 1)
وقتی پردازنده در حالت STOP است ، حالت Freeport غیرفعال است و ارتباطات عادی برقرار می شوند (به عنوان مثال ، دسترسی به دستگاه HMI).
در ساده ترین حالت ، کاربر می تواند فقط با استفاده از دستورالعمل Transmit (XMT) به پرینتر یا صفحه نمایش پیام ارسال کند. مثالهای دیگر شامل اتصال به خواننده بارکد، ترازوی توزین و جوشکار است. در هر حالت ، کاربر باید برنامه ای را برای حمایت از پروتکل مورد استفاده توسط دستگاهی که پردازنده با آن در حالت Freeport در ارتباط است، بنویسد.
کاربر فقط زمانی می تواند از ارتباطات Freeport استفاده کند که پردازنده در حالت RUN باشد. با تنظیم مقدار 01 در قسمت انتخاب پروتکل SMB30 (پورت 0) یا SMB130 (پورت 1) حالت Freeport را فعال کنید. هنگامی که در حالت Freeport است، نمی تواند با HMI در همان پورت ارتباط برقرار کند.
3.2- ادغام پروژه
1- تغییر ارتباطات PPI به حالت Freeport
SMB30 و SMB130 پورت های ارتباطی (به ترتیب 0 و 1) را برای عملکرد Freeport پیکربندی می کنند و امکان انتخاب Boud rate ، برابری و تعداد بیت های داده را فراهم می کنند. شکل زیر بایت کنترل Freeport را توصیف کرده و یک بیت توقف برای همه پیکربندی ها تولید می شود.
pp | Parity select | d | Data bits per character | ||
00 =01 =10 =11 = | No parityEven parityNo parityOdd parity | 0 =1 = | 8 bits per character7 bits per character | ||
bbb | Freeport baud rate | mm | Protocol selection | ||
000 =001 =010 =011 =100 =101 =110 =111 = | 38400192009600480024001200115200 57600 | 00 =01 =10 =11 = | PPI slave modeFreeport modeReserved (defaults to PPI slave mode)Reserved (defaults to PPI slave mode) |
2- انتقال داده ها
دستورالعمل انتقال به شما امکان می دهد تا یک بافر متشکل از یک یا چند کاراکتر ارسال کنید، حداکثر تا 255. شکل زیر قالب بافر انتقال را نشان می دهد.
① تعداد بایت برای انتقال
② کاراکترهای پیام
اگر یک روال وقفه به رویداد انتقال کامل متصل باشد، CPU پس از ارسال آخرین کاراکتر بافر، وقفه ایجاد می کند (وقفه 9 وقفه برای پورت 0 و وقفه وقفه 26 برای پورت 1).
با استفاده از نظارت بر SM4.5 (پورت 0) یا SM4.6 (پورت 1) می توانید بدون استفاده از وقفه (به عنوان مثال ارسال پیام به پرینتر) انتقال را انجام دهید تا پس از اتمام انتقال، سیگنال داده شود.
همچنین می توان از دستورالعمل Transmit برای ایجاد شرایط BREAK، با تنظیم تعداد کاراکترها روی صفر و سپس اجرای دستورالعمل، استفاده نمود. این دستور العمل یک وضعیت BREAK برای 16 بیت بار با نرخ فعلی boud ایجاد می کند. انتقال BREAK به همان روشی است که انتقال هر پیام دیگری انجام می شود ، بدین صورت که با اتمام BREAK وقفه ای در انتقال ایجاد می شود و SM4.5 یا SM4.6 وضعیت فعلی عملیات انتقال را نشان می دهد.
3- دریافت داده
دستورالعمل Receive به شما امکان می دهد یک بافر شامل یک یا چند کاراکتر ، حداکثر تا 255 ، دریافت کنید. شکل زیر قالب بافر Receive را نشان می دهد.
|
① تعداد بایت های دریافتی (فیلد بایت)
② کاراکتر شروع
③ پیام
④ کاراکتر پایانی
⑤ کاراکترهای پیام
اگر روال وقفه به رویداد کامل دریافت پیام متصل باشد، پردازنده پس از دریافت آخرین کاراکتر بافر، وقفه ایجاد می کند (وقفه وقفه 23 برای پورت 0 و وقفه وقفه 24 برای پورت 1).
با نظارت بر SMB86 (پورت 0) یا SMB186 (پورت 1) می توانید پیام ها را بدون استفاده از وقفه دریافت کنید. هنگامی که دستور Receive غیرفعال باشد یا خاتمه یابد ، این بایت صفر نیست. هنگام دریافت دریافت صفر است.
همانطور که در جدول زیر نشان داده شده است ، دستورالعمل Receive به شما امکان می دهد شرایط شروع پیام و پایان پیام را با استفاده از SMB86 از طریق SMB94 برای درگاه 0 و SMB186 از طریق SMB194 برای درگاه 1 انتخاب کنید.
4- دریافت قالب بافر (SMB86 به SMB94 و SMB186 به SMB194)
Port 0 | Port 1 | Description |
SMB86 | SMB186 |
دریافت بایت وضعیت پیام n: 1 = کاربر دستورالعمل غیرفعال را صادر کرد دریافت عملکرد پیام خاتمه یافته r: 1 = دریافت عملکرد پیام خاتمه یافته خطا در پارامترهای ورودی یا از دست رفتن شرایط شروع یا پایان e: 1 = کارامتر پایانی دریافت شد t: 1 = دریافت عملکرد پیام خاتمه، یافته تایمر منقضی شد c: 1 = تابع دریافت پیام پایان یافته، حداکثر تعداد کاراکتر بدست آمده است. p: 1 = تابع دریافت پیام خاتمه یافته، خطای Parity
|
SMB87 | SMB187 |
دریافت بایت کنترل پیام
en: 0 = غیرفعال کردن تابع دریافت پیام. 1 = فعال کردن تابع دریافت پیام. بیت فعال / غیر فعال کردن دریافت پیام هر بار که دستورالعمل RCV اجرا می شود ، بررسی می شود. sc: 0 = نادیده گرفتن SMB88 یا SMB188 1 = برای تشخیص شروع پیام از مقدار SMB88 یا SMB188 استفاده کنید ec: 0 = نادیده گرفتن SMB89 یا SMB189. 1 = برای تشخیص انتهای پیام از مقدار SMB89 یا SMB189 استفاده کنید il: 0 = نادیده گرفتن SMB90 یا SMB190. 1 = برای تشخیص شروع پیام از مقدار SMB90 یا SMB190 استفاده کنید. c/m: 0 = تایمر یک تایمر بین کاراکتری است.
1 = تایمر به عنوان تایمر پیام tmr: 0 = نادیده گرفتن SMW92 یا SMW192. 1 = در صورت اتمام دوره زمانی در SMW92 یا SMW192 دریافت را خاتمه دهید. bk: 0 = شرایط break را خاتمه دهید. 1 = برای تشخخیص پیام از break condition استفاده میشود. |
SMB88 | SMB188 |
شروع کاراکتر پیام |
SMB89 | SMB189 |
پایان کاراکتر پیام |
SMW90 | SMW190 | Idle line time period given in milliseconds. The first character received after idle line time has expired is the start of a new message. |
SMW92 | SMW192 |
مقدار اتمام تایمر بین کاراکتری / پیام در میلی ثانیه داده شده است. در صورت عبور از مدت زمان مشخص ، تابع دریافت پیام خاتمه می یابد . |
SMB94 | SMB194 |
حداکثر تعداد کاراکترهای دریافتی (1 تا 255 بایت). این محدوده باید روی حداکثر اندازه بافر مورد انتظار تنظیم شود ، حتی اگر از خاتمه پیام تعداد کاراکتر استفاده نشود.
|
برای جزئیات بیشتر به بخش کاتالگ راهنمای سیستم پی ال سی S7-200 SMART 7.3.2مراجعه کنید.
3.3- عملیات
در این تمرین ، ما می خواهیم از 2 پی ال سی برای آزمایش Freeport S7-200 SMART استفاده کنیم. برای آزمایش freeport میبایست از دستورالعمل های XMT و RCV در یک برنامه استفاده کنیم. ما از پی ال سی شماره 1 برای انتقال و دریافت رشته از پی ال سی شماره 2 استفاده میکنیم.
1- پی ال سی شماره 1 برای انتقال داده string ابتدا با کاراکترهای شروع و پایان از پیش تعریف شده استفاده می شود. در حالی که PLC 2 رشته منتقل شده را از PLC 1 دریافت می کند و سپس PLC 2 داده String را انتقال می دهد و PLC 1 دریافت می کند. ابتدا فایل PLC1.smart(اولین ارسال و سپس دریافت) را بررسی کنیم. در اسکن اول ، ما freeport را شروع می کنیم (9600 نرخ baud ، 8 بیت داده ، بدون parity).
2- به محض اینکه ورودی I1.3 را بر روی high قرار دهیم، این دستورالعمل XMT را تحریک می کند که رشته را از VB100 به پورت 0 منتقل می کند. پس از مدت 50 میلی ثانیه، تایمرV20.0 را برای دریافت دستور RCV تنظیم می کنیم.
به یاد داشته باشید که هر زمان که بخواهید دادهای را انتقال دهید (یا دستورالعمل XMT را فعال کنید) هر بار که باید ورودی I1.3 را به high برسانید.
3- در مرحله بعد V20.0 مقدار اولیه را برای دریافت (دستورالعمل RCV) فراهم می کند( تعداد حداکثر 100 کاراکتر با کاراکتر آغازین “@” و کاراکتر پایانی “*”). زمان پایان idle line روی 5 میلی ثانیه تنظیم شده است.
4- در این مرحله دریافت در پورت 0 را با بافر در VB200 امکان پذیر می کند. پس از پایین آمدن I1.3 ، تنظیمات مجدد V20.0 کاهش یافته و برای trigger بعدی آماده خواهد شد.
5- در اینجا ما با PLC 2 شروع می کنیم یعنی فایل PLC 2 (1st receive then transfer) .smart.
در بررسی اول ، ما freeport را شروع می کنیم (9600 نرخ baud ، 8 بیت داده ، بدون parity). حداکثر کاراکتر تعداد 100 با کاراکتر آغازین “@” و کاراکتر پایانی را به عنوان “*”. زمان پایان Idle line روی 5 میلی ثانیه تنظیم شده است. یعنی این پی ال سی پس از روشن شدن در حالت دریافت قرار می گیرد.
در اینجا وقفه 0 را به رویداد Receive Complete (رویداد 23) و 2 وقفه را به رویداد Transmit Complete (رویداد 9) متصل می کنیم و هر زمان که این رویدادها رخ می دهد f کاربر را فعال می کند.
۶- INT_ 0 (دریافت کامل روال قطع):
اگر وضعیت دریافت نشان دهنده دریافت پایان کاراکتر است ، یک تایمر 255 میلی ثانیه را برای ایجاد انتقال و بازگشت متصل کنید.
اگر دریافت به هر دلیل دیگری تکمیل شد، دریافت جدید را شروع کنید.
۷- وقفه تایمر 255 میلی ثانیه: وقفه تایمر را جدا کرده و داده ها را به PLC 1 در پورت 0 از بافر VB200 منتقل می کند.
برای احتیاط ما 255 میلی ثانیه برای انتقال آن داده ها از PLC 2 گرفته بودیم اما PLC 1 بعد از 50 میلی ثانیه در حالت دریافت قرار گرفت.
8- انتقال وقفه کامل (INT 2): پس از اتمام یک چرخه دریافت و انتقال داده به PLC 2 ، PLC 1 مجدداً آماده دریافت داده از PLC 1 می شود.
۹- وضعیت PLC ها قبل از trigger ورودی: PLC 1 (1st transmit then receive).smart
PLC 2 (1st receive then transmit).smart
جدول ذکر شده در بالا مقادیر اولیه ثبت داده ها را به ما نشان می دهد که قبل از ایجاد ورودی ها در انتقال و دریافت استفاده شده است. در “Transmit 1.smart” از سری VB100 برای انتقال و از “Transmit 2.smart” از سری VB100 برای دریافت استفاده می شود.
در “Transmit 2.smart” از سری VB200 برای انتقال و از Transmit 1.smart از سری VB200 برای دریافت استفاده می شود
10- وضعیت PLC ها پس از trigger ورودی:
PLC 1 (1st transmit then receive).smart
PLC 2 (1st receive then transmit).smart
2 جدول فوق ذکر مقادیر اولیه ثبت دادهها را به ما نشان می دهد که پس از ایجاد ورودیها در انتقال و دریافت استفاده شده است.
آسام نمایندگی محصولات اتوماسیون صنعتی زیمنس در ایران