Ovladač SAIA slouží pro komunikaci mezi jednou nebo více
stanicemi SAIA®PCD a systémem Control Web.
Ovladač SAIA slouží pro komunikaci mezi jednou nebo více stanicemi
SAIA®PCD a systémem Control Web.
Vlastnosti ovladače
Ovladač umožňuje připojení jedné nebo několika stanic
SAIA®PCD k systému Control Web. Ovladač používá
standardní sériové rozhraní počítače nebo síťovou komunikaci
TCPIP. Jedna instance ovladače používá jedno sériové rozhraní
(COM port). Přes jedno sériové rozhraní může být připojeno více
stanic (při použití rozhraní 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čů. U komunikace TCPIP je možno
použít jednu instanci ovladače pro spojení s několika stanicemi.
Pomocí ovladače je možno číst nebo zapisovat data z registrů
(R), časovačů (T), čítačů (C), binárních výstupů(O) a
příznaků(F). Je možno přečíst nebo zapsat časový údaj (K) a dále
je možno přečíst hodnoty binárních vstupů (I), registr displeje
(D) a stav CPU (S). 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ů vyhrazenu pro speciální informace,
proto doporučujeme, aby definované kanály začínaly od čísla 100.
Registry (R) stanice je možno interpretovat různým způsobem.
Jeden registr může obsahovat jednu, dvě, nebo čtyři číselné
hodnoty různých typů, které se mapují do jednoho, dvou nebo čtyř
kanálů (vždy typu real). Dále je možno s jedním registrem
pracovat jako s jední kanálem typu boolean nebo s 32 kanály typu
boolean.
Upozornění: Ovladač potřebuje ke své činnosti programovou podporu
firmy SAIA-Burgess. Tato podpora je zvláštní součástí instalace
ovladače a instaluje se samostatně. Programovou podporu není třeba
instalovat, pokud se již na počítači vyskytuje např. v rámci
programovacích nástrojů PG5 od firmy SAIA-Burgess nebo jako
součást některého OPC serveru.
Seznam sekcí: - Vlastnosti ovladače
- Parametry ovladače
- Přehled datových typů ovladače
- Vyhrazené kanály ovladače
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.
Sekce [ComPort]
V této sekci se nastavují parametry komunikace. Způsob
zápisu parametrů a jejich možné hodnoty:
[ComPort]
DriverPath = <String>
Com = COM | SOCKET | PC104 | USB
Device = <Number>
Protocol = sbus | p800
SBusMode = parity | break | data
PGU = true | false
BaudRate = <Number>
TsDelay = <Number>
TnDelay = <Number>
Timeout = <Number>
Parametr | Význam |
---|
String | textový řetězec | Number | číselná hodnota. |
Význam parametrů:
DriverPath | umožňuje nastavit cestu k souborům programové podpory
firmy SAIA-Burgess v případě, že se tyto soubry nenajdou
automaticky. | Com | určuje jméno komunikačního rozhraní. Hodnoty
parametru jsou
COM - pro standardní sériový
port
SOCKET - pro síťové rozhraní
TCP/IP
PC104 - pro PC/104
komunikaci
USB - pro komunikaci přes
USB
| Device | udává číslo sériového rozhraní (má význam ve spojení
s parametrem COM) | Protocol | definuje použitý komunikační protokol | SBusMode | nastavuje mód pro protokol S-BUS | PGU | nastavuje mód komunikace PGU na vybraném portu
(parametr Com) | BaudRate | udává komunikační rychlost | TSDelay | definuje tzv.training sequence delay | TnDelay | definuje tzv. turnaround time | Timeout | udává dobu čekání na odpověď stanice |
Sekce [Channels]
V této sekci se definují bloky kanálů ovladače. Jednotlivým
datovým oblastem (media) 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 (media), počáteční adresou
v dané oblasti a pro oblast registrů (R) 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 - jsou vytvořeny dva zvláštní
bloky, jeden pro čtení, druhý pro zápis.
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 S-BUS je možno
přenést v jednom bloku maximálně 32 registrů). 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:
[Channels]
Block = <Station>, <ChannelFrom>, <ChannelTo>, <Media>, <Offset> [, <SubType>] [, Bidirect] [;<Comment>]
Block = ...
...
Parametr | Význam |
---|
Station | adresa stanice. Je-li vybrán port SOCKET, je parametr
Station kombinací čísla stanice, IP adresy a IP portu.
Adresa stanice a IP adresa jsou odděleny znakem "@", IP port
musí být oddělen od IP adresy dvojtečkou. IP port je
nepovinný, je-li roven hodnotě 5050. Příklad zápisu IP
adresy: 01@10.128.0.17:5051. | ChannelFrom | počáteční kanál bloku (číslo) | ChannelTo | poslední kanál bloku (číslo) | Media | oblast ve stanici (R,T,C,F,I,O,S,D,K) | Offset | adresa prvního elementu ve stanici odpovídající
prvnímu kanálu bloku | SubType | datový typ pro oblast registrů (uint, int, bool,
bits, float, uint16, int16, uint8, int8) | Bidirect | parametr určuje, že definovaný blok je určen pro
čtení i pro zápis (bidirect). Není-li uveden, je možno z
bloku číst nebo do něj zapisovat, ale při současném čtení a
zápisu nemusí být do stanice zapsána správná data. | Comment | komentář začínající středníkem |
Sekce [Options]
Tato sekce má jediný parametr - 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.
[Options]
FinalizeAfterEachBlock = false | true
Přehled datových typů ovladače
Media |
Typ |
Počet kanálů v registru |
Popis |
R |
uint |
1 |
32-bitová hodnota bez znaménka |
R |
int |
1 |
32-bitová hodnota se znaménkem |
R |
float |
1 |
32-bitová real hodnota |
R |
uint16 |
2 |
dvě 16-bitové hodnoty bez znaménka |
R |
int16 |
2 |
dvě 16-bitové hodnoty se znaménkem |
R |
uint8 |
4 |
čtyři 8-bitové hodnoty bez znaménka |
R |
int8 |
4 |
čtyři 8-bitové hodnoty se znaménkem |
R |
bool |
1 |
jedna boolean hodnota v jednom registru |
R |
bits |
32 |
32 boolean hodnot v jednom registru |
T,C |
|
1 |
32-bitová hodnota bez znaménka |
F,I,O |
|
1 |
boolean hodnota |
S |
1 |
stav CPU: |
PCD_OFFLINE = 0 |
PCD_DISCONN = 1 |
PCD_RUN = 2 |
PCD_STOP = 3 |
PCD_HALT = 4 |
PCD_CRUN = 5 |
PCD_BADSTAT = 6 |
PCD_CSTOP = 7 |
PCD_TRACE = 8 |
PCD_FWBOOT = 9 |
D |
|
1 |
obsah registru displeje |
K |
8 |
časový údaj, který se předává v 8 kanálech v
pořadí: |
týden roku |
den týdne |
rok |
měsíc |
den |
hodina |
minuta |
sekunda |
Datové typy ovladače
Vyhrazené kanály ovladače
Ovladač předává informace o stavu komunikace prostřednictvím
zvláštních kanálů, které jsou mapovány do intervalu 1 až 100.
Dojde-li k chybě komunikace, je vygenerována vyjímka ovladače a z
jednotlivých kanálů je možno zjistit různé údaje, které blíže
specifikují chybu. Kanál č.1 rozlišuje, jedná-li se o chybu při
čtení nebo při zápisu. Skupina kanálů č.10 až 18 doplňuje údaje o
chybě při čtení resp. 20 až 28 při zápisu.
Číslo kanálu - význam |
Typ kanálu |
Poznámka |
Společné |
1 - druh výjimky |
real input |
bit 0 = chyba při čtení |
bit 1 = chyba při zápisu |
Operace čtení |
10 - adresa stanice |
real input |
|
11 - kód chyby |
real input |
|
12 - popis chyby |
string input |
v anglickém jazyce |
13 - počet chyb |
real input |
|
14 - první kanál bloku |
real input |
|
15 - poslední kanál bloku |
real input |
|
16 - čtená oblast - media |
real input |
|
17 - nulování popisu chyby |
boolean output |
|
18 - nulování počtu chyb |
boolean output |
|
Operace zápis |
20 - adresa stanice |
real input |
|
21 - kód chyby |
real input |
|
22 - popis chyby |
string input |
v anglickém jazyce |
23 - počet chyb |
real input |
|
24 - první kanál bloku |
real input |
|
25 - poslední kanál bloku |
real input |
|
26 - zapisovaná oblast |
real input |
|
27 - nulování popisu chyby |
boolean output |
|
28 - nulování počtu chyb |
boolean output |
|
Vyhrazené kanály
Kódy oblastí (media) v PLC (kanál 16 a
26) Hodnota | Význam |
---|
1 | R | 2 | T | 3 | C | 4 | F | 5 | I | 6 | O | 7 | S | 8 | D | 9 | K |
Kódy chyb - převzaty z původní dokumentace ke komunikační
knihovně SCOMM32
PCD_OK = 0 Communications OK
PCD_NAK = 1 NAK response, command not accepted
PCD_COMERR = 2 Comms error, parity, framing or overrun
PCD_BCCERR = 3 Invalid BCC or CRC, no other errors
PCD_INVALID = 4 Invalid response
PCD_P8CONN = 5 Bad connection between P800 and PCD6
PCD_NORESP = 6 No response
PCD_NOCTS = 7 Clear To Send signal not returned
PCD_NODCD = 8 No Data Carrier Detect
PCD_INUSE = 9 Port in use in another mode or baud rate
PCD_BADPARM = 10 Bad parameter
PCD_VERIFERR = 11 PCD memory write verify error
PCD_OUTOFMEM = 12 IBM PC out of memory
PCD_WRONGCPU = 13 Physically connected to wrong CPU on PCD6
PCD_NOCPU = 14 CPU not present
PCD_UNKNOWN = 15 Unknown error
PCD_DIFF = 16 Files & CPU don't compare
PCD_CANTOPEN = 17 Can't open file
PCD_WRERROR = 18 Error writing to file
PCD_RDERROR = 19 Error reading file
PCD_BADFILE = 20 Invalid absolute object file
PCD_CSERROR = 21 PCD file checksum error
PCD_BADHDR = 22 Invalid header in PCD
PCD_CODESIZE = 23 Code will not fit in memory
PCD_TEXTSIZE = 24 Text
PCD_EXTSIZE = 25 Extension memory data
PCD_NOTINIT = 26 Header not initialized
PCD_EPROM = 27 Can't write to EPROM memory
PCD_CANCEL = 28 Operation cancelled by user
PCD_NOTDEF = 29 Block not defined
PCD_RUNNING = 30 CPU must be in Stop or Halt
PCD_NOTPROG = 31 CPU not programmed
PCD_NOPORT = 32 COM port not present or in use by mouse
PCD_NOSTN = 33 Can't connect to S-BUS station
PCD_NOCHGEXT = 34 Can't change size of extension memory
PCD_NOTOPEN = 35 COM port is not open
PCD_TXERROR = 36 WriteComm() failed (invalid nCid)
PCD_COMBUSY = 37 Port request timeout
PCD_BADVER = 38 Invalid MS-Windows version
PCD_TIMERS = 39 Too many timers
PCD_LOCKED = 40 Port is in use
PCD_ANSWERED = 41 Incoming call has just been answered
PCD_OFFHOOK = 42 Incoming call is connected
PCD_ONHOOK = 43 No incoming call
PCD_BUG = 44 Fatal internal error
PCD_NOTSUP = 45 Operation not supported by PCD F/W version
PCD_ALRDYDEF = 46 Station number already defined
PCD_EXTHDR = 47 Not enough space for extended header
PCD_BADPWRD = 48 Invalid password
PCD_EXTHDRCS = 49 Extended header checksum error
PCD_WRONGSTN = 50 Download to wrong S-BUS station
PCD_WRONGFW = 51 Download to PCD with wrong firmware
Příklad souboru parametrů pro komunikaci přes sériové
rozhraní
[ComPort]
DriverPath = C:\Program Files\Saia-burgess\SAIA Communication Driver\1.4
Com = COM
Device = 1
Protocol = SBUS
SBusMode = Parity
BaudRate = 38400
Timeout = 200
PGU = false
[Channels]
Block = 00, 100, 109, R, 0, int, bidirect
Block = 00, 110, 119, R, 10, int8, bidirect
Block = 00, 200, 263, R, 0, bits, bidirect
Block = 00, 900, 900, S, 0
Block = 00, 901, 901, D, 0
Block = 00, 910, 917, K, 0, bidirect
Block = 00, 1000, 1007, O, 32, bidirect
Block = 00, 1100, 1107, I, 32
Block = 00, 1200, 1207, F, 0
Příklad souboru parametrů pro síťovou komunikaci
[ComPort]
Com = SOCKET
Protocol = SBus
SBusMode = Parity
BaudRate = 38400
Timeout = 500
[Channels]
Block = 0@10.128.0.17, 100, 109, R, 0, int, bidirect
Block = 0@10.128.0.17, 110, 119, R, 10, int8, bidirect
Block = 0@10.128.0.17, 200, 263, R, 0, bits, bidirect
Block = 0@10.128.0.17, 900, 900, S, 0
Block = 0@10.128.0.17, 901, 901, D, 0
Block = 0@10.128.0.17, 910, 917, K, 0, bidirect
Block = 0@10.128.0.17, 1000, 1007, O, 32, bidirect
Block = 0@10.128.0.17, 1100, 1107, I, 32
Block = 0@10.128.0.17, 1200, 1207, F, 0
|