آموزش PROFIBUS– قسمت نوزدهم
8-1 استفاده از OB86
به سه صورت میتوان از OB86 (و سایر OBهای خطا) استفاده نمود:
الف) استفاده از OB86 بدون برنامهنویسی
این روش بدترین روش برای استفاده از OB86 است. در این روش کاربر OB86 را ایجاد و بدون انجام برنامهنویسی درون آن، به PLC دانلود مینماید. هرگاه در ضمن کار سیستم، اشکالی در شبکه پروفیباس رخ دهد، OB86 اجرا میشود و CPU متوقف نمیشود. از طرفی با توجه اینکه در OB86 برنامهای نوشته نشده است، کاربر متوجه بروز خطا در سیستم نمیشود.
ب) استفاده از OB86 برای تولید پیام عمومی
در این روش کاربر OB86 را ایجاد نموده و در آن یک برنامه عمومی (مانند روشن کردن یک آلارم) را مینویسد. در شرایط بروز فالت در شبکه پروفیباس، OB86 اجرا شده و یک آلارم فعال میشود؛ اما دلیل بروز خطا و نیز ایستگاه معیوب به طور کامل مشخص نمیشود. این روش از روش الف بهتر بوده ولی کاملترین روش نمیباشد.
ج) استفاده از OB86 برای تولید پیام عمومی و نیز تشخیص دلیل خطا
این روش مشابه روش ب است با افزودن این نکته که کاربر با استفاده از متغیرهای محلی OB86 میتواند برنامه را بهگونهای طراحی نماید که دلیل اشکال و نیز ایستگاه معیوب شناسایی شوند.
ایجاد OB86
برای ایجاد OB86 کافیست تا کاربر در پوشه Block راستکلیک نموده و از بخش Insert New Object گزینه Organization Block را انتخاب نماید و در کادر باز شده، مطابق شکل 8-2 ، نام OB را برابر OB86 قرار دهد.
شکل 8-2
بررسی متغیرهای محلی OB86
در درون OB86 و در بخش Interface تعدادی متغیر محلی Temp وجود دارد که در شناسایی خطا نقش مهمی بر عهده دارند و کاربر با استفاده از این متغیرها در برنامه میتواند نسبت به شناسایی دلیل خطا اقدام نماید. به شکل 8-3 توجه فرمایید.
شکل 8-3
جدول 8-2 این متغیرها و نیز شرح عمکرد آنها را نشان میدهد.
جدول 8-2
همانطور که در جدول 8-2 مشخص است، متغیر محلی OB86_FLT_ID یک کد Error برمیگرداند که بیانگر نوع خطا است. همچنین متغیر محلی OB86_EV_CLASS مشخص میکند که آیا خطا ایجاد شده و یا برطرف شده است. جدول 8-3 کدهای مختلف این متغیرها و معانی آنها را نشان میدهد.
جدول 8-3
معنی | OB86_FLT_ID | OB86_EV_CLASS |
Expansion rack failure: خطای ارتباط با IM رک توسعه (S7-400) که مرتبط با شبکه پروفیباس نمیباشد. | B#16#C1 | B#16#39 |
Expansion rack operational again: برقراری ارتباط با IM رک توسعه (S7-400) که مرتبط با شبکه پروفیباس نمیباشد. | B#16#C1 | B#16#38 |
Expansion rack operational again (expansion rack failure with discrepancy between expected and actual configuration)
مرتبط با IM-400 |
B#16#C2 | B#16#38 |
Distributed I/O devices: failure of a DP master system
(اشکال در Master) Only incoming event causes the start of OB 86, with error code B#16#C3. An outgoing event starts OB 86 with error code B#16#C4 and event class B#16#38: The return of every DP slave station starts OB86 • OB86_MDL_ADDR: Logical base address of the DP master: (آدرس بیس سیستم مستر) • OB86_Z23: DP master ID: – Bit 0 to 7: Reserved – Bit 8 to 15: DP master system ID – Bit 16 to 31: Reserved |
B#16#C3
|
B#16#39
|
Failure of a DP station: (اشکال در یک Slave یا برطرف شدن آن)
• OB86_MDL_ADDR: Logical base address of the DP master • OB86_Z23: Address of the affected DP slave: – Bit 0 to 7: No. of the DP station – Bit 8 to 15: DP master system ID – Bit 16 to 30: logical base address of an S7 slave or diagnostic address of a standard DP slave – Bit 31: I/O identifier LB11: آدرس ایستگاه معیوب |
B#16#C4
|
B#16#39/B#16#38
|
: بروز فالت در یک ایستگاه پروفیباسFault in a DP station
OB86_MDL_ADDR and OB86_Z23 as for FLT_ID=B#16#C4 LB11: آدرس ایستگاه معیوب |
B#16#C5 | B#16#39/B#16#38 |
Return of a DP station, but error in module parameter assignment
• OB86_MDL_ADDR: Logical base address of the DP master • Address of the DP slave affected: – Bit 0 to 7: No. of the DP station – Bit 8 to 15: DP master system ID – Bit 16 to 30: Logical base address of the DP slave – Bit 31: I/O identifier LB11: آدرس ایستگاه معیوب |
B#16#C7
|
B#16#38
|
Return of a DP station, however discrepancy in configured and actual configuration
• OB86_MDL_ADDR: Logical base address of the DP master • OB86_Z23: Address of the affected DP slave: – Bit 0 to 7: No. of the DP station – Bit 8 to 15: DP master system ID – Bit 16 to 30: Logical base address of the DP slave – Bit 31: I/O identifier LB11: آدرس ایستگاه معیوب |
B#16#C8
|
B#16#38
|
مثال 8-1 ایجاد پیام عمومی برای خطای پروفیباس
برنامهای بنویسد که در صورت بروز خطا در شبکه پروفیباس، آلارم Q124.0 روشن شده و با فعالشدن شستی ریست، این آلارم برطرف (خاموش) شود.
پاسخ:
1- OB86 را ایجاد نمایید.
2- وارد OB86 شده و برنامه زیر را پیادهسازی نمایید.
شکل 8-4
3- وارد OB1 شده و برنامه زیر را پیادهسازی نمایید.
شکل 8-5
تست برنامه با استفاده از سیمولاتور
با استفاده از نرمافزار PLC SIM که در حقیقت همان سیمولاتور موجود در نرمافزار STEP7 است، میتوان اشکالات شبکه پروفیباس را شبیهسازی نمود. قبل از اینکه مراحل کار در سیمولاتور بیان شود، باید پیکربندی به صورت نشان داده شده در شکل 8-6 انجام شود.
توجه: آدرس ET200M در شبکه پروفیباس برابر 4 تنظیم شده است.
شکل 8-6
مراحل کار برای تست برنامه:
1- نرمافزار PLC SIM (Simulator) را اجرا نمایید.
2- تنظیمات سختافزاری را دانلود نمایید.
3- برنامه موجود در OB86 را دانلود نمایید.
4- وارد محیط سیمولاتور (PLC SIM) شده و یک خانه ورودی (IB124) و یک خانه خروجی (QB124) ایجاد نمایید.
5- در محیط سیمولاتور از مسیر نشان داده شده درشکل 8-7، گزینه OB86 را انتخاب نمایید.
Execute > Trigger Erroe OB > Rack Failure (OB86)
شکل 8-7
در اینصورت کادری به صورت نشان داده شده در شکل 8-8 نمایان میشود. حال میتوان در سربرگ DP Failure با انتخاب ایستگاه مورد نظر در بخش سمت راست (DP Status)، و نیز انتخاب نوع فالت در بخش سمت چپ و فعال نمودن گزینه Apply، فالت مورد نظر را ایجاد نمود. در این مثال ما در بخش فالتها، گزینه Station Failure را انتخاب نمودهایم که بیانگر بروز خطا در یک Slave میباشد.
با فعال نمودن خطا، OB86 اجرا شده و برنامه درون آن نیز اجرا میشود؛ در اینصورت آلارم Q124.0 روشن میشود. این مطلب در شکل 8-8 نیز نشان داده شده است. برای ریست نمودن آلارم Q124.0 کافیست تا ورودی I124.0 فعال شود.
شکل 8-8
مثال 8-2 ایجاد آلارم در صورت بروز اشکال در ET200M
برنامهای بنویسید که در صورت بروز اشکال در ET200M با آدرس 4، آلارم Q124.1 روشن و در صورت برطرف شدن اشکال، آلارم Q124.1 خاموش شود.
پاسخ:
در این مثال لازم است از متغیرهای محلی درون OB86 استفاده شود زیرا هدف ما تولید یک آلارم برای یک Slave خاص است. مراحل حل مثال به شرح ذیل است:
1- وارد OB86 شده و برنامه نشان داده شده در شکل 8-9 را پیادهسازی نمایید.
نکته: دقت نمایید در این تمرین از متغیرهای LB0 (OB86_EV_CLASS) , LB1 (OB86_FLT_ID) و LB11 استفاده میشود.
شکل 8-9
2- برنامه OB86 را دانلود نموده و توسط سیمولاتور تست نمایید. به شکل 8-10 توجه فرمایید.
شکل8-10
مثال 8-3 انتقال پیامهای عیبیابی به WinCC
برنامه مثال 8-2 (مثال قبل) را بهگونهای کامل نمایید که در صورت بروز فالت، یک لامپ آلارم در WinCC روشن شده و آدرس ایستگاه معیوب نیز نمایش داده شود.
مراحل حل مثال:
1- وارد نرمافزار WinCC شده و یک پروژه جدید ایجاد نمایید.
2- وارد بخش Tag Management شده و یک کانال از نوع SIMATIC S7 Protocol Suite.chn ایجاد نمایید.
شکل 8-11
3- وارد کانال شده و در بخش PROFIBUS یک اتصال جدید بهنام PROF ایجاد نمایید.
شکل 8-12
4- وارد اتصال PROF شده و تگهای نشان داده شده در جدول 8-4 را ایجاد نمایید.
جدول 8-4
نام تگ (Tag Name) | نوع تگ (Data Type) | آدرس (Address) |
Alarm | Binary | Q124.1 |
Slave_Address | Unsigned 16bit-value | MW6 |
5- وارد محیط Graphic Designer شده و یک Picture جدید ایجاد نمایید. وارد این Picture شده و یک شی I/O Field ایجاد نموده و آنرا به تگ Slave_Address مرتبط نمایید. به شکل 8-13 توجه فرمایید.
6- یک دایره ایجاد نموده و در آن تنظیمات نشان داده شده در شکل 8-14 را انجام دهید.
شکل 8-13
شکل 8-14
شکل 8-15
7- تنظیمات را ذخیره نموده و پروژه WinCC را در حالت Runtime قرار دهید.
8- در نرمافزار Step7 در بخش Set PG/PC Interface گزینه PLC SIM Profibus یا PC Adapter Profibus را انتخاب نمایید و پروژه را تست نمایید. به شکل 8-16 توجه فرمایید.
شکل 8-16