Moravské přístroje, a. s., zdroj: https://www.mii.cz/art?id=732&lang=405, vytištěno: 30.04.2025 14:20:43
Hlavní stránka▹Podpora▹Dokumentace▹Ovladače pro Control Web | 24.2.2011 |
---|
Ovladač slouží pro komunikaci systému Control Web s regulátory KS98 firmy PMA Processcontrol AB podle protokolu ISO1745. |
Vlastnosti ovladače
Seznam sekcí:
Činnost ovladačeOvladač komunikuje s jedním nebo několika připojenými regulátory KS98 pomocí protokolu ISO1745. Pracuje jako hlavní nadřízená stanice, která řídí komunikaci (master). Připojené jednotky vystupují jako podřízené stanice (slave), které odpovídají na požadavky od stanice hlavní. Jako komunikačí rozhraní je možno použít RS-485 nebo RS-422 (s použitím speciální karty do počítače např. PCL-745B, Tedia aj.) nebo standardní sériové rozhraní počítače RS-232 s použitím externího převodníku např. ADAM 4520, Elsaco aj. Ovladač umožňuje čtení nebo zápis různých hodnot v regulátoru. Je možno využít dvou přístupů:
Při řízení komunikace procedurami ovladače se zadávají přímo jednotlivé textové řetězce, které se vysílají do regulátoru, jako jednotlivé požadavky. Ovladač tyto řetězce doplní o řídící znaky protokolu a kontrolní součet a vyšle je do regulátoru. Odpověď od regulátoru je signalizována výjimkou od ovladače, a pokud se jednalo o povel ke čtení dat, ovladač předá řetězec s odpovědí regulátoru. Pomocí této metody je možno zapsat nebo přečíst prakticky jakoukoliv hodnotu v regulátoru. Nevýhodou je nutnost znát přesný tvar jednotlivých zpráv. O veškerou manipulaci s řetězci se musí postarat autor aplikační úlohy. Druhý způsob je z hlediska tvůrce aplikace jednodušší. V souboru parametrů ovladače je nutno podle jednoduchých pravidel zadefinovat jednotlivé kanály a jim odpovídající hodnoty v regulátoru. V aplikaci se pak pracuje běžným způsobem přímo s těmito kanály. Tento způsob má určitá omezení. Využívá pouze některé (typické) formáty zpráv. U operací zápisu dat do regulátoru je možno přenášet data pouze po jednotlivých hodnotách. Operace čtení mohou využívat jak individuální přístup, tak přenos po blocích. Parametry ovladačeOvladač se konfiguruje pomocí souboru parametrů, který se načítá při spouštění aplikace. Je to textový soubor, který je možno upravovat běžným textovým editorem. Parametry jsou rozděleny do několika skupin - sekcí. Každá sekce má svoje jméno uvedené v hranatých závorkách a dále seznam několika parametrů tvořených jménem parametru, oddělovacím znakem (rovnítko) a jednou nebo více hodnotami parametru. Upozornění: U zápisu názvu sekcí a parametrů záleží na způsobu psaní 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ů. Zde je uvedena ukázka s nastavením pro rozhraní RS-232 s použitím externího převodníku na RS-485, který nevyžaduje řízení směru toku dat. [comm] baudrate = 9600 parity = even databits = 7 stopbits = 1 rx_buffer = 1200 tx_buffer = 1200 rx_frame_buffer = 1200 tx_frame_buffer = 1200 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 Parametry pro základní nastavení ovladače — sekce [Settings]Tato sekce obsahuje parametry, které slouží ke konfiguraci ovladače. Následuje způsob zápisu parametrů: [Settings] ComDriver = <LinkDll>, <ComId> Timeout = <N> NumRepeat = <N> DecPlaces = <N> InterMessageDelay = <N> Trace = none | log | windows | xtrace
[Settings] ComDriver = CWCOMM COM1 Timeout = 300 NumRepeat = 1 DecPlaces = 2 Konfigurace vstupních kanálů ovladače — sekce [Read]Tato sekce definuje jednotlivé kanály nebo skupiny kanálů ovladače pro čtení dat z regulátoru KS98. Pro čtení je možno zvolit definice po jednotlivých kanálech nebo po blocích. Jsou-li definovány jednotlivé kanály, budou se číst vždy v rámci samostatných komunikací. Jsou-li definovány bloky kanálů, budou se přenášet vždy celé bloky. Součástí definice je obsah požadavku (zprávy) pro regulátor. Jednotlivé kanály se definují takto: Chan = Adr, Code, FBlock, FNum Definice skupiny kanálů je podobná: ChanFrom..ChanTo = Adr, Code, FBlock, FNum
[Read] 101 = 01 01 1 0 102 = 01 02 1 0 110..118 = 01 00 1 0 120..128 = 01 00 2 0 Konfigurace výstupních kanálů ovladače — sekce [Write]Tato sekce definuje jednotlivé kanály pro zápis dat do regulátoru KS98. Ovladač neumožňuje blokový zápis hodnot do regulátoru. Zápis hodnot do regulátoru se bude uskutečňovat vždy po jednotlivých kanálech. Součástí definice je obsah požadavku (zprávy) pro regulátor. Jednotlivé kanály se definují takto: Chan = Adr, Code, FBlock, FNum
[Write] 200 = 01 31 10 0 201 = 01 32 10 0 202 = 01 33 10 0 203 = 01 34 10 0 Kanály ovladačeKromě uživatelsky definovaných kanálů, viz sekce [Read] [Write], má ovladač některé kanály, které jsou pevně definovány. Tyto kanály jsou vyhrazeny pro poskytování chybových informací o ovladači. Proto kanály s těmito čísly nepoužívejte v definici datových kanálů pro komunikaci.
Automatická konverze typůPři definování kanálů ovladače je nutno kromě jejich zápisu v souboru parametrů vytvořit také soubor *.DMF, který obsahuje seznam kanálů a jejich typů pro aplikaci. Ovladač převádí automaticky data podle typů uvedených v aplikaci (a také v souboru DMF). Protože všechny hodnoty čtené nebo zapisované do regulátoru se přenášejí ve formě ASCII řetězců, je nutno vyřešit problémy jejich konverze. Ovladač pracuje tak, že na základě požadavku na čtení nebo zápis sestaví podle definice v souboru *.PAR textovou zprávu. Tuto zprávu doplní o speciální řídicí znaky a kontrolní součet a vyšle ji do regulátoru. V případě, že se jedná o zápis hodnot, regulátor zprávu potvrdí. V případě, že se jedná o čtení, regulátor pošle odpověď, což je opět textový řetězec. Operace čtení
Kanály v jednom bloku nemusí být stejného typu. Operace zápisHodnoty se do regulátoru přenášejí po jedné. Parametr Code, kterým se určuje způsob přístupu k datům musí mít tvar xy, kde x je libovolná číslice a y je číslice různá od nuly. Má-li být hodnota celočíselná, tj. číslo nebude obsahovat desetinnou tečku, definujte u odpovídajícího kanálu některý z typů shortcard, shortint, cardinal, integer, longcard, longint. Pokud použijete typ shortreal nebo real bude hodnota převedena na řetězec, který obsahuje také desetinnou tečku a pevný počet desetinných míst, podle parametru DecPlaces. Hodnotu je možno předat také jako řetězec přes kanál typu string. V takovém případě nebude hodnota nijak upravována. 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 (dále uváděn jako parametr procedury) může být různého typu podle významu procedury. Přehled a význam jednotlivých procedur ovladače (parametr Param1)
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. Přečtením kanálu č.1 lze získat kód chyby, přečtením kanálu č.2 je možno zjistit adresu jednotky, u které nastala chyba. Chybové kódy
Příklady souborů DMF a PAR ovladačeSoubor *.DMF begin 1 real input 2 real input 3 string input 100 - 118 string input 120 - 128 real input 130 - 138 real input 200 cardinal output 201 - 208 real output end. Soubor *.PAR [comm] baudrate = 9600 parity = even databits = 7 stopbits = 1 rx_buffer = 1200 tx_buffer = 1200 rx_frame_buffer = 1200 tx_frame_buffer = 1200 cts_flow = false dsr_flow = false dtr_control = disable rts_control = disable dsr_sense = low rx_interchar_timeout = 5 rx_char_timeout = 2 rx_timeout = 5 tx_char_timeout = 10 tx_timeout = 10 [Settings] ComDriver = cwcomm COM1 Timeout = 300 NumRepeat = 1 DecPlaces = 5 [Write] 200 = 01 31 10 0 201 = 01 32 10 0 202 = 01 33 10 0 203 = 01 34 10 0 204 = 01 35 10 0 205 = 01 36 10 0 206 = 01 37 10 0 207 = 01 38 10 0 208 = 01 39 10 0 [Read] 101 = 01 01 1 0 102 = 01 02 1 0 103 = 01 03 1 0 104 = 01 04 1 0 105 = 01 05 1 0 106 = 01 06 1 0 107 = 01 07 1 0 108 = 01 08 1 0 109 = 01 09 1 0 110..118 = 01 00 1 0 120..128 = 01 00 2 0 130..138 = 01 B1 3 0 |