در زمینه اتوماسیون صنعتی، منطق نردبان یکی از رایج ترین زبان های برنامه نویسی است. با این حال، برای اشیاء کنترلی پیچیده تر، برنامه نویسی شی گرا مطمئناً یک رویکرد بسیار کارآمد است. بیایید ابتدا در مورد برنامه نویسی شی گرا بحث کنیم:
برنامهنویسی شی گرا یک الگوی برنامهنویسی پیشرفته در زبانهای رایانه سطح{{1}بالا است. این فلسفه طراحی می تواند برای برنامه های PLC در سیستم های کنترل صنعتی نیز اعمال شود. اگرچه ما نمیتوانیم بسیاری از ویژگیهای عالی برنامهنویسی شیگرا-مانند "وارث"- را پیادهسازی کنیم و زبان PLC ممکن است حتی ویژگیهای یک زبان برنامهنویسی شی گرا را نداشته باشد، مفاهیم اساسی برنامهنویسی شی گرا کلاسها و نمونههای کلاس (یعنی اشیا) هستند. ما فقط باید از این مفاهیم استفاده کنیم. در برنامه نویسی کامپیوتری، برای تعریف کلاس ها باید موجودیت های خاصی را انتزاع و تعمیم دهیم. با این حال، در سیستمهای کنترل صنعتی، اشیاء کنترلی مانند موتورها و شیرها دستههای کنترلی به وضوح تعریف شدهاند. میتوانیم بدون نیاز به انتزاع، کلاسهایی را برای آنها تعریف کنیم. بخشهای زیر از زبان برنامهنویسی Step7 زیمنس و زبان برنامهنویسی Unity اشنایدر برای توضیح برنامهنویسی شی گرا برای PLCها استفاده میکنند.
I. روشهای اجرا
برنامه نویسی شی گرا در مرحله 7 با استفاده از بلوک های تابع (FB) اجرا می شود. وقتی این موضوع مطرح می شود، مردم اغلب به رویکرد برنامه نویسی مدولار پیشنهاد شده توسط زیمنس فکر می کنند. در واقع، این همان مفهوم است، اما عباراتی مانند «مدولارسازی»، «بلوکهای داده پسزمینه» و «پسزمینههای متعدد» که توسط زیمنس معرفی شدهاند، همیشه به کاربران اجازه نمیدهند که این فلسفه طراحی عالی را به وضوح درک کنند و به کار ببرند.
با این حال، اگر از منظر برنامهنویسی{0}}شی گرا به آن نگاه کنید، میتوانید درک بسیار بهتری از این الگوی طراحی به دست آورید. یک "بلوک FB" به عنوان یک "کلاس" در نظر گرفته می شود. می توان آن را به عنوان گروه بندی کد برای اشیاء کنترلی مشابه مشاهده کرد. برای مثال، برای درایو فرکانس متغیر MM440، میتوانید یک بلوک FB به نام "MtrMM440" بنویسید. در برنامه نویسی شی گرا، به آن "کلاس" می گویند. هنگامی که شما نیاز به برنامهریزی کنترل برای یک موتور خاص دارید، میتوانید یک بلوک DB پسزمینه به آن اختصاص دهید-در برنامهنویسی شیگرا، به این میگویند پیادهسازی کلاس (یعنی ایجاد یک نمونه از کلاس: یک شی). هنگامی که نیاز به کنترل چندین موتور دارید، می توانید DB های پس زمینه متفاوتی را به این بلوک FB اختصاص دهید، که معادل ایجاد چندین نمونه از کلاس است.
Step7 دارای نوع دیگری از بلوک برنامه است: بلوک FC. برنامه نویسی عمدتاً با استفاده از بلوک های FC به عنوان برنامه نویسی ساخت یافته در سیستم های زیمنس نامیده می شود که می تواند به برنامه نویسی رویه ای در برنامه نویسی رایانه- یعنی برنامه نویسی کاملاً مبتنی بر عملکرد- تشبیه شود.
برنامه نویسی با نرم افزار یونیتی اشنایدر درک بهتری از برنامه نویسی شی گرا- فراهم می کند. تعاریف DFB آن شامل پارامترهای ورودی/خروجی، متغیرهای خصوصی/عمومی و پیادهسازی کد-که دقیقاً عناصر اساسی یک «کلاس» در برنامهنویسی شی گرا رایانه هستند. ایجاد یک نمونه از یک کلاس (یک شی) به سادگی ایجاد یک متغیر "Boolean" معمولی است. شما فقط باید یک متغیر از این "کلاس" را در "Function Blocks" تعریف کنید.
هر دو Step7 و Unity از هر دو رویکرد برنامه نویسی رویه ای و شی گرا{1}} پشتیبانی می کنند. تمایز بین این دو رویکرد مشابه تفاوت بین برنامه نویسی در C و C++ در زبانهای رایانه سطح- سطح بالا است.
در توضیح زیر، FBها در Step7 و DFBها در Unity به عنوان "کلاس" نامیده می شوند، در حالی که ترکیب یک FB و یک DB پس زمینه در Step7، و همچنین نمونه هایی از DFB ها در Unity، "اشیاء" نامیده می شوند.
II. معماری برنامه نویسی شی گرا-
بحث بالا جزئیات پیاده سازی را پوشش می دهد، اما فلسفه برنامه نویسی بر اساس معماری برنامه ساخته شده است. صرفاً استفاده از روشهای شی گرا در قسمت خاصی از کد به این معنی نیست که کل برنامه شی گرا است. این نوع برنامه نویسی نیازمند رویکردی مبتنی بر جنبه های زیر است:
1. طراحی مدار ساخت یافته.
این بخش عمدتاً بر خطوط تولید خودکار متمرکز است. برای ماشین ابزارهای مستقل، می توان از یک ساختار ساده استفاده کرد:
<1>لایه خط تولید خودکار: این بالاترین سطح است که دارای یک PLC اصلی است که مناطق مختلف زیر آن را کنترل می کند.
<2>لایه پروژه: این لایه دارای سیستم توزیع برق مستقل است اما PLC ندارد. این فقط شامل ماژول های توزیع شده است که توسط خط تولید خودکار کنترل می شود. همانطور که از نام آن پیداست، دارای درجه بالایی از استقلال است و می تواند به عنوان یک پروژه جداگانه طراحی و تولید شود. هنگامی که خط تولید خودکار نسبتا کوچک است، این لایه ممکن است حذف شود.
<3>, سطح گروه عملکردی: بر اساس تقسیمات فرآیندی، بخش های تجهیزاتی که عملکرد فرآیند خاصی را انجام می دهند در یک گروه عملکردی گروه بندی می شوند. این گروه متعلق به سطح مهندسی است. هنگامی که سطح مهندسی حذف می شود، به سطح خط تولید خودکار تعلق دارد. برنامه نویسی شی گرا لزوماً به استفاده از ساختار فوق نیاز ندارد، اما یک ساختار الکتریکی خوب طراحی شده برای برنامه نویسی شی گرا بهتر است.
2. تمام منطق برای هر شیء کنترلی در یک "کلاس" پیاده سازی می شود.
برای دستیابی به این هدف، تجزیه و تحلیل اطلاعات مربوط به شی کنترل ضروری است. به عنوان مثال، برای یک موتور، اطلاعات مرتبط زیر باید در نظر گرفته شود:
اطلاعات ورودی:
<1>اطلاعات حفاظت مدار، مانند قطع کننده مدار موتور و رله حرارتی.
<2>اطلاعات حفاظت عملکردی مانند کلیدهای محدود برای موتورهای حرکتی، سوئیچ های فشار برای فن ها و سوئیچ های سطح روغن برای پمپ های روغن.
<3>شرایط شروع و توقف: در حالی که حفاظت مدار و حفاظت عملکردی ذکر شده در بالا ممکن است باعث توقف کار موتور شود، و تنظیم مجدد ممکن است راه اندازی مجدد را آغاز کند، شرایطی که در اینجا به آنها اشاره می شود، شرایطی برای راه اندازی و توقف در حین کارکرد عادی است-مانند مراحل یک فرآیند کنترل متوالی.
<4>حالت های کنترل: مانند دستی و اتوماتیک.
<5>بازنشانی خطا: راه اندازی مجدد سیستم از طریق سیگنال های ریست.
اطلاعات خروجی:
<1>خروجی های کنترل، مانند کنتاکتور اصلی که موتور را کنترل می کند.
<2>خروجی های اطلاعات وضعیت
<3>خروجی های خطا
اطلاعات ذخیره سازی وضعیت:
متغیرهای میانی مورد استفاده برای اجرای کد، و همچنین متغیرهای وضعیتی که توسط HMI قابل خواندن هستند. همه اطلاعات فوق را در یک کلاس واحد ادغام کنید و تا حد امکان پارامترهای کلاس را استاندارد کنید. با این حال، هنوز در مقایسه با زبانهای برنامهنویسی سطح بالا، تفاوتهایی وجود دارد. برای مرحله 7، استانداردی که باید دنبال شود این است: ساختار برنامه با استفاده از FC ها اجرا می شود، و کنترل شی با استفاده از FB ها اجرا می شود، همانطور که در چارچوب ساختاری زیر نشان داده شده است (که ساختار الکتریکی آن بر اساس مقدمه بالا است): این فقط یک معماری برنامه PLC خشن است. یک معماری خوب باید جامع تر و علمی تر باشد.
3. ساختارهای داده را با دقت برنامه ریزی کنید
تعریف ساختارهای داده بسیار مهم است، و شما باید تلاش کنید تا این ساختارها را تا حد امکان بدون نگرانی در مورد فضای ذخیره سازی یکسان کنید. حافظه مدرن PLC برای گنجاندن مقادیر زیادی داده کافی است. شایان ذکر است که در مرحله 7، در صورت امکان باید از تعریف انواع{2}}تعریف شده کاربر (UDT) خارج از کلاس ها اجتناب کنید. در عوض، آنها را در کلاس ها تعریف کنید. اگرچه این ممکن است منجر به تعاریف تکراری از یک ساختار در کلاس های مختلف شود، استقلال کلاس ها را افزایش می دهد.
در بخش های بعدی، این دو رویکرد برنامه نویسی را با هم مقایسه خواهیم کرد:
مزایای برنامه نویسی شی گرا -در مقایسه با منطق نردبانی، برنامه نویسی شی گرا مزایای زیر را ارائه می دهد:
• کد قابل حمل و استفاده مجدد آسان است.
• استفاده از توابع ریاضی، حلقه ها و سایر ساختارها آسان است.
• برنامه نویسی شی گرا تقریباً در هر دوره برنامه نویسی کامپیوتری تدریس می شود.
• کد می تواند بر روی پلتفرم های سخت افزاری مختلف اجرا شود.
برای تسلط بر برنامه نویسی شی گرا، ابتدا باید مفهوم اشیاء و نحوه استفاده از آنها را درک کنید. هنگامی که یک شی یا کلاس نوشته می شود، می توان به راحتی از طریق تماس های متعدد دوباره از آن استفاده کرد. به عنوان مثال، یک شی برای کنترل یک موتور ایجاد کنید، که تمام ورودی ها، خروجی ها و خطاها را کنترل می کند. در صورت نیاز، چندین موتور را می توان با نمونه سازی این شیء کنترلی چندباره کنترل کرد. این به عنوان نمونه{5}}در صورت تقاضا شناخته میشود. هنگامی که چندین موتور نیاز به کنترل داشته باشند، می توان از این شی واحد به طور مکرر استفاده کرد. در صورت نیاز فراخوانی می شود و نمونه ها در صورت استفاده ایجاد می شوند.
هر نمونه از هر موتور ویژگی های خاص خود را دارد، مانند توقف موتور، کارکرد موتور، سرعت موتور و اضافه بار موتور. بیشتر کارهای برنامه نویسی زمانی که شی برای اولین بار ایجاد می شود تکمیل می شود. این روشی متفاوت از منطق نردبانی است و قدرتمندتر است زیرا هنگامی که یک شی ساخته می شود، استفاده و استفاده مجدد از آن آسان است. برنامه نویسی شی گرا انجام توابع پیچیده ریاضی، محاسبات حلقه، آرایه ها و زیر روال های تو در تو را آسان تر می کند. تقریباً هر دوره برنامه نویسی رایانه-چه در دبیرستان، چه در دانشگاه، چه در آموزش های آنلاین{6}}این مفهوم را آموزش می دهد. کد ایجاد شده قابل حمل است و می تواند بر روی پلتفرم های سخت افزاری مختلف اجرا شود.
منطق نردبان از فرمت نمودارهای نردبان الکتریکی استفاده شده در سیستم های کنترل رله پیروی می کند و بیشتر افراد می توانند به سرعت آن را یاد بگیرند و به آن مسلط شوند.
با این حال، در مقایسه با منطق نردبان، برنامه نویسی شی گرا دارای معایب زیر است:
• هزینه بالاتر.
• منحنی یادگیری تندتر.
• عیب یابی برای پرسنل تعمیر و نگهداری آسان نیست.
• کامپایل معمولاً قبل از آپلود کد منبع در پردازنده مورد نیاز است.
در مقایسه با منطق نردبانی، برنامهنویسی شی گرا اغلب به حافظه بیشتر و قدرت پردازش بیشتری نیاز دارد و در نتیجه هزینههای بالاتری به همراه دارد. یادگیری یک زبان برنامه نویسی شی گرا ممکن است بیشتر طول بکشد. احتمالاً آموزش کلاس مورد نیاز است و تسلط بر مفاهیم اصلی مستلزم زمان، تمرین، آزمایش و کاربرد قابل توجهی است. برنامه نویسان باید اغلب برنامه نویسی شی گرا را مطالعه کنند تا از ردیاب ها برای ردیابی کد یا اشکال زداها برای اشکال زدایی منطق استفاده کنند. با این نوع برنامهنویسی سطح بالا، اجرای قابلیتهای نظارت آنلاین در زمان واقعی میتواند دشوار باشد.
قبل از دانلود کد منبع در کنترلر، باید آن را کامپایل کنید. به طور معمول، کد منبع در حافظه پردازنده ذخیره نمی شود. این بدان معنی است که باید مراقب باشید تا از کد منبع نسخه پشتیبان تهیه کنید، زیرا کد کامپایل شده معمولاً قابل ویرایش نیست. با برنامهنویسی شی گرا، فایلهای کتابخانه باید با سایر منابع مورد استفاده در طی فرآیند کامپایل پیوند داده شوند. بدون درک پیوند و منابع، اجرای برنامه دشوار خواهد بود.
مزایای منطق نردبانی:
منطق نردبانی یک روش کدگذاری ساده و خود مستند است-برخی حتی این سوال را مطرح میکنند که آیا این روش به عنوان یک زبان برنامهنویسی واجد شرایط است یا خیر. از فرمت نمودارهای نردبانی استفاده شده در سیستم های کنترل رله پیروی می کند و بیشتر افراد می توانند به سرعت آن را یاد بگیرند و به آن مسلط شوند. این تنها زبان برنامه نویسی است که به طور گسترده در زمینه اتوماسیون ماشین استفاده می شود و در آینده قابل پیش بینی یکی از زبان های برنامه نویسی اولیه در صنعت اتوماسیون باقی خواهد ماند.
با گذشت زمان، با ورود افراد از زمینه ها و زمینه های مختلف به این صنعت، زبان های برنامه نویسی مختلفی در جعبه ابزار اتوماسیون صنعتی معرفی شدند. اینها شامل برنامه نویسی بلوک تابع، متن ساختاریافته، برنامه نویسی حالت و نمودارهای تابع متوالی است. این چهار زبان برنامه نویسی به همراه منطق نردبانی، زبان های برنامه نویسی استاندارد تعریف شده توسط استاندارد IEC 61131-3 کمیسیون بین المللی الکتروتکنیکی (IEC) را تشکیل می دهند.
منطق پشت IEC 61131 این است که اگر هر فروشنده ای به این استاندارد پایبند باشد، آنگاه-حداقل تا حدی{2}}فردی فقط باید این پنج زبان برنامه نویسی را یاد بگیرد تا به راحتی بین پلتفرم های ارائه شده توسط فروشندگان مختلف جابجا شود. با این حال، این مورد نیست.
همین امر در مورد منطق پایه نردبان (مانند استفاده از کنتاکت رله و سیم پیچ) صدق می کند. با این حال، هنگام برنامه نویسی، باید نحو هر فروشنده و تجربه کاربری، و همچنین ویژگی های نحوه استفاده از پلت فرم برنامه نویسی آنها را بیاموزید. با وجود عدم استانداردسازی، منطق نردبانی مزایای زیر را نسبت به برنامه نویسی شی گرا ارائه می دهد:
• برای کنترل ماشین و فرآیند به خوبی-مناسب است.
• درک آسانتر است زیرا ذاتاً خود-مستند است.
• عیب یابی سیستم کنترل شده را تسهیل می کند.
• اشکال زدایی آسان است.
• کد منبع معمولاً می تواند در پردازنده ذخیره شود.
منطق نردبانی برای کنترل ماشین و فرآیند، بهویژه برای سیستمهای اتوماسیون با تعداد زیادی ورودی و خروجی گسسته (I/O) مناسب است. در طول سالها، منطق نردبانی برای مدیریت ورودی/خروجی آنالوگ نیز به طور مداوم بهبود یافته است و آن را برای طیف گستردهای از برنامههای کنترل فرآیند مناسبتر کرده است.
در مقایسه با برنامه های کاربردی کنترل ماشین، برنامه های کاربردی فرآیند معمولاً نسبت بیشتری از I/O آنالوگ دارند.
از آنجایی که استفاده از منطق نردبان نسبت به برنامه نویسی شی گرا ساده تر است، بسیاری از تکنسین ها و مهندسان ماهر می توانند به سرعت آن را یاد بگیرند. منطق بسیار سیستماتیک و سازماندهی شده است، و ماهیت مستند{2} آن، درک و تسلط بر آن را آسانتر میکند. قبل از اینکه دستگاهی فعال شود، هر خط کد باید درست ارزیابی شود. اگر پنج موتور برای کنترل وجود داشته باشد، حداقل پنج خط کد مورد نیاز است که فرآیند را بسیار ساده می کند.
کد منبع منطق نردبانی و توصیفگرها معمولاً در کنترلکننده ذخیره میشوند و نیاز به دسترسی به کد منبع را از بین میبرند و در نتیجه ناامیدی را که برنامهنویسان معمولاً هنگام تلاش برای درک برنامههای کامپایل شده تجربه میکنند، از بین میبرند.
برای مهندسان برق و پرسنل تعمیر و نگهداری، منطق نردبان بسیار بصری است. اگرچه منطق نردبانی به ذهنیت متفاوتی نسبت به برنامه نویسی شی گرا نیاز دارد، اما می توان به سرعت از طریق مطالعه بر آن مسلط شد و درک کد نوشته شده توسط دیگران زمان کمتری می برد. روشن است که چه زمانی منطق درست است و چه زمانی نادرست است. حتی کسانی که تجربه برنامه نویسی محدودی دارند می توانند به راحتی مفاهیمی مانند حالت های روشن/خاموش، انرژی سیم پیچ، متغیرهای مقایسه و توابع ریاضی رایج را درک کنند.

