Ovladač S_RK512 je určen pro spojení systému Control Web
s průmyslovými automaty (PLC) SIMATIC S5/S7 s použitím
komunikačního protokolu RK512.
Ovladač S_RK512 je určen pro spojení systému Control Web
s průmyslovými automaty (PLC) SIMATIC S5/S7 s použitím
komunikačního protokolu RK512.
Vlastnosti ovladače
Komunikace typu bod-bod přes standardní sériové rozhraní
počítače RS-232 nebo RS-422/485, popřípadě proudovou smyčkou
20mA TTY s použitím patřičného převodníku úrovní.
Ovladač vystupuje jako nadřízená stanice (master).
Komunikace s PLC řady S5 vybavenými komunikačním
procesorem CP524, CP525, CP544 nebo CPU928.
Komunikace s PLC řady S7 vybavenými komunikačním
procesorem CP341, CP441.
Čtení a zápis dat v oblastech D (data block) a X
(extended data block).
Čtení dat z oblastí M (flags), E (inputs), A
(outputs), T (timers), Z (counters), P (inputs/outputs).
Upozornění: Tento ovladač nelze přímo nahradit namísto původního
ovladače 'SIMRK512.DLL'. Důvodem je rozdílný způsob
zápisu parametrů a odlišná množina interních (systémových) kanálů
(1 až 16).
Seznam sekcí: - Vlastnosti ovladače
- Činnost ovladače
- Parametry ovladače
- Kanály ovladače
- Procedury ovladače
- Mapovací soubor ovladače a datové typy
- Zpracování a stavy výjimek ovladače
- Chybové kódy
- Příklad použití ovladače
Činnost ovladače
Pomocí ovladače je možno číst a zapisovat data
z datových oblastí D a X a pouze číst data z oblastí
M, E, A, T, Z a P.
Ovladač interpretuje datové elementy PLC jako svoje kanály, což
jsou číselné nebo logické hodnoty (boolean). Datový
element má délku 1 byte v oblastech M, E, A a P nebo
2 byte (word) v oblastech D, X, T a Z. Číselné kanály mohou
být různých typů (int8, uint8,
int16, uint16, int32,
uint32, float32), podle toho kolik
datových elementů zabírají. Logické kanály mohou být také různých
typů (bits, sbit, bool8,
bool16) podle toho, jestli se jedná
o jednotlivé bity elemetů nebo o celé elementy
(nulová hodnota = false, nenulová hodnota =
true). Datové kanály ovladače (jejich počet a typ) se
konfigurují v souboru parametrů podle požadavků uživatele.
Parametry ovladače
Pomocí 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.
Parametry pro základní nastavení ovladače — sekce
[Settings]
Tato sekce obsahuje parametry, které slouží ke konfiguraci
ovladače z hlediska komunikace. Způsob zápisu parametrů
a jejich možné hodnoty:
[Settings]
ComDriver = <LinkDll> <ComId>
NumRepeat = <N>
Timeout = <N>
ErrorRecovery = none | nak | break
BreakDelay = <N>
MaxPacketLength = <N>
InputBufferSize = <N>
OutputBufferSize = <N>
SwapBytes = true | false
MaxExceptions = <N>
FinalizeAfterEachBlock = false | true
Trace = none | log | xtrace | windows
InterMessageDelay = <N>
Readback = true | false
GoodComReport = true | false
LinkDll | řetězec obsahující jméno DLL knihovny linkového
ovladače. | ComId | řetězec obsahující jméno komunikačního portu. | N | číselná hodnota. Může být zapsána dekadicky nebo
hexadecimálně (ukončena znakem H). |
Následuje výčet a popis jednotlivých parametrů: ComDriver | jméno knihovny ovladače sériového rozhraní (linkové
vrstvy) a jméno komunikačního portu (COMx),
který je nainstalován v prostředí Windows. Jméno
standardního ovladače je 'CWCOMM.DLL'. | NumRepeat | počet opakování požadavků na komunikaci po výskytu
chyby. Implicitní nastavení je 6 opakování. | Timeout | čas čekání na odezvu v milisekundách. Nedojde-li do
této doby odpověď od zařízení, bude vrácena do aplikace
chyba komunikace. Implicitní hodnota je 2000 ms. | SrcAdr | vlastní adresa — adresa této stanice
(počítače). | MaxPacketLength | maximální délka přenášeného bloku. Nastavuje se v
bytech. Implicitní hodnota je 279 byte. | InputBufferSize | velikost příjimacího komunikačního bufferu. Ovladač
si zpravidla tuto hodnotu nastavuje sám. Implicitní hodnota
je 279 byte. | OutputBufferSize | velikost vysílacího komunikačního bufferu. Ovladač si
zpravidla tuto hodnotu nastavuje sám. Implicitní hodnota je
279 byte. | SwapBytes | příznak, který určuje zda se prohazuje pořadí byte ve
slově. Tento příznak je globální pro všechny bloky. Pokud
bude nastaven na false nebo nebude uveden, je možno nastavit
individuálně přehazování byte v rámci bloků kanálů. | MaxExceptions | velikost fronty pro nezpracované výjimky od ovladače.
Implicitní nastavení je 4096. | FinalizeAfterEachBlock | Pomocí tohoto parametru se zadává, jestli budou data
předána do aplikace po každé komunikaci (hodnota parametru =
true) nebo až po dokončení přenosu všech bloků,
které se řeší v rámci daného časového kroku. Implicitní
nastavení je false. | Trace | zapnutí trasovacích výpisů komunikace. Je-li nutno
sledovat komunikaci ovladače se zařízením, je možno zvolit
tímto parametrem cíl trasovacích výpisů. Možné
hodnoty parametru jsou: none | žádné
trasovací výpisy | log | výpisy
jsou nasměrovány do Okna zpráv záložky
Ladicí výpisy systému Control Web | xtrace | výpisy
jsou nasměrovány do souboru '\XTRACE.TXT' | windows | výpisy
jsou nasměrovýny do ladicího okna systému Windows |
Upozornění: Trasovací
výpisy zpomalují činnost aplikace, popřípadě mohou vést ke
zmenšování prostoru v paměti nebo na disku. Proto se
nedoporučuje používat trasovací výpisy ve finální
aplikaci. | InterMessageDelay | minimální časová prodleva před následujícím
požadavkem na komunikaci v milisekundách. Ovladač nezahájí
další komunikaci dříve než uplyne nastavený čas od naposledy
přijaté odpovědi zařízení. Implicitní nastavení je .... | Readback | parametr slouží k automatickému filtrování
zpráv, které se dostávají zpět na vstup přijímače při
vysílání. To může nastávat například u některých
starších typů převodníků RS-232/RS-485. Dále je možno tento
parametr použít u zařízení, která přijatou zprávu
vysílají nazpět (echo). | GoodComReport | je-li tento parametr nastaven na hodnotu
true, bude se při obnovení komunikace po chybě
generovat výjimka od ovladače. Stav výjimky bude 1 nebo 2
pro čtení resp. pro zápis a kód výjimky bude 0 (úspěšná
operace). | ErrorRecovery | způsob ošetření chyby komunikace. Implicitní hodnota
je none. Možné hodnoty
parametru jsou: none | žádná
reakce po výskytu chyby. | nak | po
výskytu chyby se pošle znak NAK. | break | po
výskytu chyby se generuje signál break na
komunikační lince. |
| BreakDelay | prodleva generování signálu break na lince
po výskytu chyby, je-li nastaven parametr ErrorRecovery
na hodnotu break. Implicitní hodnota je 200 ms. |
Příklad parametrů v sekci [Settings]:
[Settings]
ComDriver = CWCOMM.DLL COM1
NumRepeat = 2
Timeout = 250
ErrorRecovery = break
BreakDelay = 300
MaxPacketLength = 300
InputBufferSize = 600
OutputBufferSize = 600
SwapBytes = false
MaxExceptions = 1000
FinalizeAfterEachBlock = false
Trace = none
Konfigurace kanálů ovladače — sekce [Channels]
Tato sekce definuje jednotlivé kanály nebo skupiny kanálů
ovladače a jejich reprezentaci v paměti PLC. Skupiny se
definují po jednotlivých blocích. Blok je definován intervalem
kanálů, datovou oblastí v PLC, datovým typem, a
počáteční adresou v dané oblasti. 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 stejného kanálu - pak jsou v ovladači
vytvořeny dva zvláštní bloky, jeden pro čtení, druhý pro
zápis. Další nepovinný parametr určuje prohození pořadí byte
u typů zabírajících více než jeden byte v paměti
PLC. Součástí definice bloku může být i komentář. Ten
musí být uveden na samostatném řádku a musí začínat
středníkem.
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
resp. nižší komunikační vrstvy tuto hodnotu dále upravují.
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.
Následuje způsob zápisu parametrů a jejich možné hodnoty.
Každé skupině (bloku) kanálů odpovídá jeden řádek textu.
V hranatých závorkách jsou uvedeny nepovinné nebo
doplňující parametry:
[Channels]
Block = <From>,<To>,<Area>,<Type>,<Adr>[,Bidirect] [,SwapBytes] [,Id:<Name>]
Block = ...
...
From | číslo prvního kanálu v bloku. | To | číslo posledního kanálu v bloku. | Con | identifikátor spojení (sekce [Connection]). | Area | kód datové oblasti v PLC. Možné
hodnoty jsou: Dn | datový
blok (data block). Hodnota n udává číslo
datového bloku. | Xn | datový
blok (extended data block). Hodnota n udává
číslo datového bloku. | M | oblast
paměti M (flag bytes). | A | oblast
binárních výstupů. | E | oblast
binárních vstupů. | T | oblast
časovačů. | Z | oblast
čítačů. | P | periferie. |
| Type | typ dat v oblasti. Možné hodnoty
jsou: bits | 8
boolean kanálů v jednom byte paměti. Typ
bits pracuje vždy s celým byte nebo
slovem v paměti PLC. Je-li nastaven tento typ, pak
bude nejmenší přenesené množství dat 1 byte resp. 1 word
podle použité datové oblasti. | bool8 | jeden
boolean kanál v jednom byte paměti PLC. Nulová
hodnota je false, nenulová hodnota je
true. | uint8 | 8-bitové
číslo bez znaménka | int8 | 8-bitové
číslo se znaménkem | uint16 | 16-bitové
číslo bez znaménka | int16 | 16-bitové
číslo se znaménkem | uint32 | 32-bitové
číslo bez znaménka | int32 | 32-bitové
číslo se znaménkem | float32 | 32-bitové
desetinné číslo podle normy IEEE-754 | float32s | 32-bitové
reálné číslo používané u PLC SIMATIC S5 (formát KG) |
| Adr | počáteční adresa v datové oblasti. Adresace je
po jednotlivých byte (oblasti M, E, A, P) nebo po slovech
(oblasti D, X, Z, T). | Bidirect | příznak toho, že blok slouží jak pro zápis, tak pro
čtení. Tento parametr je nepovinný. | SwapBytes | příznak, který určuje zda se prohazuje pořadí byte ve
slovech v rámci definovaného bloku. Tento parametr je
nepovinný. | Id | Name je jméno identifikátoru bloku.
Identifikátor slouží pro dynamickou změnu počáteční adresy
definovaného bloku za běhu aplikace. Změna adresy se provádí
pomocí procedur ovladače SetBlockId a
SetBlockOffset. Délka identifikátoru může být
max. 32 znaků. Tento parametr je nepovinný. |
Příklad parametrů v sekci [Channels]:
[Channels]
Block = 200, 249, D15, int16, 150
Block = 300, 347, D16, bits, 140
Block = 1000, 1999, M, int8, 20
Block = 2000, 2999, M, int8, 20
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 mimojiné 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 = <Section>
Pokud je definován parametr device a existuje
sekce jména Section, 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: file | jméno souboru u parametru file | section | název sekce u parametru device | N | číselná hodnota |
Popis jednotlivých parametrů: file | soubor parametrů. Tento parametr je výhodné použít
v případech, kdy více ovladačů používá jedinou
linkovou vrstvu. Parametry lze potom udržovat
v jediném souboru. | device | jméno zařízení, například COM1.
Pokud je tento parametr uveden, bude použito zařízení tohoto
jména. Pokud zároveň existuje sekce stejného jména, budou
následující parametry získány z této sekce. Pokud
sekce tohoto jména neexistuje, parametry jsou načteny
z aktuální sekce [comm]. | priority | priorita komunikačního threadu. Implicitní hodnota je
normal. | mode | režim činnosti (obousměrná/jednosměrná komunikace).
Implicitní hodnota je fullduplex. | pre_key | určuje prodlevu před zahájením přenosu. Stav signálů
DTR/RTS, pokud pracují v toggle módu, je po dobu
prodlevy již změněn na aktivní. | hold_key | určuje prodlevu po ukončení přenosu. Signály DTR/RTS,
pokud pracují v toggle módu, zůstávají po tuto dobu
prodlevy ještě aktivní. | rx_frame_buffer | velikost sekundárního bufferu pro vstup. Přípustný
rozsah <96;65535>, parametr nemá implicitní hodnotu. | tx_frame_buffer | velikost sekundárního bufferu pro výstup. Přípustný
rozsah <96;65535>, parametr nemá implicitní hodnotu. | rx_buffer | velikost bufferu pro vstup; rozsah
<96;65535>, implicitně 4096. | tx_buffer | velikost bufferu pro výstup; rozsah
<96;65535>, implicitně 4096. | baudrate | komunikační rychlost. | databits | počet data bitů. | stopbits | počet stop bitů. | parity | parita přenosu. | cts_flow | povoluje CTS řízení (handshake). | dsr_flow | povoluje DSR řízení (handshake). | dtr_control | | rts_control | chování DTS a RTS, význam hodnot: disable | řízení
vypnuto, trvale v úrovni low | low | stejně
jako disable | enable | řízení
vypnuto, trvale v úrovni high | high | stejně
jako enable | handshake | pozitivní
handshake | toggle | signál
mění stav během přenosu dat na high (pozitivní klíč), jinak
trvale v low | toggle_neg | signál
mění stav během přenosu dat na low (negativní klíč), jinak
trvale v high |
Chování DTR/RTS v módech
toggle/toggle_neg | dsr_sense | určuje, je-li DSR aktivní v úrovni high nebo low
(high = pozitivní handshake, low = negativní handshake). | tx_continue_xon_xoff | povoluje zastavení vysílání pokud je vstupní buffer
plný a byl vyslán znak XOFF (xoff_char). Pokud
je nastaveno true, vysílání pokračuje od
okamžiku, kdy je ve vstupním bufferu nejméně xoff_tresh
znaků volných a ovladač vyslal XOFF znak (xoff_char)
pro přibrždění příjmu. Pokud je nastaveno false,
vysílání nepokračuje do okamžiku než je ve vstupním bufferu
alespoň xon_tresh znaků volných a ovladač
vyslal XON znak (xon_char) pro obnovení příjmu.
Implicitní hodnota je false. | tx_xon_xoff | povoluje XON/XOFF (software) řízení pro výstup.
Implicitní hodnota je false. | rx_xon_xoff | povoluje XON/XOFF (software) řízení pro vstup.
Implicitní hodnota je false. | xon_tresh | minimální volná kapacita vstupního bufferu pro
vyslání XON. Implicitní hodnota je 50 procent. | xoff_tresh | ovlivňuje maximální počet znaků ve vstupním bufferu
pro vyslání XOFF. Maximální počet přípustných znaků lze
spočítat odečtením uvedené hodnoty od velikosti vstupního
bufferu (rx_buffer). Implicitní hodnota je 80 procent. | error_xlat | povoluje nahrazení znaků přijatých s chybou
parity znakem err_char. Pokud je nastaveno true
a kontrola parity povolena, dochází k nahrazení.
Implicitní hodnota je false. | discard_null | povoluje odstranění prázdných (NULL) znaků. Pokud je
nastaveno true, každý NULL znak je ihned po
přijetí odstraněn ze vstupního bufferu. Implicitní hodnota
je false. | xon_char | dekadický kód znaku XON. | xoff_char | dekadický kód znaku XOFF. | err_char | dekadický kód znaku, který je určen pro nahrazení
znaků přijatých s chybou parity. | eof_char | dekadický kód znaku EOF. | evt_char | dekadický kód znaku EVT. | rx_interchar_timeout | meziznaková prodleva pro příjem
v milisekundách. | rx_char_timeout | prodleva na jeden přijatý znak
v milisekundách. | rx_timeout | konstantní prodleva pro příjem
v milisekundách. | tx_char_timeout | prodleva na vyslání jednoho znaku
v milisekundách. | tx_timeout | konstantní prodleva pro vysílání
v milisekundách. |
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 parametrů v sekci [comm]:
[comm]
baudrate = 9600
parity = no
databits = 8
stopbits = 1
rx_buffer = 2048
tx_buffer = 2048
rx_frame_buffer = 2048
tx_frame_buffer = 2048
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
Kanály ovladače
Ovladač 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.
Vyhražené kanály ovladače
Kromě uživatelsky definovaných kanálů, viz sekce
[Channels], má ovladač skupinu kanálů, které jsou
pevně definovány. Tyto kanály jsou vyhraženy pro poskytování
stavových informací o ovladači a pro řízení jeho
činnosti. Jsou mapovány do intervalu 1 až 99. Proto kanály
s těmito čísly nepoužívejte v definici bloků pro
komunikaci.
kanál č.1 - real input - stav
výjimky od ovladače
kanál č.2 - boolean output -
povolení výjimky od ovladače
kanál č.3 - real input - počet
zpracovaných výjimek od ovladače
kanál č.4 - real input - počet
nezpracovaných výjimek, které má ovladač ve frontě
kanál č.5 - real input - adresa
stanice, která způsobila výjimku
kanál č.6 - real input -
chybový kód
kanál č.7 - string input -
popis chyby
kanál č.8 - real input - číslo
prvního kanálu bloku, při jehož přenosu vznikla chyba
kanál č.9 - real input - číslo
posledního kanálu bloku, při jehož přenosu vznikla chyba
kanál č.10 - real input - kód
oblasti, při jejímž přenosu vznikla chyba: 68
- oblast D 88 - oblast X 77 -
oblast M 65 - oblast A 69 -
oblast E 84 - oblast T 90 -
oblast Z 80 - oblast P
kanál č.11 - real input - počet
chyb čtení.
kanál č.12 - boolean output -
vynulování počítadla chyb čtení.
kanál č.13 - real input - počet
chyb zápisu.
kanál č.14 - boolean output -
vynulování počítadla chyb zápisu.
kanál č.15 - real input -
celkový počet opakování požadavků na komunikaci.
kanál č.16 - real input -
chybový kód zařízení (dokumentace SIMATIC).
Automatická konverze typů
Při definování kanálů ovladače je nutno kromě zápisu bloků
v souboru parametrů vytvořit také soubor '*.DMF',
který obsahuje seznam kanálů a jejich typů pro aplikaci.
Ovladač nevyžaduje striktní dodržování stejných typů
v definici bloků a souboru '*.DMF'. Pouze
doporučujeme aby kanály typu boolean
v souboru '*.DMF' měly své protějšky
v blocích v souboru '*.PAR' jako typy
bits, bool8 nebo bool16.
Ostatní číselné typy se mohou kombinovat. Např.
v souboru '*.DMF' mohou být všechny číselné
kanály typu real a v blocích ovladače
mohou být uvedeny třeba jako int16.
Příklad automatické konverze typu int16 na real.
Procedury ovladače
Aplikace 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:
system.DriverQueryProc( DriverName : string; Param1 : any; &Param2 : any )
Její parametry mají následující význam:
DriverName je symbolické jméno ovladače,
definované v aplikaci.
Param1 slouží k zadání povelu (jména
procedury ovladače).
Param2 je použit jako parametr procedury nebo
návratová hodnota procedury.
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)
- GetResult
-
Vrátí výsledek naposledy volané procedury ovladače.
Výsledkem je některý z chybových kódů, popsaných
v kapitole Chybové kódy.
Tato procedura by se měla volat po volání těch procedur,
u kterých může nastat chyba.
- GetVersion
-
Vrátí v Param2 řetězec popisující jméno a verzi
ovladače.
- GetMajorVersion
-
Vrátí vyšší slovo verze produktu Control Web.
- GetMinorVersion
-
Vrátí nižší slovo verze produktu Control Web.
- GetAPIMajorVersion
-
Vrátí vyšší slovo verze API produktu Control Web.
- GetAPIMinorVersion
-
Vrátí nižší slovo verze API produktu Control Web.
- EnableException
-
Voláním této procedury se povolí další výjimka od
ovladače.
- GetErrorCode
-
Vrátí číslo chyby právě zpracovávané výjimky ovladače.
- GetErrorString
-
Vrátí popis chyby právě zpracovávané výjimky ovladače.
- GetExcStatus
-
Vrátí kód právě zpracovávané výjimky ovladače.
- SetTraceOutput
-
Nastaví cíl trasovacích výpisů komunikace. Parametr udává
cíl výpisů:
0 - žádné trasovací výpisy
1 - výpisy jsou nasměrovýny do ladicího
okna systému Windows
2 - výpisy jsou nasměrovány do Okna
zpráv záložky Ladicí výpisy systému
Control Web
3 - výpisy jsou nasměrovány do souboru
'\XTRACE.TXT'
- SetDevice
-
Nastaví jméno COM portu pro otevření pomocí procedury
OpenCom.
- GetDevice
-
Vrátí aktuální jméno COM portu (nemusí se shodovat se
jménem nastaveným pomocí procedury SetDevice).
- OpenCom
-
Otevře COM port definovaný procedurou SetDevice a vrací
popis chyby.
- CloseCom
-
Zavře aktuální COM port.
- IsOpen
-
Vrátí aktuální stav COM portu - otevřen/zavřen.
- SetComParams
-
Nastaví parametry COM portu. Parametr je ve tvaru:
'baud=n, data=n, parity=n, stop=n'.
- GetComParams
-
Vrátí aktuální parametry COM portu.
- SetBaudRate
-
Nastaví komunikační rychlost, např. 19200.
- GetBaudRate
-
Vrátí aktuální komunikační rychlost.
- SetDataBits
-
Nastaví počet datových bitů komunikace. Možné hodnoty
jsou 5, 6, 7, 8.
- GetDataBits
-
Vrátí počet datových bitů.
- SetParity
-
Nastaví paritu přenosu.
0 - NONE (bez parity)
1 - ODD (lichá)
2 - EVEN (sudá)
3 - MARK (značka)
4 - SPACE (mezera)
- GetParity
-
Vrátí aktuální paritu přenosu. Hodnoty jsou stejné jako
u procedury SetParity.
- SetStopBits
-
Nastaví počet stopbitů komunikace.
0 - 1 stopbit
1 - 1.5 stopbitu
2 - 2 stopbity
- GetStopBits
-
Vrátí aktuální počet stopbitů komunikace.
- SetTimeout
-
Nastaví timeout komunikace v milisekundách. Je to
doba, kterou ovladač čeká po odeslání požadavku na odpověď
od zařízení. Pokud odpověď do této doby nepřijde, vznikne
chyba timeout.
- GetTimeout
-
Vrátí aktuální hodnotu timeoutu komunikace.
- SetBlockId
-
Nastaví identifikátor aktuálního bloku kanálů pro změnu
adresy (offsetu) v paměti PLC. Parametr je typu
string a předává se v něm identifikátor
bloku (maximálně 32 znaků). Tento identifikátor musí být
shodný s identifikátorem v definici bloků
v souboru parametrů.
- SetBlockOffset
-
Nastavuje adresu (offset) začátku bloku v paměti
PLC. Blok je určen svým identifikátorem v souboru
parametrů a vybrán pomocí procedury SetBlockId.
Parametr udává adresu a může být libovolného číselného typu.
Upozornění: Rozsah parametru se nehlídá.
Mapovací soubor ovladače a datové typy
Tento 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].
Typ dat |
Typ kanálu |
Popis |
uint32 |
číslo |
32bitová hodnota bez znaménka — 4 byte |
int32 |
číslo |
32-bitová hodnota se znaménkem - 4 byte |
float32 |
číslo |
32-bitová real hodnota - 4 byte |
float32s |
číslo |
32-bitová real hodnota - 4 byte ve formátu KG (u SIMATIC
S5) |
|
uint16 |
číslo |
16bitová hodnota bez znaménka - 2 byte |
int16 |
číslo |
16bitová hodnota se znaménkem - 2 byte |
bool16 |
boolean |
1 boolean hodnota - 2 byte |
|
uint8 |
číslo |
8bitová hodnota bez znaménka - 1 byte |
int8 |
číslo |
8bitová hodnota se znaménkem - 1 byte |
bool8 |
boolean |
1 boolean hodnota - 1 byte |
|
bits |
boolean |
1-bitová hodnota 8 resp. 16 v jednom datovém
elementu PLC (podle jeho velikosti) |
Přehled datových typů ovladače
Zpracování a stavy výjimek ovladače
Př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 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 třeba zapsat na kanál
č.2 hodnotu true nebo zavolat proceduru ovladače
EnableException. Tím se povolí vyvolání další
výjimky, jakmile nastane nebo pokud není fronta výjimek prázdná.
Přečtením kanálu č.1 je možno zjistit stav výjimky. Při použití
kanálu č.2 je třeba pamatovat na to, aby měl virtuální přístroj
nastaven parametr send_same_data. Pokud aplikace
výjimky nezpracovává, přidávají se do fronty, jejíž maximální
velikost je určena parametrem MaxExceptions
v sekci [Settings].
Kódy pro stavy výjimek ovladače
0 - žádná výjimka od ovladače
1 - výjimka signalizuje chybu při čtení dat.
Její kód a popis je možno získat voláním procedury ovladače
GetErrorCode nebo čtením kanálu č.6.
2 - výjimka signalizuje chybu při zápisu
dat. Její kód a popis je možno získat voláním procedury
ovladače GetErrorCode nebo čtením kanálu č.6.
3 - změna dat v zařízení.
U asynchronních komunikací nebo v případě, že
ovladač vystupuje jako podřízená stanice (slave), se takto
signalizuje změna dat v zařízení.
4 - chyba procedury ovladače. Vykonání
některých procedur ovladače může zabrat poměrně dlouhou
dobu. Proto běží zpravidla ve zvláštním threadu, aby
nezdržovaly běh aplikace. Pokud procedura skončí chybou,
způsobí generování výjimky s tímto kódem.
Chybové kódy
Ovladač generuje následující chybové kódy. Tyto kódy jsou
k dispozici na kanále č.6. Kód a popis chyby je také možno
získat voláním procedur ovladače GetErrorCode a
GetErrorString. Při vzniku chyby se současně vypíše
hlášení do Okna zpráv systému Control Web.
0 - úspěšná operace
1 - chyba timeoutu
2 - neplatná hodnota
3 - neexistující kanál
1000 - vnitřní chyba
1001 - chyba kontrolního součtu
1002 - vstupní komunikační buffer je plný
1003 - nesprávná adresa stanice
1004 - nesprávný kód povelu (funkce)
1005 - přijatá data mají nesprávnou délku
1006 - chyba potvrzení
1007 - nesprávná odpověď
1008 - chyba otevření COM portu
1009 - chyba zavření COM portu
1010 - chyba nastavení zařízení
1011 - chyba nastavení COM parametrů
1012 - chyba nastavení rychlosti
1013 - chyba nastavení délky slova
1014 - chyba nastavení parity
1015 - chyba nastavení stop bitů
1016 - chyba nastavení timeoutu
1017 - chyba zápisu bloku
1018 - výstupní fronta je plná
1019 - vstupní fronta je plná
1020 - nesprávný parametr procedury
1021 - data nejsou k dispozici
1022 - neznámá procedura ovladače
1023 - nesprávný identifikátor bloku
1024 - neplatný offset bloku
1025 - zařízení není připojeno
1026 - datový element je určen pouze pro čtení
Příklad použití ovladače
Součástí instalace je několik příkladů použití ovladače. Tyto
příklady naleznete v adresáři 'EXAMPLES\S_RK512'.
Součástí příkladů jsou také soubory '*.DMF' a
'*.PAR'. Před spuštěním příkladů si nejprve tyto
soubory upravte podle aktuální konfigurace.
|