فهرست مطالب
Toggleدر این مقاله ابتدا تعریفی ار فانکشن (FC) و فانکشن بلاک (FB) ارائه میکنیم سپس سعی میکنیم تفاوت FC و FB را بیان کنیم و سپس به معرفی فانکشن بلاکها یا همان بلوکهای برنامه نویسی شده PLC تهیه شده توسط شرکت نیکسا میپردازیم. این فانکشنها به برنامه نویسان PLC کمک میکند تا یک برنامه ساختار یافته بنویسند. با ما همراه باشید.
برنامه نویسی ساختاریافته در PLC
جهت دست یافتن به برنامه ای ساختار یافته در سیستم PLC، می بایست با توجه به مقیاس و تقسیم بندی های فیزیکی یا کاربردی طرح، برنامه به بخش های گوناگون تقسیم شود تا علاوه بر قابلیت ردیابی و رفع ایرادهای احتمالی، امکان توسعه آتی نیز به راحتی فراهم گردد. هم چنین می بایست بخش های تکرار شونده برنامه را به گونه ای آماده نمود که نیازی به بازنویسی آن ها نباشد. به این روش برنامه نویسی در PLC برنامه نویسی ساختار یافته گفته میشود.
فانکشن (Function یا FC)
فانکشن (FC) در PLC یک بلوک منطقی بدون حافظه است. این نوع بلوک میتواند توسط کاربر طراحی شود و به تعداد دفعات دلخواه مورد استفاده قرار گیرد.
در FC نیز میتوان پارامترهای مختلفی تعریف کرد، مانند:
In(ورودی)Out(خروجی)In-Out(ورودی-خروجی)Temp(موقت)
نکته مهم این است که بر خلاف Function Block (FB)، تابع (FC) هیچ گونه بلوک دادهای (DB) به عنوان حافظه دائمی ندارد. بنابراین، تمام دادههای موقتی FC پس از اجرای آن از بین میروند و هیچ اطلاعاتی ذخیره نمیشود.
متغیرهای موقت (Temp) که در تابع (Function یا FC) تعریف میشوند، در پشته دادههای محلی (Local Data Stack) ذخیره میشوند. این دادهها پس از پایان اجرای FC از بین میروند و هیچگونه ماندگاری یا ذخیرهسازی دائمی ندارند. به عبارت دیگر، متغیرهای Temp در FC فقط در طول اجرای همان فراخوانی فعال هستند و به محض اتمام اجرای FC، پاک میشوند.

تصویر بالا بلوکهای FC مربوط به راهاندازی موتور را نشان میدهد. همه پارامترها مانند In، Out و In-Out باید با آدرسهای مناسب پر شوند.
فانکشن بلاک (Function Block یا FB)
تابع بلاک (FB) یک بلوک منطقی دارای حافظه است. این نوع بلوک میتواند توسط کاربر نیز طراحی شود و به تعداد دفعات دلخواه فراخوانی گردد.
تفاوت اصلی FB با سایر بلوکها در این است که هر بار که یک تابع بلاک (FB) فراخوانی میشود، یک “بلوک داده” (DB) بهعنوان حافظه برای آن ایجاد میگردد. این بلوک داده به عنوان بلوک داده نمونهای (Instance Data Block) شناخته میشود.
ما همچنین میتوانیم پارامترهای مختلفی را در یک تابع بلاک (Function Block یا FB) تعریف کنیم، از جمله:
In(ورودی)Out(خروجی)In-Out(ورودی-خروجی)Temp(موقت)Stat(ایستا)، که پارامتر اضافهای مخصوص FBها محسوب میشود.
دادههایی که در بلوک داده نمونهای (Instance Data Block) ذخیره میشوند، پس از پایان اجرای FB از بین نمیروند. متغیرهای ایستا (Static) در همین بلوک داده نمونهای نگهداری میشوند. اما دادههای مربوط به Temp (موقت) در پشته دادههای محلی (Local Data Stack) ذخیره میگردند که پس از پایان اجرای FB پاک میشوند و باقی نمیمانند.

