اتوماسیون صنعتی, برق, کنترل و ابزار دقیق

انواع زبان‌های برنامه‌نویسی PLC و مزایا و معایب آن‌ها

زبان‌های برنامه‌نویسی PLC

اتوماسیون صنعتی باعث شد تا کنترل در صنعت روزبه‌روز هوشمندتر از گذشته شود. تا جایی که می‌توان هر نوع فرآیندی را مانیتور کرده و با استفاده از کامپیوترهای صنعتی کنترل کرد. تجهیزات کنترلی در صنعت می‌توانند همه فرآیندها را شخصی‌سازی کنند تا شما محصول مورد نظر خود را تولید کنید. PLC، یکی از بهترین کنترلرهای موجود در صنعت است.

برای استفاده از این کنترل‌کننده، باید زبان‌های برنامه‌نویسی PLC را به‌خوبی بشناسید. از همین رو، در این مقاله انواع زبان‌های برنامه‌نویسی PLC را برای شما شرح داده‌ایم. 

برای یادگیری آموزش کامل زبان ladder در دوره اتوماسیون کار صنعتی ماهر میتوانید شرکت کنید.

PLC چیست و چه کاربردی در صنعت دارد؟

PLC مخفف عبارت Programmable Logic Controller است به‌معنای کنترل‌کننده منطقی قابل برنامه‌ریزی. این تجهیز در صنعت به‌عنوان کامپیوتر صنعتی قابل برنامه‌ریزی شناخته می‌شود. برای هر فرآیند صنعتیِ پیچیده که به کنترل نیاز داشته باشید، می‌توانید از این کامپیوترهای قابل برنامه‌ریزی بی‌نظیر بهره بگیرید. این کنترلرها بسیار قابل اعتماد هستند و ضریب خطای آن‌ها بسیار پایین است. از این رو، PLC به انتخاب اول همه شرکت‌ها و صنعت‌کاران برای کنترل فرآیند در صنعت تبدیل شده است.

 برای آشنایی بیشتر با این تجهیز، مقاله «PLC چیست؟ مزایا و انواع مختلف PLC» را بخوانید. 

PLC به‌وسیله تجهیزات ابزار دقیق، اطلاعات را از سنسورها می‌گیرد و با ارسال فرمان‌های کنترلی به سیستم، عملگرها را کنترل می‌‌کند. به عنوان مثال، فرض کنید قرار است دما را در یک خط تولید با PLC کنترل کنیم. سنسور ترموکوپل بعد از اندازه‌گیری دما، یک سیگنال به PLC می‌فرستد. PLC اطلاعات دریافت شده را با توجه به دستورات برنامه‌نویسی پردازش کرده و فرمان‌های لازم برای کنترل دمای خط تولید را ارسال می‌کند. 

PLC
شکل ۱- PLC

زبان‌های برنامه‌نویسی PLC

فرض کنید برای اتوماسیون کردن کارخانه‌ای انتخاب شده‌اید. وقتی می‌خواهید یک پروژه اتوماسیون را طراحی و اجرا کنید، بعد از انتخاب و نصب PLC، اولین مرحله دانلود نرم‌افزار PLC و سپس انتخاب زبان برنامه‌نویسی آن است. زبان‌های زیر، معروف‌ترین زبان‌های برنامه‌نویسی PLC هستند:

  •  لدر یا LD
  • FBD
  • SFC
  • ST
  • IL 

در ادامه این ۵ زبان برنامه نویسی را بررسی می‌کنیم.

اگر به اتوماسیون و مزایای آن علاقه دارید، مقاله زیر را از سایت ماهر بخوانید.

زبان برنامه‌نویسی لدر یا LD

زبان Ladder Diagram معمولاً با نام Ladder Logic هم شناخته می‌شود. این زبان محبوب‌ترین و توسعه‌یافته‌ترین زبان برنامه‌نویسی PLC است. Ladder Logic از دو ریل عمودی و تعدادی پله‌ افقی ساخته شده است. به همین دلیل به Ladder Diagram زبان نردبانی هم گفته می‌شود.

