ویدئو: کنسول مدیریت Habr. به شما امکان تنظیم کارما، رتبه بندی و ممنوعیت کاربران را می دهد.
TL؛ DR: در این مقاله سعی می کنم با استفاده از محیط توسعه رابط صنعتی Webaccess/HMI Designer و ترمینال WebOP یک کنترل پنل کمیک Habr ایجاد کنم.
رابط انسان و ماشین (HMI) مجموعه ای از سیستم ها برای تعامل انسان با ماشین های کنترل شده است. معمولاً این اصطلاح برای سیستم های صنعتی که دارای اپراتور و کنترل پنل هستند به کار می رود.
WebOP - یک پایانه صنعتی مستقل برای ایجاد رابط های انسان و ماشین. برای ایجاد پنل های کنترل تولید، سیستم های نظارت، اتاق های کنترل، کنترل کننده های خانه هوشمند و غیره استفاده می شود. از اتصال مستقیم به تجهیزات صنعتی پشتیبانی می کند و می تواند به عنوان بخشی از یک سیستم SCADA کار کند.
پایانه WebOP - سخت افزار
ترمینال WebOP یک کامپیوتر کم مصرف مبتنی بر یک پردازنده ARM، در یک کیس با مانیتور و صفحه لمسی است که برای اجرای برنامه ای با رابط گرافیکی ایجاد شده در HMI Designer طراحی شده است. بسته به مدل، ترمینالها دارای رابطهای صنعتی مختلفی هستند: RS-232/422/485، گذرگاه CAN برای اتصال به سیستمهای خودرو، پورت USB Host برای اتصال تجهیزات جانبی اضافی، پورت USB Client برای اتصال ترمینال به رایانه، صدا ورودی و خروجی صدا، کارت خوان MicroSD برای انتقال حافظه و تنظیمات غیرفرار.
این دستگاهها به عنوان جایگزینی برای رایانههای شخصی همهکاره، برای کارهایی که به پردازندههای قدرتمند و منابع یک رایانه رومیزی کامل نیاز ندارند، قرار میگیرند. WebOP می تواند به عنوان یک پایانه مستقل برای کنترل و ورودی/خروجی داده، جفت شده با سایر WebOP ها یا به عنوان بخشی از یک سیستم SCADA کار کند.
ترمینال WebOP می تواند مستقیماً به دستگاه های صنعتی متصل شود
خنک کننده غیرفعال و حفاظت IP66
به دلیل اتلاف حرارت کم، برخی از مدل های WebOP کاملاً بدون خنک کننده هوای فعال طراحی شده اند. این اجازه می دهد تا دستگاه ها در مناطقی که به سطوح نویز حساس هستند نصب شوند و میزان گرد و غبار وارد شده به داخل محفظه را کاهش می دهد.
پانل جلویی بدون شکاف یا اتصالات ساخته شده است، دارای سطح حفاظتی IP66 است و اجازه ورود مستقیم آب تحت فشار را می دهد.
پنل پشتی ترمینال WOP-3100T
حافظه غیر فرار
برای جلوگیری از از دست رفتن داده ها، WebOP دارای 128 کیلوبایت حافظه غیر فرار است که می توان با آن مانند RAM کار کرد. این می تواند قرائت های متر و سایر داده های حیاتی را ذخیره کند. در صورت قطع برق، اطلاعات پس از راه اندازی مجدد ذخیره و بازیابی می شوند.
به روز رسانی از راه دور
برنامه در حال اجرا در ترمینال را می توان از راه دور از طریق شبکه اترنت یا از طریق رابط های سریال RS-232/485 به روز کرد. این امر تعمیر و نگهداری را ساده می کند، زیرا نیازی به رفتن به تمام پایانه ها برای به روز رسانی نرم افزار را از بین می برد.
مدل های WebOP
محیط توسعه WebAccess/HMI Designer
خارج از جعبه، ترمینال WebOP فقط یک کامپیوتر ARM کم مصرف است که می توانید هر نرم افزاری را روی آن اجرا کنید، اما نکته اصلی این راه حل، محیط توسعه اختصاصی رابط صنعتی WebAcess/HMI است. این سیستم از دو جزء تشکیل شده است:
- طراح HMI - محیطی برای توسعه رابط ها و منطق برنامه نویسی. در رایانه برنامه نویس تحت ویندوز اجرا می شود. برنامه نهایی در یک فایل کامپایل شده و برای اجرا در زمان اجرا به ترمینال منتقل می شود. این برنامه به زبان روسی در دسترس است.
- زمان اجرا HMI - زمان اجرا برای اجرای برنامه کامپایل شده در ترمینال نهایی. این می تواند نه تنها در پایانه های WebOP، بلکه در Advantech UNO، MIC و رایانه های رومیزی معمولی نیز کار کند. نسخه های زمان اجرا برای لینوکس، ویندوز، ویندوز CE وجود دارد.
سلام دنیا - ایجاد یک پروژه
بیایید شروع به ایجاد یک رابط آزمایشی برای کنترل پنل Habr خود کنیم. من برنامه را روی ترمینال اجرا خواهم کرد
ایجاد یک پروژه جدید و انتخاب معماری
انتخاب پروتکل ارتباطی که از طریق آن برنامه کامپایل شده در WebOP بارگذاری می شود. در این مرحله می توانید یک رابط سریال انتخاب کنید یا آدرس IP ترمینال را مشخص کنید.
رابط ایجاد پروژه در سمت چپ یک نمودار درختی از اجزای برنامه آینده وجود دارد. در حال حاضر، ما فقط به آیتم Screens علاقه مندیم، اینها مستقیماً صفحه هایی با عناصر رابط گرافیکی هستند که در ترمینال نمایش داده می شوند.
ابتدا بیایید دو صفحه با متن "Hello World" و امکان جابجایی بین آنها با استفاده از دکمه ها ایجاد کنیم. برای این کار یک صفحه جدید به نام Screen #2 اضافه می کنیم و در هر صفحه یک عنصر متن و دو دکمه برای جابجایی بین صفحه ها (Screen Buttons) اضافه می کنیم. بیایید هر دکمه را برای جابجایی به صفحه بعدی پیکربندی کنیم.
رابط برای تنظیم دکمه برای جابهجایی بین صفحهها
برنامه Hello World آماده است، اکنون می توانید آن را کامپایل و اجرا کنید. در مرحله کامپایل ممکن است در مورد متغیرها یا آدرسهای نادرست مشخصشده خطا وجود داشته باشد. هر خطایی کشنده در نظر گرفته می شود، برنامه تنها در صورت عدم وجود خطا کامپایل می شود.
این محیط توانایی شبیه سازی ترمینال را فراهم می کند تا بتوانید برنامه را در رایانه خود به صورت محلی اشکال زدایی کنید. دو نوع شبیه سازی وجود دارد:
- شبیه سازی آنلاین - از تمام منابع داده خارجی مشخص شده در برنامه استفاده خواهد شد. اینها می توانند USO یا دستگاه هایی باشند که از طریق رابط های سریال یا Modbus TCP متصل می شوند.
- شبیه سازی آفلاین - شبیه سازی بدون استفاده از دستگاه های خارجی.
در حالی که ما داده های خارجی نداریم، از شبیه سازی آفلاین استفاده می کنیم، که قبلا برنامه را کامپایل کرده ایم. برنامه نهایی با نام در پوشه پروژه قرار خواهد گرفت ProjectName_ProgramName.px3
برنامه در حال اجرا در شبیه سازی را می توان با نشانگر ماوس به همان روشی که روی صفحه لمسی ترمینال WebOP کنترل می شود، کنترل کرد. ما می بینیم که همه چیز طبق خواسته کار می کند. عالی.
برای دانلود برنامه در ترمینال فیزیکی کافیست روی دکمه دانلود کلیک کنید. اما از آنجایی که من اتصال ترمینال را به محیط توسعه پیکربندی نکردم، می توانید به سادگی فایل را با استفاده از درایو فلش USB یا کارت حافظه MicroSD انتقال دهید.
رابط برنامه بصری است، من از هر بلوک گرافیکی عبور نمی کنم. ایجاد پسزمینه، اشکال و متن برای هرکسی که از برنامههای مشابه Word استفاده کرده باشد، واضح خواهد بود. برای ایجاد یک رابط گرافیکی، به هیچ مهارت برنامه نویسی نیاز نیست، همه عناصر با کشیدن ماوس بر روی فرم اضافه می شوند.
کار با حافظه
اکنون که می دانیم چگونه عناصر گرافیکی ایجاد کنیم، بیایید نحوه کار با محتوای پویا و زبان اسکریپت را بیاموزیم. بیایید یک نمودار میله ای ایجاد کنیم که داده های یک متغیر را نمایش می دهد U $ 100. در تنظیمات نمودار، نوع داده را انتخاب کنید: عدد صحیح 16 بیتی و محدوده مقادیر نمودار: از 0 تا 10.
این برنامه از نوشتن اسکریپت به سه زبان VBScript، JavaScript و زبان خود پشتیبانی می کند. من از گزینه سوم استفاده خواهم کرد زیرا نمونه هایی برای آن در مستندات و راهنمای دستور خودکار درست در ویرایشگر وجود دارد.
بیایید یک ماکرو جدید اضافه کنیم:
بیایید چند کد ساده برای تغییر تدریجی داده ها در یک متغیر بنویسیم که می تواند روی نمودار ردیابی شود. 10 را به متغیر اضافه می کنیم و وقتی بزرگتر از 100 شد آن را صفر می کنیم.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
برای اجرای اسکریپت در یک حلقه، آن را در تنظیمات General Setup به عنوان Main Macro با فاصله اجرا 250 میلیثانیه تنظیم کنید.
بیایید برنامه را در شبیه ساز کامپایل و اجرا کنیم:
در این مرحله یاد گرفته ایم که داده ها را در حافظه دستکاری کرده و به صورت بصری نمایش دهیم. این در حال حاضر برای ایجاد یک سیستم نظارت ساده، دریافت داده ها از دستگاه های خارجی (حسگرها، کنترلرها) و ثبت آنها در حافظه کافی است. بلوک های نمایش داده های مختلف در HMI Designer موجود است: به شکل شماره گیری های دایره ای با فلش ها، نمودارهای مختلف و نمودارها. با استفاده از اسکریپت های جاوا اسکریپت، می توانید داده ها را از منابع خارجی از طریق HTTP دانلود کنید.
کنترل پنل هابر
با استفاده از مهارت های به دست آمده، یک رابط کمیک برای کنسول مدیریت Habr ایجاد می کنیم.
کنترل از راه دور ما باید بتواند:
- تغییر پروفایل های کاربر
- کارما و داده های رتبه بندی را ذخیره کنید
- کارما و مقادیر رتبه بندی را با استفاده از لغزنده تغییر دهید
- وقتی روی دکمه «ممنوع کردن» کلیک میکنید، نمایه باید بهعنوان ممنوع علامتگذاری شود، آواتار باید به خط کشیده تغییر کند.
ما هر پروفایل را در یک صفحه جداگانه نمایش می دهیم، بنابراین برای هر نمایه یک صفحه ایجاد می کنیم. ما کارما و رتبه بندی را در متغیرهای محلی در حافظه ذخیره می کنیم، که با شروع برنامه با استفاده از Setup Macro مقداردهی اولیه می شود.
تنظیم کارما و رتبه بندی
برای تنظیم کارما از نوار لغزنده (Slide Switch) استفاده می کنیم. متغیری که در Setup Macro مقداردهی شده است را به عنوان آدرس ضبط مشخص می کنیم. بیایید دامنه مقادیر لغزنده را از 0 تا 1500 محدود کنیم. اکنون، هنگامی که نوار لغزنده حرکت می کند، داده های جدید در حافظه نوشته می شود. در این حالت، وضعیت اولیه اسلایدر با مقادیر متغیر موجود در حافظه مطابقت دارد.
برای نمایش مقادیر عددی کارما و رتبه بندی، از عنصر نمایش عددی استفاده می کنیم. اصل عملکرد آن شبیه به نمودار مثال برنامه "Hello World" است؛ ما به سادگی آدرس متغیر را در Monitor Address نشان می دهیم.
دکمه ممنوعیت
دکمه ممنوعیت با استفاده از عنصر Toggle Switch اجرا می شود. اصل ذخیره سازی داده ها مشابه مثال های بالا است. در تنظیمات، بسته به وضعیت دکمه، می توانید متن، رنگ یا تصویر متفاوتی را انتخاب کنید.
هنگامی که دکمه فشار داده می شود، آواتار باید به رنگ قرمز خط کشیده شود. اجرای این کار با استفاده از بلوک نمایش تصویر آسان است. این به شما امکان می دهد چندین تصویر مرتبط با وضعیت دکمه Toggle Switch را مشخص کنید. برای این کار به بلوک همان آدرس بلوک با دکمه و تعداد حالت ها داده می شود. تصویر با پلاکهای نام زیر آواتار به روشی مشابه تنظیم شده است.
نتیجه
به طور کلی، من محصول را دوست داشتم. قبلاً تجربه استفاده از تبلت اندرویدی برای کارهای مشابه را داشتم، اما توسعه یک رابط برای آن بسیار دشوارتر است و APIهای مرورگر اجازه دسترسی کامل به تجهیزات جانبی را نمی دهند. یک ترمینال WebOP می تواند جایگزین ترکیبی از تبلت، کامپیوتر و کنترلر اندروید شود.
HMI Designer، با وجود طراحی قدیمی، کاملاً پیشرفته است. بدون مهارت های برنامه نویسی خاص، می توانید به سرعت یک رابط کاری را ترسیم کنید. این مقاله درباره تمام بلوک های گرافیکی که تعداد زیادی از آنها وجود دارد صحبت نمی کند: لوله های متحرک، سیلندرها، نمودارها، سوئیچ های ضامن. خارج از جعبه، بسیاری از کنترلکنندههای صنعتی محبوب را پشتیبانی میکند و حاوی رابطهای پایگاه داده است.
مراجع
WebAccess/HMI Designer و محیط توسعه Runtime قابل دانلود است