تفاوت FC و FB
برای دسترسی به موارد فوق و ایجاد یک برنامه ساختار یافته در PLC از دو نوع بلاک ذکر شده در بالا برای برنامه نویسی استفاده می شود:
فانکشن FC، بلاکی است شامل دستورات برنامه نویسی که از آن می توان بدون اختصاص هرگونه ورودی یا خروجی، جهت تقسیم بندی برنامه به بخش های گوناگون و مجزا استفاده نمود. هم چنین می توان در صورتی که نیازی به بازیابی اطلاعات گذشته وجود ندارد، با اختصاص ورودی و خروجی به آن جهت آماده سازی یک برنامه تکرار شونده از آن استفاده نمود و با فراخوانی آن و تغییر آدرس های ورودی و خروجی، عملکرد لحظه ای مورد انتظار را از آن را به دفعات دریافت نمود.
در صورتی که علاوه بر نیاز به یک برنامه تکرار شونده، نیاز به بازیابی اطلاعات گذشته سیستم به همراه ورودی های گوناگون وجود داشته باشد، از FB در PLC استفاده می گردد. جهت عملکرد صحیح فانکشن بلاک در PLC (FB)، می بایست پس از هر بار فراخوانی آن، آدرس یک دیتا بلاک (DB) جدید به آن اختصاص داده شود تا عملکرد بلاک به صورت انحصاری صورت پذیرد. بصورت خلاصه میتوان گفت که مهمترین تفاوت FC و FB این است که فانکشن بلاک (FB) ها نیاز به دیتا بلاک دارند در حالی که FC ها نیاز به آن ندارند.
به عنوان نمونه در شکل زیر برای هر یک از واحدهای مختلف یک پروژه، یک بلاک FC مجزا بدون ورودی و خروجی در نظر گرفته شده است.

شکل (1). بلاک FC بدون ورودی و خروجی مجزا
چنان که در شکل زیر نمایش داده شده است، به جهت ایجاد ساختاری بهتر در برنامه برای هر یک از تجهیزات پروژه یک فانکشن بلاک FB مجزا در نظر گرفته شده است:

شکل (2). بلاک FB مجزا برای هریک از تجهیزات پروژه
که پس از هر بار فراخوانی، برای هر کدام، یک بلوک داده (DB) منحصر به فرد اختصاص داده شده است. در شکل زیر FB801 به دفعات در برنامه فراخوانی شده است:

