Promotic

Pm3964 - Ovladač pro komunikaci s PLC automaty SIMATIC protokolem 3964, 3964R nebo RK-512

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 jen s jedním zařízením (protokol neumožňuje adresaci více zařízení).
- Ovladač je začleněn do systému PROMOTIC pomocí objektu PmaComm.
Ovladač podporuje použití objektu PmaCommMsg. Objekt PmaCommGroup nelze použít.
Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "3964 a RK512"


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 jen 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 (přijímaný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í jen 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:

Doporučené hodnoty pro Parametry sériové linky:
Rychlost9600 Bd
Počet datových bitů8
ParitaEVEN (sudá)
Počet stopbitů1
Timeout mezi příjmem 2 znaků220 ms (podle dokumentace timeout ZVZ)
Popis a doporučené hodnoty pro Parametry protokolu:
Vysoká prioritaUrč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 RK512Povolení/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 datPLC 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 vyslá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 zasílá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 bloku dat - "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.
© MICROSYS, spol. s r.o.