Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné shlédnout "
PROMOTIC video kurz 4 - Komunikační ovladače".
Základní vlastnosti ovladače:
- Použití tohoto ovladače vyžaduje zakoupení
licence Pm3964. Při vývoji aplikace ve freeware módu
PmFree nebo s
vývojovou licencí a při jejím testování v runtime je tato komponenta vždy funkční.
- Komunikace je pro sériovou linku (COM1, COM2 ...).
- Komunikace je typu bod-bod, to znamená, že jeden objekt
PmaComm může komunikovat pouze s jedním zařízením (protokol neumožňuje adresaci více zařízení).
3964 je komunikační protokol který slouží pro spojení dvou zařízení. Tento protokol je typu
Master-Slave (to znamená, že obě zařízení se mohou střídat v řízení komunikace). V systému PROMOTIC je tento ovladač implementován takovým způsobem, že může být více objektů
PmaCommMsg typu
Master (viz konfigurátor "
Typ zprávy"), ale
pouze jeden objekt typu
Slave.
Poznámky pro komunikaci typu
Slave v systému PROMOTIC:
Slave zpráva je ta, která nejprve čeká na příjem dat od
Master a pak odpoví. To znamená, že
Master určuje, kdy dojde k přenosu. Protože u objektů v systému PROMOTIC nelze dynamicky měnit počet vysílaných dat (přijatých dat), objekt typu
Slave slouží pouze k příjmu a vysílání dat stejného typu. Nelze tedy mít například dvě
Slave zprávy (dva objekty
PmaCommMsg), přičemž první pouze přijímá data a druhá má data posílat.
Pro správnou odpověď
Slave zprávy je obvykle potřeba využít událost
onDataReceive, která je vyvolána
po příjmu dat ale
před vysláním odpovědi. V této události můžete zjistit (z proměnných v kartě "
Data-příjem") jak se má odpovědět a podle toho nastavit data v kartě "
Data-zaslání".
Protokol
K3964(R) používá mnoho PLC automatů jako například:
- SIMATIC - Firma SIEMENS (buď již má přímo zabudované nebo lze použít komunikační kartu CP525)
- INTECONT - Firma SCHENCK
Doporučené hodnoty parametrů objektu PmaComm:
Rychlost | 9600 Bd |
Počet datových bitů | 8 |
Parita | EVEN (sudá) |
Počet stopbitů | 1 |
Timeout mezi příjmem 2 znaků | 220 ms (podle dokumentace timeout ZVZ) |
---|
Vysoká priorita | Určuje, zda stanice má vyšší prioritu než stanice protější. U protější stanice je nutno nastavit opačnou prioritu. Správné nastavení této volby omezuje možnost vzniku konfliktů na lince. |
S rozšířením RK512 | Povolení/zákaz automatického generování hlaviček zpráv definovaných podle rozšíření RK512. Hlavičky lze vygenerovat stisknutím tlačítka Nastavení dat v parametrech komunikační zprávy. Podrobný popis hlaviček je uveden dál v odstavci "Komunikace s rozšířením RK512". |
Používat kontrolní součet (3964R) | Určuje, zda protokol obsahuje kontrolní součet. Pokud kontrolní součet je povolen, pak bude v protokolu kontrolní součet XOR. Jedná se o protokol 3964R. |
Formát dat | PLC Simatic má uložen datový typ Integer v obráceném pořadí bajtů a datový typ Short v jiném formátu reálného čísla než je standard na počítači. Ovladač proto tyto hodnoty konvertuje.
Pokud však je zvolena volba PC, pak se konverze neprovádí. Je to potřeba například při komunikaci s váhami SCHENCK, kde je formát hodnot stejný jako na počítači. |
Maximální velikost zprávy [v bajtech] | Určuje maximální počet bajtů zprávy (přijímané nebo vysílané) bez kontrolních znaků (tzn. max. velikost dat konfigurovaných v kartách Data-zaslání nebo Data-příjem). |
Timeout potvrzení po STX [ms] | Určuje timeout mezi vysláním znaku STX a příjmem znaku DLE. Je to tzv. timeout QVZ a výchozí nastavení je 2000 nebo 550 ms (záleží na dokumentaci). |
Timeout potvrzení po ETX [ms] | Určuje timeout mezi vysláním dat a příjmem znaku DLE. Standardně by měl být stejný jako "Timeout potvrzení po STX". |
Timeout příjmu odpovědi | Čas (v milisekundách) po který bude ovladač čekat na odpověď při vyslání zprávy.
Pokud do této doby nepřijde vyžádaná odpověď, pak se přenos zprávy ukončí (je vyvolána událost onEndOfTransfer s chybou 24 nebo 66). Je to timeout mezi příjmem DLE po zaslání zprávy a příjmem STX. Standardně by měl být stejný jako "Timeout potvrzení po STX". |
---|
Komunikace bez rozšíření RK512
Typ komunikace
bez rozšíření
RK512 (tzn. čistý protokol
3964) má dost značné omezení co se týče obecnosti přenosu. Lze vysílat a přijímat pouze samotná data bez určení adresy těchto dat. Zpráva typu
Master je proto určena pouze pro zaslání dat a proto by měla být vyplněna pouze karta "
Data-zaslání". Zpráva typu
Slave je určena pouze pro příjem dat a proto by měla být vyplněna pouze karta "
Data-příjem". Obě karty se vyplňují pouze daty které se mají přenést.
Protože v datových kartách se určují pouze skutečně přenášená data které závisí pouze na dané aplikaci, tlačítko "
Nastavení dat"
není přístupné a projektant si data v těchto kartách musí vyplnit sám.
Komunikace s rozšířením RK512
Popis RK512 hlaviček:
Některá zařízení přenášející zprávy protokolem
3964 posílají před "užitečnými" daty hlavičku zprávy. Tato hlavička mívá normovaný tvar. Dále popsané hlavičky lze vytvořit automaticky tlačítkem "
Nastavení dat" v objektu
PmaCommMsg. Aby bylo tlačítko "
Nastavení dat" přístupné, v parametrech protokolu musí být povoleno rozšíření
RK512. Toto rozšíření rozeznává 2 druhy normovaných hlaviček. Dlouhou hlavičku vysílají zprávy typu
Master, její příjem očekávají zprávy typu
Slave. Naopak krátkou hlavičku vysílají jako odpověď zprávy typu
Slave, její příjem očekávají zprávy typu
Master.
Dlouhá hlavička obsahuje následující položky (všechny jsou typu
Byte):
0 - Tg1: (Telegrammkennung) Standardně je zde 0. Pokud je zde hodnota 255, pak to znamená, že zpráva je pokračováním předchozí zprávy a v tom případě hlavička se skládá pouze z prvních čtyřech položek (tehdy je nutno použít tzv. "krátkou hlavičku" - viz dále).
1 - Tg2: (Telegrammkennung) Standardně je zde 0.
2 - Cmd: Příkaz. Asc("A") nebo Asc("O") = SEND, Asc("E") = FETCH. Pokud zasíláme data druhé straně (SEND), pak zde nastavíme 'A' nebo 'O'. Pokud od druhé strany data požadujeme (FETCH), pak zde nastavíme 'E'.
3 - CmdTyp: Typ příkazu, například Asc('D')=datový blok. Standardně nabývá těchto hodnot:
'D' - (Datenbaustein) datový blok (používá se nejčastěji)
'X' - (erweiterter Daten) doplňující DB blok
'E' - (Eingangsbytes) vstupní data
'A' - (Ausgangsbytes) výstupní data
'M' - (Merkerbytes) značky
'Z' - (Zahlerzellen) čítač
'T' - (Zeitzellen) časovač
'S' - (absolute Adressen) absolutní adresa
'B' - (Systemadressen) systémová adresa
'P' - (Peripheriebytes) data periferie
'Q' - (erweiterte Peripherie) rozšířená periferie
4 - Addr1: Cílová adresa (pro SEND) nebo zdrojová adresa (pro FETCH) dat. Nejčastěji zde bývá číslo datového bloku - "DB_Nr. high".
5 - Addr2: Adresa dat. Bývá zde hodnota 0 nebo offset. Nejčastěji zde bývá "DW_Nr. low".
6 - Ndat1: Vyšší bajt počtu přenášených dat. Prakticky vždy zde bude 0.
7 - Ndat2: Nižší bajt počtu přenášených dat. Počet přenášených dat se určuje v bajtech nebo ve slovech.
8 - Koord: Obvykle je zde 255. V jiném případě je to počet bajtů koordinačních značek.
9 - KooCPU: Obvykle je zde 255. V jiném případě:
bit 0-3 = počet bitů koord.značek, jinak 16
bit 4-7 = číslo CPU
Krátká hlavička obsahuje následující položky (všechny jsou typu
Byte):
Tg1: (Telegrammkennung) Standardně je zde hodnota 0. Pokud je zde hodnota 255, pak to znamená, že zpráva je pokračováním předchozí zprávy.
Tg2: (Telegrammkennung) Standardně je zde hodnota 0.
Cmd: Hodnota 0.
Fn: Číslo chyby (Fehlernummer des Partners)
Příklad konfigurace zprávy pro rozšíření RK512:
Zpráva typu
Master zapisující 3 slova na offsety
DW4 až
DW6 do datového bloku 61, tzn.
DB61:
V kartě "
Data-zaslání" jsou proměnné:
Tg1 = 0
Tg2 = 0
Cmd = Asc("A")
CmdTyp = Asc("D")
Addr1 = 61
Addr2 = 4 (1.přenášené slovo je DW4)
Ndat1 = 0
Ndat2 = 3 (přenášíme 3 slova)
Koord = 255
KooCPU = 255
DW4 = 1 (Obsah 1.přenášeného slova, datový typ Integer)
DW5 = 2 (Obsah 2.přenášeného slova, datový typ Integer)
DW6 = 3 (Obsah 3.přenášeného slova, datový typ Integer)
V kartě "
Data-příjem" jsou proměnné:
Tg1 = 0
Tg2 = 0
Cmd = 0
Fn = 0
Další informace
Zjednodušený popis průběhu komunikace:
Následující popis má pouze informativní charakter a projektant tyto informace nemusí vědět. Jedná se o zkrácený popis toho, jak probíhá fyzicky přenos po lince.
Znalosti však mohou sloužit při prohlížení
INFO systému: položky
"COMM/Pm3964", karty "
Monitor".
Předpokládejme, že chceme zaslat data (n bajtů) typem přenosu bez hlavičky (v případě typu přenosu s hlavičkou bychom hlavičku považovali za obyčejná data). V tom případě přenos probíhá následovně:
- STX ------> vyšleme znak STX (02hexa)
- <------ DLE obdržíme odpověď znakem DLE (10hexa)
- 1.bajt ------> vyšleme samotná data
- 2.bajt ------>
- ...
- n.bajt ------>
- DLE ------> vyšleme znak DLE (10hexa)
- ETX ------> vyšleme znak ETX (03hexa)
- BCC ------> vyšleme kontrolní součet (pouze pro protokol 3964R)
- <------ DLE obdržíme odpověď znakem DLE (10hexa)
Příjem znaku
DLE znamená v tom případě kladnou odpověď. Pokud přijde znak
NAK (15hex), pak to znamená zápornou odpověď a vyslání zprávy je opakováno. Proces příjmu zprávy probíhá přesně opačně.
Pokyny při oživování komunikace:
Nejčastější závady při prvních testech komunikace jsou ve špatném zapojení komunikačních kabelů. Pokud je již kabel v pořádku, ale komunikace ještě není funkční, pak je nutno se zaměřit na softwarová nastavení, například:
- Zkontrolovat parametry komunikace (přenosová rychlost, délka dat, parita, počet stopbitů)
- Zjistit zda se jedná o typ přenosu s hlavičkou nebo bez hlavičky
- Zkontrolovat správnost nastavení hodnot v hlavičce (v případě typu přenosu s hlavičkou)
Hodně informací lze vyčíst v položce "
COMM" INFO systému.