شکل (3). اختصاص دیتا بلاک (DB) در هر بار فراخوانی FB
فانکشن بلاک در PLC ارائه شده شرکت نیکسا
شرکت نیکسا مجری پروژه های برق، کنترل و ابزار دقیق با سابقه طولانی در اجرای سیستم های کنترل، ابزاردقیق و اتوماسیون صنعتی، جهت تسهیل در ارائه خدمات برنامه نویسی PLC و مانیتورینگ، توسط نیروهای مجرب خود اقدام به آماده سازی فانکشن های متنوعی برای برنامه PLC و متناسب با آن ها اقدام به آماده سازی ماژول های گرافیکی لازم در سیستم مانیتورنیگ نموده است. با این روش، شرکت نیکسا توانسته است خدمات برنامه نویسی را به صورت ساختار یافته، در کوتاه ترین زمان ممکن و با پایین ترین خطای برنامه نویسی ارائه دهد.
فانکشن بلاک های آماده شده توسط شرکت نیکسا که در واقع همان بلوک های برنامه نویسی در PLC هستند به سه دسته کلی تقسیم می گردند:
- فانکشن بلاک های مربوط به ابزاردقیق ها
- فانکشن بلاک های مربوط به عملگرها
- فانکشن بلاک های کنترلی
فانکشن بلاک FB برنامه نویسی شده برای ابزار دقیق
با کلیک بر روی تصاویر زیر، می توانید “فانکشن بلاک های برنامه نویسی PLC، بخش ابزاردقیق: ترانسمیترها” را دانلود نمایید:
فانکشن بلاک کاربردی ابزار دقیق- اندازهگیر فشار
برخی از قابلیتهای فانکشن بلاک اندازهگیر فشار در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- ایجاد و فعال و غیر فعال نمودن هفت سطح کنترلی (Set Point) برای فشار با استفاده از مقدار اندازهگیری شده
- مشاهده سطوح فعال و غیر فعال و تنظیم مقدار آنها در سیستم مانیتورینگ
- تعریف هیسترزیس (Hysteresis) جهت جلوگیری از ایجاد نوسان در فرآیند کنترل در سطوح تعیین شده
- فعال و غیر فعال کردن اعلام هشدارها و آلارمها در برنامه PLC
- نمایش فشار (Pressure) به صورت عددی و نمودار میلهای
- تنظیم محدوده اندازهگیری (Measuring Range) معادل با سیگنال الکتریکی ارسالی از ابزاردقیق مطابق با تنظیمات آن
فانکشن بلاک کاربردی ابزار دقیق- آنالایزر مواد
برخی از قابلیتهای فانکشن بلاک آنالایزر مواد در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- ایجاد و فعال و غیر فعال نمودن هفت سطح کنترلی (Set Point) با استفاده از مقدار اندازهگیری شده
- مشاهده سطوح فعال و غیر فعال و تنظیم مقدار آنها در سیستم مانیتورینگ
- تعریف هیسترزیس (Hysteresis) جهت جلوگیری از ایجاد نوسان در فرآیند کنترل در سطوح تعیین شده
- فعال و غیر فعال کردن اعلام هشدارها و آلارمها در برنامه PLC
- نمایش مقدار اندازهگیری شده (Value Process) به صورت عددی و نمودار میلهای
- دسترسی سریع به نمودار (Trend) تغییرات پارامتر کیفی اندازه گیری شده در طول زمان
فانکشن بلاک کاربردی ابزار دقیق- اندازهگیر سطح
برخی از قابلیتهای فانکشن بلاک اندازهگیر سطح در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- ایجاد و فعال و غیر فعال نمودن هفت سطح کنترلی (Set Point) برای فشار با استفاده از مقدار اندازهگیری شده
- مشاهده سطوح فعال و غیر فعال و تنظیم مقدار آنها در سیستم مانیتورینگ
- تعریف هیسترزیس (Hysteresis) جهت جلوگیری از ایجاد نوسان در فرآیند کنترل در سطوح تعیین شده
- فعال و غیر فعال کردن اعلام هشدارها و آلارمها در برنامه PLC
- نمایش ارتفاع ماده در مخزن (Level) به صورت عددی و نمودار میلهای
- دسترسی سریع به نمودار (Trend) تغییرات پارامتر کیفی اندازه گیری شده در طول زمان
فانکشن بلاک کاربردی ابزار دقیق- اندازهگیر دما
برخی از قابلیتهای فانکشن بلاک اندازهگیر دما در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- ایجاد و فعال و غیر فعال نمودن هفت سطح کنترلی (Set Point) برای دما با استفاده از مقدار اندازهگیری شده
- مشاهده سطوح فعال و غیر فعال و تنظیم مقدار آنها در سیستم مانیتورینگ
- تعریف هیسترزیس (Hysteresis) جهت جلوگیری از ایجاد نوسان در فرآیند کنترل در سطوح تعیین شده
- فعال و غیر فعال کردن اعلام هشدارها و آلارمها در برنامه PLC
- تنظیم محدوده اندازهگیری (Measuring Range) معادل با سیگنال الکتریکی ارسالی از ابزاردقیق مطابق با تنظیمات آن
فانکشن بلاک کاربردی ابزار دقیق- اندازهگیر دبی
برخی از قابلیتهای فانکشن بلاک اندازهگیر دبی در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- ایجاد و فعال و غیر فعال نمودن هفت سطح کنترلی (Set Point) برای دبی لحظهای با استفاده از مقدار اندازهگیری شده
- مشاهده سطوح فعال و غیر فعال و تنظیم مقدار آنها در سیستم مانیتورینگ
- تعریف هیسترزیس (Hysteresis) جهت جلوگیری از ایجاد نوسان در فرآیند کنترل در سطوح تعیین شده
- فعال و غیر فعال کردن اعلام هشدارها و آلارمها در برنامه PLC
- نمایش دبی اندازهگیری شده به صورت عددی و نمودار میلهای
- تنظیم محدوده اندازهگیری (Measuring Range) معادل با سیگنال الکتریکی ارسالی از ابزاردقیق مطابق با تنظیمات آن
با کلیک بر روی تصاویر زیر، می توانید “فانکشن بلاک های برنامه نویسی PLC، بخش ابزاردقیق: سوئیچ ها” را دانلود نمایید:
فانکشن بلاک کاربردی ابزار دقیق- سوئیچ سطح
برخی از قابلیتهای فانکشن بلاک سوئیچ سطح در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- نمایش وضعیت سوئیچ به صورت تغییر رنگ
- امکان لحاظ نمودن سوئیچ در هفت وضعیت متفاوت
- نمایش وضعیت کلی ابزاردقیق (آلارم، هشدار) در صفحه اصلی سیستم مانیتورینگ
- فعال و غیر فعال کردن اعلام هشدارها و آلارمها در برنامه PLC
فانکشن بلاک کاربردی ابزار دقیق- سوئیچ دبی
برخی از قابلیتهای فانکشن بلاک سوئیچ دبی در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- نمایش وضعیت سوئیچ به صورت تغییر رنگ
- امکان لحاظ نمودن سوئیچ در هفت وضعیت متفاوت
- نمایش وضعیت کلی ابزاردقیق (آلارم، هشدار) در صفحه اصلی سیستم مانیتورینگ
- فعال و غیر فعال کردن اعلام هشدارها و آلارمها در برنامه PLC
فانکشن بلاک کاربردی ابزار دقیق- سوئیچ فشار
برخی از قابلیتهای فانکشن بلاک سوئیچ فشار در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- نمایش وضعیت سوئیچ به صورت تغییر رنگ
- امکان لحاظ نمودن سوئیچ در هفت وضعیت متفاوت
- نمایش وضعیت کلی ابزاردقیق (آلارم، هشدار) در صفحه اصلی سیستم مانیتورینگ
- فعال و غیر فعال کردن اعلام هشدارها و آلارمها در برنامه PLC
فانکشن بلاک (FB) برنامه نویسی شده برای عملگر
با کلیک بر روی تصاویر زیر، می توانید “فانکشن بلاک های برنامه نویسی PLC، بخش عملگرها” را دانلود نمایید:
فانکشن بلاک کاربردی عملگر- الکتروموتور یک سرعته و یک جهته
برخی از قابلیتهای فانکشن بلاک الکتروموتور یک سرعته و یک جهته در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- نمایش وضعیت روشن، در حال روشن یا خاموش شدن، در حال خاموش و خطای تجهیز با رنگهای گوناگون
- دارای نمایش وضعیت سلکتور سوئیچهای تعیین کننده سطح عملکرد در صورت موجود بودن…
– بر روی تابلو کنترل محلی (Local/Remote)
– بر روی تابلو برق تجهیز (MCC/PLC) - امکان قراردادن تجهیز در وضعیت سرویس یا آماده به کار (Standby/Service)
- تنظیم زمان فعال بودن فرمان PLC جهت روشن یا خاموش کردن تجهیز برای سیستمهای دو فرمانه
فانکشن بلاک کاربردی عملگر- شیر برقی
برخی از قابلیتهای فانکشن بلاک شیر برقی در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- نمایش وضعیت باز، در حال باز یا بسته شدن، در حال بسته و خطای تجهیز با رنگهای گوناگون
- دارای نمایش وضعیت سلکتور سوئیچهای تعیین کننده سطح عملکرد در صورت موجود بودن…
– بر روی تابلو کنترل محلی (Local/Remote)
– بر روی تابلو برق تجهیز (MCC/PLC) - امکان قراردادن تجهیز در وضعیت سرویس یا آماده به کار (Standby/Service)
فانکشن بلاک کاربردی عملگر- شیر برقی به همراه فیدبک
برخی از قابلیتهای فانکشن بلاک شیر برقی به همراه فیدبک در زیر لیست شده هست برای مشاهده تمامی قابلیتهای این فانکشن روی تصویر زیر کلیک نمایید.
- نمایش وضعیت باز، در حال باز یا بسته شدن، در حال بسته و خطای تجهیز با رنگهای گوناگون
- دارای نمایش وضعیت سلکتور سوئیچهای تعیین کننده سطح عملکرد در صورت موجود بودن…
– بر روی تابلو کنترل محلی (Local/Remote)
– بر روی تابلو برق تجهیز (MCC/PLC) - امکان قراردادن تجهیز در وضعیت سرویس یا آماده به کار (Standby/Service)
فانکشن های مربوط به ابزاردقیق ها و عملگرها پس دریافت سیگنال های تجهیز در ورودی های PLC، علاوه بر نمایش اطلاعات اصلی شامل وضعیت یا مقادیر اندازه گیری شده توسط ابزاردقیق ها و به صورت مشابه وضعیت عملگرها همانند وضعیت روشن، خاموش، خطا و … در سیستم مانیتورینگ، با توجه به نیازهای متعدد صنعت، اقدام به پردازش سیگنال و آماده سازی اطلاعات بسیار زیادی نموده است که علاوه بر تسهیل فرآیند برنامه نویسی، اطلاعات متعددی را در سیستم مانیتورینگ در اختیار کاربر قرار می دهد و در نهایت توسط فانکشن های عملگرها، خروجی های لازم جهت فرمان به عملگر آماده می گردد. با کمک این فانکشن ها، برنامه نویس می تواند به راحتی و با سرعت بسیار زیاد، ساختار کلی برنامه را بر اساس مدارک طراحی، جهت عملکرد دستی آماده نماید.
فانکشن بلاک (FB) برنامه نویسی شده کنترلی
فانکشن های کنترلی آماده شده توسط شرکت نیکسا، به برنامه نویس کمک می کند تا به صورت ساختار یافته به تکمیل برنامه جهت عملکرد خودکار سیستم بر اساس مدارک طراحی شامل فلسفه کنترل و لاجیک مورد درخواست کارفرما اقدام نماید. این فانکشن ها با دریافت اطلاعات از دو گروه فانکشن دیگر، سیگنال های لازم جهت عملکرد خودکار سیستم را آماده می نمایند.
شرکت نیکسا علاوه بر ارائه خدمات برنامه نویسی PLC و سیستم مانیتورینگ، امکان ارائه فانکشن های یاد شده به صورت مستقل به سیستم های تامین کننده این خدمات که خود نیازمند سیستمی ساختار یافته جهت برنامه نویسی هستند نیز دارا می باشد.
در جدول زیر لیست فانکشن های آماده شرکت نیکسا قابل مشاهده می باشد:
شکل (4). فانکشن های برنامه نویسی PLC نیکسا
سخن پایانی
در این مقاله آموختیم که فانکشن بلاک (FB) در برنامه نویسی PLC به برنامه نویس کمک میکند تا بخشی از برنامه که قابلیت تکرار دارد را در قالب فانکشن بلاک قرار دهد و در صورت نیاز در برنامه فراخوانی نماید. شرکت نیکسا با توجه به سابقه چندین ساله در برنامه نویسی و پیاده سازی اتوماسیون صنعتی در پروژههای مختلف اقدام به تهیه فانکشن بلاک (بلوک های برنامه نویسی در PLC) برای تجهیزاتی که معمولا در پلنهای صنعتی مورد استفاده قرار میگیرد مانند موتورها، شیرهای برقی، ابزار دقیقها و … نموده است. برای کسب اطلاعات بیشتر درباره برنامه نویسی اتوماسیون صنعتی و قیمت برنامه نویسی plc با ما تماس بگیرید.

















