فهرست مطالب
Toggleدر ابن مقاله قصد داریم تا درباره معرفی انواع زبان برنامه نویسی PLC صحبت کنیم. PLC (کنترل گر منطقی با قابلیت برنامه ریزی)، یک سیستم کنترل رایانه ای صنعتی است که به طور مداوم اطلاعات دستگاه های ورودی را بررسی کرده و بر اساس برنامه نویسی انجام شده، برای کنترل (خاموش و روشن کردن) وضعیت دستگاهای خروجی تصمیم گیری می کند. در این مقاله ما به بررسی زبان های برنامه نویسی PLC مانند زبان Ladder، زبان FBD و زبان ST و … می پردازیم.
با استفاده از این نوع سیستم کنترل، می توان راندمان هر خط تولید، دستگاه یا فرآیند صنعتی را بهبود بخشید. با این وجود، بزرگترین مزیت PLC، توانایی تغییر و تعمیم عملیات یا فرآیند، هنگام جمع آوری و انتقال اطلاعات است. یکی دیگر از مزایای سیستم PLC وجود مدل های ماژولار آن است. PLC های ماژولار با اضافه کردن کارت های DI ,DO ,AI ,AO با توجه به CPU که این سخت افزار داراست میتوان تعداد ورودی و خروجی ها را اضافه کرد . این مزیت در پروژه هایی که امکان اضافه شدن تعداد ورودی و خروجی ها همواره وجود دارد می تواند بسیار مفید باشد.
بیشتر بخوانید: ساخت و طراحی تابلو PLC
قبل از انکه شروع به برنامه نویسی در سیستم PLC نماییم باید ابتدا تعداد ورودی ها و خروجی های سیستم کنترل را محاسبه کنیم.
معرفی 5 زبان برنامه نویسی PLC
در استاندارد IEC 61131-3، پنج زبان برنامهنویسی اصلی برای PLC (Programmable Logic Controller) تعریف شدهاند که هر کدام کاربردها و ویژگیهای خاص خود را دارند. این زبانها به شرح زیر هستند.
- نمودار نردبانی (LAD-Ladder Diagram)
- نمودار تابع ترتیبی(SFS-Sequential Function Charts)
- نمودار بلوک توابع (FBD-Function Block Diagram)
- متن ساخت یافته(ST-Structured Text)
- لیست دستورات (IL-Instruction List)
در ادامه، این ۵ زبان را به همراه توضیح مختصر و کاربردهایشان معرفی میکنیم:
- adder Diagram) LAD):
رایج ترین زبان برنامه نویسی PLC و یک زبان برنامه نویسی گرافیکی است. این زبان (LAD)، عملیات منطقی را با علامت گذاری نمادین بیان می کند. این نمادها شبیه نمادهای الکتریکی (رله ها و سوئیچ های مکانیکی) ساخته شده اند اما ممکن است با نمادهایی که در شکل های الکتریکی می یابید کمی متفاوت باشد، اما عملکرد آنها تقریباً یکسان است. این زبان توسط مهندسان برق برای اجرای کارهای منطقی ، ترتیبی ، شمارش ، زمان و حساب به منظور اجرای برنامه های اتوماسیون صنعتی استفاده می شود.
اولین چیزی که هنگام ایجاد یک نمودار نردبان دیده می شود، دو خط عمودی است که نمودار، بین این دو خط پیش می رود. به ارتباطات عمودی بین این دو خط، پله گفته می شود. درست مثل نردبان فیزیکی. اغلب برنامه نردبان همراه با یک برنامه HMIکه بر روی یک رایانه کار می کند ، استفاده می شود.این نمودار از چپ به راست و از بالا به پایین خوانده میشود .برای آنکه خروجی که در سمت راست نمودار قرار گرفته است فعال شود باید تمام المان های سمت چپ اکتیو شده باشند.
در این زبان برنامه نویسی برخی از دستورات در دسترس نیستند زیرا تنها می توانید از بلوک های تعریف شده ای استفاده نمایید و این امر ممکن است که برنامه نویسی را دشوار نماید.در مقابل خواندن و برطرف کردن اشکال در این زبان در مقایسه با سایر زبان های برنامه نویسی PLC آسان تر می باشد.لازم به ذکر است که ابزارهای عیب یابی آنلاین در بر طرف کردن عیوب می تواند بسیار کارآمد باشد.