استفاده از آن ساده و آسان است و عیب یابی و اشکال زدایی را ساده می کند. هنگام نظارت بر منطق، درک شرایط عملیاتی فعلی آسان است. هیچ مدرک نرم افزاری یا مهارت های برنامه نویسی پیشرفته مورد نیاز نیست. با منطق نردبان، پرسنل تعمیر و نگهداری و مهندسی به راحتی می توانند روند را پیگیری کنند و بفهمند که چه اتفاقی می افتد. منطق نردبان را می توان به عنوان یک جدول حقیقت در نظر گرفت: اگر منطق سمت چپ درست باشد، منطق سمت راست فعال می شود.
کد منبع منطق نردبان و توصیفگرها معمولاً در کنترلر ذخیره می شوند. این مشکلی را که برنامه نویسان اغلب هنگام تلاش برای درک کد کامپایل شده بدون دسترسی به کد منبع تجربه می کنند، برطرف می کند-مشکلی که در برنامه نویسی شی گرا نیز رایج است.
با این حال، در مقایسه با برنامهنویسی شی گرا، منطق نردبانی دارای معایب زیر نیز میباشد:
• برنامه نویسان کامپیوتر و متخصصان فناوری اطلاعات با منطق نردبانی آشنا نیستند.
• انجام توابع ریاضی، پردازش متن و پردازش داده دشوار است.
• به زمان اسکن متکی است.
• برای اجرا به سخت افزار تخصصی مانند کنترل کننده منطقی قابل برنامه ریزی (PLC) نیاز دارد.
منطق نردبانی زبان نمادینی است که برنامه نویسان کامپیوتر و متخصصان فناوری اطلاعات با آن آشنا نیستند، زیرا آن را در مدرسه یاد نمی گیرند. مدیریت توابع ریاضی، رشتههای متنی و دادهها در منطق نردبان میتواند دشوار باشد، در درجه اول به این دلیل که منطق نردبان در ابتدا برای رسیدگی به این توابع طراحی نشده بود.
منطق نردبان نیز به زمان اسکن بستگی دارد. برنامه های بزرگتر به زمان بیشتری برای اسکن و پردازش منطق نیاز دارند. هنگام اجرای منطق نردبانی، سیستم ورودی ها را می خواند، منطق را اسکن می کند، جداول و خروجی های داده را به روز می کند، ارتباط را انجام می دهد و سپس چرخه را تکرار می کند. ویژگی هایی مانند وقفه ها و سایر تکنیک های برنامه نویسی را می توان برای اطمینان از اجرای سریعتر منطق خاص پیاده سازی کرد.
اگرچه PLC های مبتنی بر نرم افزار{0}}پیکربندی شده با منطق نردبانی می توانند روی رایانه شخصی اجرا شوند، سخت افزار (مانند PLC) معمولاً باید با نرم افزار برنامه نویسی سازگار باشد و بهتر است هر دو را از یک فروشنده خریداری کنید. این سازگاری را تضمین میکند، اما اگر بخواهید فروشندهها را تغییر دهید، چندان راحت نیست.
کاربران علاوه بر مقایسه مزایا و معایب منطق نردبانی و برنامهنویسی شی گرا، باید نحوه استفاده از این زبانهای برنامهنویسی را در محیطی که در آن مستقر میشوند نیز ارزیابی کنند. اگر یک کارخانه یا تأسیسات قبلاً در منطق نردبان استاندارد شده است، جایگزین کردن آن با برنامهنویسی شی گرا تشویق نمیشود، حتی اگر دومی برای برنامه مناسبتر باشد. همانطور که استفاده از برنامه نویسی شی گرا در حال رشد است، انتظار می رود که برای دهه های آینده با منطق نردبانی همزیستی کند. به یک متخصص اتوماسیون آیندهنگر-توصیه میشود-به هر دو زبان مسلط باشد.