کدهای دستورالعمل‌ زیر، رایج‌ترین کدها  در زبان برنامه‌نویسی لدر هستند:

  •  Normally Open) NO) 
  •  Normally Closed) NC) 
  • تایمر (Timer)
  • شمارنده یا کانتر (Counter)
  • فلیپ‌فلاپ‌های set و reset

 زبان لَدِر از چپ به راست و از بالا به پایین خوانده می‌شود. ورودی‌ها سمت چپ قرار می‌گیرند. زمانی که داده‌ها از طریق ورودی‌ها به PLC می‌رسند، می‌توانید فرآیند را به صورت منطقی ازطریق پله‌های افقی تجسم کنید.

زبان لدر
شکل ۲–زبان لدر

 مزایای زبان برنامه‌نویسی Ladder 

  • افقی بودن پله‌ها باعث یادگیری، تفسیر و برنامه‌نویسی آسان می‌شود.
  • به‌راحتی می‌توان عیوب را تشخیص داد و مشکلات را اصلاح کرد.
  • قابلیت مستندسازی (جمع‌آوری سابقه کنترل فرآیند) وجود دارد.

معایب زبان برنامه‌نویسی Ladder 

  • زبان LD برای استفاده در سیستم‌های پیچیده مناسب نیست. زیرا با برنامه‌های طولانی روبه‌رو می‌شوید که مدیریت آن‌ها بسیار سخت خواهد بود.
  • محافظت و دسته‌بندی داده‌ها در زبان برنامه‌نویسی لدر سخت و دشوار است.
  • الگوریتم‌های پیچیده ریاضی که شامل چندین متغیر هستند، با استفاده از زبان لدر احتمالاً دچار مشکل می‌شوند.

 برای آشنایی بیشتر با کدهای زبان LD، می‌توانید فیلم آموزش برنامه‌نویسی PLC را مشاهده کنید.

زبان برنامه‌نویسی FBD

زبان Function Block Diagram دومین زبان برنامه‌نویسی محبوب و پرکاربرد برای PLC است. FBD یک زبان ِگرافیکی است که از بیشترِ دستورات Ladder Logic استفاده می‌کند؛ اما خواندن و تفسیر FBD در مقایسه با LD آسان‌تر است. در این زبان، بلوک‌ها به صورت گرافیکی ترسیم و سپس از خطوط برای اتصال بلوک‌های ورودی و خروجی استفاده می‌شود.

استفاده از بلوک‌ها در FBD، امکان ادغام چندین خط کد را در یک بلوک واحد فراهم می‌کند. Function Blocks برای ساختن یک سیستم کنترلی مورد استفاده قرار می‌گیرد. از این بلوک‌ها برای راه‌اندازی یک کار تکراری استفاده می‌شود.  

  • حلقه‌های PID
  •  تایمرها
  •  شمارنده‌ها (کانترها) 

از جمله مهم‌ترین حلقه‌های تکراری هستند که به‌راحتی با زبان FBD پیاده‌سازی می‌شوند.

شما می‌توانید هر بلوک جدید FBD را به خروجی جزء قبلی متصل کنید. این قابلیت باعث می‌شود تا داده‌ها به‌صورت تودرتو، از یک بلوک برنامه به بلوک بعدی منتقل شوند.

زبان SFC
شکل ۳- زبان FBD

مزایای زبان برنامه‌نویسی FBD

  • برنامه‌نویسی آسان: از آنجایی که FBD یک زبان نمایش گرافیکی است، استفاده از آن به‌ویژه برای برنامه‌نویسانی که مهارت‌ گسترده‌ای در برنامه‌نویسی ندارند، آسان‌تر است.
  • استفاده مجدد از کد: FBD امکان استفاده مجدد از کد را فراهم می‌کند، زیرا بلوک‌های موجود مانند فیلترها می‌توانند دوباره استفاده شوند.
  • رفع اشکال آسان و قابلیت ردیابی اجرا: وجود داده‌های گرافیکی در FBD به برنامه‌نویسان اجازه می‌دهد تا اتصالات بین بلوک‌های تابع را دنبال کنند. این امر رفع عیب را بسیار آسان می‌کند.
  • اجرای موازی: با توسعه سیستم‌های کنترل مبتنی بر پردازنده‌های چندگانه، PLC‌ها اکنون می‌توانند چندین عملکرد را به‌طور هم‌زمان اجرا کنند. FBD، به‌عنوان یک زبان برنامه‌نویسی گرافیکی، برای پردازش‌های هم‌زمان (Parallel Processing) مناسب است.

