Продовжую свою розповідь про створення дистанційного курсу.
Одне з найпроблемніших, тому і найцікавіших питань було – як імітувати пристрої
(ПЛК, частотники і т.д). Почну з того, а навіщо їх взагалі імітувати.
Установка
повинна жити, або робити вигляд наче жива
Я неодноразово бачив, як горять очі у студіків (та і не
тільки в них), коли їх програми або інші творіння приводять в рух залізні установки. Це мегасильно
стимулює і цим треба користуватися, а краще зловживати. У одній із лабораторок студіки крутять движком по мережі CANopen, їм подобається (я б
не сказав що вони там плигають від задоволення, але елементи па присутні).
Більше особливо живого на пром.-мережах в мене не було, хоча ідеї жевріють … Далеко не завжди виходить поклацати залізяччям,
тому приходиться обходитися віртуальними установками, тим не менше а навіть і
більше "живими".
Комплекти типу віртуального об’єкту + програма в контролері на
кафедрі вже давно використовуються в деяких курсах, зокрема в курсі "Контролери
та їх програмне забезпечення". Деякі матеріали є на сайті кафедри, в тому
числі методички і необхідні файли для лабораторок http://www.iasu-nuft.pp.ua/site/iasunuft/disciplini/kptapz
Я ще пам’ятаю, як в далекому 1998-му мене при здачі
курсового (прострочена здача була дозволена тільки на 3-ку, але я таки витягнув
на чотири ;-) ) мені сказали
зімітувати в ПЛК "Ломіконт" (made in USSR) об’єкт ланкою 1-го порядку (там розрахунки доволі
примітивні були, але бібліотека – жир!). Алгоритм фільтрації – і все готове.
Принципи сьогодні такі самі, але можливості набагато потужніші!
На лабах по контролерам йде композиція: імітатор об’єкта (безпосередньо
реалізований в самому контролері на МЕКовських мовах) + операторські екрани. Ми
користуємося UNITY PRO від Schneider Electric,
там ці вкусності входять в штатний набір середовища розробки.
Так що тепер виходить? Студійки пишуть програму, яка керує
програмою, яка імітує об’єкт керування в контролері, який (зовсім забув сказати)
– відсутній взагалі, тому що імітується імітатором контролера! Он як! Імітатор
на імітаторі і імітатором поганяє. При таких розкладах студентам залишається тільки імітувати діяльність виконання
лабораторок, а викладачам – викладацьку діяльність J При таких підходах, студійки спокійно можуть робити усі
лабораторки вдома, були б тільки необхідне ПЗ (а Інтернет, Ви знаєте мабуть,
дуже глибока штука).
Для "людино-машинних інтерфейсів" (є в нас і така
дисципліна) робиться так само, за винятком того, що студійки не програми пишуть, а роблять проекти
для SCADA. Імітатори в
ПЛК імітують об’єкт управління, програма управління в ПЛК теж крутиться, залишається
займатися тільки розробкою SCADA-проекту.
Скільки для цього на групу (ну добре підгрупу) треба контролерів, спитаєте ви? Увага
- … ніскільки! Ми використовуємо імітатори UNITY PRO, які (і це мегасупер) мають вбудований Modbus/TCP сервер! Ось, наприклад, колись відеоролик зняв
https://www.youtube.com/watch?v=IoIFqJW6mBU
Якщо Ви симатиколюб, і хочете зв’язуватися з симуляторами S7 300/400/1200/1500 (циферки кінчилися) - нижче посилання для Вас
https://www.youtube.com/watch?v=cj-3tTKZCuc
Ми живемо в офігітельну пору, коли ти сидиш вдома і
розробляєш весь софт для заліза без наявного заліза! "Розробляєш софт"
змінюємо на "Учимось програмувати" і буде той ефект, що нам потрібен.
Усе кльово, правда! Але є одне але… вірніше два. UNITY PRO –
середовище платне (можна подумати вас би це злякало). Але є друге але, наявність
одного Modbus/TCP Server малувато буде. А враховуючи скільки цей Unity PRO важить –
маємо ще одне "але", він однозначно не підходить для дистанційної
освіти. Пічалька…
Роздумовуючи над цією проблемою я знову вперся в стандартні
утиліти, на яких особливо живеньке нічого не побудуєш.
Самодостатність
штука приємна, але варто дивитися на те що інші роблять
Вибір в мене залишався невеликий. Або користуватися
стандартними утилітами (теж непоганий варіант, але скучний), або шукати
програміста. Другий варіант мав дуже малі шанси на реалізацію, так як знайти такого
важко, а потім все на ньому зациклюється (ви можливо теж таке проходили). А
самому залізати в програмування такого роду – якраз цього мені і не вистачає
зараз! Питання повисло, але боги
змилувалися наді мною! Десь у той час пройшла
дуже цікава конференція http://appau.org.ua/conference-Prosvita-rynku-ta-pidgotovka-cadriv-zvit Сама по собі конференція вимагає окремих декілька блогових заміток, але була вона
вже доволі давно, і всі емоції вже згасли. Тут
тільки процитую шмат статті, який стосується цієї теми:
"Команда кафедри АСУ АТЕП КПІ представила декілька доповідей. …Інтерактивний ПТК моделювання, представлений Олександром Степанцем та Олександром Бунке скоріше представляє модель HIL і також дозволяє розробляти різноманітні моделі управління, імітуючи вхідні сигнали на апаратній частині контролера. Переваги – наочність, простота та гнучкість в демонстрації різних моделей. Обидві розробки можуть бути використані не тільки для навчальних цілей, але й для реальних задач по розробці – тестуванню систем управління."
Колеги з КПІ юзали рантайм CodeSys для Raspberry PI для
імітації об’єкта управління, для програмування ПЛК, для HMI і багато для чого … Те саме, що ми
робили в себе з UNITY,
та навіть більше вони зробили на CodeSys + Raspberry PI. Доповідь була дуже цікавою, і в той час я
її не пов'язував зі своїми задачами по проммережам. А от десь через місяць
якесь яблуко таки впало мені на голову, і там все зійшлося! Залишилося тільки
все перевірити. Після консультацій з наведеними вище рятувальниками ідей у мене
практично не залишилося сумнівів. Додаткова перевірка Володимиром Полупаном (нашим
молодим толковим аспірантом) поставила остаточну крапку в тому, що це зе бест
оф зе бест!
CodeSys Control Win - живе ядро
"CodeSys – середовище розробки прикладного програмного
забезпечення для різного типу контролерів
(https://ru.wikipedia.org/wiki/CoDeSys ). Так само як UNITY PRO є середовищем
програмування/налагодження ПЛК Modicon M340, Premium, M580 та Quantum, CodeSys
використовується для ряду інших контролерів, в яких виконується середовище
виконання (так званий Runtime) CodeSys. Середовище виконання CodeSys існує не
тільки для промислових контролерів з операційними системами реального часу, а і
для платформ Windows, зокрема таким є CodeSys Control Win.
У деяких лабораторних роботах використовується демо-версія
CodeSys Control Win, в яких софт-ПЛК працює 2 години неперервно, після чого
його необхідно перезапускати. На віртуальній машині, яка підготовлена для даної
лабораторної роботи вже інстальований CodeSys Control Win. Якщо у Вас є
необхідність завантажити його на інший ПК, це можна зробити на офіційному сайті
3S, попередньо зареєструвавшись
http://store.codesys.com/codesys-control-win-sl.html
Середовище CodeSys Control Win замінює в лабораторних
роботах реальний ПЛК. Студенти користуються ним як "чорним ящиком",
не вникаючи в подробиці роботи. Тим не менше його необхідно налаштовувати і
запускати, коротко про це описано нижче."
Якщо коротко, CodeSys Control Win має усі переваги UNITY PRO Simulator:
програмується на МЕКовських мовах
має операторський інтерфейс (який ще й на ВЕБ чіпляється, чого немає в UNITY Simulator)
має офігенно велику бібліотеку елементів
має Modbus/TCP Server;
І ще багато плюсів, які відсутні в UNITY PRO Simulator:
може використовувати ресурси ПК, в тому числі всі наявні комунікації (ЖИИИИР!):
просто серіальні порти (читай-пиши, що хочеш)
серіальні порти з Modbus RTU Master/Slave (рекомендую користуватися програмними бібліотеками)
Ethernet + Modbus TCP Master/Slave (рекомендую користуватися програмними бібліотеками)
і ще всякої смачненької штучки, але мені не потрібної, тому не пишу тут про неї
безкоштовний рантайм на 2 години роботи
дизайн-тайм безкоштовний ВАЩЕ
ран-тайм можна інсталювати без дизайн-тайму
рантайм-проект можна просто копіювати в потрібне місце
Все.
Ну а далі будуть деталі, може.