Ovladač slouží ke komunikaci s PLC Simatic řady 200 přes sériové rozhraní. Ovladač komunikuje s automatem prostřednictvím PPI protokolu. Ovladač může vystupovat jako master nebo jako slave.
Ovladač slouží ke komunikaci s PLC Simatic řady 200 přes sériové
rozhraní. Ovladač komunikuje s automatem prostřednictvím PPI
protokolu. Ovladač může vystupovat jako master nebo jako slave.
V módu slave se ovladač chová podobně jako PLC v módu slave s
tím rozdílem, že reaguje pouze na požadavky o čtení a zápis dat.
Ovladač emuluje všechny paměťové oblasti PLC. Narozdíl od PLC se zde
neuplatňují rozdíly v přístupových právech k jednotlivým paměťovým
oblastem. To znamená, že ze všech paměťových míst lze jak číst, tak
do nich zapisovat. Vzhledem k aplikaci se potom ovladač v módu slave
chová tak, že při požadavku na čtení kanálu nevyvolá komunikaci s
danou stanicí, ale vrátí okamžitě hodnotu z uvedené oblasti
emulované paměti PLC. Při zápisu je tomu obdobně. Uživatel má
možnost měnit mód ovladače za běhu aplikace pomocí volání systémové
DriverQueryProc funkce.
Seznam sekcí: - Datové typy
- Vlastnosti ovladače
- Informační kanály a služby ovladače
- Problematika více master stanic v jedné síti :
- Popis parametrického souboru
Datové typy
Ovladač využívá ke komunikaci služby pro čtení a zápis dat. Ke
komunikaci s PLC jsou využívány tyto datové typy : byte, word,
dword, counter, timer a high speed counter. Navenek má uživatel k
dispozici tyto datové typy :
Pomocí těchto typů definuje uživatel, jakým způsobem budou data
získaná z PLC prezentována. Například u typu float se z PLC
přečtou pro každý čtený kanál 4B a ty se posléze prezentují jako
reálná čísla. U typu bitset se přečte pro každých 8 binárních
kanálů 1B. Stav jednotlivých bitů v bytech se promítne do
příslušných osmic kanálů.
Vlastnosti ovladače
V módu master ovladač shromažďuje jednotlivé požadavky na čtení
nebo zápis kanálů. Po skončení časového kroku se požadavky
vyhodnocují a skládají do bloků podle toho, jak jsou definované v
parametrickém souboru.
Čtení: Komunikuje se vždy první až poslední požadovaný
kanál z bloku definovaného v parametrickém souboru. Bude-li
aplikace číst v jednom časovém kroku kanály 110, 120 a 130 z
bloku kanálů 100-160, způsobí tím komunikaci 21 kanálů (kanály
110 až 130). Pokud by byly kanály 110, 120 a 130 každý v jiném
bloku, ovladač by je komunikoval postupně, napřed jeden kanál
110, pak 120 a nakonec kanál 130. Z toho plyne, že pokud je
potřeba přenášet větší množství dat ze spojité paměťové oblasti
PLC je výhodné mít kanály mapující tuto oblast definované v
jednom bloku parametrického souboru.
Zápis: Při zápisu se ovladač chová podobně jako při čtení
dat, pouze s tím rozdílem, že se nekomunikuje první až poslední
požadovaný kanál, ale pouze spojité bloky dat. Bude-li mít
ovladač v jednom časovém kroku požadavky na zápis kanálů
100-110, 125 a 127 z jednoho bloku, vyvolá s PLC celkem 3
komunikace. V první zapíše obsah kanálů 100-110, ve druhé obsah
kanálu 125 a nakonec kanál 127. V módu slave ovladač
nekomunikuje s PLC, pouze podle požadavků čte nebo zapisuje data
emulované paměti PLC.
Informační kanály a služby ovladače
K sledování průběhu a kvality komunikace slouží informační
kanál s číslem 0. Kanál je typu real a je určen pouze pro čtení.
Při každém čtení kanálu v něm ovladač vrací vždy aktuální chybový
kód. Seznam chybových kódů.
Čtení/zápis data a času :
Uživatel má možnost z aplikace zapsat do libovolné stanice
lokální čas. Lokální čas je složen z roku, měsíce, dne,
hodiny, minuty, sekundy a dne v týdnu. Lokální čas ovladač
získá prostřednictvím služby operačního systému. K zápisu
lokálního času do PLC slouží procedura ovladače, která má
následující syntax:
system.DriverQueryProc( 'jméno ovladače', Parametr2, Parametr3 );
První parametr je jméno ovladače( je definováno v sekci
drivers - end_drivers ). Druhý parametr je řetězec, který
identifikuje danou službu.Je to :
Po příchodu požadavku na zápis času ovladač nejprve dokončí
všechny požadavky na zápis a čtení dat. Tato operace může
trvat řádově až sekundy. Potom ovladač zapíše lokální čas do
požadované stanice. Příklad zápisu a čtení datumu a času :
system.DriverQueryProc( 's200ppi', 'set_time', 1 ); (* zapiš čas na stanici 1 *)
system.DriverQueryProc( 's200ppi', 'get_time', 1 ); (* přečte čas ze stanice 1 *)
Pro vyčtení právě získaného času slouží kanály 1-7. Jsou v
nich uloženy následující údaje :
Po startu aplikace jsou hodnoty těchto kanálů nastaveny na
nulu a to až do prvního úspěšného přečtení datumu a času z
PLC.
Ladící výpisy :
Pro potřeby ladění komunikace mezi PLC stanicemi a
ovladačem lze použít ladící výpisy. Lze je za běhu aplikace
libovolně programově zapínat a vypínat.
system.DriverQueryProc( 's200ppi', 'start_xtrace', 0 ); (* zapne výpisy *)
system.DriverQueryProc( 's200ppi', 'stop_xtrace', 0 ) ; (* vypne výpisy *)
- Výpisy se ukládají do textového souboru, který se
vytvoří v kořenovém adresáři disku C.
Problematika více master stanic v jedné síti :
Jak už bylo řečeno dříve, ovladač může vystupovat v síti jako
plnohodnotná slave stanice. V tomto případě není s více master
stanicemi žádný problém. Problém může nastat, pokud je ovladač v
módu master. Pokud komunikuje s více stanicemi a některá z nich
potřebuje občas komunikovat s jinou stanicí (být na chvíli master)
musí se tento stav dobře časově sesynchronizovat s aplikací. Pokud
z aplikace do ovladače nechodí žádné požadavky na zápis nebo čtení
dat, nevyvolává ovladač žádnou komunikaci a nechává linku volnou.
V tomto okamžiku mají prostor jiné master stanice, které mohou
podle potřeby komunikovat. Pokud ale je na síti master stanice,
která komunikuje nepřetržitě (např Siemens TD200) nemá ovladač
žádnou možnost, jak komunikovat s jednotlivými stanicemi,
komunikace se tedy nepodaří. Následující diagram znázorňuje jedno
z možných časových rozvržení komunikací více master stanic :
Popis parametrického souboru
Parametrický soubor sestává ze tří sekcí. První sekce [comm]
slouží k nastavení parametrů komunikace. Podrobný popis je uveden
v dokumentaci ovladače ASCDRV, který je součástí systému
Control Web. Druhá sekce [S200PPI] slouží k
nastavení parametrů ovladače. Význam jednotlivých parametrů:
V sekci [BLOCKS] jsou definovány jednotlivé datové bloky.
block: Definice bloku. Blok má šest povinných a jeden
nepovinný parametr, které se oddělují mezerou nebo čárkou.
Význam parametrů bloku je následující:
Parametr 1: Stanice, se kterou bude blok
spojován.
Parametr 2: První kanál bloku.
Parametr 3: Počet kanálů bloku.
Parametr 4: Typ přenášených dat. Povoleny jsou
následující typy : 'bit', 'byte', 'word', 'dword', 'bitset',
'real'.
Parametr 5: Paměťová oblast, se kterou bude kanál
spojován. Podporovány jsou následující paměťové oblasti :
'S', 'SM', 'AI', 'AQ', 'C', 'T', 'HC', 'I', 'Q', 'M',
'V'.
Parametr 6: Offset v paměťové oblasti, od kterého se
budou data zapisovat nebo číst. Offset je udáván v
bytech.
Parametr 7: 'swap' - tento parametr je nepovinný.
Pokud je uveden, budou se vzájemně zaměňovat vyšší a nižší
byte přenášených dat.
Příklad bloku pro PLC s adresou 25, se kterým budou
komunikovány kanály 100 .. 1100 typu real do paměťové oblasti V
na offset 50: block = 25, 100, 1000, real, V, 50 Příklad
parametrického souboru: [comm]
baudrate = 9600
databits = 8
parity = even
stopbits = 1
rx_buffer = 500
tx_buffer = 500
rx_frame_buffer = 500
tx_frame_buffer = 500
cts_flow = disable
dsr_flow = disable
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
[S200PPI]
ComDriver = cwcomm, com2
TIMEOUT = 1000
REPEAT = 1
MODE = master
[BLOCKS]
block = 3, 10, 1, byte, V, 2
block = 3, 11, 1, byte, V, 10
block = 3, 50, 8, bitset, Q, 0
block = 3, 70, 8, bitset, I, 0
block = 3, 90, 8, bitset, V, 1
block = 3, 500, 48, bitset, SM, 0
block = 3, 600, 10, dword, T, 0
block = 3, 610, 10, word, C, 0
block = 3, 620, 10, dword, HC, 0
block = 3, 1000, 1000, byte, V, 20
block = 3, 2000, 1000, byte, V, 20
|