معایب زبان برنامه‌نویسی FBD

  • رَوَند اجرای چپ به راستِ یک برنامه FBD برای فرآیندهای پیوسته مناسب است؛ اما در برنامه‌هایی که می‌خواهیم ترتیب و توالی رویدادها را کنترل کنیم، استفاده از زبان FBD زمان‌بر است. 
  • صنایع مدرن به دنبال راه‌هایی برای ادغام IIoT با سیستم‌های خود هستند. برنامه‌های FBD قادر به ادغام با سیستم‌های اینترنت اشیاء نیستند.

اگر با Industrial IoT یا IIoT آشنا نیستید، مقاله اینترنت اشیا یا IOT چیست؟ را بخوانید.

زبان برنامه‌نویسی نمودار توابع متوالی یا SFC

زبان Sequential Function Chart یا SFC، یک زبان برنامه‌نویسی گرافیکی است و شبیه زبان LD و FBD عمل می‌کند. این زبان برنامه‌نویسی شباهت زیادی به فلوچارت دارد. مراحل با بلوک‌های مستطیلی نشان داده می‌شوند و هر مرحله وضعیت معینی از سیستم کنترل را به تصویر می‌کشد. بلوک‌ها به ترتیب اجرا می‌شوند تا برنامه به‌طور کامل اجرا شود.

زبان SFC
شکل ۴ - زبان SFC

مزایای زبان برنامه‌نویسی SFC

  • استفاده آسان برای کدهای بزرگ: در این زبان، فرآیندهای عظیم را می‌توان به چند مرحله اصلی تقسیم کرد، که کدنویسی و رفع اشکال در آن‌ها آسان‌تر و سریع‌تر می‌شود.
  • SFC امکان رفع اشکال بلادِرَنگ را فراهم می‌کند. زیرا برنامه‌نویس به توابع منطقی دسترسی مستقیم دارد. از همین رو می‌تواند محل دقیق خطا را در تجهیزات خود شناسایی کرده و آن را برطرف کند.
  • اجرای مکرر دستورالعمل‌ها، فرآیند طراحی و اصلاح برنامه SFC را سرعت می‌بخشد.

معایب زبان برنامه‌نویسی SFC

  • در زبان SFC دستورات باید پشت سر هم باشند. در غیر این صورت، برنامه‌نویسی با این زبان کاری چالش برانگیز است.
  • عیب‌یابی و پیاده‌سازی جریان‌های موازی با استفاده از نمودارهای SFC دشوار است. 

زبان برنامه‌نویسی Structured Text

Structured Text معمولاً به اختصار STX یا ST نامیده می‌شود. Structured Text شباهت زیادی به برنامه‌نویسی به زبان C دارد و یک زبان برنامه‌نویسیِ سطح بالا است. کدها به‌صورت متوالی اجرا می‌شوند و خروجی‌های مناسب PLC را فعال می‌کنند. کد ST شامل عباراتی است که با نقطه ویرگول از هم جدا شده‌اند. 

  • IF 
  • ELSEIF 
  • WHILE 
  • FOR 
  •  ELSE 

معروف‌ترین دستورات برنامه‌نویسی در این کد هستند. یک برنامه STX را می‌توان به‌راحتی در ویرایشگرهای متن تغییر داد. در این ویرایشگرها، اجرای برنامه بدون نیاز به سخت‌افزار ممکن می‌شود.

