Ovladač pro průmyslové automaty MITSUBISHI MELSEC řady FX, tj s procesorovou jednotkou FX0N, FX, FX2C a FX2N připojené k počítači prostřednictvím programovacího portu automatu přes sériový převodník RS422/RS232.
Ovladač pro průmyslové automaty MITSUBISHI MELSEC řady FX, tj s
procesorovou jednotkou FX0N, FX, FX2C a FX2N připojené k počítači
prostřednictvím programovacího portu automatu přes sériový převodník
RS422/RS232.
Seznam sekcí: - Komunikace počítače s automatem
- Statistika komunikace
- Poruchová hlášení
- Parametrický soubor
- Datové typy a jejich konverze
- *.DMF soubor
Komunikace počítače s automatem
Pro aplikaci umožňuje ovladač přenášet oběma směry celou
datovou oblast automatu.
Bit devices |
Device |
Area |
Range |
Comment |
Input |
X |
X0 - X7, X10 - X17, .. , X170 - X177 |
|
Output |
Y |
Y0 - Y7, Y10 - Y17, .. , Y170 - Y177 |
|
Internal relay |
M |
M0 - M1023 |
|
Special relay |
M |
M8000 - M8255 |
|
Step relay |
S |
S0 - S999 |
|
Timer (contact) |
T |
TS0 - TS255 |
|
Counter (contact) |
C |
CS0 - CS199 |
16-bit counters |
Counter (contact) |
C |
CS200 - CS255 |
32-bit counters |
Word devices |
Device |
Area |
Range |
Comment |
Data register |
D |
D0 - D511 ( D0 - D999 for FX2C ) |
|
Special register |
D |
D8000 - D8255 ( D6000 - D6026, D7970 - D8255 for FX2C
) |
|
Timer ( present value ) |
T |
TN0 - TS255 |
|
Counter ( present value ) |
C |
CN0 - CN199 |
16-bit counters |
Counter (contact) ( present value ) |
C |
CN200 - CN255 |
32-bit counters |
Datové oblasti automatu
V oblastech "Special relay" a "Special register" jsou některé
části chráněny proti zápisu. Ovladač tuto ochranu nepodporuje,
tzn. pokud aplikace provede zápis do této zóny, dojde k chybě
komunikace. Komunikace je odvozena od vzniku požadavků v
aplikačním programu systému Control Web.
Požadavky na čtení vznikají při přečtení kanálu nějakým přístrojem
a požadavky na zápis analogicky při zápisu hodnoty na výstupní
kanál. Z toho vyplývá, že ovladač komunikuje pouze požadovaná data
s určitou optimalizací na počet zpráv (např. je-li požadavek na
čtení D10 a D12, ovladač přečte jedinou zprávou oblast D10 - D12,
tedy včetně D11). Z tohoto důvodu jsou také oblasti označené jako
"bit device" čteny po bytech, tzn. po 8-cích. Zápis se provádí pro
"word devices" pouze pro označené oblasti a pro "bit devices" lze
nastavit zapisování po jednotlivých bitech nebo po bytech.
Statistika komunikace
Ve stavových kanálech ovladač nabízí základní statistiky o
průběhu komunikace.
Číslo kanálu |
Typ |
Směr |
Obsah |
1 |
bool |
output |
enable driver ( false zablokuje ovladač ) |
2 |
real |
input |
chybový kód ( viz. násl. tabulka ) |
3 |
real |
input |
počet přijatých zpráv |
4 |
real |
input |
počet odeslaných zpráv |
5 |
real |
input |
počet chyb při čtení dat |
6 |
real |
input |
počet chyb při zápisu dat |
Stavové kanály ovladače
Poruchová hlášení
Poruchový kód je nastavován do prvního stavového kanálu dle
následující tab.
Kód |
Význam |
0 |
komunikace proběhla v pořádku |
10H |
chyba kontrolního součtu |
11H |
nepřijetí zprávy automatem |
0FFH |
time out |
Poruchový kód
Parametrický soubor
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 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: Objekt | Popis |
---|
file | jméno souboru u parametru file | comdevice | název sekce u parametru device | N | číselná hodnota |
Popis jednotlivých parametrů: Parametr | Význam |
---|
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 viz dále. | 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řibrzdě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. |
Hodnoty pro definici chování DTS a RTS (parametry rts_control
a dtr_control): Hodnota | Význam |
---|
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 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:
[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 [Melsec]
Tato sekce obsahuje parametry, které slouží ke konfiguraci
ovladače z hlediska řízení komunikace mezi počítačem a
průmyslovým automatem. Následuje jejich výčet a popis:
- 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'.
- Timeout
příznak toho, že blok slouží jak pro zápis, tak pro
čtení. Tento parametr je nepovinný.
- NumRepeat
Parametr udává počet opakování po neúspěšné
komunikaci. Je-li nastaven na 0, požadavek se neopakuje
(vykoná se tedy pouze jednou). Implicitní hodnota je 2.
Maximální hodnota je 5.
- Debug
Pomocí tohoto parametru je možno zapnout výpisy
průběhu komunikace do souboru.
- DebugOutput
Pomocí tohoto parametru se provádí nastavení jména
souboru pro ladicí výpisy. Pokud není uvedena celá cesta, je
soubor založen v adresáři systému Control Web. Implicitně je to soubor
'melsecfx.log'.
- InitDisable
Tento parametr zablokuje činnost ovladače při startu
aplikace obdobně jako kanál č. 1. Použitím tohto kanálu je
možné v průběhu aplikace ovladač opět zpustit.
- ReadBack
Aktivace tohoto parametru způsobí, že algoritmus
příjmu zpráv očekává zpětné přijetí odeslaných dat při
použití sériového rozhraní RS485. Některé převodníky RS485
tuto funkci provádí automaticky a není nutné tento režim
aktivovat. Obdobně nemá význam při použití rozhraní RS232
nebo RS422.
- Prefer
Pomocí tohoto parametru se dá měnit priorita řazení
požadavků na komunikaci. Přípustné jsou hodnoty read,
write, change, none.
V připadě nastavení hodnoty none není nijak
specifikována priorita řazení a ovladač provádí komunikaci
dle svého uvážení. Nastavení write nebo read
zprioritní požadavky na zápis nebo čtení. Při volbě change
jsou střídavě řešeny požadavky na zápis a na čtení
dat.
- Způsob zápisu parametrů v sekci [Melsec] a jejich možné
hodnoty:
[Melsec]
ComDriver = <LinkDll>, <ComId>
Timeout = <N>
NumRepeat = <N>
Debug = true | false
DebugOutput = <FName>
InitDisable = true | false
ReadBack = true | false
Prefer = read | write | change | none
Parametr | Význam |
---|
LinkDll | řetězec obsahující jméno DLL knihovny linkového
ovladače, např. 'CWCOMM4.DLL'. | ComId | řetězec obsahující jméno komunikačního portu, např
COM1. | N | číselná hodnota. Může být zapsána dekadicky nebo
hexadecimálně (ukončena znakem H). | FName | jméno souboru pro ladící výpisy |
Příklad parametrů v sekci [Melsec]:
[Melsec]
ComDriver = cwcomm, com2
Timeout = 1000
NumRepeat = 1
Debug = true
DebugOutput = TRACE.TXT
InitDisable = false
ReadBack = false
Prefer = read
Sekce [Channels]
Definuje přístupné datové oblasti automatu zápisem
klíčového slova Block dle následujícího předpisu:
[Channels]
Block = <chan>, <dev1>, <dev2>, <typ> [, <SetByBit>]
Block = ...
chan | číslo prvního kanálu | dev1 | počátek datové oblasti ( např. D125, M56, TC120
) | dev2 | konec datové oblasti | typ | typ dat (viz. násl. kap.) | SetByBit | volitelně pro bit devices nastavuje režim zápisu po
jednotlivých bitech. Aktivuje zápis po jednotlivých bitech
pro bitové registry (default je zápis po slovech). |
Při deklaraci sekcí je třeba dbát, aby nedošlo k překrývání
kanálu (tzn. číslo prvního kanálu následující sekce musí být
alespoň o jedničku větší než je součet čísla prvního kanálu a
počtu kanálů v sekci předcházející, počet kanálů je dán
velikostí datové oblasti a zvoleného typu dat).
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. 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.
Příklad parametrů v sekci [Channels]:
[Channels]
Block = 100, D0, D50, W
Block = 200, D50, D90, LI
Block = 300, M0, M160, B, SetByBit
Block = 400, D0, D50, W
Block = 500, D50, D90, LI
Block = 600, M0, M160, B
Datové typy a jejich konverze
Ovladač nabízí typizaci dat uložených v paměti automatu a
jejich konverzi do příslušné prezentace v počítači. Ovladač má
implementovány následující typy:
Klíčové slovo |
Datový typ |
Délka (byte) |
Poznámka |
B |
boolean |
1 bit |
|
S |
byte |
1 |
|
SI |
shortint |
1 |
|
SB |
byteBCD |
1 |
celočíselný byte kódovaný v BCD kódu |
W |
word |
2 |
|
WI |
integer |
2 |
|
WB |
wordBCD |
2 |
celočíselné slovo kódované v BCD kódu |
L |
doubleword |
4 |
|
LI |
longint |
4 |
|
LB |
longBCD |
4 |
celočíselné dvojslovo kódované v BCD kódu |
Přehled datových typů ovladače
Podle volby typu jsou potom reprezentována v ovladači přijatá
data a je zajištěna konverze do prezentace pro Control Web. Číselné typy jsou převáděny na real a logické typy
na boolean. Např.
[Channels]
Block = 1000, D20, D22, S
Block = 2000, D23, D24, B
Paměť automatu |
Kanály v aplikaci systému Control Web |
D20 |
1000, 1001 |
D21 |
1002, 1003 |
D22 |
1004, 1005 |
D23 |
2000..2015 |
D24 |
2016..2031 |
Přílad mapování kanálů do registrů automatu
*.DMF soubor
Soubor s definicí kanálů pro Control Web musí
korespondovat s nastavením v parametrickém souboru a ctít datovou
konverzi.
|