11 پاسخ
سلام روز خوش
چه تفاوتی بین بلوکهای فانکشن (FB) و بلوکهای برنامه (OB) وجود دارد؟
سلام روز شما هم خوش
بلوک های برنامه یا همان OB ها بلوک های اصلی برنامه هستند که نقطه شروع برنامه محسوب میشوند و ساختار کلی برنامه را تعریف می کنند. اما فانکشن بلاک ها یا FB ها وظایف خاص و مستقلی را انجام میدهند و به عنوان زیر برنامه ها در OB استفاده میشوند.
با سلام
چگونه میتوان عیبهای رایج در برنامهنویسی PLC را شناسایی کرد؟
سلام وقتتون بخیر
از طریق شبیه سازی، استفاده از ابزارهای عیب یابی، مشاهده رفتار سیستم، تست مرحله ای و غیره می توان عیب هی رایج برنامه نویسی پی ال سی را پیدا کرد.
سلام … بلوکهای شمارش (Counting Blocks)، از بلوک برنامه نویسی در PLC رو توضیح میدید؟ سپاس
سلام، بلوکهای شمارش (Counting Blocks) در PLC، ابزاری قدرتمند برای شمارش رویدادها، پالسها و سایر سیگنالهای دیجیتال هستند. این بلوکها به شما امکان میدهند تا تعداد دفعات وقوع یک رویداد خاص را در یک فرآیند صنعتی ردیابی و کنترل کنید.
سلام
بهترین روشها برای مدیریت حافظه در استفاده از فانکشن بلاکها چیست؟
سلام چطور می تونم از بلوک برنامه نویسی PLC که شرکت شما آماده کرده استفاده کنم؟
سلام وقت بخیر
با شماره های شرکت به شماره 02188526643 تماس حاصل فرمایید.
سلام
نقش فانکشنها در سادهسازی کد PLC چیست؟
سلام مهندس
فانکشنها در PLC نقش مهمی در سادهسازی و ساختاردهی کد دارند، زیرا منطقهای تکراری یا پیچیده را در قالب بلوکهای مستقل و قابلاستفادهمجدد تعریف میکنند. این کار باعث میشود برنامه خواناتر، کوتاهتر و منظمتر شود، خطاها راحتتر شناسایی شوند و در صورت نیاز به تغییر، فقط همان فانکشن ویرایش گردد. بهاینترتیب، فانکشنها علاوه بر کاهش حجم کدنویسی، افزایش سرعت توسعه، اشکالزدایی آسانتر و نگهداری بهتر سیستم را نیز فراهم میکنند.