Structured Text برای سیستم‌های کنترلی که وظایف پیچیده را انجام می‌دهند یا به الگوریتم‌های ریاضی نیاز دارند، مناسب‌تر است. چون می‌تواند تجزیه و تحلیل داده‌ها، حساب دیفرانسیل و انتگرال و مثلثات را در مقایسه با زبان‌های گرافیکی، آسان‌تر پیاده‌سازی کند. اگر سابقه کار با زبان‌های برنامه‌نویسی مانند C ،C++   Python یا Java را دارید، می‌توانید به‌راحتی در زبان Structured Text مهارت پیدا کنید. زیرا ساختار دستورات آن‌ها مشابه است. همچنین، Structured Text توابع و ساختارهای برنامه‌نویسی را مانند سایر زبان‌های مبتنی بر متن دارد.

زبان ST
شکل ۵- زبان ST

مزایای زبان برنامه‌نویسی ST

  • Structured Text انعطاف‌پذیری بیشتری در مقایسه با سایر زبان‌های برنامه‌نویسی PLC دارد. به همین دلیل، برای اجرای عملیات‌ ریاضی و الگوریتم‌های پیچیده بسیار مناسب است.
  • از آن‌جایی که متن Structured Text در بین اکثر سیستم‌های کنترل، استاندارد شده است، یک برنامه STX را می‌توان به‌راحتی بین پلتفرم‌های نرم‌افزاری و سخت‌افزاری متعدد پیاده‌سازی کرد و انتقال داد. 
  • فرمت استاندارد کدنویسیِ برنامه‌های ST، تغییر آن‌ها را بسیار آسان می‌کند.

معایب زبان برنامه‌نویسی Structured Text

  • در مقایسه با زبان‌های برنامه‌نویسی گرافیکی، STX پیچیده‌تر و عیب‌یابی در آن بسیار دشوارتر است. 
  • توضیح تصویری و گرافیکی در این زبان وجود ندارد و فقط کد دیده می‌شود.

در STX امکان رخ‌ دادن خطای برنامه‌نویس زیاد است. به همین دلیل، برنامه‌نویس باید در زمان نوشتن دستورات دقت بالایی داشته باشد تا مشکلی در اجرای برنامه رخ ندهد.

زبان برنامه‌نویسی IL

Instruction List یک زبان اسمبلی بوده و مانند Structured Text زبانی مبتنی بر متن است. این زبان شامل یک سری دستورالعمل و خطوط کد است؛ اما هر دستورالعمل در یک خط جدید نوشته شده و نظرات مورد نیاز در انتهای هر خط توضیح داده می‌شود. یک برنامه IL را از بالا به پایین و از چپ به راست می‌خوانند. 

IL برای خواندن و درک کردن، زبانی بسیار آسان است. زیرا خطوط کد در آن به صورت متوالی اجرا می‌شوند. تنها چیزی که باید یاد بگیرید، کدهای زیر است:

  • Start=ST
  • Load=LD 
  • OR 
  • AND 

در بسیاری از موارد، زبان IL مانند Ladder Logic اجرا می‌شود؛ اما کاربران اغلب آن را با STX اشتباه می‌گیرند. زیرا ویرایشگرهای مشابهی با زبان ST دارد.

زبان IL
شکل 6- زبان IL

مزایای زبان برنامه‌نویسی Instruction List

  • در زبان IL به دلیل ساختار استاندارد، اجرای برنامه تغییرات کمتری دارد. بنابراین درک کد بسیار آسان‌تر است.
  • در مقایسه با سایر زبان‌های برنامه‌نویسی، مصرف حافظه در IL  کم و سرعت اجرای برنامه در آن بالا است.

معایب زبان برنامه‌نویسی Instruction List

  • اشکال اصلی Instruction List این است که در اکثر پلتفرم‌های PLC در دسترس نیست و محبوبیت پایینی در بین برنامه‌نویسان PLC دارد. این زبان در بین کاربران، بیشتر به‌عنوان یک زبان اسمبلی در نظر گرفته می‌شود تا یک زبان برنامه‌نویسی PLC.
  • ساختار کدها در IL محدود است و رفع اشکال و خطا در این زبان، دشوارتر از سایر زبان‌های برنامه‌نویسی است.

