Добры дзень, дарагія чытачы гэтага артыкула. Пішу гэта ў фармаце агляду
невялікае папярэджаннеЖадаю папярэдзіць, што калі вы адразу зразумелі пра што гаворка з загалоўка, раю першы пункт(уласна, ПЛК-ядро) змяняць на што заўгодна з коштавай катэгорыі на прыступку вышэй.
Ніякая эканомія грошай не каштуе такой колькасці нерваў, суб'ектыўна.
Для тых, каго не палохае невялікая сівізна і амплітуда нервовага ціка, пазней я апішу ў падрабязнасцях як ствараўся гэты тэхналагічны цуд. У дадзеным артыкуле ж кароткі аналіз праекту з вызначанай дзеллю крытыцызму.
Зараджэнне. Пастаноўка задачы
Уласна, працую я ў канструктарскім бюро, і мы тэсціруем абсталяванне аўтаматызацыі для інтэграцыі ў нашы заводы пад ключ. Нядаўна на склад паступіла абсталяванне АВЕН і з яго было вырашана сабраць выпрабавальны стэнд:
- ПЛК110[M02]-MS4 (выканаўчае асяроддзе MasterSCADA 4D)
- Панэль аператара СП307
- Модуль універсальны ўводу аналагавых сігналаў МВ110-224.2А
- Модуль уводу сігналаў тэнзадатчыкаў МВ110-4ТД
- Модуль электравымяральны МВ110-220.3М
Структура сістэмы была абрана з размежаваннем сетак па прызначэнні:
- Modbus RTU на базе RS-485 – зносіны ПЛК з падпарадкаванымі прыладамі (модулі, частотнікі, інтэлектуальныя датчыкі, HMI панэль СП307), ПЛК-майстар сеткі.
- Modbus TCP на базе Ethernet - Зносіны розных ПЛК адзін з адным і з OPC-серверам
- ПК-сервер OPC і SCADA-сістэмы з'яўляецца адначасова шлюзам паміж двума рознымі сеткамі(Карпаратыўная LAN прадпрыемствы і Modbus TCP сетка кантролераў(два сеткавых адаптара з маршрутызацыяй дадзеных стандартнымі сродкамі Windows)
- Карпаратыўны LAN мае выхад у інтэрнэт праз проксі-сервер
Структура сістэмы ў агульным выглядзе прадстаўлена на малюнку ніжэй:
Закладзены функцыянал
- Збор і перанакіраванне дадзеных з ПЛК на OPC-сервер
- Лакальнае кіраванне і маніторынг з дапамогай HMI-панэлі
- Упраўленне і маніторынг з SCADA праз OPC-сервер
- Упраўленне з любога ПК з LAN прадпрыемствы і праз інтэрнэт з дапамогай SCADA-кліента
- Падключэнне мабільных OPC-манітораў праз LAN і інтэрнэт
- Зразумела, архівацыя і генерацыя справаздач
Нібыта нічога не ўпусцілі. Агульнае апісанне сістэмы ёсць, а зараз, уласна, па тэме (спосабы ўхілення буду апісваць у артыкулах з рэалізацыяй кожнага вузла):
Узніклыя складанасці
1. Дакументацыя да ПЛК
Beta-тэставанне заяўленага ПЛК на ядры MasterSCADA 4D было пазначана вытворцам у 2012 годзе. Нягледзячы на такі вялікі тэрмін існавання канцэпта, усё што мае распрацоўшчык у 2019-м гэта кіраўніцтва па праграмаванні ў 28(!?) старонак, на якіх карыснай інфармацыі ледзь менш чым ніколькі, прычым скрыншоты ў мануале з MasterSCADA 3D, што даволі пацешна з улікам таго, што інтэрфейс змяніўся.
Таксама актыўна падтрымліваецца трыма адэптамі і мэнэджэрам па продажах галінка форума ў 20 топікаў.
2. Архітэктура ПЛК-модулі
Гэта асобная тэма для абмеркавання. Коратка: ПЛК мае зносіны з модулямі як з Modbus RTU slave прыладамі, якія папярэдне неабходна сканфігураваць утылітай асобна падлучыўшы кожны да ПК праз пераўтваральнік RS-485.
Разумныя дзядзькі, вядома, напэўна ўмеюць рабіць гэта без пераўтваральніка праз ПЛК, паслядоўна падлучаючы модулі ў сетку і запісваючы патрэбныя рэгістры, але такое прыходзіць з досведам і велізарнай колькасцю болю.
Для распрацоўніка ўпершыню які ўбачыў такую архітэктуру зусім не юзэр-фрэндлі.
Таксама ўсе аналагавыя модулі любяць сыходзіць у адмову па невядомых прычынах, забіраючы за сабой усю RS-485 сетку ў Тэра Інкогніта, але пра гэта я таксама хачу расказаць асобна, цэлая эпапея, вядома. Праблеме, дарэчы, гадоў 10, вытворца аджартоўваецца «Варта прызнаць, шаблоны нам не ўдаліся», Аднак гэта адзіны інтэрфейс зносін з модулямі, і людзі, суцэль сур'ёзна, даўно прапісваюць свае рэалізацыі Modbus RTU.
Тым часам, рамонкавы чай заканчваўся… Сонца сыходзіла на захад
3. IDE MasterSCADA
Пра графічныя інструменты казаць не будзем, моцна я не тэсціраваў, але скажу адразу, што не спадабалася.
Гаворым пра рэалізацыю абмену данымі і мовы стандарту МЭК:
Фізічныя ўводы высновы кантролера не з'яўляюцца глабальнымі зменнымі і да іх нельга звярнуцца з любой часткі праграмы, напісаўшы аліяс, напрыклад "DI1". У кожную праграму варта перацягваць гэта ручкамі, там фармуецца лакальная зменная, якая ўспадкоўвае ці перадае значэнне. Г.зн. сама сутнасць ПЛК, у маім бачанні, трохі згублена: прылада павінна спрашчаць праграмаванне логікі працы фізічных каналаў да ўзроўню "Калі спрацаваў уваход DI1 – Уключаем выхад DO1", а выглядае гэта так «Уваход DI1 – Пераменная LI1 – Пераменная LO1-Выхад DO1», таксама па няведанні гэтага прынцыпу IDE можна злавіць цудоўнае папярэджанне «Пераўтварэнне Boolean-Boolean немагчыма» (верагодней за ўсё, што тое з іх паказальнік, але ўяўляю ў рэдакцыі стваральнікаў, так гарманічна).
Бібліятэкі моў ST, FBD, SFC дастаткова аб'ёмныя і выбар для зручнасці праграмавання ёсць, аднак гэтыя кампаненты з'яўляюцца не функцыямі, а класамі, усярэдзіне якіх зашыты метады, а ў другіх на большасць адсутнічае даведка з апісаннем функцыяналу і тыпаў дадзеных. Настырнасць прывяла мяне ў бібліятэкі ядра CodeSys, адкуль усе гэтыя функцыі і былі ўзятыя, іх даведка дапамагла.
4. Абмен з панэллю СП307
Даволі цікавае мерапрыемства для тых, каму няма куды патраціць пару дзён.
Стандартнае тэставанне GUI(HMI або SCADA) для мяне гэта зрабіць 6 спроб:
- Чытанне дыскрэтнага сігналу
- Запіс дыскрэтнага сігналу
- Чытанне цэлалікавага значэння
- Запіс цэлалікавага значэння
- Чытанне рэчавага значэння
- Запіс рэчыўнага значэння
Адпаведна, я малюю на экран 6 кампанентаў-прымітываў і кожны па парадку правяраю
Абмен абсалютна такі ж як і з модулямі, але з асобнага порта ПЛК RS-232/485, і, накшталт як, больш стабільны. Паколькі HMI-слэйв, то пісаў я ў яго па змене, а чытаў полінгам 500мс, каб не выпусціць дзеянні аператара.
Першыя 4 пункты былі выкананы на выдатна, але 5 і 6 выклікалі праблемы.
Адпраўляем дадзеныя тыпу Single Float, на экране іх выводны і бачым, што дадзеныя не тыя, хоць усе налады высновы (Float, памернасць 1 рэгістр і іншае) каштуюць правільна. Будзе няпраўдай сказаць, што ў дакументацыі прэцэдэнт не апісаны, аднак, паспрабуйце знайсці ў якой і дзе, гэта з боку пацешна.
Пасля істэрычнага перабору ўсіх налад, якія датычацца саміх дадзеных і іх адпраўкі, пішам у тэхпадтрымку, адказ у сярэднім 5-6 каляндарных дзён, працуем па стандартным скрыпце тэхпадтрымкі «Праверце, што сілкаванне ўключана - праверце версію ПА - чакайце, калі ласка яшчэ тыдзень-Ідзем разбірацца самі».
Дарэчы, вырашылася ўсталяваннем адной галачкі ў абсалютна неадэкватным месцы з абсалютна неадэкватным подпісам.
У функцыянал экрана не закладзены ўвод аналагавага сігналу фармату «Бягунок», можна ўпісаць толькі ў тэкставае поле лічбамі. Гэта проста цудоўна, або пішам кнопкі "±" і скрыпт самастойна або ўводзім лічбу з клавіятуры, аб мяккім кіраванні якім-небудзь прывадам забываем.
Не буду моцна перагружаць артыкул, таму буду апісваць праблемы з верхнім узроўнем у частцы 2.
Рэзюмуючы, хачу адзначыць, што я меў дастатковую свабоду і шмат часу для вырашэння гэтых праблем, якія на першы погляд здаюцца смешнымі, але выклікаюць шмат болю ў пацярпелага. Ва ўмовах абмежаваных тэрмінаў з такімі праблемамі сутыкацца крытычна.
PS: Усе тэзісы, выкладзеныя тут, суб'ектыўныя, і з'яўляюцца толькі спробай папярэдзіць непадрыхтаваных, а не дыскрымінаваць вытворцаў, прашу паставіцца да гэтага артыкула менавіта з гэтага пункта гледжання.