(PLC) Programmable Logic Control یا کنترلر منطقی برنامه پذیر، رایانه هایی است که به جای استفاده از تجهیزات الکترومکانیکی، با استفاده از مدار های مجتمع، فرآیند های کنترلی را انجام می دهند. پی ال سی ها این قابلیت را دارند تا کارهایی همچون: ترتیب گذاری، زمان بندی، شمارش، محاسبه و … را جهت کنترل ماشین های الکتریکی و خط تولید کارخانجات انجام دهند. در واقع می توان پی ال سی را یک رایانه صنعتی با پیکربندی منحصر به فرد معرفی کرد.
شکل زیر به طور ساده نحوه عملکرد پی ال سی را نمایش می دهد:
برای اولین بار مهندسین شرکت جنرال موتورز طرح کنترلرهای برنامه پذیر را ارائه دادند. هدف اصلی آن ها کاهش هزینههای مربوط به سیستم های کنترلی بر اساس رله بود. این طرح نیازمند یک سیستم همراه با تجهیزات حالت جامد و با قابلیتهای یک کامپیوتر بود که اولا برای یک محیط صنعتی مناسب بوده، ثانیا برنامه ریزی و نگهداری آن ساده باشد طوری که مهندسین و تکنسین های واحدهای صنعتی بتوانند به سادگی با آن کار کنند و ثالثا عمر طولانی داشته باشد. چنین سیستم کنترلی مدت زمان از کارافتادگی موتورها را کاهش داده و زمینه را برای توسعه تجهیزات الکتریکی واحدهای صنعتی فراهم می کرد.
در سال 1968 طراحی چنین کنترلری شروع شده و تنها پس از یک سال اولین نمونه از آن ساخته شد. ساخت چنین کنترلری به منزله ورود به نسل جدیدی از تکنولوژی سیستمهای کنترل بود.
نخستین نسل از پی ال سی ها تنها به عنوان جایگزینی برای رله ها محسوب می شدند و فقط وظیفه خاموش و روشن کردن موتورهای الکتریکی را بر عهده داشتند.
اما امروزه پیشرفت های چشمگیری در زمینه کنترلرهای برنامه پذیر صورت گرفته است. این پیشرفت ها نه تنها کنترلرها بلکه ساختار سیستم های کنترل و اتوماسیون را به کلی دگرگون کرده اند. کنترلرهای امروزی قابلیت ارتباط با سایر سیستم ها، ارائه گزارش از خط تولید، تشخیص خرابی تجهیزات و حتی قابلیت تشخیص خرابی خود را نیز دارا هستند.
یک کنترلر برنامه پذیر از دو بخش اساسی تشکیل شده است:
- واحد پردازش مرکزی (CPU)
- سیستم رابط ورودی/ خروجی
واحد پردازش مرکزی، تمام فعالیت های پی ال سی را کنترل می کند. اجزای تشکیل دهنده این واحد عبارتند از:
- پردازنده
- سیستم حافظه
- منبع تغذیه
اساس عملکرد یک کنترلر برنامه پذیر، بسیار ساده است. سیستم ورودی- خروجی(I/O) به دستگاه های مورد نظر که نیاز به کنترل دارند متصل می شود. این دستگاههای ممکن است دارای ورودی یا خروجی هایی از نوع آنالوگ یا گسسته مانند مبدل های فشار، شستیهای فشاری، سیستم راه انداز موتور، سیم پیچ و … باشند. در واقع سیستم رابط ورودی- خروجی (I/O) ارتباط بین واحد پردازش، دستگاه های اندازه گیری (ورودی) و تجهیزات کنترلی (خروجی) را برقرار می کند.
در حین این فرآیند، واحد پردازش سه مرحله را طی می کند:
- پذیرفتن و خواندن اطلاعات دستگاه های اندازه گیری که توسط رابط ورودی دریافت می شود
- انجام اعمال کنترلی مناسب که در حافظه سیستم ذخیره شده است
- ارسال اطلاعات به دستگاه های کنترلی از طریق رابط خروجی به منظور انجام اقدامات لازم. به این فرآیند اصطلاحا اسکن کردن (Scanning) گفته می شود.
همانطور که در شکل زیر مشاهده می کنید، سیگنال های ورودی از حسگرها وارد ترمینال ورودی رابط می شوند. از سوی دیگر، دستگاه های تحت کنترل همانند استارتر موتور، شیرهای برقی، سیستم روشنایی و … به ترمینال خروجی رابط متصل هستند.
از جمله ویژگی های منحصر به فرد پی ال سی می توان به موارد زبر اشاره کرد:
- قابلیت اطمینان بالا
- نیاز به فضای کم جهت نصب و راه اندازی
- در صورت ایجاد تغییر در واحد تحت کنترل، نیازی به تغییر عمده در پیکربندی سیستم کنترلی نیست.
- قابلیت کنترل خروجی های گوناگون
- قابلیت تشخیص محل وقوع خطا در سیستم
جهت برنامه نویسی و اعمال دستورات لازم به واحد پردازش، از یک رایانه استفاده می شود، البته برخی از شرکت ها برای این منظور رایانه های مخصوص محصولات خود را به بازار عرضه کرده اند. به طور کلی 5 زبان برای برنامه نویسی پی ال سی وجود دارد که توسط استاندارد بین المللی IEC 61131 تعریف شده اند. در ادامه هرکدام از این زبان ها به طور مختصر معرفی شده اند:
زبان برنامه نویسی : Ladder رایج ترین زبان در برنامه نویسی پی ال سی، زبان Ladder است. در این زبان بلوک هایی با عنوان کنتاکت باز و بسته، شمارنده، زمان سنج، شیفت رجیستر، اعمال ریاضی و … وجود دارند که با قرار گرفتن در کنار یکدیگر و یا رشته های جدا از یکدیگر، برنامه مورد نظر را تشکیل می دهند.
زبان برنامه نویسی (FBD (Function Block Diagram: در این زبان برنامه نویسی بین متغیر های ورودی و خروجی بلوک هایی قرار گرفته که در واقع مشابه گیت های منطقی است.
زبان برنامه نویسی ST (Structured Text): این زبان، یکی از زبان های برنامه نویسی سطح بالا است که با کدنویسی انجام میشود. در این زبان، برنامه نویس می تواند از دستورهایی همچون if/then/else برای نوشتن برنامه استفاده کند.
زبان برنامه نویسی IL (Instruction List) : ساختار این زبان بر پایه stack طراحی شده است. Stack را می توان به عنوان بخشی از حافظه RAM سیستم تصور کرد. دستور العمل های این زبان، عملگر های مورد استفاده را برای اجرا به stack انتقال داده و نتایج حاصل از اجرای این دستورات نیز از stack خوانده می شود. این زبان دارای دستورالعمل های کمی است و جزو زبان های ضعیف برنامه نویسی محسوب می شود.
زبان برنامه نویسی SFC (Sequential Function Chart) : این زبان برنامه نویسی معمولا برای سیستم های کنترلی پیچیده استفاده می شود. در این زبان هر یک از بلوک ها بیانگر یک مرحله از فرآیند کنترلی هستند که برنامه نویس عملکرد هر کدام از این بلوک ها را از قبل تعریف کرده است. هر کدام از این بلوک ها می توانند یک برنامه پیچیده کنترلی باشند