Programová emulace regulátorů v ASU TP pro testování
Vývoj softwaru pro automatizační systémy řízení technologických procesů (ASU TP) vyžaduje důkladné testování interakcí mezi zařízeními, senzory a regulátory. Fyzický provozní panel s přepínači a tenzometrickým čidlem umožňoval simulaci základních scénářů, ale omezoval testování podle hmotnosti (max. 30 kg) a neumožňoval plnou reprodukci paralelních procesů. Přechod k programové emulaci v Delphi odstranil tyto omezení a zajistil přesnou simulaci protokolu Modbus RTU i chování vstupně-výstupních modulů (VVM).
Emulátor je navržen jako konstruktor zařízení: uživatel přidává regulátory, přiřazuje adresy RS-485 a propojuje vstupy/výstupy. Podporuje všechny verze vybavení s tlačítky vypnutí pro simulaci přerušení spojení.
Architektura emulátoru
Hlavní okno emulátoru zobrazuje seznam zařízení s indikátory stavu. Pro váhové regulátory jsou k dispozici:
- Posuvník pro změnu hmotnosti bez fyzických omezení.
- Ruční nastavení parametrů a změna stavů.
- Přepínač ručního/automatického režimu s náhodným přírůstkem hmotnosti pro realistické dávkování.
Moduly vstupů/výstupů umožňují manuální přepínání vstupů/výstupů. Automatický režim emuluje skutečné dávkování materiálů (cement, štěrk, voda).
Integrace s hlavním programem je minimální: direktiva kompilátoru $IF Emulate=True přesměruje volání z ComPort.Write do Emulator.Send.
{$IF Emulate=True}
Emulator.Send(EmulData, FWaitingTime);
{$ELSE}
ComPort.Write(OutDIOM, 11, @InDIOM, 8);
ComPort.Wait(FWaitingTime);
{$IFEND}
Změny jsou lokalizovány v modulu komunikace, příkazy Modbus RTU zůstávají nezměněny, odpovědi odpovídají specifikaci.
Organizace komunikace a fronty příkazů
Komunikace je založena na vzoru "příkaz" s několika frontami pro paralelismus:
- Čtení stavů regulátorů (neustále, i v klidu).
- Čtení vstupů/výstupů VVM pro kontrolu.
- Odesílání příkazů (nejvyšší priorita: spuštění dávkování, zapnutí motorů).
Neustálý tok řídí fronty. Fronty čtení se doplňují až po prahovou hodnotu, prioritní příkazy (od operátora) se vkládají na začátek. Příkaz se generuje dynamicky na základě aktuálního a očekávaného stavu zařízení.
Příklad: Na betonárně současně spouštějí 3+ dávkování (nastavení, zadání hmotnosti, start). U cementárny probíhá sériová kontrola stavů před dalším příkazem.
Indikátor fronty zbarví chybu spojení červeně. Zpoždění na 10 VVM (20 ms/požadavek) vedou ke cyklu ~400 ms + dotazování regulátorů, celkově ~1 sekunda reakce – to je v UI zohledněno, aby nedocházelo k falešným chybám.
Výhody programové emulace
- Úplná simulace scénářů: výpadky, zaseknutí, paralelní dávkování bez fyzického vybavení.
- Uložení/nahrání konfigurací pro konkrétní závod.
- Rozšiřitelnost: přidání zařízení – hodiny práce podle specifikací Modbus a regulátorů.
- Zrychlení provozního nastavení: méně neočekávaných chyb na objektu.
Emulátor funguje s legacy aplikacemi pod Windows XP/7 a testuje složité procesy bez rizika výpadku nebo poškození.
Důležité informace
- Emulace zachovává přesnost Modbus RTU a minimalizuje změny v hlavním kódu.
- Podpora automatického režimu s náhodným dávkováním pro realistické testy.
- Mnohonásobné fronty příkazů zajišťují paralelismus bez blokování.
- Jednoduchost: osvojení za dobu studia protokolu a dokumentace zařízení.
- Úspora: odstranění fyzického panelu, zrychlení vývoje a ladění.
— Editorial Team
Zatím žádné komentáře.