درک صحیح ساختار DB برای مهندسان PLC و اتوماسیون اهمیت زیادی دارد؛ زیرا در پروژههای بزرگ صنعتی مانند نفت، گاز، پتروشیمی، پالایشگاه و نیروگاه، نحوه طراحی و سازماندهی اطلاعات PLC میتواند مستقیماً روی توسعه نرمافزار، عیبیابی، Commissioning، نگهداری و توسعه آینده سیستم کنترل تأثیر بگذارد.
در این مقاله از مجموعه آموزشهای کاربردی الکترونت، با مفهوم Data Block در SIMATIC Manager آشنا
میشویم و تفاوت
Shared DB و
Instance DB را بررسی میکنیم. همچنین در ادامه مجموعه،
ساختارهای پیشرفتهتری مانند Multi-Instance، Recipe و Retain را بهصورت
عملی بررسی خواهیم کرد.
در این
مقاله چه میخوانید؟
در این
مجموعه آموزشی با Data Block یا DB در PLC زیمنس و محیط SIMATIC Manager / STEP 7 Classic آشنا
میشوید و یاد میگیرید چگونه اطلاعات و دادههای یک پروژه صنعتی را بهصورت
استاندارد در
PLC سازماندهی و مدیریت کنید.
در این
مسیر، ابتدا با مفهوم Data Block، کاربرد DB و تفاوت آن با FC و FB آشنا
میشویم و سپس بهصورت عملی ساختار Shared DB را
بررسی میکنیم. در ادامه، نحوه انتخاب Data Type، استاندارد نامگذاری متغیرها، ساختاردهی
اطلاعات تجهیزات و ارتباط DB
با FC، FB، HMI و SCADA مورد
بررسی قرار میگیرد.
در بخشهای
تخصصیتر، سراغ Instance DB، Multi-Instance، Recipe DB و Retain میرویم
و با مثالهایی از تجهیزات و فرآیندهای صنعتی مانند Pump، Motor، Valve و واحدهای فرآیندی، کاربرد Data Block را در پروژههای واقعی بررسی خواهیم کرد.
هدف
این مجموعه فقط آموزش ایجاد یک DB
نیست؛ بلکه هدف، آشنایی با اصول طراحی و معماری Data Block در پروژههای PLC زیمنس است؛ بهگونهای که ساختار نرمافزار برای
مراحل Engineering، Commissioning، بهرهبرداری، Maintenance و توسعه آینده پروژه قابل استفاده و استاندارد باشد.
این
آموزش با رویکرد پروژهمحور برای مهندسان PLC و اتوماسیون و همچنین مدیران پروژه، مهندسی، اتوماسیون و ابزار دقیق
در صنایع نفت، گاز، پتروشیمی، پالایشگاه، نیروگاه و صنایع
فرآیندی تهیه شده است.
Data Block یا DB
در
PLC زیمنس چیست؟
Data Block که به اختصار DB نامیده میشود، یک ناحیه داده در PLC زیمنس است که برای ذخیره اطلاعات مورد استفاده
برنامه کنترل به کار میرود.
در محیط STEP 7 Classic،
برنامه
PLC از بخشهای مختلفی مانند OB، FC، FB و DB تشکیل میشود. هرکدام از این Blockها وظیفه مشخصی در ساختار برنامه دارند.
به زبان ساده، FC و FB بیشتر برای اجرای منطق کنترلی استفاده میشوند،
در حالی که DB
محل سازماندهی و نگهداری دادههای مورد استفاده
برنامه است.
برای مثال، در یک سیستم کنترل پمپ ممکن است
اطلاعات زیر مورد نیاز باشد:
·فرمان Start
· فرمان Stop
· وضعیت Running
· وضعیت Fault
· وضعیت Auto
· فشار فعلی
·Setpoint فشار
· زمان کارکرد
· تعداد دفعات Start
این اطلاعات را میتوان در یک ساختار Data Block سازماندهی کرد تا برنامه PLC بتواند به شکل مشخص و استاندارد به آنها دسترسی
داشته باشد.
بنابراین میتوان گفت:
DB در PLC زیمنس محلی برای ذخیره و سازماندهی دادههای مورد استفاده در برنامه کنترل است.
چرا
Data Block در پروژههای صنعتی اهمیت دارد؟
در یک پروژه کوچک PLC ممکن است اهمیت ساختار DB چندان محسوس نباشد. اما زمانی که پروژه شامل دهها
یا صدها تجهیز باشد، نحوه مدیریت اطلاعات اهمیت بسیار زیادی پیدا میکند.
فرض کنید یک واحد پتروشیمی دارای 80 پمپ باشد.
هر پمپ ممکن است اطلاعاتی مانند فرمان، وضعیت، خطا، Mode،
فشار، زمان کارکرد و تعداد
Start داشته باشد.
اگر این اطلاعات بدون ساختار مشخص در حافظه PLC قرار بگیرند، توسعه و نگهداری برنامه به مرور
دشوار خواهد شد.
در مقابل، اگر برای اطلاعات تجهیزات یک ساختار
مشخص طراحی شود، مهندس
PLC میتواند اطلاعات هر تجهیز را به شکل منظم
مدیریت کند.
این ساختار میتواند مزایای زیر را ایجاد کند:
· افزایش خوانایی برنامه PLC
· سادهتر شدن عیبیابی
· کاهش زمان Commissioning
· سهولت توسعه پروژه
· استانداردسازی برنامهنویسی
· دسترسی سادهتر HMI و
SCADA به اطلاعات
· کاهش خطا در توسعه نرمافزار
· سادهتر شدن Maintenance
· امکان استفاده مجدد از ساختارهای نرمافزاری
به همین دلیل، طراحی Data Block یکی از موضوعات مهم در معماری نرمافزار PLC محسوب
میشود.
Data Block در
SIMATIC Manager چه
کاربردی دارد؟
در محیط SIMATIC Manager و STEP 7 Classic، Data Block میتواند برای ذخیره انواع مختلف اطلاعات
استفاده شود.
برای مثال یک DB میتواند شامل مقادیر فرآیندی باشد:
·Pressure PV
· Temperature PV
· Flow PV
· Level PV
یا میتواند برای تنظیمات استفاده شود:
· Pressure Setpoint
· Temperature Limit
· Start Delay
· Stop Delay
همچنین میتوان اطلاعات مربوط به وضعیت تجهیزات
را در DB
نگهداری کرد:
· Motor Running
· Motor Fault
· Auto Mode
· Local Mode
· Remote Mode
بنابراین کاربرد DB محدود به ذخیره یک نوع خاص از اطلاعات نیست و میتوان بر اساس معماری پروژه، ساختارهای مختلفی برای آن تعریف کرد.
تفاوت DB با FC
و FB
در
STEP 7 Classic چیست؟
برای درک بهتر Data Block ابتدا باید تفاوت آن را با FC و FB
بدانیم.
FC یا Function برای
اجرای یک
Function یا منطق مشخص در برنامه استفاده میشود و بهصورت
ذاتی مانند FB
دارای حافظه استاتیک اختصاصی نیست.
FB یا Function Block برای
پیادهسازی منطقهایی استفاده میشود که به حافظه استاتیک نیاز دارند. این حافظه
معمولاً توسط یک
Instance DB در اختیار FB قرار میگیرد.
DB یا Data Block برای
ذخیره دادههای برنامه استفاده میشود.
در یک نگاه ساده میتوان این ساختار را در نظر
گرفت:
OB → FC / FB → DB
البته معماری واقعی پروژه میتواند بسیار پیچیدهتر از این ساختار باشد و بسته به استاندارد برنامهنویسی پروژه، تعداد زیادی OB، FC، FB و DB در برنامه وجود داشته باشد.
Shared DB چیست؟
یکی از مهمترین انواع Data Block در
STEP 7 Classic، Shared DB است.
Shared DB یک
Data Block مستقل است که دادههای آن میتوانند توسط قسمتهای
مختلف برنامه مورد استفاده قرار بگیرند.
برای مثال فرض کنید یک DB با نام DB_PROCESS داشته باشیم.
این DB
میتواند شامل اطلاعاتی مانند موارد زیر باشد:
در این حالت بخشهای مختلف برنامه میتوانند بر
اساس نیاز خود به اطلاعات موجود در این
Data Block دسترسی داشته باشند.
از Shared DB میتوان برای موارد مختلفی مانند Process Data، Configuration، Recipe و برخی اطلاعات مشترک پروژه استفاده کرد.
مثال صنعتی Shared DB در یک پروژه پتروشیمی
فرض کنید در یک واحد فرآیندی، اطلاعات عمومی
فرآیند باید در اختیار چند بخش مختلف برنامه PLC قرار گیرد.
برای مثال:
میتوان این اطلاعات را در یک Shared DB سازماندهی کرد.
در چنین معماری، یک FC مربوط به کنترل فرآیند میتواند از این اطلاعات
استفاده کند، HMI نیز میتواند اطلاعات مورد نیاز خود را از همین
ساختار دریافت کند و بخشهای دیگر برنامه نیز در صورت نیاز به دادههای مربوطه
دسترسی داشته باشند.
مزیت اصلی این روش، سازماندهی اطلاعات و ایجاد یک ساختار مشخص برای
دادههای پروژه است.
Instance DB چیست؟
در کنار Shared DB،
نوع مهم دیگری از
Data Block وجود دارد که با Function Block یا FB
ارتباط مستقیم دارد و به آن Instance DB گفته
میشود.
برای درک Instance DB بهتر است یک مثال صنعتی را در نظر بگیریم.
فرض کنید در یک پروژه نفت و گاز، چندین پمپ
مشابه داریم. منطق کنترلی این پمپها تا حد زیادی یکسان است.
به جای اینکه برای هر پمپ یک برنامه مستقل
بنویسیم، میتوانیم منطق عمومی کنترل پمپ را در یک FB طراحی کنیم.
برای مثال:
FB_PUMP
سپس برای هر پمپ یک Instance DB اختصاص داده میشود.
برای مثال:
در این کند.
این روش یکی از پایههای مهم استانداردسازی برنامه PLC در پروژههای صنعتی است.
ارتباط FB و
Instance DB در یک پروژه واقعی
فرض کنید یک FB برای کنترل پمپ طراحی کردهایم.
نام آن:
FB_PUMP
این FB
میتواند شامل منطقهایی مانند موارد زیر باشد:
· Start/Stop Control
· Auto/Manual
· Interlock
· Fault Handling
· Running Status
· Runtime
· Start Counter
اکنون برای پمپ P-101 یک
Instance DB ایجاد میکنیم.
DB_P101
برای پمپ P-102 نیز:
DB_P102
و برای پمپ P-103:
DB_P103
در این حالت منطق اصلی کنترل در FB باقی میماند و اطلاعات مربوط به هر تجهیز در Instance DB مخصوص همان تجهیز مدیریت میشود.
این روش در پروژههایی که تعداد زیادی تجهیز
مشابه دارند، اهمیت بسیار زیادی دارد.
نوع
Data Type در
Data Block زیمنس؛ انتخاب صحیح نوع داده در طراحی DB
در طراحی Data Block یا DB در PLC زیمنس، یکی از تصمیمهای مهم انتخاب Data Type مناسب
برای هر متغیر است. نوع داده مشخص میکند PLC اطلاعات را چگونه در حافظه ذخیره و در برنامه
پردازش کند. انتخاب اشتباه Data Type میتواند باعث مصرف نامناسب حافظه، خطا در
محاسبات، ناسازگاری دادهها و حتی مشکل در ارتباط PLC با
HMI و سایر سیستمهای کنترلی شود. به همین دلیل در
پروژههای صنعتی، انتخاب
Data Type باید بر اساس ماهیت
واقعی داده و نحوه استفاده از آن در برنامه انجام شود.
BOOL؛
مناسب برای وضعیتها و فرمانهای دیجیتال
نوع BOOL برای
دادههایی استفاده میشود که فقط دو وضعیت دارند؛ مانند:
- Start / Stop
- ON / OFF
- Running
- Fault
- Auto / Manual
- Open / Close
برای مثال، اگر بخواهیم وضعیت Running یک پمپ را در DB ذخیره کنیم، استفاده از BOOL انتخاب مناسبی است.
در پروژههای صنعتی، بخش زیادی از Status و Command تجهیزات با متغیرهای BOOL ساخته میشود.
Data Typeهای پرکاربرد
BOOL برای
وضعیتها و فرمانهای دیجیتال مانند
Start، Stop، Running و
Fault.
INT برای
مقادیر عددی صحیح و شمارندههای معمولی.
DINT برای
اعداد صحیح با محدوده بزرگتر مانند
Runtime و
Counterهای بزرگ.
REAL برای
مقادیر اعشاری و
Process Valueهایی مانند Pressure، Temperature، Flow و
Level.
WORD برای
دادههای 16 بیتی و مجموعهای از وضعیتهای بیتی.
DWORD برای
دادههای 32 بیتی و اطلاعات بیتی بزرگتر.
انتخاب Data Type در طراحی DB
بهصورت ساده میتوان گفت:
Status و Command → معمولاً BOOL
Process Value → معمولاً REAL
Counter و مقادیر عددی → INT / DINT
دادههای بیتی و ارتباطی → WORD / DWORD
انتخاب صحیح Data Type باعث میشود Data Block خواناتر، استانداردتر و قابلاعتمادتر باشد و ارتباط آن با PLC، HMI و SCADA نیز سادهتر مدیریت شود.
DB و
طراحی استاندارد تجهیزات صنعتی
یکی از اهداف مهم استفاده صحیح از Data Block در پروژههای صنعتی، ایجاد یک ساختار استاندارد
برای تجهیزات است.
برای مثال، میتوان برای تمام پمپهای پروژه یک
ساختار مشابه تعریف کرد.
هر پمپ میتواند اطلاعاتی مانند موارد زیر داشته
باشد:
در این حالت مهندس پروژه برای بررسی پمپ P-101 و
P-102 با ساختار متفاوتی مواجه نمیشود.
این استانداردسازی میتواند در مراحل Engineering، Factory Acceptance Test، Site Acceptance Test، Commissioning و
Maintenance بسیار مفید باشد.
کاربرد Data Block برای
Recipe
یکی دیگر از کاربردهای مهم DB در صنایع فرآیندی، Recipe Management است.
در فرآیندهای Batch،
ممکن است یک تجهیز برای تولید محصولات مختلف با پارامترهای متفاوت کار کند.
برای مثال Recipe شماره 1 میتواند شامل یک دمای مشخص، فشار مشخص
و زمان فرآیند مشخص باشد.
Recipe شماره 2 میتواند تنظیمات متفاوتی داشته باشد.
در چنین شرایطی میتوان اطلاعات Recipe را در ساختارهای Data Block سازماندهی کرد.
Recipe DB میتواند شامل اطلاعاتی مانند موارد زیر باشد:
· Recipe Number
· Temperature Setpoint
· Pressure Setpoint
· Flow Setpoint
· Process Time
· Mixing Speed
این موضوع در ادامه مجموعه بهصورت تخصصیتر
بررسی خواهد شد.
Data Block و
Retain در
PLC زیمنس
موضوع دیگری که در طراحی DB اهمیت دارد، Retain یا حفظ اطلاعات است.
در پروژههای صنعتی همیشه تمام اطلاعات دارای
اهمیت یکسان نیستند.
برخی اطلاعات فقط در زمان اجرای فرآیند مورد
نیاز هستند، در حالی که برخی پارامترها ممکن است پس از Restart سیستم نیز باید حفظ شوند.
برای مثال ممکن است اطلاعات زیر نیاز به ماندگاری
داشته باشند:
· Configuration
· Setpoint
· Counter
· Totalizer
· برخی پارامترهای عملیاتی
اما نباید تصور کرد که تمام دادههای DB باید
Retentive باشند.
انتخاب اطلاعاتی که باید حفظ شوند، بخشی از
طراحی سیستم و وابسته به مشخصات
CPU و معماری پروژه است.
در مقاله اختصاصی Retain در Data Block این
موضوع را بهصورت کاملتر بررسی خواهیم کرد.
Data Block در ارتباط با HMI و
SCADA
DB فقط در
داخل برنامه
PLC استفاده نمیشود.
در بسیاری از پروژههای صنعتی، اطلاعات Data Block توسط سیستمهای HMI و
SCADA نیز مورد استفاده قرار میگیرند.
برای مثال HMI میتواند اطلاعات مربوط به یک پمپ را نمایش دهد:
· Running
· Stop
· Fault
· Auto
· Pressure
· Current
· Runtime
اگر اطلاعات PLC دارای ساختار استاندارد باشد، تعریف Tagها و توسعه صفحات HMI نیز میتواند سادهتر و منظمتر انجام شود.
به همین دلیل، طراحی DB باید از ابتدا با در نظر گرفتن نیازهای PLC، HMI، SCADA و سیستم کنترل پروژه انجام شود.
چرا طراحی DB برای پروژههای نفت، گاز و پتروشیمی اهمیت دارد؟
در پروژههای بزرگ صنعتی، تعداد تجهیزات و حجم
اطلاعات بسیار زیاد است.
یک پروژه ممکن است شامل:
· صدها
Motor
· تعداد زیادی Pump
· Compressor
· Valve
· Tank
· Instrument
· Control Loop
باشد.
هر یک از این تجهیزات اطلاعات، فرمانها، وضعیتها
و
Alarmهای مختلفی دارند.
اگر ساختار Data Block از ابتدا استاندارد طراحی نشده باشد، با افزایش
حجم پروژه مشکلاتی مانند پیچیدگی برنامه، افزایش زمان عیبیابی، دشواری توسعه و
افزایش هزینه
Maintenance ایجاد خواهد شد.
بنابراین DB را نباید فقط یک بخش ساده از حافظه PLC در نظر گرفت.
DB بخشی از معماری اطلاعات نرمافزار PLC است.
یک معماری ساده برای Data Block در پروژه صنعتی
برای مثال، در یک پروژه فرآیندی میتوان ساختار
کلی DBها را به شکل زیر طراحی کرد:
DB_PROCESS برای اطلاعات فرآیند
DB_CONFIG برای تنظیمات سیستم
DB_RECIPE برای
Recipeها
DB_ALARM برای اطلاعات Alarm
DB_P101 برای
Instance مربوط به پمپ P-101
DB_P102 برای
Instance مربوط به پمپ P-102
DB_M101 برای
Instance مربوط به موتور M-101
این فقط یک نمونه آموزشی است و در پروژه واقعی باید Naming Convention و ساختار DB بر اساس استاندارد پروژه، فلسفه کنترل و استانداردهای کارفرما تعریف شود.
اشتباه رایج در طراحی Data Block
یکی از اشتباهات رایج این است که برنامهنویس
تمام اطلاعات پروژه را بدون هیچ دستهبندی در چند DB بزرگ قرار دهد.
ممکن است در ابتدا این روش ساده به نظر برسد،
اما با افزایش حجم پروژه، پیدا کردن اطلاعات دشوارتر میشود.
اشتباه دیگر، ایجاد تعداد بسیار زیادی DB بدون یک Architecture مشخص است.
بنابراین هدف اصلی این نیست که تعداد DBها را زیاد یا کم کنیم.
هدف اصلی این است که:
دادهها بر اساس یک معماری مشخص، قابل فهم و
قابل توسعه سازماندهی شوند.
جمعبندی آموزش Data Block در
SIMATIC Manager
Data Block یا DB
یکی از اجزای کلیدی برنامهنویسی PLC زیمنس در محیط SIMATIC Manager و
STEP 7 Classic است.
DB برای
ذخیره و سازماندهی اطلاعات مورد استفاده برنامه PLC به کار میرود و میتواند شامل Process Value، Setpoint، Status، Command، Alarm، Configuration، Counter، Recipe و سایر دادههای مورد نیاز سیستم کنترل باشد.
در این مقاله با مفهوم Data Block،
کاربرد DB
در پروژههای صنعتی، Shared DB و
Instance DB آشنا شدیم.
در طراحی پروژههای بزرگ، استفاده صحیح از DB میتواند به استانداردسازی برنامه، افزایش
قابلیت نگهداری، سادهتر شدن
Commissioning،
توسعه آسانتر نرمافزار و ارتباط بهتر
PLC با
HMI و
SCADA کمک کند.
اما بخش مهمتر آموزش از اینجا شروع میشود؛ زیرا در پروژه واقعی باید بدانیم چه زمانی از Shared DB استفاده کنیم، چه زمانی Instance DB مناسب است و چگونه ساختار DB را برای تجهیزات مختلف طراحی کنیم. برای آموزش این مفهوم مهم از Data Block با ادامه مقالات آموزشی Data Block از گروه اموزشی و مهندسی الکترونت همراه باشید.