بیشتر بخوانید: معرفی PLC های آلن برادلی
-
Sequential Function Charts) SFC)
زبان برنامهنویسی SFC که مخفف Sequential Function Chart است، یکی از زبانهای استاندارد برنامهنویسی در اتوماسیون صنعتی و PLC (Programmable Logic Controller)ها میباشد. این زبان طبق استاندارد IEC 61131-3 تعریف شده و برای مدلسازی فرآیندهایی که به صورت ترتیبی (Sequence-Based) انجام میشوند، بسیار مناسب است. SFC، یک زبان برنامه نویسی گرافیکی است و باعث می شود کارهای دیگر پیرامون برنامه نویسی PLC بسیار ساده تر و حتی بصری تر شوند. اگر تجربه ای در زمینه فلوچارت دارید این زبان برای شما آشناتر خواهد بود .
جزای اصلی زبان برنامه نویسی SFC به شرح زیر است:
-
Step (مرحله)
نشاندهنده یک وضعیت خاص از سیستم است. هر Step میتواند با یک یا چند اکشن (Action) همراه باشد که وقتی Step فعال است اجرا میشوند. -
Transition (گذار)
شرطهایی هستند که وقتی برقرار شوند، باعث میشوند از یک Step به Step بعدی برویم. Transition معمولاً شامل یک شرط منطقی است. -
Action (عمل)
کارهایی که در طول فعال بودن یک Step انجام میشوند، مثل روشن کردن یک موتور یا فعال کردن یک سیگنال خروجی. -
Initial Step (مرحله اولیه)
اولین Step که در شروع برنامه فعال میشود.
نحوه اجرای SFC به این صورت است که برنامه از Initial Step آغاز میشود، اگر Transition Condition بین Steps برقرار باشد، Step فعلی غیرفعال و Step بعدی فعال میشود. این روند به صورت ترتیبی یا حتی همزمان (در برخی مدلها) ادامه پیدا میکند.
به عنوان مثال، کارهایی مانند طراحی اولیه، اشکال زدایی و عیب یابی خود برنامه. هم چنین می توان آنچه اتفاق می افتد و زمان کد گذاری را تصور کرد. اما در عین حال روشی برای برنامه نویسی سیستم های کنترل پیچیده و ساختاریافته تر است که در آن می توان با کدنویسی، در زمان بندی عمل کرد. برنامه SFC یک نمای کلی از سیستم کنترل است و هر فایل برنامه با استفاده از یکی از انواع دیگر زبان های برنامه نویسی ایجاد می شود. رویکردSFC چنین است که وظایف بزرگ و پیچیده برنامه نویسی را به وظایف کوچکتر و قابل کنترل تر تبدیل می کند.
برای پروژه هایی که دارای مراحل قابل تکرار هستد و می توان آن را به بخش های کوچکتر تبدیل کرد زبان برنامه نویسی SFC مناسب می باشد. این زبان برنامه نویسی از باکس ها (Steps) و دستوراتی تحت عنوان Transitions تشکیل شده است .باکس ها (پله ها) توابعی هستند که از برنامه و رویدادهای داخلی تشکیل شده اند .شما می توانید از هر زبان برنامه نویسی در باکس ها استفاده نمایید. دستورات Transitions برای حرکت از یک مرحله به مرحله بعد با تعریف شرایطی خاص مورد استفاده قرار می گیرند.برای اینکه چند مرحله بصورت همزمان انجام شوند از شاخه ها استفاده می کنیم.
زبان SFC برای رفع اشکال آنلاین عالی می باشد زیرا می توانید محل وقوع خطا را ببینید و متوجه شوید که چگونه می توانید آن را برطرف نمایید.

