آموزش PROFIBUS– قسمت سیزدهم
7-1-3-1 برنامهنویسی سیستم Master-Slave با استفاده از کارت شبکه
بهمنظور برنامهنویسی این روش (و به طور کلی هرگاه از کارت شبکه پروفیباس استفاده شود)، باید از FC1 (DP Send) و FC2 (DP Receive) که از بلاکهای آماده زیمنس هستند، استفاده نمود. شکل 7-19 چگونگی عملکرد سیستم را در این حالت نشان میدهد.
شکل 7-19
همانطور که در شکل 7-19 نیز مشخص است، با استفاده از بلاک FC1(DP_SEND) میتوان دیتای مورد نطر را به CP و از آنجا به کارتهای خروجی در Slave منتقل نمود. همچنین با استفاده از بلاک FC2(DP_RECV) میتوان اطلاعات کارتهای ورودی Slave را دریافت نمود.
نکته مهمی که باید توجه داشت اینست که کارت CP بهطور سیکلی ورودیها را از همهی کارتهای ورودی در Slaveها خوانده و همه خروجیهای Slaveها را Update مینماید.
در شکل 7-20 نحوه استفاده از بلاکهای DP_SEND و DP_RECV و رفتار CPU در پردازش آنها نشان داده شده است.
شکل 7-20
محل قرارگیری بلاکهای FC1 و FC2 در بخش Library نرمافزار و در مسیر زیر است:
Library > SIMATIC_NET_CP > FC1 & FC2
شکل 7-21 محل قرارگیری این بلاکها در Library را نشان میدهد.
شکل 7-21
بررسی پایهها و عملکرد FC1 و FC2
شکل 7-22 پایههای بلاک FC1 (DP Send) و FC2 (DP Receive) را نشان میدهد.
الف) FC1 |
ب) FC2 |
شکل 7-22 |
در جدول 7-4 ، پایههای (پارامترهای) FC1 و عملکرد آنها توضیح داده شده است.
جدول 7-4 پارامترهای (SEND) FC1
نام پایه (پارامتر) | نوع (ورودی/خروجی) | Data Type | توضیح |
CPLADDR | ورودی | WORD | آدرس شروع کارت CP به فرم Hex |
SEND | ورودی | ANY | آدرس دیتاهای قابل ارسال در شبکه توسط کارت CP،
دیتاهای مورد نظر به کارتهای خروجی روی ET منتقل میشوند. |
DONE | خروجی | BOOL | نشاندهنده ارسال دیتا (با نشاندادن مقدار1) |
ERROR | خروجی | BOOL | نشاندهنده وجود خطا (با نشان دادن مقدار1) |
STATUS | خروجی | WORD | کد وضعیت (بیانگر صحت عملکرد یا بروز خطا و مشخص نمودن نوع خطا) |
در جدول 7-5، پایههای (پارامترهای) FC2 و عملکرد آنها توضیح داده شده است.
جدول 7-5 پارامترهای (RECIVE) FC2
نام پایه (پارامتر) | نوع (ورودی/خروجی) | Data Type | توضیح |
CPLADDR | ورودی | WORD | آدرس شروع کارت CP به فرم Hex |
RECV | ورودی | ANY | آدرس دیتاهای قابل دریافت در شبکه توسط کارت CP،
دیتاهای مورد نظر از کارتهای ورودی روی ET منتقل میشوند. |
NDR | خروجی | BOOL | نشاندهنده پذیرفتن دیتا (با نشاندادن مقدار1) |
ERROR | خروجی | BOOL | نشاندهنده وجود خطا (با نشان دادن مقدار1) |
STATUS | خروجی | WORD | کد وضعیت (بیانگر صحت عملکرد یا بروز خطا و مشخص نمودن نوع خطا) |
DPSTATUS | خروجی | BYTE | کد وضعیت DP |
توجه: برای اطلاع از کد وضعیت و کد وضعیت DP به HELP نرمافزار مراجعه نمایید. در HELP نرمافزار، کدهای مختلفی که در کد وضعیت و کد وضعیت DP قرار میگیرد به همراه معنی آنها نشان داده شده است. شکل7-23 بخشی از HELP نرمافزار را نشان میدهد که کدهای مختلف به همراه معانی آنها را برای FC1 نشان داده است.
شکل 7-23
نکات مهم در استفاده از FC1 و FC2:
- در S7-300، استفاده از این بلاکها در فقط یک کلاس اولویت امکانپذیر است. یعنی نباید آنها را در دو OB از دو کلاس متفاوت فراخوانی نمود.
- در FC1 و در پایه Send اندازهی آدرس وارد شده باید با اندازه آدرس مجموع کارتهای خروجی Slaveها یکسان باشد.
- در FC2 و در پایه Recieve اندازهی آدرس وارد شده باید با اندازه آدرس مجموع کارتهای ورودی Slaveها یکسان باشد.
تذکر: در وارد نمودن آدرس، شماره بایت آدرس در کارت مهم است. مثلا اگر یک کارت ورودی یا خروجی با 16 کانال و آدرس شروع 200 و پایان 201 داشته باشیم، باید 202 بایت را آدرسدهی نماییم. P#DB88.DBX13.0 BYTE 202
اصول استفاده برنامهنویسی با استفاده از FC1 و FC2 در ارتباط Master-Slave
- یک دیتا بلاک برای آدرسهای ورودی کارتهای نصب شده در ET ایجاد نموده و در آن از بایت صفر تا بایت آخر در کارتهای ورودی، متغیر از نوع بایت تعریف نمایید. مثلا اگر یک کارت با 16 کانال ورودی دیجیتال با آدرس بایتهای 15 و 16 داشته باشیم، در DB باید از بایت صفر الی 16 را تعریف نمایید.
- یک دیتا بلاک دیگر برای آدرسهای خروجی کارتهای نصب شده در ET ایجاد نموده و در آن از بایت صفر تا بایت آخر در کارتهای خروجی، متغیر از نوع بایت تعریف نمایید. مثلا اگر یک کارت با 16 کانال خروجی دیجیتال با آدرس بایتهای 19 و 20 داشته باشیم، در DB باید از بایت صفر الی 20 را تعریف نمایید.
- در ابتدا بلاک FC1 (SEND) را فراخوانی نموده و متغیرهای DB مربوط به کارت خروجی را ارسال نمایید.
- سپس بلاک FC2 (RECIVE) را فراخوانی نموده و متغیرهای DB مربوط به کارت ورودی را دریافت نمایید.
- برنامه مورد نظر را پیادهسازی نمایید.
مثال 7-3 در یک PLC S7-300 از پیکربندی نشان داده شده در شکل 7-24 استفاده شده است. همانطور که در این شکل مشاهده میشود که از یک عدد CP 342-5 به عنوان Master و یک عدد ET200M بعنوان Slave استفاده شده است. در ET200M نیز از یک عدد کارت DI 16xDC24V و یک عدد کارت DO 16xDC24V/0.5A استفاده شده است.
شکل 7-24
الف) برنامه تبادل دیتا بین PLC و کارتهای نصب شده در ET200M را پیادهسازی نمایید.
مراحل انجام برنامه
1- در محیط Simatic Manager وارد پوشه بلاک شده و یک DB با شماره 1 و نام سمبولیک Output ایجاد نمایید.
شکل 7-25 ایجاد DB1
2- متغیرهای مورد نیاز را مطابق شکل 7-26 در DB1 ایجاد نمایید.
شکل 7-26
3- تنظیمات را ذخیره نمایید.
4- یک DB دیگر بهنام DB2 با نام سمبولیک Input ایجاد نمایید.
5- متغیرهای مورد نیاز را مطابق شکل 7-27 در DB2 ایجاد نمایید.
شکل 7-27
6- تنظیمات را ذخیره نمایید.
7- وارد OB1 شده و از مسیر Library > SIMATIC_NET_CP > FC1 ، بلاک FC1 را در Network1 فراخوانی نمایید.
شکل 7-28
8- مطابق شکل 7-29 روی گزینه CPLADDR راستکلیک نموده و گزینه Connection را انتخاب نمایید. در اینصورت کادر Block parameter for DP systems باز میشود. از این کادر، CP 342-5 را انتخاب نموده و روی گزینه OK کلیک نمایید.
شکل 7-29
9- سایر تنظیمات را مطابق شکل 7-30 انجام دهید.
شکل 7-30
10- در Network2 در OB1، بلاک FC2 را فراخوانی نمایید. و تنظیمات نشان داده شده در شکل 7-31 را انجام دهید.
شکل 7-31
ب) برنامهای بنویسید که در صورت فعالشدن I15.7 در کارت DI روی ET200M، خروجی Q20.0 روی کارت خروجی نصب شده در ET200M، روشن شود.
پاسخ: برنامه مورد نظر را میتوان مطابق شکل 7-32 در Network3 پیادهسازی نمود.
شکل 7-32
تنظیمات را ذخیرهسازی و دانلود نمایید.
تمرین 7-4 با توجه به پیکربندی ارائه شده درشکل 7-24، برنامهای بنویسید که در صورت فعال شدن I15.0 در کارت DI نصب شده در ET200M، سه خروجی در کارت DO نصب شده در PLC به ترتیب با فاصله زمانی 3 ثانیه روشن شده و با فعال شدن ورودی I15.7 در کارت DI نصب شده در ET200M، سه خروجی مذکور خاموش شوند.
پاسخ: بر عهده دانشجویان گرامی