نکته:

PLCها برندهای گوناگونی دارند. هر یک از این برندها تعدادی از زبان‌های برنامه‌نویسی را پشتیبانی می‌کنند.

اگر با برندهای PLC آشنا نیستید، مقاله انتخاب PLC مناسب و معرفی ۸ عامل موثر در انتخاب آن را بخوانید. معروف‌ترین برند PLC، یعنی برند زیمنس (Siemens) همه زبان‌های برنامه‌نویسی PLC را پشتیبانی می‌کند.

جمع‌بندی

برنامه‌نویسی PLC مهم‌ترین بخش مربوط به این کنترل‌کننده در صنعت است. در این مقاله، ۵ نوع زبان‌های برنامه‌نویسی PLC یعنی زبان‌های LD، ST، FBD، SFC و IL را بررسی کردیم.

یک سوال:

PLC از برند FATEK، از کدام زبان‌های برنامه‌نویسی پشتیبانی می‌کند؟

جواب‌های خودتون را برای ما کامنت کنید

سؤالات متداول

به طور معمول خیر. زیرا برنامه‌هایی برای تبدیل کردن برنامه نوشته شده به زبان‌های دیگر وجود دارند؛ اما برای این‌ که بتوانید بهترین برنامه را بنویسید، بهتر است که با آن‌ها آشنا باشید.

در صورتی که پروژه دقیقاً یکی باشد بله؛ اما با توجه به این‌ که ممکن است تفاوت‌هایی در فلسفه کنترلی وجود داشته باشد، بهتر است که با توجه به نیاز خود، برنامه مورد نظر را بنویسید.

زبان برنامه‌نویسی Fortran فورترَن قدیمی‌ترین زبان برنامه‌نویسی است. البته این زبان با توجه به تغییرات زیادی که داشته است، دیگر کارایی سابق را ندارد؛ اما لدر قدیمی‌ترین زبان برنامه‌نویسی PLC است که همچنان استفاده می‌شود.

خیر. PLC بدون برنامه نمی‌تواند کار کن. حتماً باید دستورات خود را روی PLC دانلود کنید.

مقاله‌ای که خواندید بخشی از مطالب دوره آموزش اتوماسیون کار ماهر است.

برای یادگیری 0 تا 100 این دوره کلیک کن.

اگر به دنبال افزایش مهارت خود در زمینه اتوماسیون صنعتی هستید،

برای دریافت آموزش‌های رایگان در این حوزه، فقط کافیه فرم رو تکمیل کنید.

اوووپس! نمی توانیم فرم شما را بیابیم.

5 دیدگاه در “انواع زبان‌های برنامه‌نویسی PLC و مزایا و معایب آن‌ها

  1. احمد گفت:

    سلام خسته نباشید من چند بار تو اینستا هم سوال پرسیدم .اگه من plc fatek آموزش ببینم میتونم plc simens هم یاد بگیرم؟؟؟ آخه هر چی نگاه میکنم دوره های دیگرو هیچ کدوم بهتر از دوره شما نیست البته من دوره برق صنعتی شمارو دنبال میکنم خیلی متشکر

    1. پشتیبان ماهر گفت:

      سلام وقت بخیر، اصول کلی تمام plc ها مثل تایمرها کانترها و… مثل هم هستند، مانند داریو ها که اصول کلی در همه یکسان است. ولی به این نکته توجه داشته باشید که نحوه کد گذاری و شماره‌گذاری و برنامه نویسی برای هر برند متفاوت است و هر کدام نرم افزار مخصوص خود را دارند. البته در سال plc زیمنس در دوره های ماهر آموزش داده خواهد شد.

  2. م.ابراهیمی گفت:

    سلام عالی بود . ممنون

    1. پشتیبان ماهر گفت:

      سپاس از همراهی شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *