اگر تا به حال روبروی یک صفحه کنترل عظیم در یک کارخانه ایستاده اید و یک صفحه نمایش لمسی درخشان را فشار می دهید تا سرعت نوار نقاله را تنظیم کنید یا دمای پمپ را بررسی کنید، از HMI صنعتی (رابط انسان و ماشین) استفاده کرده اید - این چیزی است که داده های پیچیده ماشین آلات کارخانه را به چیزی تبدیل می کند که ما انسان ها واقعاً می توانیم آن را بفهمیم و عمل کنیم. به عنوان تأمینکننده این دستگاهها، از من سؤالات زیادی میشود: «چه زبانهای برنامهنویسی واقعاً باعث میشوند این HMI کار کنند؟» این یک پاسخ مناسب برای همه نیست، و انتخاب زبان مناسب برای اینکه آیا یک HMI به طور قابل اعتماد کار میکند، متناسب با نیازهای یک کارخانه است یا حتی کارگران را ایمن نگه میدارد، مشکل است. بیایید آنچه را که واقعاً در تنظیمات صنعتی واقعی استفاده می شود، نه فقط در موارد کتاب درسی، تجزیه کنیم.
ابتدا، اجازه دهید توضیح دهیم: HMI های صنعتی بسیار متفاوت از HMI های تلفن هوشمند یا لپ تاپ هایی هستند که اکثر ما هر روز از آن استفاده می کنیم. آنهایی که ما می سازیم باید 24 ساعته، در کارخانه های گرد و غبار، گرم و لرزان، بدون خرابی کار کنند. آنها با PLC ها (کنترل کننده های منطقی قابل برنامه ریزی)، حسگرها، موتورها و انواع تجهیزات قدیمی که ده ها سال در دسترس هستند صحبت می کنند. بنابراین، زبانهای برنامهنویسی اینجا، زبانهای جدید مد روزی نیستند که برای توسعه اپلیکیشن میبینید – آنها آزمایششده، پایدار، و برای نیازهای خاص اتوماسیون صنعتی بهینه شدهاند.


