Promotic
WikipediaLinkedInYoutubeTwitterFacebook

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é přečíst kapitolu: Komunikace pomocí PROMOTIC ovladačů.
 
Základní vlastnosti ovladače:
- Použití tohoto ovladače je vázáno na zakoupení licence: Pm3964. S freeeware verzí PmFree nebo při vývoji aplikace (s vývojovou licencí pro testovací účely) je tato komponenta funkční vždy.
- Komunikace je přes standardní sériovou linku (COM1, COM2 ...).
- Komunikace je typu bod-bod, tzn. že jedním objektem PmComm lze 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 PmComm.

Ovladač podporuje použití objektu PmCommMsg. Objekt PmCommData nelze používat.

Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "3964 a RK512 protokol"

 
3964 je komunikační protokol sloužící pro spojení dvou zařízení. Tento protol je typu Master-Slave, což 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ů PmCommMsg typu MASTER (viz konfigurátor "Typ zprávy"), ale JEN JEDEN objekt typu SLAVE.
 
Poznámky ke komunikaci typu SLAVE v systému PROMOTIC:

Slave zpráva je ta, která nejdřív čeká na příjem dat od MASTER a pak odpoví. Tzn. že MASTER určuje, kdy dojde k přenosu. Jelikož u objektů v systému PROMOTIC nelze dynamicky měnit počet vysílaných (přijímaných) dat, slouží objekt typu SLAVE pouze k příjmu a vysílání dat stejného typu. Nelze tedy mít například dvě Slave zprávy (dva objekty PmCommMsg), přičemž první jen přijímá data a druhá má data posílat.

Pro správnou odpověď Slave zprávy je většinou potřeba využít událost onDataReceive, která se vyvolá PO příjmu dat ale PŘED vysláním odpovědi. V této události můžete zjistit (z dat záložky Data-příjem) jak se má odpovědět a podle toho nastavit data v záložce Data-zaslání.

 
Sériovou komunikaci s protokolem K3964(R) používá mnoho technologických 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ů:

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 (dle dokumentace timeout ZVZ)
Popis a doporučené hodnoty pro Parametry protokolu:
Vysoká priorita určuje zda stanice má vyšší prioritu než stanice protější. U protější stanice je potom nutno nastavit opačnou prioritu. Správné nastavení této volby omezuje možnost vzniku konfliktů na lince.
S rozšířením RK512povoluje automatické generování hlaviček zpráv definovaných podle rozšíření RK512 Hlavičky lze vygenerovat stlačení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 je kontrolní součet povolen bude v protokolu kontrolní suma XOR. Jedná se o běžně používaný protokol 3964R.
Formát datPLC Simatic má uložen datový typ Integer v obráceném pořadí bytů a datový typ Short v jiném formátu reálného čísla než je standard na PC. 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 PC.

Maximální velikost zprávy [byte]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 záložká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 standardní jsou nastavení 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 [ms]".
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ěď, přenos zprávy se ukončí (vyvolá se 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 [ms]".

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 jen pro zasílání dat a měla by tedy být vyplněna pouze záložka Data-zaslání. Zpráva typu Slave je určena jen pro příjem dat a měla by tedy být vyplněna pouze záložka Data-příjem. Obě datové záložky se vyplňují pouze daty které se mají přenést.

Protože v datových záložká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 záložká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 vytvářet automaticky pomocí tlačítka "Nastavení dat" v objektu PmCommMsg. 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 tomto případě se hlavička skládá pouze z prvních čtyřech položek (tehdy pro 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), nastavíme zde 'A' nebo 'O'. Pokud od druhé strany data požadujeme (FETCH), nastavíme zde '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šší byte počtu přenášených dat. Prakticky vždy zde bude 0.
7 - Ndat2: Nižší byte počtu přenášených dat. Počet přenášených dat se udává v bajtech nebo ve slovech.
8 - Koord: Bývá zde 255. Jinak je to počet bajtů koordinačních značek.
9 - KooCPU: Bývá zde 255. Jinak:
0.až 3.bit = počet bitů koord.značek jinak 16
4.až 7.bit = čí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 tj. DB61:

V záložce 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, typ Integer)
DW5 = 2 (Obsah 2.přenášeného slova, typ Integer)
DW6 = 3 (Obsah 3.přenášeného slova, typ Integer)

V záložce 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 uživatel protokolu 3964 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", záložky "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). Pak přenos probíhá následovně:

 
- STX ------> vyšleme znak STX (02hexa)
- <------ DLE obdržíme odpověd znakem DLE (10hexa)
- 1.byte ------> vyšleme samotná data
- 2.byte ------>
- ...
- n.byte ------>
- DLE ------> vyšleme znak DLE (10hexa)
- ETX ------> vyšleme znak ETX (03hexa)
- BCC ------> vyšleme kontrolní sumu (jen v případě protokolu 3964R)
- <------ DLE obdržíme odpověd znakem DLE (10hexa)

Příjem znaku DLE znamená v tomto případě kladnou odpověd. Pokud přijde znak NAK (15hex), znamená to zápornou odpověd 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ě správně nefunguje, je potřeba se zaměřit na softwarová nastavení, například:

- zkontrolovat parametry komunikace (baudovou rychlost, délku dat, paritu, počet stopbitů)
- zjistit zda se jedná o typ přenosu s hlavičkou či 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 z INFO systému v položce COMM.

© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice