در زمینه اتوماسیون صنعتی، منطق نردبان یکی از رایج ترین زبان های برنامه نویسی است. با این حال، برای اشیاء کنترلی پیچیده تر، برنامه نویسی شی گرا مطمئناً یک رویکرد بسیار کارآمد است. بیایید ابتدا در مورد برنامه نویسی شی گرا بحث کنیم:
برنامهنویسی شی گرا یک الگوی برنامهنویسی پیشرفته در زبانهای رایانه سطح{{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 از هر دو رویکرد برنامه نویسی رویه ای و شی گرا پشتیبانی می کنند. تمایز بین این دو رویکرد مشابه تفاوت بین برنامه نویسی در C و C++ در زبان های رایانه سطح-بالا است.
در توضیح زیر، FBها در Step7 و DFBها در Unity به عنوان "کلاس" نامیده می شوند، در حالی که FBهای ترکیب شده با پایگاه داده های پس زمینه در 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}}این مفهوم را آموزش می دهد. کد ایجاد شده قابل حمل است و می تواند بر روی پلتفرم های سخت افزاری مختلف اجرا شود.
منطق نردبان از فرمت نمودارهای نردبان الکتریکی استفاده شده در سیستم های کنترل رله پیروی می کند و بیشتر افراد می توانند به سرعت آن را یاد بگیرند و به آن مسلط شوند.
با این حال، در مقایسه با منطق نردبان، برنامه نویسی شی گرا دارای معایب زیر است:
• هزینه بالاتر.
• منحنی یادگیری تندتر.
• عیب یابی برای پرسنل تعمیر و نگهداری آسان نیست.
• کامپایل معمولاً قبل از آپلود کد منبع در پردازنده مورد نیاز است.
در مقایسه با منطق نردبانی، برنامهنویسی شی گرا اغلب به حافظه بیشتر و قدرت پردازش بیشتری نیاز دارد و در نتیجه هزینههای بالاتری به همراه دارد. یادگیری یک زبان برنامه نویسی شی گرا ممکن است بیشتر طول بکشد. احتمالاً آموزش کلاس مورد نیاز است و تسلط بر مفاهیم اصلی مستلزم زمان، تمرین، آزمایش و کاربرد قابل توجهی است. برنامه نویسان باید اغلب برنامه نویسی شی گرا را مطالعه کنند تا از ردیاب ها برای ردیابی کد یا اشکال زداها برای اشکال زدایی منطق استفاده کنند. با این نوع برنامهنویسی سطح{7}بالا، اجرای قابلیتهای نظارت آنلاین در زمان واقعی میتواند دشوار باشد.
قبل از دانلود کد منبع در کنترلر، باید آن را کامپایل کرد. به طور معمول، کد منبع در حافظه پردازنده ذخیره نمی شود. این به این معنی است که باید برای تهیه نسخه پشتیبان از کد منبع دقت شود، زیرا کد کامپایل شده معمولاً قابل ویرایش نیست. با برنامهنویسی شی گرا، فایلهای کتابخانه باید با سایر منابع مورد استفاده در طی فرآیند کامپایل پیوند داده شوند. بدون درک پیوند و منابع، اجرای برنامه دشوار خواهد بود.
مزایای منطق نردبانی:
منطق نردبانی یک روش کدگذاری ساده و خود مستند است-برخی حتی این سوال را مطرح میکنند که آیا این روش به عنوان یک زبان برنامهنویسی واجد شرایط است یا خیر. از فرمت نمودارهای نردبان الکتریکی استفاده شده در سیستم های کنترل رله پیروی می کند و بیشتر افراد می توانند به سرعت آن را یاد بگیرند و به آن مسلط شوند. این تنها زبان برنامه نویسی است که به طور گسترده در زمینه اتوماسیون ماشین استفاده می شود و در آینده قابل پیش بینی یکی از زبان های برنامه نویسی اولیه در صنعت اتوماسیون باقی خواهد ماند.
با گذشت زمان، با ورود افراد از زمینه ها و زمینه های مختلف به این صنعت، زبان های برنامه نویسی مختلفی در جعبه ابزار اتوماسیون صنعتی معرفی شدند. اینها شامل برنامه نویسی بلوک تابع، متن ساختاریافته، برنامه نویسی حالت و نمودارهای تابع متوالی است. این چهار زبان برنامه نویسی به همراه منطق نردبانی، زبان های برنامه نویسی استاندارد تعریف شده توسط استاندارد IEC 61131-3 کمیسیون بین المللی الکتروتکنیکی (IEC) را تشکیل می دهند.
منطق پشت IEC 61131 این است که اگر هر فروشنده ای به این استاندارد پایبند باشد، آنگاه-حداقل تا حدی{2}}فردی فقط باید این پنج زبان برنامه نویسی را یاد بگیرد تا به راحتی بین پلتفرم های ارائه شده توسط فروشندگان مختلف جابجا شود. با این حال، این مورد نیست.
منطق پایه نردبان (مانند استفاده از کنتاکت رله و سیم پیچ) به همین ترتیب عمل می کند. با این حال، هنگام برنامه نویسی، باید سینتکس هر فروشنده و تجربه کاربری، و همچنین ویژگی های نحوه استفاده از پلت فرم برنامه نویسی را بیاموزید. با وجود عدم استانداردسازی، منطق نردبانی مزایای زیر را نسبت به برنامه نویسی شی گرا ارائه می دهد:
• برای کنترل ماشین و فرآیند به خوبی-مناسب است.
• درک آسان تر است زیرا ذاتاً خود-مستند است.
• عیب یابی سیستم کنترل شده را تسهیل می کند.
• اشکال زدایی آسان است.
• کد منبع معمولاً می تواند در پردازنده ذخیره شود.
منطق نردبانی برای کنترل ماشین و فرآیند، بهویژه برای سیستمهای اتوماسیون با تعداد زیادی ورودی و خروجی گسسته (I/O) مناسب است. در طول سال ها، منطق نردبان نیز به طور مداوم برای کنترل I/O آنالوگ بهبود یافته است و آن را برای برنامه های متعدد کنترل فرآیند مناسب تر می کند.
در مقایسه با برنامه های کاربردی کنترل ماشین، برنامه های کاربردی فرآیند اغلب نسبت بیشتری از I/O آنالوگ دارند.
از آنجایی که استفاده از منطق نردبان نسبت به برنامهنویسی شی گرا سادهتر است، بسیاری از تکنسینها و مهندسان ماهر میتوانند به سرعت آن را یاد بگیرند. منطق بسیار سیستماتیک و سازماندهی شده است و ماهیت مستند{2} آن درک و تسلط بر آن را آسانتر میکند. قبل از اینکه دستگاهی فعال شود، هر خط کد باید درست ارزیابی شود. اگر پنج موتور برای کنترل وجود داشته باشد، حداقل پنج خط کد مورد نیاز است که فرآیند را بسیار ساده می کند.
"کد منبع منطق نردبانی و توصیفگرها معمولاً در کنترلکننده ذخیره میشوند و نیازی به دسترسی به کد منبع- را از بین میبرند که باعث میشود برنامهنویسان ناامیدی را که معمولاً هنگام تلاش برای درک برنامههای کامپایل شده تجربه میکنند، برطرف کند."
برای مهندسان برق و پرسنل تعمیر و نگهداری، منطق نردبان بسیار بصری است. اگرچه منطق نردبانی به روشی متفاوت از برنامهنویسی{1}}شیء گرا نیاز دارد، اما میتوان با مطالعه به سرعت بر آن مسلط شد و درک کدهای نوشته شده توسط دیگران زمان کمتری میبرد. این کاملاً واضح است که یک عبارت منطقی چه زمانی درست است و چه زمانی نادرست است. حتی کسانی که تجربه برنامه نویسی محدودی دارند به راحتی می توانند مفاهیمی مانند روشن/خاموش، انرژی سیم پیچ، متغیرهای مقایسه و توابع رایج ریاضی را درک کنند.

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