-
Function Block Diagram) FBD)
دومین زبان محبوب در بین زبان های برنامه نویسی PLC می باشد. این زبان از بلوک های عملکردی تشکیل شده است که برای ایجاد یک برنامه باید آنها را به یکدیگر متصل نمود.استفاده از بلوک های عملکردی موجب می شود که بسیاری از خطوط کد در یک بلوک منسجم گردد. بلوک عملکرد با یک جعبه نشان داده می شود. در وسط جعبه اغلب یک نماد یا متن وجود دارد. این نماد عملکرد واقعی بلوک عملکرد را نشان می دهد. بسته به عملکرد هر تعداد ورودی و خروجی در بلوک عملکرد وجود دارد. می توانید خروجی یک بلوک تابع را به ورودی بلوک دیگر متصل کنید. بدین ترتیب یک نمودار بلوک عملکرد ایجاد می شود.
گاهی نمی توان برنامه ریزی های کنترل کننده و منطقی را با دیگر نرم افزارهای PLC انجام داد، در حالی که در زبان برنامه نویسی FBD از عهده این کار بر می آید. در FBD تمام توابع یک یا چند ورودی و خروجی دارند که بلوک عملکرد، رابطه بین وضعیت ورودی و خروجی آن است.

ویدئوی زیر، سه زبان زبان نویسی مطرح شده را بیش تر توضیح می دهد:
ویدئو (1). معرفی سه زبان LD، SFC و FBD
-
(Structured Text (ST
این زبان برنامه نویسی مبتنی بر متن است. این برنامه شما فضای بسیار کمتری را اشغال می کند دذ نتیجه با سرعت بیشتری نسبت به زبان های گرافیکی اجرا میشود. به عنوان مثال می توانید ورودی یا خروجی آنالوگ PLC را فقط با یک خط کد مقیاس بندی کنید .این زبان بهترین گزینه برای سیستم های کنترلی است که با ریاضیات پیچیده سر و کار دارد .
مزیت دیگر این است که شما می توانید زبان های مختلف برنامه نویسی را ترکیب کنید. Structured Text یک زبان برنامه نویسی استاندارد است، به ما این امکان را می دهد که برند های مختلف PLC را با آن برنامه ریزی کنیم.این زبان این امکان را برای شما فراهم می کند که دستوراتی را که در زبان های دیگر مانند LAD موجود نیست پوشش دهید. در این روش بر طرف کردن اشکالات و ویرایش آنلاین دشوار می باشد همچنین سینتکس می تواند سخت باشد.
اگر قبلاً با زبان های برنامه نویسی سطح بالا مانند PHP ،Python و C آشنایی دارید، Structured Text برای شما آشنا به نظر می رسد اما اگر هرگز زبان برنامه نویسی سطح بالایی ندیده باشید، می تواند معرف بسیار خوبی برای آن زبان و نحو استفاده از آن باشد.

بیشتر بخوانید: HMI (اچ ام آی) چیست و چه کاربردی دارد؟
-
Instruction List) IL)
IL ها یک زبان برنامه نویسی گرافیکی نیستند. در عوض، بیشتر شبیه برنامه نویسی زبان اسمبلی هستند. همانطور که از نام آن پیداست ، یک برنامه مجموعه ای از دستورالعمل ها است. مانند هر زبان برنامه نویسی PLC ،IL نیز مزایا و معایبی دارد. یکی از بارزترین مزایا سرعت اجرای برنامه است. همانند زبان اسمبلی، سریعتر از زبان های گرافیکی اجرا می شوند. نکته مثبت دیگر این است که IL فضای نرم افزاری کمتری را اشغال می کند. این یک مزیت آشکار است خصوصاً در PLC که فضای حافظه آن کم است. یک نکته منفی این است که یک زبان متدوال برنامه نویسی نیست و بیشتر افراد تمایل دارند تا با زبان ها و محیط های برنامه نویسی گرافیکی برنامه نویسی کنند. همچنین امکان خطا در این روش بیشتر است و امکان بر طرف کردن آنها نیز دشوارتر می باشد.

