Moravské přístroje, a. s., zdroj: https://www.mii.cz/art?id=734&lang=405, vytištěno: 30.04.2025 14:23:14
Hlavní stránka▹Podpora▹Dokumentace▹Ovladače pro Control Web | 27.5.2020 |
---|
Ovladač slouží pro komunikaci mezi jednou nebo více stanicemi, které komunikují protokolem MODBUS a systémem Control Web. Ovladač existuje ve dvou verzích: |
. Vlastnosti ovladačeVlastnosti obou verzí ovladače jsou velmi podobné a liší se pouze tam, kde to plyne z rozdílů v použitém druhu propojení. Ovladač umožňuje připojení jedné nebo několika stanic (PLC) s komunikačním protokolem MODBUS v módu RTU nebo ASCII k systému Control Web. Jeden sériový ovladač používá jedno komunikační rozhraní (COM port), na kterém může být připojeno více stanic (RS-485). V případě, že je potřeba připojit několik stanic přes různá sériová rozhraní, je nutno v aplikaci definovat více ovladačů. Verze TCP/IP ovladače umožňuje komunikovat s více stanicemi v síti (s různými IP adresami). Seznam sekcí:
Činnost ovladačePřenos a typy datPomocí ovladače je možno číst nebo zapisovat data z paměťových registrů (Holding Registers - oblast 4X) a binárních výstupů (Coils - oblast 0X). Dále je možno číst hodnoty binárních vstupů (Inputs - oblast 1X) a hodnoty vstupních registrů (Input Registers - oblast 3X). Všechny tyto hodnoty se přiřadí kanálům prostřednictvím definice v souboru parametrů ovladače. Ovladač má určitou množinu kanálů vyhraženou pro speciální informace, proto doporučujeme, aby uživatelsky definované kanály začínaly nejméně od čísla 100. Registry stanice (4X) a vstupní registry (3X) je možno interpretovat různým způsobem v závislosti na typu stanice nebo na aplikačním programu, běžícím ve stanici.
Platí konvence, že všechny numerické kanály ovladače jsou vždy typu real. Všechny konverze do jiných datových typů použitého zařízení se provádějí v ovladači. Komunikace TCP/IPTento způsob vyžaduje trochu jiný přístup než je tomu u sériové komunikace. Nejdříve je nutno vytvořit spojení a teprve pak je možno komunikovat. Dojde-li k přerušení komunikace se zařízením např. vlivem jeho výpadku, nastane chyba a spojení se zruší. Při dalším požadavku na přenos dat se nejprve ovladač pokusí vytvořit nové spojení. Pokud je zařízení trvale odpojeno, může být tato operace velmi zdlouhavá, což může mít špatný vliv na běh aplikace. Proto ovladač s odpojeným zařízením při dalších požadavcích nekomunikuje. Po určité době se sám pokusí navázat spojení a v případě kladného výsledku upozorní aplikaci prostřednictvím výjimky od ovladače. Doba pro ověřování spojení s odpojenou stanicí je nastavitelná pomocí parametru ovladače. Komunikace přes sériové rozhraníU komunikace přes sériové rozhraní se při startu aplikace otevře sériový port a po celou dobu běhu aplikace je aktivní. Při chybách komunikace není nutno se sériovým portem nijak manipulovat (zavírat a opět otevírat). Dojde-li k výpadku komunikace, ovladač vrátí chybu a při následujícím požadavku na data se opět pokusí se stanicí komunikovat. Celkový běh aplikace se může zpomalit vlivem čekání na odpověď od stanice, které je omezeno parametrem timeout. Tento parametr však bývá nastaven na relativně malou hodnotu, takže zpomalení běhu aplikace není výrazné. Při zániku chyby se komunikace se stanicí samovolně obnoví. V kritických případech je v moci autora aplikace s využitím prostředků systému Control Web omezit přístup na kanály stanice, která nekomunikuje a jen občas testovat, je-li již chyba odstraněna. Kanály ovladačeOvladač může jednotlivé prvky různých datových oblastí připojených stanic interpretovat jako svoje kanály, což jsou číselné nebo logické hodnoty (bity). Definice kanálů se děje prostřednictvím souboru parametrů v sekci [Channels], jak je popsáno níže. Vyhrazené kanály ovladačeOvladač předává informace o stavu komunikace prostřednictvím zvláštních kanálů, které jsou mapovány do intervalu 1 až 99. Dojde-li k chybě komunikace, je vygenerována výjimka ovladače a z jednotlivých kanálů je možno zjistit různé údaje, které blíže specifikují chybu nebo nějakou událost. Kanál č.1 rozlišuje, jedná-li se o chybu při čtení nebo při zápisu, případně bylo-li navázáno TCP/IP spojení se stanicí. Skupina kanálů č.10 až 18 doplňuje údaje o chybě při čtení resp. 20 až 28 při zápisu.
Vyhrazené kanály ovladače Kódy oblastí PLC (kanál 16 a 26)
Parametry ovladačePomocí souboru parametrů je možno nastavit parametry komunikace a definovat kanály ovladače, popřípadě nastavit další doplňující parametry. Celý soubor parametrů je rozdělen do několika sekcí. Název sekce je uveden v hranatých závorkách. V sekci jsou uvedeny za jménem a znakem "=" jednotlivé parametry. Na jednom řádku může být definován jeden parametr. Poznámka: U názvů sekcí a parametrů je třeba dodržet správný zápis velkých a malých písmen. Parametry linkové komunikační vrstvy — sekce [comm]Linková komunikační vrstva představuje prostředek pro přístup na standardní sériové rozhraní počítače. Tato vrstva umožňuje mimo jiné sdílet jedno sériové rozhraní více ovladači. V systému Control Web je linková komunikační vrstva reprezentována dvěma DLL knihovnami ('CWXLINK.DLL' a 'CWCOMM.DLL'). Pro její konfiguraci slouží v souborech parametrů ovladače sekce [comm]. V této sekci je možno buď přímo definovat parametry sériové komunikace nebo uvést odkaz (přesměrovaní) na samostatný konfigurační soubor s parametry sériové komunikace. V případě přesměrování obsahuje sekce [comm] pouze jediný parametr — file: [comm] file=c:\cw\par\comm.par Struktura parametrů linkové vrstvy: [comm] file = <file> device = <comdevice> Pokud je definován parametr device a existuje sekce jména comdevice, budou konfigurační parametry přednostně získány z této sekce, jinak budou použity parametry přímo ze sekce [comm]. Povinné parametry: [comm] rx_frame_buffer = <N> tx_frame_buffer = <N> baudrate = <N> databits = <N> stopbits = one | 1 | oneandhalf | 1.5 | two | 2 parity = none | no | even | mark | odd | space cts_flow = true | false dsr_flow = true | false dtr_control = disable | low | enable | high | handshake | toggle | toggle_neg rts_control = disable | low | enable | high | handshake | toggle | toggle_neg dsr_sense = low | high rx_interchar_timeout = <N> rx_char_timeout = <N> | 0 rx_timeout = <N> | 0 tx_char_timeout = <N> | 0 tx_timeout = <N> | 0 Nepovinné parametry: priority = idle | low | below_normal | normal | above_normal | high | realtime mode = fullduplex | halfduplex pre_key = <N> hold_key = <N> rx_buffer = <N> tx_buffer = <N> tx_continue_xon_xoff = true | false tx_xon_xoff = true | false rx_xon_xoff = true | false xon_tresh = <N> xoff_tresh = <N> error_xlat = true | false discard_null = true | false xon_char = <N> xoff_char = <N> err_char = <N> eof_char = <N> evt_char = <N> Syntaktické kategorie:
Popis jednotlivých parametrů:
Hodnoty pro definici chování DTS a RTS (parametry rts_control a dtr_control):
Chování DTR/RTS v módech toggle/toggle_neg Upozornění: Parametry rx_interchar_timeout, rx_char_timeout a rx_timeout ovlivňují propustnost na vstupu. Zvýšením hodnoty rx_timeout lze dosáhnout zvýšení efektivity pro rozsáhlé přenosy dat (pozor na kapacitu vstupního bufferu!), ale dojde také k prodloužení prodlev při příjmu separátních bloků dat. Nulové hodnoty parametrů způsobí nastavení optimálních hodnot podle parametrů komunikace. Parametry tx_char_timeout a tx_timeout ovlivňují propustnost na výstupu. Zvýšením hodnot lze docílit vyšší efektivity pro rozsáhlé přenosy dat, zvláště při povoleném handshake. Příliš malé hodnoty mohou způsobit problémy při vysílání, včetně potenciálně velkého počtu neúspěšných pokusů o vyslání. Nulové hodnoty parametrů způsobí nastavení optimálních hodnot podle parametrů komunikace. Příklad definice parametrů sériové komunikace v souboru parametrů ovladače MODBUS: [comm] baudrate = 9600 parity = even databits = 8 stopbits = 1 rx_buffer = 1152 tx_buffer = 1152 rx_frame_buffer = 1152 tx_frame_buffer = 1152 cts_flow = false dsr_flow = false dtr_control = disable rts_control = disable dsr_sense = low rx_interchar_timeout = 0 rx_char_timeout = 0 rx_timeout = 0 tx_char_timeout = 0 tx_timeout = 0 Sekce [Modbus]Tato sekce obsahuje parametry, které slouží ke konfiguraci ovladače z hlediska používání protokolu MODBUS. Následuje způsob zápisu parametrů: [Modbus] ComDriver = <LinkDll>, <ComId> Mode = RTU | ASCII Timeout = <N> EnableMonitor = true | false DisablePresetSingleRegister = true | false OffsetFromOne = true | false SwapBytes = true | false SwapRegisters = true | false MaxRegistersInBlock= <N> NumRepeat = <N> FinalizeAfterEachBlock = false | true ConnectOnStartup = true | false CheckTime = <N> KeepAlive = true | false TransparentMode = true | false TransactionID = true | false TraceOutput = log | windows | xtrace | none
Následuje výčet a popis jednotlivých parametrů:
Příklad parametrů v sekci [Modbus]: [Modbus] ComDriver = cwcomm, com2 Mode = RTU Timeout = 350 EnableMonitor = true DisablePresetSingleRegister = true OffsetFromOne = true SwapBytes = true SwapRegisters = true MaxRegistersInBlock = 100 NumRepeat = 1 FinalizeAfterEachBlock = false TraceOutput = none Sekce [Channels]V této sekci se používá jediný parametr Block, který definuje bloky kanálů ovladače. Jednotlivým datovým oblastem (area) ve stanici je možno přiřadit určitou skupinu kanálů. Blok je definován adresou stanice, intervalem kanálů, datovou oblastí ve stanici (area), počáteční adresou v dané oblasti a pro oblast registrů (3X, 4X) ještě datovým typem. V případě použití obousměrných kanálů je možno definovat parametr bidirect, který zamezí vzniku kolizí při současném čtení i zápisu na stejný kanál - pak jsou v ovladači vytvořeny dva zvláštní bloky, jeden pro čtení, druhý pro zápis. U TCP/IP ovladače je dále možno pro blok definovat identifikátor spojení, který slouží pro zjišťování stavu spojení pomocí procedury ovladače GetStatus. Součástí definice bloku může být i komentář, který musí být uveden středníkem a platí až do konce řádku. Z pohledu komunikace představuje jeden blok maximální celistvý úsek, který se dá přenést najednou v rámci jedné komunikace se stanicí. Použitý komunikační protokol tuto hodnotu dále upravuje (např. u protokolu MODBUS je možno přenést v jednom bloku maximálně 256 byte). Bude-li definován delší blok než je možno přenést najednou a budou-li zadány požadavky na čtení nebo zápis všech kanálů bloku, rozpadne se komunikace na několik částí tak, aby byla všechna data přenesena. Poznámka: Všechny numerické kanály musí být v aplikaci (a v souboru DMF) typu real. Ovladač automaticky provádí nezbytné konverze na ostatní typy použité v komunikaci se stanicemi. Způsob zápisu parametrů a jejich možné hodnoty (v hranatých závorkách jsou uvedeny nepovinné nebo doplňující parametry): [Channels] Block = <Station>, <ChFrom>, <ChlTo>, <Area>, <Ofs> [, <SubType>] [, <Bidirect>] [, <Id>] [ <Comment>] Block = ... ...
Příklad parametrů v sekci [Channels] pro sériový ovladač: [Channels] Block = 01, 100, 199, H, 1, int16, bidirect ; registers as numbers Block = 01, 200, 299, H, 1, bits16, bidirect ; registers as bits Block = 01, 300, 399, R, 1 ; input registers Block = 01, 1000, 1015, O, 1, bidirect ; digital outputs Block = 01, 1100, 1115, I, 1 ; digital inputs Příklad parametrů v sekci [Channels] pro TCP/IP ovladač: [Channels] Block = 00@10.0.0.5, 100, 199, H, 1, int16, bidirect, ID:01 ; registers as numbers Block = 00@10.0.0.5, 200, 299, H, 1, bits16, bidirect, ID:02 ; registers as bits Block = 00@10.0.0.5, 300, 399, R, 1, ID:03 ; input registers Block = 00@10.0.0.5, 1000, 1015, O, 1, bidirect, ID:04 ; digital outputs Block = 00@10.0.0.5, 1100, 1115, I, 1, ID:05 ; digital inputs Procedury ovladačeAplikace může volat ovladači určité procedury, pomocí nichž je možno řídit chování ovladače nebo získat důležité informace. To se děje prostřednictvím systémové procedury: core.DriverQueryProc( DriverName : string; Param1 : any; &Param2 : any ); Její parametry mají následující význam:
DriverName a Param1 se zadávají jako textové řetězce. Param2 je různého typu podle významu procedury. Některé procedury, sloužící k nastavení parametrů, mohou skončit chybou. Výsledek naposled vykonané procedury je možno získat voláním procedury GetResult. Přehled a význam jednotlivých procedur ovladače (parametr Param1)
Parametr Param2 je libovolného číselného typu. Mapovací soubor ovladače a datové typyTento soubor obsahuje typy kanálů ovladače. Protože ovladač má jak pevnou množinu kanálů, tak proměnnou množinu kanálů, měl by tento soubor obsahovat vždy shodnou definici pro vyhražené kanály a různou (podle požadavků aplikace) pro kanály definované uživatelsky v souboru parametrů v sekci [Channels].
Přehled datových typů ovladače Poznámka: Poznámka. Typ float64 je ve formátu double a typ float32 je ve formátu single podle specifikace IEEE 754. Zpracování a stavy výjimek ovladačePři výskytu chyby komunikace vznikne událost, kterou ovladač může přenést jako výjimku do aplikace. V aplikaci musí být definován objekt (virtuální přístroj), který má definován parametr driver_exception resp. activity — driver se symbolickým jménem tohoto ovladače. V tomto případě je takový přístroj výjimkou aktivován. V rámci jeho činnosti je možno zjistit stav výjimky přečtením kanálu č.1. Stav je určen jednotlivými bity podle následující tabulky:
Chybové kódyOvladač generuje následující chybové kódy. Tyto kódy jsou k dispozici na kanálech č.11 resp. č.21. Při vzniku chyby se současně vypíše hlášení do okna zpráv. Specifické chybové kódy ovladače
Poznámka: Kódy 101 až 111 odpovídají původním kódům 1 až 11 z dokumentace MODICON MODBUS. |