Jste zde

Komunikace mezi dvěma S7-1200 pomocí funkce GET/PUT

PLC Simatic S7-1200 disponují velkými komunikačními možnostmi i bez použití komunikačního procesoru, my si vyzkoušíme a ukážeme některé z nich.

Komunikačních možností a variant je u PLC Simatic S7-1200 opravdu celá řada, ale není třeba se děsit, velmi často je to dost podobné a ne vždy se všechny možnosti využívají. Nakonec skončíte u několika základních a basta. Proto se pokusíme ukázat některé nejběžnější, jak se nastaví a jak fungují. Začneme nejpřístupnější komunikační funkcí typu GET/PUT, tedy "vzít" a "položit".

Dvě PLC S7-1200, horní jako PLC_4 s firmwarem 4 a spodní PLC_2 s verzí firmware 2.2. Zapojeny v síti spolu s programovacím PG kde běží TIA Portal V13. Z jednoho PLC budeme potřebovat dostat nějaké proměnné do druhého, a třeba i naopak.

Schematicky to vypadá asi takto. IP adresu 101 má PLC_4, 100 pak PLC_2. Ukážeme si, jak z jednoho PLC vezmeme proměnné a pošleme je do druhého právě přes funkci PUT, tedy položit. Opačná funkce GET je v podstatě stejná, jedno PLC si hrábne do druhého a přečte si proměnné. 

Upozornění, v případě Profinetu ve skutečné aplikaci používejte switch, který je pro Profinet určen, Ethernet totiž není Profinet! 

 

Komunikace můžeme rozdělit do několika variant, podle protokolu a spojení, tedy drátu, po kterém jsou PLC propojeny. Existují omezení co do počtu propojených PLC, viz tabulka. Stačí vědět, že něco takového existuje, pak už si detaily lehce dohledáte.

 

Různé komunikační protokoly vyžadují jiné komunikační programové bloky v PLC programu. Mezi PLC Simatic můžeme použít S7-komunikaci s využitím instrukcí GET/PUT, viz tabulka.

 

Další omezení, nebo spíš parametr komunikace, je velikost přenášených dat v závislosti na účastnících. Pro naše S7-1200 stačí 160 bytes, respektive 240.

Pokud potřebujete více, je možné využít komunikační instrukce vícekrát, nebo přenášet data po částech.

 

V první řadě je nezbytné dostat do projektu v TIA Portal obě PLC. Pro vložení dalšího PLC z jiného projektu, je vhodné použít referenční projekt.

 

Samozřejmě si ověříme, že obě PLC jsou na síti dostupné. 

Můžeme si na každém zablikat stavovými LED.

 

Pak už v síťovém nastavení v projektu spojíme obě PLC a vybereme S7 spojení.

Ve Step7 se tohle dělalo přes NETpro. 

 

Navzdory tomu že již máme PLC graficky propojeny, zbývá ještě upřesnit nové spojení přes nabídku pravého tlačítka myši. 

 

A otevře se nám nabídka dostupných PLC, u nás jen to jedno PLC_2.

Klikněte si na obrázek pro zvětšení.

 

Jestliže pak zvýrazníme vytvořené spojení, máme k dispozici jeho kompletní parametry. Nemusíte se nijak děsit, stačí si to prohlédnout, to důležité bude dále.

Klikněte si na obrázek pro zvětšení.     

 

Local ID je jediný parametr, který budeme potřebovat. Je to v hexa formátu, takže pokud dále v PLC programu napíšete jen 100, nebude to fungovat, komunikační blok vyžaduje formát s "kriminálem".

 

Naprosto nezbytné je pak uložení a nahrání celé konfigurace do PLC. Ve Step7 v NETpro se na tohle dost zapomínalo.

Klikněte si na obrázek pro zvětšení.

 

Zbývá komunikaci rozchodit v PLC programu. Pro každý druh spojení slouží v TIA Portal stejně jako ve Step7 firemní Siemens komunikační bloky, nebo funkce. Jsou dostupné ve složce komunikace pro všechny komunikační možnosti. My si náš blok PUT přetáhneme myší do okna s PLC programem.

Pro ukázku a pochopení jak to funguje, stačí zatím jen funkce PUT, druhá GET je v podstatě stejná. 

 

PUT blok si automaticky vytvoří vlastní instanční datový blok DB10, nebo jaký zvolíme. Zbývá doplnit na vstupy a výstupy správné proměnné. Jestliže si blok rozkliknete, dá se konfigurovat více proměnných pro komunikaci.

 

Detailní význam jednotlivých parametrů bloku PUT najdete v helpu, ale je důležité si uvědomit, že se jedná o asynchronní komunikaci, tedy blok na požadavek na vstupu REQ provede co má, může mu to trvat a také trvá, několik cyklů programu, záleží na velikosti přenášených dat a počtu spojení. Jakmile je hotov, zahlásí to "H" na výstupu DONE. 

Důležité je ID z hardwarové konfigurace v hexa formátu na vstupu ID, dále vstupy ADDR_x udávají místo, kam a kolik se toho do druhého PLC_2 překopíruje. Tento datový blok ve druhém PLC musí existovat, zápis je klasicky s pointerem. Další vstup SD_x udává co se do dalšího PLC_2 překopíruje. My jsme zvolili nějaký MW, vstupní byte a clock memory byte z hardwarové konfigurace, abychom si mohli porovnat rychlost. Tento MB1 máme totiž stejný v obou PLC. Na videoukázce v závěru je přesně vidět, jak to funguje.

 

V online režimu nám to jede jako po másle. Merkr pro začátek komunikace M10.7 spouští PUT funkci náběžnou hranou, takže je samozřejmě nezbytné ošetřit ukončení komunikace, a její start při zapnutí PLC. To je řešeno jinde v PLC programu. Můžete komunikaci vyvolávat třeba ihned po skončení předchozí, nebo po nějaké době, záleží na každém, co potřebuje. 

Co nám říká v proměnné STATUS číslo 19 vidíme níže.  

 

19 hexa ve status wordu bloku PUT z předchozího obrázku je 25 decimálně a pohled do tabulky nám říká, že blok zrovna vykonává, co potřebujeme. 

 

Nakonec se podíváme VAT tabulkou ve druhém PLC_2, zda se nám proměnné z prvního PLC_4 funkcí PUT správně zapisují do datového bloku DB11.

 

Naše GET/PUT komunikace mezi PLC S7-1200 na videoukázce: http://youtu.be/qfMZCWjN3OM?hd=1

 

Závěr:

A je to. Zkuste si to a uvidíte, že to není zas taková věda. Jestliže rozchodíte PUT funkci, tak GET bude hračka. Důležité je pak celou komunikaci synchronizovat tak, aby se Vám jednotlivé funkce nepřekrývaly. Ovšem vyplatí se, vždy si o tom něco přečíst, na webu Siemens a odkazech níže jsou k dispozici i řešené příklady.

Jaroslav Blažek


Doplňující odkazy k článku:

Příklad použití GET/PUT komunikační funkce: http://support.automation.siemens.com/WW/view/en/65975618          

Systémová příručka pro S7-1200: http://support.automation.siemens.com/BR/view/en/36932465

 

Další články o PLC, Scada/HMI, pohonech, software a komponentech nejen pro průmyslové aplikace najdete na http://automatizace.hw.cz

 

 
Hodnocení článku: