زبان های برنامه نویسی PLC
همچنان اساسیترین سوالی که از ما پرسیده میشود این است که؛
بهترین زبان برنامه نویسی در PLC چیست؟
امروز میخواهیم مروری دقیق بر زبانهای برنامه نویسی در پی ال سی داشته و هرکدام را به شکلی مفصل شرح دهیم و درنهایت بهترین آنها را با ذکر دلیل انتخاب نماییم.
آنچه که در این نوشتار خواهید خواند:
- مروری بر گذشته
- استاندارد IEC
- زبانهای برنامه نویسی PLC
- زبان لدر – Ladder
- زبان FBD – Function block diagram
- زبان ST – Structured text
- زبان IL – Instruction list (STL)
- زبان SFC – Sequential function chart
- مقایسه تمام زبانهای PLC
- بهترین زبان PLC
- محبوبترین زبان PLC
- منابع
پیشنهاد ویژه
به شما پیشنهاد می کنیم حتما از آموزش 0 تا 100 PLC (جامع ترین آموزش PLC زیمنس) دیدن نمایید.
در ابتدا اجازه دهید کار را با دیدن یک کلیپ کوتاه در مورد معرفی انواع زبانهای برنامه نویسی در PLC شروع نماییم، بدین ترتیب شما را به دیدن این کلیپ کوتاه که توسط تیم PowerEn به فارسی ترجمه و زیرنویس شده است دعوت مینمایم؛
دانلود فیلم محبوبترین زبان برنامه نویسی در PLC | با حجم 43 مگابايت
مروری بر گذشته
ابتداییترین سوال شاید این باشد که؛ چرا تنوع زبان برنامه نویسی در PLC ها زیاد است؟
ریشه این مسئله در گذشتههای بسیار دور و پی ال سیهای ابتدایی میباشد، زمانی که شرکتهای سازنده PLC (کنترلگر منطقی برنامه پذیر) هرکدام به شکلی جزیرهوار کار میکردند و به این ترتیب هر شرکت نیز قوانین خاص خود را در دستگاهای خود پیاده سازی مینمود.
این روند تا جایی پیش رفت که صدای برنامه نویسان و انجمنهای علمی مهندسی درآمد! به همین دلیل IEC (کمیسیون الکتروتکنیکی بینالمللی -International Electrotechnical Commission) وارد داستان شد و تحت یک استاندارد تمام شرکتهای سازنده PLC را ملزم به رعایت قوانین بین اللملی در خصوص زبانهای برنامه نویسی واحدی نمود.
البته از آنجایی که هر زبان توسط یک شرکت توسعه داده شده بود امکان انتخاب یک زبان واحد فراهم نشد و به همین دلیل 5 زبان برنامه نویسی به عنوان استاندارد جهانی در حوزه کار و ساخت PLC تعیین گردید!.
استاندارد IEC
![زبان های مورد تایید در PLC](https://poweren.ir/wp-content/uploads/2020/03/استاندارد-زبان-های-PLC-در-IEC.jpg)
زبانهای مورد تایید در PLC
درنهایت در 1994 استاندارد IEC 61131-3 ثبت گردید و در طی آن تمام شرکت ها ملزم به استفاده از 5 زبان برنامه نویسی مشخص در PLC شدند، این زبان ها عبارتند از:
- Ladder diagram (LD)
- Function block diagram (FBD)
- Structured text (ST)
- Instruction list (IL)
- Sequential function chart (SFC)
این استاندارد صرفا به تبعین زبانهای برنامه نویسی نمی پرداخت، بلکه در آن به وضوح به نحوه اختصاص خانههای حافظه و موارد جزئی نیز اشاره میکرد.[1]
زبان های برنامه نویسی PLC
پس از ثبت استاندارد IEC شرایط برای برنامه نویسان بسیار بهتر از قبل شد و همین مسئلهی به ظاهر ساده سبب توسعه و استفاده بیشتر از PLCها در همان سالهای ابتدایی گشت، بهمرور دستگاههای پی ال سی و نرم افزاهای آنها پیشرفت کرده و عمدتا همگی آنها توانایی استفاده از 5 زبان ذکر شده را داشتند، این مسئله سبب شد دیگر محدودیتی در انتخاب زبان برنامه نویسی برای مهندسین وجود نداشته باشد.
با پیشرفت بیشتر علم شاهد جداسازی بخش محیط برنامه نویسی از درون خود PLC به خارج آن شدیم، به این صورت که ابتدا برنامه مدنظر بروی یک کامپیوتر و در یک نرم افزار خاص نوشته میشد و سپس این برنامه به PLC انتقال داده میگشت. به همین دلیل عمدتا زبان خود PLC به زبان سطح ماشین تغییر کرد و تمام فرآیند برنامه نویسی به سمت کامپیوتر کاربر انتقال پیدا نمود، این مسئله سبب شد تا شما بتوانید برنامه نوشته شده به هر زبانی را به هر 4 زبان دیگر به سادگی و با چند کلیک کردن تبدیل نمایید.
با توجه به موارد گفته شده عملا تفاوتی ندارد که شما به چه زبانی برنامه مینویسید، در پایان میتوانید توسط همان نرم افزار PLC، برنامه خود را به زبان دیگری تبدیل نمایید. تصور کنید که ما دو مهندس با نامهای A و B داریم؛
مهندس A به زبان لدر تسلط داشته و مهندس B به زبان FBD، مهندس A برنامهای مینویسد و در طی حل مسئله به یک مشکل برخورد میکند در این حالت به راحتی میتواند برنامه نوشته شده به زبان لدر را به FBD تبدیل کرده و جهت یاری جستن، آن را به مهندس B تحویل دهد، مهندس B پس از بررسی و ارائه راه حل در حالت FBD، درنهایت آن را به LAD تبدیل کرده و در اختیار مهندس A قرار میدهد.
با وجود امکان تبدیل تمام زبانهای برنامه نویسی به یکدیگر، همچنان این زبانهای برنامه نویسی در برخی از ویژگیهای خاص (اندک) با یکدیگر متفاوت بوده و امکان تبدیل به یکدیگر را ندارند
در ادامه اجازه دهید به بررسی هرکدام از این زبانهای برنامه نویسی بپردازیم؛
زبان لدر – Ladder
بدون شک این زبان یکی از محبوبترین ها میباشد، بسیاری از افراد میپرسند چرا لدر به این سرعت نسبت به سایر زبان ها کاربر جذب کرد؟
علت این مسئله در گذشته و قبل از PLC میباشد، زمانی که صرفا مدارات به صورت رله-کنتاکتوری بودند یک مهندس برای اجرای یک فرمان نیاز داشت تا یک کویل را انرجایز نماید همین مسئله دقیقا در زبان لدر نیز وجود دارد[2] و از آنجایی که این سیستم بسیار مشابه زبان رلهای در گذشته میبود به سرعت توانست مورد اقبال کاربران قرار گیرد. به همین دلیل در این زبان برنامه نویسی منطق کنترل توسط عناصری مانند تیغههای باز (Normally Open: NO) و تیغهی بسته (Normally Close: NC) و بوبین (Coil) و … پیاده سازی میشود.
زبان لدر با عنوان منطق پلهکان نیز شناخته میشود. LD یک زبان برنامه نویسی ویژوال است، بنابراین یادگیری آن آسانتر از سایر زبانهای PLC میباشد.
با LD، شما با ترکیب نمادها (زبان گرافیکی) برای انجام اقدامات خاصی برنامهریزی میکنید. LD یکی از محبوبترین نوع زبانهای برنامه نویسی PLC است زیرا به عنوان زبان تصویری، شناخته شده است که با داشتن ابزارهای اشکال زدایی مناسب و نمایش خوب برای منطق گسسته، میتوان آن را فراگرفت.
زبان لدر برای کاربردهایی کنترلی و توالی به شکل باینری بسیار مفید است و از آنجایی که به شکل موازی پیاده سازی میگردد عیب یابی آن نیز ساده میباشد.
یکی از معایب اصلی زبان برنامه نویسی LD این است که به نظر میرسد ساختار اطلاعات ضعیف است زیرا داده ها به خوبی سازماندهی نشده اند. برای مثال ممکن است متغیرهایی را که در این زبان دارای مکانهای حافظه همپوشانی هستند ایجاد کنیم، که میتواند به مشکلات غیر منتظره منجر شود. مسئله دیگر به شرکتهای سازنده برمی گردد چرا که هرکدام بنابر محدودیتهای سخت افزاری خود تعداد مشخصی حلقه و آرایه در اختیار برنامه نویس قرار داده اند که ممکن است پاسخگوی نیاز ما نباشد.
مزایای زبان LAD
- محبوبیت در میان زبانهای برنامه نویسی
- استفاده شده در رنج وسیعی از دستگاههای صنعتی
- گرافیکی بودن
- عیب یابی آسان
- درک آسان
معایب زبان LAD
- وجود برخی محدودیت ها
- اشغال فضای زیاد (به دلیل گرافیکی بودن)
- اجرای کندتر در مقایسه با زبانهای نوشتاری
زبان FBD – Function block diagram
زبان FBD یک زبان گرافیکی بوده که قابلیت برنامه ریزی برای کنترل کنندههای منطقی یا گیتهای منطقی را دارد. زبان FBD مانند لدر میتواند عملکرد بین متغیرهای ورودی و متغیرهای خروجی را توصیف نماید. معمولا هر تابع به عنوان یک مجموعه از بلوک ها توصیف میشود. در زبان برنامه نویسی FBD متغیرهای ورودی و متغیرهای خروجی توسط خطوط اتصال به بلوک ها متصل میشوند.
عناصر اساسی زبان برنامه نویسی FBD شناسایی کلمات کلیدی، انواع داده ها و متغیرها هستند. FBD نیز این امکان را به شما میدهد تا جریان سیگنال بین پردازش گرها در برنامه نوشته شده را مشاهده نمایید.
مزایای زبان FBD
- گرافیکی بودن
- حجم کم کدنویسی
- امکان گروه بندی
- مناسب موشن کنترل (Motion Control)
- عیب یابی آسان (مشکلتر از لدر میباشد[3])
معایب زبان FBD
- وجود برخی از الگوریتم ها به شکل نوشتاری
- مناسب نبودن برای حلهای متوالی
- نیازمند آموزش بیشتر نسبت به لدر[4]
![گروه بندی در FBD](https://poweren.ir/wp-content/uploads/2020/03/گروه-بندی-در-FBD.gif)
گروه بندی در زبان FBD
زبان ST – Structured text
زبان Structured Text یکی دیگر از انواع زبانهای مخصوص PLC بوده و کاملا مبتنی بر متن است. بر خلاف زبانهای LD و FBD، زبان ST شبیه زبانهای برنامه نویسی مانند Basic و Pascal است که از if-then-else استفاده میکند.
ST نیز به طور معمول برای هر دو برنامه نویس تازه کار و با تجربه به آسانی قابل درک است زیرا اظهارات if-then-else روشن میسازد که چگونه برنامه کار میکند و چرا توابع خاصی ایجاد میشوند. یکی از مزیتهای بسیار خوب این زبان؛ اشغال کمترین میزان از حافظه میباشد که درنهایت سبب افزایش سرعت اجرای برنامه نوشته شده میگردد. از این زبان عمدتا برای برنامه نویسیهای مشابه مهندسی کامپیوتر و برای حل معادلات پیچیده استفاده میشود و به همین دلیل در صنایع سنگین با استقبال خوبی مواجه نشده است.
اگر برای شما یادگیری زبانهای گرافیکی دشوار میباشد در میان سایر زبانهای نوشتاری، ST توصیه میشود.[5]
مزایای زبان ST
- زبان سطح بالا
- سرعت اجرای بالا
- امکان تبدیل تمام زبانهای دیگر به ST (بدون مشکل)
- مناسب محاسبات سنگین ریاضی
- پوشش برخی از مشکلات زبانهای گرافیکی
معایب زبان ST
- نوشتاری بودن
- محدودیت در استفاده از Goto
- مستلزم وقت بیشتر در مقایسه با زبان گرافیکی
- ارورهای زیاد (Fatal Error، Run time Error، Odd Address Error، Programing Error و …)
- دشواری زیاد در توسعه دادن برنامه نوشته شده
- دشواری در ویرایش آنلاین برنامه (PLC در حال کار)
- عیب یابی دشوار
- یادگیری نه چندان آسان
![تشابه زبان ST و C](https://poweren.ir/wp-content/uploads/2020/03/تشابه-زبان-ST-و-C.jpg)
تشابه زبان ST و C
زبان IL – Instruction list (STL)
زبان Instruction List از دستورالعملهای مینیومی در نمودارهای پلهکانی استفاده میکند و دستورات را از طریق یک ترمینال برنامه نویسی به PLC میفرستد. IL نیز مانند ST یک زبان نوشتاری میباشد.
این زبان شباهت زیادی به زبان Assembly داشته و به همین دلیل اگر شما در زمینه کار با زبان اسمبلی توانایی دارید قطعا برنامه نویسی به این زبان میتواند برای شما گزینه مناسبی باشد. با این حال در میان زبانهای PLC این زبان به ندرت انتخاب مهندسین میباشد.
زبان برنامهنویسی سطح پایین زبانی است که به مقدار کم یا هیچ انتزاعی نسبت به ریزپردازنده فراهم نمینماید. عبارت سطح پایین به این معنی نیست که این زبان نسبت به زبان برنامهنویسی سطح بالا ارزش کمتری دارند بلکه به معنای عدم وجود انتزاع بین این زبان و ساختار ریزپردازنده است از این جهت گاهی این زبانها را نزدیک به سختافزار نیز مینامند[6]
یکی از مزایای بسیار خوب این زبان سرعت اجرای بالای آن بوده که قطعا به دلیل متنی بودن آن میباشد.
مزایای زبان IL
- سرعت بالای اجرا
معایب زبان IL
- عیب یابی مشکل
- زبان سطح پایین
- محبوبیت پایین
- کاربرد بسیار محدود در صنعت
زبان SFC – Sequential function chart
این زبان گرافیکی بوده و ترتیب انجام عملیات کنترل در آن به سادگی مشخص میشود. در این روش، برنامه مطابق با مراحلی که ترتیب الگوریتم کنترلی نشان میدهد نوشته میشود یا به زبان سادهتر، از این روش برنامه نویسی بیشتر در برنامههایی که شرایط کنترل آن به صورت ترتیبی میباشد مورد استفاده قرار میگیرد.
جدول تابع متوالی (SFC) به برنامه نویس اجازه میدهد تا در زمانبندی به صورت کدگذاری عمل کند. کدهای خاصی که دنبالهای از اقدامات بوده و برای اشیاء برنامه ریزی جداگانهای دارند.
اگر شما تمایل زیادی به استفاده از زبانهای گرافیکی دارید و از طرفی پروژه نیز بسیار سطح بالا (2 تا 3 درصد مواقع) میباشد در این صورت به جای استفاده از لدر و FBD میتوانید از SFC استفاده نمایید.
مزایای زبان SFC
- درک آسان فرآیند کنترل
- عیب یابی آسان به دلیل امکان جداسازی برنامه
- ویرایش سریعتر
معایب زبان SFC
- محدودیتهای جدی در برخی از کاربردها
![سرعت بالای زبان SFC در ویرایش برنامه](https://poweren.ir/wp-content/uploads/2020/03/سرعت-بالا-در-SFC.gif)
سرعت بالای زبان SFC در ویرایش برنامه
مقایسه تمام زبانهای PLC
تاکنون به صورت مجزا تمام زبانهای برنامه نویسی در PLC را که مورد تایید IEC میبودند را بررسی نمودیم، در این قسمت تصاویری از یک برنامه واحد که به 5 زبان مذکور نوشته شده است را قرار دادیم. این برنامه جهت انتخاب حالت خودکار یا دستی و سپس فعالسازی یک سیکل بعد از 3 ثانیه نوشته شده است. به راحتی با مقایسه این 5 برنامه میتوانید یک دید خوب نسبت به کدها داشته باشید.
![برنامه انتخاب حالت خودکار و دستی به زبان LAD](https://poweren.ir/wp-content/uploads/2020/03/برنامه-انتخاب-حالت-خودکار-و-دستی-به-زبان-LAD.jpg)
برنامه انتخابگر حالت خودکار و دستی به زبان LAD
![برنامه انتخاب حالت خودکار و دستی به زبان FBD](https://poweren.ir/wp-content/uploads/2020/03/برنامه-انتخاب-حالت-خودکار-و-دستی-به-زبان-FBD.jpg)
برنامه انتخابگر حالت خودکار و دستی به زبان FBD
![برنامه انتخاب حالت خودکار و دستی به زبان ST](https://poweren.ir/wp-content/uploads/2020/03/برنامه-انتخاب-حالت-خودکار-و-دستی-به-زبان-ST.jpg)
برنامه انتخابگر حالت خودکار و دستی به زبان ST
![برنامه انتخاب حالت خودکار و دستی به زبان IL](https://poweren.ir/wp-content/uploads/2020/03/برنامه-انتخاب-حالت-خودکار-و-دستی-به-زبان-IL.jpg)
برنامه انتخابگر حالت خودکار و دستی به زبان IL
![برنامه انتخاب حالت خودکار و دستی به زبان SFC](https://poweren.ir/wp-content/uploads/2020/03/برنامه-انتخاب-حالت-خودکار-و-دستی-به-زبان-SFC.jpg)
برنامه انتخابگر حالت خودکار و دستی به زبان SFC
بهترین زبان PLC
قطعا هر زبان برنامه نویسی مزایا و معایب خاص خود را دارد به همین دلیل نمی توان به صورت قطعی و حتمی به این سوال پاسخ داد، شما باید برحسب نیازتان زبان برنامه نویسی مدنظرتان را انتخاب نمایید، به عنوان مثال زبان لدر همواره گزینه خوبی برای اتوماسیون بوده است.
همیشه طوری کد بزنید که گویی فردی که پس از شما قراره اون پروژه رو نگهداری کنه یک دیوانهٔ عصبیه که میدونه شما کجا زندگی میکنید
John Woods برنامه نویس مشهور
محبوبترین زبان PLC
در سال 2019 سازمان مؤسسه مهندسان برق و الکترونیک (IEEE) لیستی از 52 محبوبترین زبانهای برنامه نویسی را منتشر کرد که در آنها زبان Ladder با داشتن رتبه 50 محبوبترین عضو از مجموعه زبانهای استاندارد IEC 61131-3 در لیست مذکور میباشد.[7]
به نظر شما کدام زبان برنامه نویسی در PLC مناسبتر است و چرا؟
منابع
- PLCopen: The third edition of IEC 61131-3 ↑
- “Ladder logic uses switch or relay contacts to implement Boolean expressions. In years past, ladder logic was made possible with discrete relays and was sometimes termed” relay logic ↑
- Nemesis Man: “LAD vs FBD vs STL” ↑
- Control Engineering: “Function block diagrams” ↑
- PLC Academy: “Structured Text Tutorial to Expand Your PLC Programming Skills” ↑
- Computer Science, “High and Low Level Languages” ↑
- IEEE Spectrum, “Interactive: The Top Programming Languages“. ↑
راستی! برای دريافت مطالب جديد در کانال تلگرام PowerEn عضو شويد.
I’m often to blogging and i really appreciate your content. The article has actually peaks my interest. I’m going to bookmark your web site and maintain checking for brand spanking new information.
پس زبانcfcکجا قرار دارد
زبان sfc منظورتون هست؟
cfc مخفف چی هست
سلام آقای مهندس سیاه تیری. خیلی ارادتمندم.
از نظر من زبان STL نسبت به زبان LAD، بسیار ساده تر و سریعتر است و همچنین فضای بسیار کمتری را اشغال می کند. همچنین در برنامه نویسی به زبان STL انعطاف پذیری بسیار بسیار بالایی وجود دارد. از نظر من زبان LAD قابل مقایسه با STL نیست. ولی قبول دارم که اکثرا با LAD کار می کنند.
با تشکر
سلام
قطعا هر زبانی مزایای خاص خودش را دارد و به این نکته هم اشاره کردیم، با هر زبانی که راحت تر هستید کار کنید
سلام مهندس ، خیلی سپاسگزارم از آموزش فوق العاده plc که دارین واقعا کارآمد،فقط اینکه فصل سوم و ادامه مطلب کی قراره تنظیم و عرضه بشه؟!
سلام
ممنون از شما، نیمه اردیبهشت سناریو نویسی به محض اتمام ماه رمضان شروع ضبط
سلام لطفا اموزش استفاده از یوتیوب که چطور بتونیم کانال های مناسب اموزشی در مورد plc و قدرت را پیدا و دنبال کنیم را در اموزش هایتان بگذارید
با تشکر از اطلاعات خوبی که میذارید
سلام
در دوره گفته شده است، در فصل جدید کتاب انگلیسی هم معرفی خواهد شد
زبان انگلیسی ویدیو پرمحتوا کم است ولی زبان روسی ویدیو های فوق العاده ای هست در پی ال سی زیمنس
مرسی بخاطر اطلاعات مفیدی که در دسترس ما قرار میدین
خواهش میکنم
امیدوارم موفق باشید