بیایید با رایجترین موردی که درباره آن میشنوید شروع کنیم: منطق نردبان، که گاهی اوقات نمودار نردبانی یا LAD نامیده میشود. به هر حال، این یک زبان مبتنی بر متن نیست - این زبان گرافیکی است و به گونهای طراحی شده است که به نظر میرسد که شماتیکهای الکتریکی ۱۰۰ سال است که از آن استفاده کردهاند. اگر میدانید چگونه نمودارهای سیمکشی قدیمی را بخوانید، Ladder Logic کاملاً منطقی است: دارای «پلههایی» است که در آن مخاطبین (مانند ماشههای سنسور یا فشار دادن دکمهها) و سیمپیچها (مانند روشن یا خاموش کردن موتور) را در آن قرار میدهید. برای چندین دهه، این تنها راه برای برنامهریزی HMI و PLCهای صنعتی بود و اکنون هم در همه جا وجود دارد.
چرا منطق نردبان به اطراف می چسبد؟ کارگران و مهندسان کارخانه که بیش از 20 سال روی زمین بوده اند، از درون و بیرون آن را می دانند. اگر یک کارگر خط نیاز به عیب یابی ماشینی در ساعت 2 بامداد داشته باشد، می تواند به نمای منطق نردبان HMI نگاهی بیندازد و یک سوئیچ قطع شده را سریعتر از تجزیه خط پایتون تشخیص دهد. همچنین فوقالعاده قابل اعتماد است – بدون نیاز به کامپایلر فانتزی، به صورت بومی روی اکثر PLCها و HMIها بدون تاخیر اضافی اجرا میشود. گفته می شود، برای کارهای پیچیده و داده های سنگین عالی نیست. اگر میخواهید داشبوردی بسازید که 10000 نقطه داده را در کل کارخانه ردیابی کند، Ladder Logic میتواند درهم و برهم باشد و مقیاسبندی آن سخت باشد. اینجاست که زبان های دیگر وارد می شوند.
بعدی: Structured Text (ST)، که یک زبان مبتنی بر متن است که بسیار شبیه به BASIC یا C به نظر می رسد. آن را به عنوان ارتقاء Ladder Logic برای نیازهای مدرن در نظر بگیرید. میتوانید حلقهها، دستورات if/then، متغیرها و حتی توابع ریاضی پایه را در ST بنویسید، که آن را برای کارهایی که برای Ladder Logic بسیار پیچیده هستند اما به یک زبان برنامهنویسی کامل نیاز ندارند، عالی میکند. به عنوان مثال، اگر می خواهید HMI صنعتی شما میانگین دمای 50 بخاری را در مدت 10 دقیقه محاسبه کند و در صورت بالا بودن آن یک هشدار ارسال کند، می توانید به جای ترسیم 20 پله در منطق نردبانی، آن را در چند خط ST بنویسید. اکثر نرم افزارهای مدرن HMI از ST پشتیبانی می کنند، بنابراین به ابزاری برای ایجاد تعادل بین آشنایی و عملکرد تبدیل شده است. بسیاری از مهندسان اتوماسیون جدیدتر در حال حاضر ST را ابتدا یاد می گیرند، زیرا اگر کدنویسی اولیه را بدانید، برداشتن آن از Ladder Logic آسان تر است.
سپس C/C++ وجود دارد، که ممکن است شما را شگفت زده کند – اما در واقع برای توسعه سفارشی HMI صنعتی، به ویژه برای دستگاه های کوچکتر و تخصصی، بسیار رایج است. صبر کنید، چرا فقط از نردبان یا ST استفاده نمی کنید؟ C/C++ به شما کنترل بیشتری بر روی سخت افزار می دهد، که برای HMI هایی که نیاز به انجام کارهایی مانند پردازش داده های حسگر با سرعت بالا، کار با رابط های گرافیکی سنگین، یا برقراری ارتباط با پروتکل های صنعتی خاص که هیچ زبان عمومی پشتیبانی نمی کند، کلیدی است. به عنوان مثال، اگر در حال ساخت یک HMI برای یک خط دستگاه پزشکی سفارشی هستید که نیاز به همگامسازی با دادههای دستگاه برش لیزری خاص دارد، C/C++ به شما امکان میدهد هر قسمت از رابط را تغییر دهید تا دقیقاً همانطور که نیاز دارید، بدون سربار زبانهای سطح بالاتر کار کند. جنبه منفی؟ برای نوشتن و نگهداری کد C/C++ به یک توسعهدهنده ماهر نیاز دارید، و اگر مراقب نباشید بیشتر مستعد اشکال است - برای خط کارخانهای 24/7 که در آن خرابی میتواند هزاران هزینه از کار بیفتد، ایدهآل نیست.
پایتون شروع به ظهور بیشتر در HMI های صنعتی کرده است، عمدتاً برای کارخانه های متوسط که می خواهند بدون سرمایه گذاری در یک پروژه بزرگ C/C++ انعطاف پذیری را افزایش دهند. بسیاری از نرمافزارهای HMI اکنون به شما امکان میدهند اسکریپتهای پایتون را برای انجام کارهایی مانند کشیدن دادهها از ابزارهای تحلیل مبتنی بر ابر، ارسال هشدارهای سفارشی از طریق Slack یا ایمیل، یا اجرای مدلهای اولیه یادگیری ماشین برای پیشبینی زمانی که ممکن است یک قطعه خراب شود، جاسازی کنید. به عنوان مثال، اگر یک کارگاه تولیدی کوچک با [HMI 7 اینچ] دارید - مناسب برای فضاهای تنگ روی میز کار - می توانید از Python برای اتصال آن HMI به یک ابزار تجزیه و تحلیل رایگان استفاده کنید که تعداد دفعات استفاده از ماشین را ردیابی می کند، بنابراین می توانید تعمیر و نگهداری را قبل از خراب شدن برنامه ریزی کنید. نکته جالب اینجاست که پایتون تفسیر می شود، به این معنی که کمی کندتر از زبان های کامپایل شده مانند C است، بنابراین برای کارهای بلادرنگی که نیاز به پاسخگویی در میلی ثانیه دارند، عالی نیست. اما برای کارهای غیر حیاتی و متمرکز بر داده، این یک تغییر دهنده بازی است که به کارخانه ها اجازه می دهد HMI های خود را بدون شکستن بانک سفارشی کنند.
یکی از زبانهایی که ممکن است زیاد دربارهاش نشنیده باشید، اما هنوز در بسیاری از HMIهای قدیمی استفاده میشود، BASIC است. HMI های قدیمی و اختصاصی از برندهایی که بیش از 40 سال وجود دارند، اغلب از BASIC برای اسکریپت نویسی سفارشی استفاده می کنند. تنها مشکل این است که اکثر این سیستمها قدیمی هستند، یافتن قطعات برایشان سخت است، و با تجهیزات مدرن خوب بازی نمیکنند، بنابراین ما تقریباً همیشه توصیه میکنیم به یک HMI جدیدتر ارتقا دهید که از ST، Python یا C پشتیبانی میکند. برای مثال، اگر کارخانهای هنوز یک HMI قدیمی را اجرا میکند که از BASIC استفاده میکند، به احتمال زیاد هنگام اضافه کردن یک سنسور جدید، مشکلات سازگاری با آنها بیشتر است. آن را
اکنون، بیایید در مورد نحوه انتخاب زبان برای ساختن HMI خود، مانند خط [HMI صنعتی] خود صحبت کنیم. ابتدا از مشتری میپرسیم که واقعاً به چه چیزی نیاز دارد: آیا آنها یک کارگاه کوچک با چند ماشین هستند که فقط به کنترل روشن/خاموش اولیه و خوانش دما نیاز دارند؟ سپس یک [HMI 7 اینچی] با نردبان منطق یا ST عالی است - ساده، قابل اعتماد و آسان برای تیم داخلی آنها استفاده می کند. اگر آنها یک کارخانه بزرگ قطعات خودرو با خط مونتاژ کامل هستند که نیاز به ردیابی صدها نقطه داده و همگام سازی با تجزیه و تحلیل ابری دارند؟ ما احتمالا یک HMI خواهیم ساخت که هم از Ladder Logic برای کنترل ماشین اصلی و هم پایتون برای اسکریپت های داده سفارشی پشتیبانی می کند. برای مشتریانی که یک خط کاملاً جدید با تجهیزات منحصربهفرد میسازند، میتوانیم کد سفارشی C/C++ بنویسیم تا مطمئن شویم که HMI دقیقاً چگونه به آن نیاز دارد، ارتباط برقرار میکند.
بسیاری از افراد جدیدتر اتوماسیون ممکن است بپرسند: چرا فقط از جاوا اسکریپت استفاده نکنیم؟ برای برنامه های وب بسیار محبوب است، درست است؟ حقیقت این است که جاوا اسکریپت به ندرت برای HMI های صنعتی استفاده می شود، زیرا برای محیط های سخت و الزامات بلادرنگ مورد نیاز HMI ها بهینه نشده است. HMI های مبتنی بر وب در حال تبدیل شدن به یک چیز هستند - برخی از کارخانه ها از آنها استفاده می کنند تا مهندسان ماشین ها را از طریق تلفن هایشان بررسی کنند - اما برای بخش کنترل واقعی، شما همچنان به یک زبان مادری مانند Ladder یا ST نیاز دارید. HMI های وب برای نظارت از راه دور عالی هستند، اما نه برای کارهای اصلی که یک خط را 24/7 کار می کند.
نکته دیگری که باید در نظر داشت: اکثر سیستم های HMI صنعتی فقط از یک زبان استفاده نمی کنند. آنها آنها را ترکیب می کنند تا بهترین ها را از هر کدام به دست آورند. به عنوان مثال، ممکن است نردبان منطق کنترل اصلی موتور را کنترل کند (چیزی که واقعاً در آن خوب است)، ST برای محاسبه تعداد تولید، و پایتون برای ارسال داده ها به داشبورد ابری. این رویکرد "بهترین از هر دو" دلیل انعطاف پذیری HMI های مدرن است - آنها می توانند همزمان با تجهیزات قدیمی قدیمی و ابزارهای سفارشی جدید کار کنند.
به عنوان یک تامین کننده HMI، من از نزدیک دیدم که چگونه انتخاب زبان اشتباه می تواند مشکلات بزرگی ایجاد کند. چند سال پیش، مشتری داشتیم که سعی کرد با استفاده از یک HMI مبتنی بر وب که بر اساس جاوا اسکریپت ساخته شده بود، از یک برنامه عمومی تلفن هوشمند برای کنترل خط بسته بندی خود استفاده کند. هر بار که خط مشغول بود خراب میشد، زیرا جاوا اسکریپت نمیتوانست جریان داده بلادرنگ را مدیریت کند. آنها مجبور شدند برای کنترل هسته به یک HMI سفارشی با منطق نردبانی سوئیچ کنند و باعث کاهش 90 درصدی از کار افتادگی آنها شد. یکی دیگر از مشتریان، یک کارخانه آبجوسازی کوچک، میخواست دمای تخمیر را ردیابی کند و زمانی که دستهای انجام شد، یک هشدار متنی ارسال کند - ما از یک [HMI 10 اینچی] با اسکریپتنویسی پایتون استفاده کردیم، بنابراین آنها میتوانستند دادهها را از حسگرهای دمایی خود بیرون بکشند و بدون نیاز به استخدام توسعهدهنده جداگانه، متون ارسال کنند.
پس غذای آماده اینجا چیست؟ هیچ زبان برنامه نویسی "بهترین" برای HMI های صنعتی وجود ندارد - همه اینها به اندازه کارخانه، تجهیزات شما، کارهایی که HMI باید انجام دهد و تخصص تیم شما بستگی دارد. اگر یک تکنسین باتجربه هستید که سال ها با نمودارهای سیم کشی کار کرده اید، احتمالاً Ladder Logic گزینه مورد علاقه شماست. اگر نیاز به افزودن ویژگیهای داده سفارشی بدون شکستن بانک دارید، پایتون یک گزینه عالی است. برای پروژه های پیچیده و سفارشی، C/C++ کنترل مورد نیاز را در اختیار شما قرار می دهد.
در پایان، هدف یک HMI فقط داشتن یک صفحه نمایش لمسی شیک نیست، بلکه این است که کار صنعتی را ایمنتر، کارآمدتر و برای افراد روی زمین آسانتر کند. به همین دلیل است که ما HMI های خود را برای پشتیبانی از چندین زبان برنامه نویسی می سازیم، بنابراین مهم نیست که نیازهای شما چیست، می توانیم راه حلی را پیدا کنیم که برای شما مناسب باشد.
اگر به دنبال ارتقاء HMI های کارخانه خود یا ساختن یک سیستم جدید متناسب با عملکرد خود هستید، خوشحال می شویم که گزینه های خود را در اختیار شما قرار دهیم و به شما در انتخاب ابزار مناسب برای تیم و خط خود کمک کنیم.
مراجع
- انجمن بین المللی اتوماسیون (ISA). (2021). IEC 61131-3: زبان های برنامه نویسی برای اتوماسیون صنعتی.
- اتوماسیون راکول (2023). راهنمای محصولات HMI صنعتی.
- Python برای موارد استفاده از اتوماسیون صنعتی. (2022). مجله دنیای اتوماسیون.
- منطق نردبان در مقابل متن ساختاریافته: مقایسه ای عملی برای تیم های طبقه کارخانه. (2023). مهندسی کنترل.
