Dobrý den, milí čtenáři tohoto článku. Píšu to v podobě recenze
Malé upozorněníChci varovat, že pokud jste hned pochopili, o čem je řeč z názvu, doporučuji první bod (vlastně PLC jádro) vyměnit za cokoli z cenové kategorie o krok výše.
Žádná úspora peněz nestojí za takové množství nervů, subjektivně.
Pro ty, kteří se nebojí malé šediny a amplitudy nervového tikání, později podrobně popíšu, jak bylo toto technologické zázrak vytvořeno. V tomto článku je však stručná analýza projektu s určitým dílem kritiky.
Vznik. Zadání úkolu
Vlastně pracuji v konstrukčním úřadu, kde testujeme automatizační zařízení pro integraci do našich závodů na klíč. Nedávno dorazilo na sklad zařízení OVEN a rozhodli jsme se postavit z něj zkušební stend:
- PLC110[M02]-MS4 (výkonnostní prostředí MasterSCADA 4D)
- Ovládací panel SP307
- Modul univerzálního vstupu analogových signálů MV110-224.2A
- Modul vstupu signálů tenzometrických snímačů MV110-4TD
- Měřicí modul MV110-220.3M
Struktura systému byla zvolena s dělením sítí podle určení:
- Modbus RTU na bázi RS-485 — komunikace PLC s podřízenými zařízeními (moduly, frekvenční měniče, inteligentní snímače, HMI panel SP307), PLC-master sítě.
- Modbus TCP na bázi Ethernet — komunikace různých PLC mezi sebou a s OPC serverem
- PC-server OPC a SCADA systémy jsou zároveň bránou mezi dvěma různými sítěmi (Korporátní LAN podniku a Modbus TCP síť kontrolérů (dva síťové adaptéry s směrováním dat standardními prostředky Windows)
- Korporátní LAN má přístup na internet prostřednictvím proxy serveru
Struktura systému je znázorněna na obrázku níže:
![OVEN PLC110[M02]-MS4, HMI, OPC a SCADA, nebo kolik člověku stačí heřmánkového čaje. Část 1](/wp-content/uploads/2019/10/18cb2554a35fbb11111a78572d0f2bf9.png)
Založená funkcionalita
- Sběr a přesměrování dat z PLC na OPC server
- Lokální řízení a monitoring prostřednictvím HMI panelu
- Řízení a monitoring z SCADA přes OPC server
- Řízení z libovolného PC z LAN podniku a prostřednictvím internetu pomocí SCADA klienta
- Připojení mobilních OPC monitorů přes LAN a internet
- Samozřejmě, archivace a generování zpráv
Vypadá to, že jsme nic nepřehlédli. Obecný popis systému je zde, a teď se vlastně dostáváme k tématu (způsoby odstranění budu popisovat v článcích s realizací každého uzlu):
Náročnosti, které vznikly
1. Dokumentace k PLC
Beta testování uvedeného PLC na jádře MasterSCADA 4D bylo výrobcem oznámeno v roce 2012. I přes tak impozantní dobu existence konceptu, vše co má vývojář v roce 2019 — je to příručka k programování o 28(!?) stránkách, na nichž je užitečných informací téměř žádné, a to ještě s obrázky z manuálu MasterSCADA 3D, což je docela legrační s ohledem na to, že se rozhraní změnilo.
Také je aktivně udržována třemi zastánci a manažerem prodeje vlákno fóra se 20 tématy.
2. Architektura PLC-moduly
To je zvláštní téma k diskusi. Stručně: PLC komunikuje s moduly jako s Modbus RTU slave zařízeními, které je třeba předem nastavit utilitou připojením každého k PC přes převodník RS-485.
Chytří lidé, samozřejmě, pravděpodobně to zvládnou i bez převodníku přes PLC, připojují moduly do sítě a zapisují potřebné registry, ale to přichází s zkušenostmi a obrovským množstvím bolesti.
Pro vývojáře, který poprvé vidí takovou architekturu, to rozhodně není uživatelsky přívětivé.
Také všechny analogové moduly mají sklon k selhávání z neznámých důvodů, odnášejí s sebou celou RS-485 síť do Terra Incognita, ale o tom bych chtěl také mluvit samostatně, je to sice celá epopej. Problém, mimochodem, trvá už 10 let, výrobce se tomu spíše vysmívá. „Je třeba přiznat, že vzory se nám nepovedly“, avšak to je jediný rozhraní pro komunikaci s moduly, a lidé, zcela vážně, už dlouho píší své implementace Modbus RTU.
Mezitím se heřmánkový čaj blížil ke konci… Slunce se chystalo západu
3. IDE MasterSCADA
O grafických nástrojích nebudeme hovořit, příliš jsem je netestoval, ale hned řeknu, že se mi nelíbily.
Hovoříme o implementaci výměny dat a jazycích standardu IEC:
Fyzické vstupy a výstupy řadiče nejsou globálními proměnnými a nelze na ně odkazovat z jakékoli části programu napsáním aliasu, například „DI1“. Do každého programu je třeba přetáhnout to ručně, tam se vytváří lokální proměnná, která dědí nebo předává hodnotu. Tedy sama podstata PLC, podle mého názoru, je trochu ztracena: zařízení by mělo zjednodušovat programování logiky práce fyzických kanálů na úroveň „Pokud se aktivoval vstup DI1 — Zapneme výstup DO1“, a vypadá to tak „Vstup DI1 — Proměnná LI1 — Proměnná LO1 - Výstup DO1“, a také kvůli neznalosti tohoto principu IDE můžete dostat znepokojující varování „Převod Boolean-Boolean není možný“ (pravděpodobně je to jeden z ukazatelů, ale představuji si to v podání tvůrců, vypadá to harmonicky).
Knihovny jazyků ST, FBD, SFC jsou dost obsáhlé a pro pohodlí programování existuje výběr, nicméně tyto komponenty nejsou funkcemi, ale třídami, ve kterých jsou zakódovány metody, a většina z nich nemá dokumentaci s popisem funkcionality a datových typů. Moje úsilí mě dovedlo k jádrovým knihovnám CodeSys, odkud byly všechny tyto funkce vybrány, jejich dokumentace mi pomohla.
4. Výměna s panelem SP307
Poměrně zajímavá akce pro ty, kdo nemají co dělat pár dní.
Standardní testování GUI (HMI nebo SCADA) pro mě znamená udělat 6 pokusů:
- Čtení diskrétního signálu
- Zápis diskrétního signálu
- Čtení celočíselné hodnoty
- Zápis celočíselné hodnoty
- Čtení reálné hodnoty
- Zápis reálné hodnoty
Samozřejmě, nakreslím na obrazovku 6 komponentů-primitivů a každý z nich postupně zkontroluji.
Výměna je naprosto stejná jako s moduly, ale z jiného portu PLC RS-232/485, což se zdá být stabilnější. Protože je to HMI-slave, psal jsem do něj při změnách, a četl jsem pomocí pollingu každých 500 ms, abych neztratil akce operátora.
První 4 body byly splněny na výbornou, ale 5 a 6 vyvolaly problémy.
Odesíláme data typu Single Float, zobrazujeme je na obrazovce a vidíme, že data nejsou správná, přestože všechna nastavení výstupu (Float, rozměr 1 registr a další) jsou nastavena správně. Bylo by nepravdivé říkat, že v dokumentaci není tento případ popsán, nicméně zkuste zjistit kde a v čem, z pohledu je to legrační.
Po hysterickém procházení všech nastavení spojených s daty a jejich odesíláním, píšeme na technickou podporu, odpověď trvá v průměru 5-6 kalendářních dní, pracujeme podle standardního skriptu technické podpory „Zkontrolujte, že je napájení zapnuté – zkontrolujte verzi SW – prosím, čekejte ještě týden – jdeme na to sami“.
Mimochodem, problém byl vyřešen nastavením jedné volby na naprosto neadekvátním místě s naprosto neadekvátním popisem.
Do funkcionality obrazovky není zakomponován vstup analogového signálu formátu „Posuvník“, lze zapsat pouze do textového pole čísly. To je úžasné, buď napíšeme tlačítka „±“ a skript sami, nebo zadáme číslo z klávesnice, na měkké ovládání nějakého pohonu zapomínáme.
Nebudu článek příliš zatěžovat, takže popíšu problémy s vrchní úrovní v části 2.
Shrnující, chci zdůraznit, že jsem měl dostatečnou svobodu a mnoho času na řešení těchto problémů, které se na první pohled zdají směšné, ale způsobují mnoho bolesti oběti. V podmínkách omezených termínů je klíčové narazit na takové problémy.
P.S.: Veškeré zde uvedené teze jsou subjektivní a jsou pouze pokusem varovat nepřipravené, nikoli diskriminovat výrobce, prosím, vnímejte tento článek právě z tohoto úhlu pohledu.
Druhá část je již zde:
Zdroj: habr.com
