راهکار پذیرفتهشده در شرکتهای بزرگ مهندسی، طراحی کتابخانههای استاندارد FunctionBlock است؛ بهگونهای که هر نوع تجهیز صنعتی دارای یک FB اختصاصی باشد و برای هر تجهیز تنها یک Instance DB مستقل ایجاد شود.
یکی از مهمترین تفاوتهای میان یک پروژه کوچک PLC و یک پروژه EPC در صنایع نفت، گاز، پتروشیمی و نیروگاهی، نحوه سازماندهی نرمافزار است. در پروژههای کوچک ممکن است برای هر تجهیز چند خط برنامه بهصورت مستقیم در OB1 نوشته شود، اما در پروژههای بزرگ با صدها موتور، ولو، پمپ، کمپرسور و حلقههای کنترلی، این روش بهسرعت باعث افزایش حجم برنامه، دشواری نگهداری و افزایش احتمال خطا میشود.
چرا طراحی کتابخانه FB اهمیت دارد؟
در یک پالایشگاه متوسط ممکن است تعداد تجهیزات
به شکل زیر باشد:
· بیش از ۵۰۰ موتور
الکتریکی
· حدود ۲۰۰ شیر
کنترلی و موتوری
· بیش از ۳۰۰
ترانسمیتر فشار، دما، سطح و دبی
· دهها کمپرسور و پمپ فرآیندی
· صدها آلارم و اینترلاک
اگر برای هر تجهیز منطق جداگانه نوشته شود، نرمافزار
بهشدت پیچیده و غیرقابل نگهداری خواهد شد. اما با طراحی یک FB استاندارد برای هر نوع تجهیز، تمام نمونههای
مشابه از یک منطق مشترک استفاده میکنند و تنها پارامترها و وضعیت هر تجهیز در Instance DB اختصاصی ذخیره میشود.
اصول طراحی کتابخانههای FB
یک کتابخانه حرفهای باید ویژگیهای زیر را
داشته باشد:
· ساختار ماژولار
· قابلیت استفاده مجدد (Reusable)
· توسعهپذیری
· مستندسازی کامل
· نامگذاری استاندارد
· امکان تست مستقل هر FB
· سازگاری با HMI و
SCADA
· پشتیبانی از آلارم و Diagnostic
FB استاندارد
برای موتور
(FB_MOTOR)
در پروژههای صنعتی، تقریباً تمام موتورهای
الکتریکی از یک منطق کنترلی مشابه استفاده میکنند. بنابراین یک FB اختصاصی برای موتور طراحی میشود که وظایف زیر
را بر عهده دارد:
· دریافت فرمان Start و
Stop
· بررسی مجوز راهاندازی (Start Permissive)
· کنترل اینترلاکها
· پایش وضعیت Running
· تشخیص Trip
· مدیریت حالت Local و
Remote
· ثبت ساعات کارکرد (Running Hours)
· تولید آلارمهای عملکردی
با این روش، صدها موتور تنها با فراخوانی یک FB و ایجاد Instance DB مستقل مدیریت میشوند.
FB استاندارد
برای شیرهای موتوری
(FB_VALVE)
برای کنترل شیرهای موتوری، یک Function Block اختصاصی طراحی میشود که وظایف آن شامل موارد
زیر است:
· فرمان Open
· فرمان Close
· دریافت فیدبک باز بودن
· دریافت فیدبک بسته بودن
· تشخیص Timeout
· کنترل حالت دستی و اتوماتیک
· اعلام خطای عملکرد
· ثبت وضعیت نهایی تجهیز
این ساختار باعث میشود تمامی شیرهای موتوری
پروژه از یک استاندارد مشترک پیروی کنند.
FB استاندارد
برای حلقههای آنالوگ
(FB_ANALOG)
برای مدیریت سیگنالهای آنالوگ، معمولاً یک FB اختصاصی طراحی میشود که عملیات زیر را انجام میدهد:
· دریافت مقدار خام از کارت آنالوگ
· تبدیل به واحد مهندسی
· بررسی محدوده مجاز
· تولید آلارمهای HH، H، L و LL
· تشخیص قطع شدن سنسور
· اعمال فیلتر نرمافزاری
· ارسال مقدار نهایی به HMI
این ساختار باعث میشود تمامی ترانسمیترهای
پروژه رفتار یکسانی داشته باشند.
استفاده از FB41، FB42 و
FB43 در معماری نرمافزار
در یک کتابخانه استاندارد، FBهای
استاندارد زیمنس نیز نقش مهمی دارند:
· FB41 (CONT_C) برای
حلقههای
PID با خروجی آنالوگ مانند کنترل فشار، دما، سطح و
دبی.
· FB42 (CONT_S) برای
کنترل تجهیزات دارای خروجی مرحلهای مانند Motor Operated Valve و
Damper.
· FB43 (PULSEGEN) برای
اجرای توالیهای زمانی، تولید پالس و کنترل تجهیزات دورهای مانند سیستمهای
روانکاری، تزریق مواد شیمیایی و
Blowdown.
این FBها معمولاً درون FBهای اختصاصی پروژه فراخوانی میشوند تا منطق کنترلی بهصورت لایهبندیشده و قابل نگهداری پیادهسازی شود.
مزایای این معماری در پروژههای EPC
استفاده از کتابخانههای استاندارد FB مزایای قابل توجهی دارد:
· کاهش زمان مهندسی و برنامهنویسی
· کاهش خطاهای انسانی
· استانداردسازی نرمافزار در کل پروژه
· تسهیل تست FAT و
SAT
· کاهش زمان Commissioning
· سادهتر شدن آموزش اپراتورها و تیم نگهداری
· امکان استفاده مجدد از نرمافزار در پروژههای
آینده
· افزایش قابلیت توسعه و Revamp
اشتباهات رایج در طراحی Function Block
برخی از خطاهایی که در پروژههای صنعتی مشاهده
میشود عبارتاند از:
· نوشتن منطق هر تجهیز بهصورت مستقل و بدون
استفاده از
FB.
· استفاده از نامگذاری غیر استاندارد برای بلوکها
و
Instance DBها.
· ترکیب منطق چند تجهیز مختلف در یک Function Block.
· عدم مستندسازی پارامترها و نسخههای نرمافزار.
· وابستگی بیش از حد FB به آدرسهای سختافزاری بهجای استفاده از
پارامترهای ورودی و خروجی.
جمعبندی
پس از آشنایی با FB41،FB42 و FB43،
مشخص میشود که قدرت واقعی
Function Blockها
تنها در اجرای یک الگوریتم کنترلی خلاصه نمیشود، بلکه در ایجاد یک معماری استاندارد، ماژولار و قابل
توسعه برای نرمافزار
PLC است. در پروژههای بزرگ نفت، گاز، پتروشیمی و نیروگاهی،
طراحی کتابخانههای اختصاصی بر پایه FBها، امکان مدیریت صدها تجهیز با منطق یکنواخت،
کاهش هزینههای مهندسی، افزایش قابلیت اطمینان سیستم و تسریع فرآیندهای راهاندازی
و نگهداری را فراهم میکند.
