Ovladač pro průmyslové automaty MITSUBISHI MELSEC řady A, tj.
s procesorovou jednotkou A1S, A1N, A2N, A3N nebo AnA (P21 / R21)(S1)
připojené k počítači prostřednictvím komunikačního modulu A1SJ71C24 (viz
dokumentace k tomuto modulu Table 3.3 a 3.4 ) nebo pro průmyslové
automaty MISTUBISHI MELSEC řady FX připojené k počítači modulem
přídavného sériového rozhraní ADP* nebo *BD, který podporuje některý z
komunikačních formátů A-čkového modulu A1SJ71C24.
Ovladač má implementovány dva instrukční soubory, které přepíná
podle nadefinovaného typu automatu v parametrickém souboru (viz dále).
Dále nabízí volitelně všechny čtyři komunikační formáty podporované
modulem A1SJ71C24 a přístup k dalším automatům prostřednictvím sítě
MELSECNET/B.
Komunikace počítače s automatem
Ovladač ke komunikaci používá dvou skupin instrukcí. První
skupina je určena pro procesorové jednotky A1S, A1N, A2N, A3N
(dále jen ACPU) a druhá pro řadu AnA, AnA-P21, AnA-R21, příp.
modifikaci s příponou S1 (dále jen AnACPU). Volbu instrukčního
souboru provádí ovladač podle uvedeného typu procesoru v
parametrickém souboru.
Pro aplikaci umožňuje ovladač přenášet oběma směry celou
datovou oblast automatu s výjimkou "file registers" označovaných
zkratkou R.
Přístupný adresový prostor ACPU
Bit device |
Word device |
Input X |
X0000 - X0255 |
Timer (present value) T |
TN000 - TN255 |
Output Y |
Y0000 - Y0255 |
Counter (present value) C |
CN000 - CN255 |
Internal relay M |
M0000 - M2047 |
Data register D |
D0000 - D1023 |
Latch relay L |
L0000 - L2047 |
Link register W |
W0000 - W1023 |
Step relay S |
S0000 - S2047 |
Special register D |
D9000 - D9255 |
Link relay B |
B0000 - B1023 |
|
|
Annunciator F |
F0000 - F0255 |
|
|
Special relay M |
M9000 - M9255 |
|
|
Timer (contact) T |
TS000 - TS255 |
|
|
Timer (coil) T |
TC000 - TC255 |
|
|
Counter (contact) C |
CS000 - CS255 |
|
|
Counter (coil) C |
CC000 - CC255 |
|
|
Přístupný adresový prostor AnACPU
Bit device |
Word device |
Input X |
X00000 - X02047 |
Timer (present value) T |
TN0000 - TN2047 |
Output Y |
Y00000 - Y02047 |
Counter (present value) C |
CN0000 - CN2047 |
Internal relay M |
M00000 - M08191 |
Data register D |
D00000 - D06143 |
Latch relay L |
L00000 - L08191 |
Link register W |
W00000 - W04095 |
Step relay S |
S00000 - S08191 |
Special register D |
D09000 - D09255 |
Link relay B |
B00000 - B04095 |
|
|
Annunciator F |
F00000 - F02047 |
|
|
Special relay M |
M09000 - M09255 |
|
|
Timer (contact) T |
TS0000 - TS2047 |
|
|
Timer (coil) T |
TC0000 - TC2047 |
|
|
Counter (contact) C |
CS0000 - CS2047 |
|
|
Counter (coil) C |
CC0000 - CC2047 |
|
|
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 v Control Webu. 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
slovech, tzn. po 16-ticích. Zapisování ale probíhá samozřejmě
jednotlivě anebo po souvislých oblastech, které jsou označeny pro
zápis.
Odpověď automatu lze zpozdit o časový interval, který je
uvedený v definici automatu. Velikost intervalu může být 0 .. 150
msec zaokrouhleno na celé desítky.
Při nasazení ovladače v síti s počítači řady FX, je přípustný
adresový prostor změněn dle rozsahu automatu Mitsubishi
MELSEC-FX2N (viz násl. tabulka)
Bit device |
Input X |
X000 - X377 |
Output Y |
Y000 - Y377 |
Internal relay M |
M0000 - M3071 |
Special relay M |
M8000 - M8255 |
Step relay S |
S000 - S999 |
Timer T |
T000 - T255 |
Counter C |
C000 - C199 |
Counter C |
C200 - C255 |
Data register D |
D0000 - D7999 |
Special register D |
D8000 - D8255 |
Komunikační formáty
Volba se provádí uvedením čísla formátu v parametrickém souboru
a přepínačem na komunikačním modulu. Nastavení na obou místech
musí být samozřejmě totožné. Varianta na přepínači modulu "noform"
(bezprotokolová komunikace) není v ovladači implementována.
Statistika komunikace
Ve stavových kanálech ovladač nabízí základní statistiky o
průběhu komunikace. Číslo prvního stavového kanálu (ČPrStK) se
uvádí v parametrickém souboru při definici automatu.
Číslo kanálu |
Typ |
Směr |
Popis |
1 |
boolean |
output |
enable driver ( false zablokuje ovladač ) |
ČPrStK |
real |
input |
chybový kód ( viz. násl. tabulka ) |
ČPrStK + 1 |
real |
input |
počet přijatých zpráv |
ČPrStK + 2 |
real |
input |
počet odeslaných zpráv |
ČPrStK + 3 |
real |
input |
počet chyb při čtení dat |
ČPrStK + 4 |
real |
input |
počet chyb při zápisu dat |
ČPrStK + 5 |
boolean |
output |
spuštění automatu |
ČPrStK + 6 |
boolean |
output |
stop automatu |
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 |
0FH |
ovladač je v stavu SLEEP |
10H |
chybná adresa stanice v přijaté zprávě |
11H |
chybná adresa automatu v přijaté zprávě |
12H |
chyba kontrolního součtu |
13H |
chybí ukončovací znak CRLF ve zprávě |
14H |
chybí ukončovací znak ETX ve zprávě |
15H |
chyba nedodržení protokolu ve zprávě |
16H |
chybový kód automatu (dle dokumentace ke komunikační
jednotce tab. 12.1); k přijatému chybovému kódu je přičteno
50H |
FFH |
time out |
Poruchová hlášení
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.
Sekce [comm]
Tato sekce slouží k nastavení parametru komunikace.
Podrobný popis je uveden v dokumentaci ovladače ASCDRV, který
je součástí systému Control Web.
Příklad:
[comm]
baudrate = 9600
parity = none
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 = 5
rx_char_timeout = 5
rx_timeout = 2
tx_char_timeout = 2
tx_timeout = 2
Příklad definice parametru sériové komunikace přímo
v souboru parametrů ovladače galaxy:
Sekce [Melsec]
Tato sekce obsahuje parametry, které slouží ke
konfiguraci ovladače z hlediska řízení komunikace mezi
počítačem a ústřednou. Následuje jejich výčet a
popis:
ComDriver Parametr definuje jméno ovladače
sériového rozhraní a jméno komunikačního portu. Pro
standardní rozhraní počítače COM1 až COM4 je použit
systémový ovladač CWCOMM.DLL a COM1 až COM4.
Timeout Parametr definuje dobu čekání ovladače
na odpověď podřízené stanice. Nepřijde-li do této doby
odpověď požadavek se opakuje podle parametru NumRepeat.
Nedojde-li ani poté odpověď je hlášena chyba komunikace.
Tento údaj se zadává v milisekundách.
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 a povolit zobrazovaní stavu
ovladače v okně ovladače.
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
'galaxy.log'.
InitDisable Tento parametr zablokuje činnost
ovladače při startu aplikace obdobně jako kanál č. 1.
Použitím tohoto kanálu je možné v průběhu aplikace ovladač
opět spustit.
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.
Prefer Pomocí tohoto parametru se dá měnit
priorita řazení požadavků na komunikaci. Přípustné jsou
hodnoty read, write, change, none. V případě 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 parametru v sekci [Melsec] a jejich možné
hodnoty:
[Melsec]
ComDriver = <ComDrvName>, <ComPort>
Timeout = <Number>
NumRepeat = <Number>
Debug = true | false
DebugOutput = <String>
InitDisable = true | false
ReadBack = true | false
Prefer = read | write | change | none
<Number> - číselná hodnota, při použití hexadecimálního zápisu uveďte za číslem znak H
<ComDrvName> - jméno DLL knihovny, která zprostředkovává komunikaci přes sériové rozhraní, standardně CWCOMM
<ComPort> - jméno sériového rozhraní (COM1, COM2, ...)
Příklad:
[Melsec]
ComDriver = cwcomm, com2
Timeout = 1000
NumRepeat = 1
Debug = true
DebugOutput = TRACE.TXT
InitDisable = false
ReadBack = false
Prefer = read
Příklad parametrů v sekci [Melsec]:
Sekce [Controllers]
V této sekci se definují připojené automaty s jejich
parametry a komunikované datové oblasti. Uvedením klíčového
slova Controller je zahájena definice parametrů a datových
oblastí daný automat až do konce souboru nebo výskytu dalšího
klíčového slova Controller. Základní parametry automatu jsou
uvedeny hned za tímto klíčovým slovem a to v rozsahu:
Controller = <CPU>, <adr>, <st>, <prt>, <wt>, <st>
Parametr | Význam |
---|
CPU | verze procesorové jednotky "A1S" pro skupinu ACPU,
"AnA" pro skupinu AnACPU nebo "FXnet" pro řadu FX. | adr | adresa přijímací stanice ( PC musí mít hodnotu 255
) | st | adresa automatu | prt | číslo 1..4 pro volbu protokolu ( protokol 3
nepodporuje RS485 ) | wt | zpoždění odpovědi automatu 0..150 v
milisekundách | st | číslo prvního stavového kanálu |
Za definicí kontroleru může následovat aktivace 'sleep
modu' nebo definice datových oblastí. Je-li aktivován sleep
režim klíčovým slovem SleepMode, chová se ovladač tak, že
pokud od daného automatu dojde bezprostředně za sebou
"num_timeouts"-krát k chybě timeout, přestane se pokoušet
navázat spojení s daným automatem po dobu uvedenou v parametru
"sleep_time" ( čas se uvádí v sekundách ).
SleepMode = <sleep_time>, <num_timeouts>
Definice přístupných datových oblastí je prováděna zápisem
Block dle následujícího předpisu:
Block = <chan>, <dev1>, <dev2>, <typ>
Parametr | Význam |
---|
chan | číslo prvního kanálu | dev1 | počátek datové oblasti ( D125, M48, ...; pro bitové
registry musí být číslo zarovnáno na celistvé násobky 16
) | dev2 | konec datové oblasti | typ | typ dat (viz. nasl. kap.) |
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.
Způsob zápisu parametrů a jejich možné hodnoty:
[Controllers]
Controller = <TypCPU>, <PCNumber>, <StationNumber>, <Protocol>, <WaitTime>, <FirstStatChan>
[SleepMode = <SleepTime>, <NumTimeouts>]
Block = <Chan>, <BeginDevice>, <EndDevice>, <DataType>
Block = ...
[Controller = ...
...
<TypCPU> - typ procesoru - A1S | AnA | FXNet
<PCNumber>
<StationNumber> - adresa, číslo v rozsahu 0 až 255 ( 0 až 0FFH )
<Protocol> - typ komunikačního protokolu, číslo v rozsahu 1 až 4
<WaitTime> - doba zpoždění odpovědi automatu, číslo v rozsahu 0 až 150
<FirstStatChan> - číslo prvního kanálu se statistikou o komunikaci
<SleepTime> - doba spánku ve 'sleep módu' v sec
<NumTimeout> - počet chyb typu timeout pro přechod do 'sleep módu'
<Chan> - číslo prvního kanálu pro definovaný datový blok
<BeginDevice>
<EndDevice> - označení počátku a konce datové oblasti
<DataType> - datový typ pro reprezentaci datové oblasti
Příklad:
[Controllers]
Controller = A1S 0 0FAH 4 60 1000
Block = 100, D0, D50, W
Block = 200, D50, D90, LI
Controller = AnA 2 0FBH 4 60 1000
Block = 500, D0, D50, W
Block = 600, D50, D90, LI
Block = 700, M0, M160, B
Příklad parametrů v sekci [Channels]:
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 |
typ |
velikost (bytes) |
poznámka |
B |
boolean |
1 bit |
|
S |
byte |
1 |
|
SI |
short int |
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 |
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.
*.DMF soubor
Soubor s definicí kanálů pro Control Web musí korespondovat
s nastavením v parametrickém souboru a ctít datovou
konverzi.
|