در ویدئوی زیر، دو زبان زبان نویسی PLC, زبان IL و ST را بیش تر توضیح می دهد:
جمعبندی مقایسه زبان های برنامه نویسی PLC
در جدول زیر سعی کردیم تا این پنج زبان برنامه نویسی PLC را با یکدیگر مقایسه کنیم:
زبان | نوع | مناسب برای | خوانایی برای | ویژگی خاص |
---|---|---|---|---|
LD | گرافیکی | کنترل منطقی ساده | برقکارها و تکنسینها | ساختار نردبانی |
FBD | گرافیکی | کنترل پیچیده | مهندسین کنترل | بلوکهای تابع |
ST | متنی | الگوریتمهای پیچیده | برنامهنویسان حرفهای | ساختار شبیه زبانهای سطح بالا |
IL | متنی | سیستمهای ساده | کاربران حرفهای | شبیه اسمبلی |
SFC | گرافیکی | فرآیندهای ترتیبی | اپراتورها و مهندسان | گامبهگام و حالتمحور |
سخن پایانی
برنامه نویسی سیستم PLC یکی از مراحل طراحی سیستم کنترل است، آشنایی کامل به زبان های برنامه نویسی PLC و شناخت کامل از فرآیندی که باید توسط سیستم کنترل مدیریت شود در پیاده سازی سیستم اتوماسیون صنعتی بسیار حائز اهمیت است. با استفاده از زبان برنامه نویسی PLC میتوان کنترلر PID را جهت کنترل فرآیندهای دقیق و پیچیده به راحتی پیادهسازی نمود.
شرکت نیکسا جهت کمک به برنامه نویسان سیستم کنترل PLC به منظور سرعت بخشیدن به انجام پروژه ها و ساختار یافته کردن آنها اقدام به ارائه فانکشن بلاک هایی در سه دسته ابزار دقیق، عملگرها و کنترل کننده نموده است، جهت کسب آگاهی بیشتر به صفحه برنامه نویسی اتوماسیون صنعتی و برنامه نویسی PLC نیکسا مراجعه کنید.
6 پاسخ
با سلام
کدامیک از زبانهای برنامهنویسی PLC (Ladder Logic، Structured Text، Function Block Diagram) برای پیادهسازی کنترل فرآیندهای پیچیدهتر مناسبتر است و چرا؟
سلام
برای پیادهسازی کنترل فرآیندهای پیچیدهتر، زبان Structured Text (ST) مناسبتر از دیگر زبانهای برنامهنویسی PLC مانند Ladder Logic و Function Block Diagram (FBD) است، زیر این زبان قابلیت برنامه نویسی پیشرفته دارد و برای مدیریت بهتر فرآیندهای پیچیده مناسب هست.
سلام و وقت بخیر… برای برنامه نویسی پی ال سی زیمنس، زبان برنامه نویسی اختصاصی هم نوشته شده؟
سلام ، برنامه نویسی پی ال سی زیمنس زبانهای خاص خود را دارد که در این مقاله 5 تا از معروف ترین را شرح دادیم
سلام گاهی که نیاز به کنترلهای پیشرفته، محاسبات سنگین یا سیستمهای نرمافزاری پیچیدهای داریم، بهتر نیست بجای پنج زبان برنامه نویسی PLC که نام بردید از زبان C++ استفاده کنیم؟
سلام جناب مهندس درست میفرمایید از زبان ++C هم در PLC میشه استفاده کرد ولی هدف از این مقاله معرفی زبان های بود که خود سیستم پی ال سی برای کاربرانش فراهم کرده