Uživatelská komunikace S7-1200 s použitím TCP protokolu

  • sobota, 16 květen 2015 04:00

Komunikace s použitím TCP/ISO a TCP protokolu přes Ethernet a mnohdy se zařízením, které není Siemens. Je to podobné jako při vytváření komunikačních telegramů třeba pro sériovou linku. Celý protokol si v podstatě vytvoříte sami.

Pro RS232/485 se tohle dělalo u komunikace s cizími zařízeními, celkem běžně. Jediné co bylo potřeba, tak přesný popis ASCII telegramů jak tam, tak i zpět. V případě použití převodníku Ethernet/RS232 by to šlo realizovat i nyní a tím obejít malou vzdálenost sériové linky. Na krátké videoukázce je vidět, jak to frčí.


Takhle by to mělo fungovat, místo konkrétního cizího zařízení na Ethernetu použijeme běžný PC s takovým zajímavým prográmkem.

TCP and ISO on TCP protocols


Musíme nějak komunikaci odchytit, tedy zaznamenat co PLC a PC vysílá a přijímá na Ethernet portu. Ve Windows XP k tomu postačoval prográmek HyperTerminál, který je standardní součástí OS. Pozdější operační systém již tuhle utilitu neměl. My jsme si půjčili zajímavý program Hercules, který má široké možnosti a byl vyvinut v HW group pro ladění jejich modulů. Nám samozřejmě stačí základní testovací funkce, v horní části okna se budou zobrazovat přijaté ASCII znaky z PLC, v dolní pak vysílané znaky do PLC.

TCP and ISO on TCP protocols


Ovládání na HMI panelu se pro odladění ukázalo jako velmi příjemné. Do žlutého R/W pole si vložíme data pro vysílání, v bílém pak uvidíme znaky, které dorazí do PLC, včetně jejich počtu.

TCP and ISO on TCP protocols


Naše PLC je na síti stejně jako HMI panel, to jen pro ověření a můžeme začít.

TCP and ISO on TCP protocols


Do PLC programu pro tuto komunikaci musíme vložit několik programových bloků, jsou označeny. Není třeba dalšího komentáře, ale začneme pěkně postupně.

TCP and ISO on TCP protocols


Jak je vidět z manuálu S7-1200, mohli bychom použít také instrukce _C, ale v rámci objasnění si uděláme všechno jednotlivě krok za krokem.

TCP and ISO on TCP protocols


Ve skutečné aplikaci pak vytvoříme několik datových bloků, které budou poskládány přesně podle komunikačního protokolu připojeného zařízení. Tabulek ASCII znaků je na netu jako máku, ale pozor, spousta jich je nevhodná, nepřesná. Často potřebujeme tabulku, která má prvních 32 znaků s popisem, tedy například 2 = STX = start textu, 4 = EOT = konec přenosu. Záleží na popisu komunikačního protokolu každého zařízení.

TCP and ISO on TCP protocols


V HW konfiguraci TIA Portal nic nenastavujeme, ani nevkládáme žádné zařízení. Máme tam jen naše PLC a HMI, nic víc.

TCP and ISO on TCP protocols


Jedině nám přibyla zmíněná obrazovka na HMI, ze které se bude celá komunikace ovládat.

TCP and ISO on TCP protocols


První systémová funkce TCON slouží k navázání spojení mezi S7-1200 a naším zařízením. Ekvivalent pro ukončení spojení je funkce TDISCON. Veškeré nastavení je uloženo v datovém bloku funkce, jak uvidíme dále není to nic složitého.

Blok pro přerušení spojení TDISCON má jen jeden vstup, jehož aktivací se spojení ukončí, nic se nenastavuje.

TCP and ISO on TCP protocols


Parametry spojení jsou nejdůležitější, všechno co tady nastavíme, se okamžitě zapisuje do zmíněného datového bloku, takže se nemusíme o nic starat. Doplnili jsme jen IP adresy, typ spojení, ID, číslo portu a datový blok pro uložení parametrů spojení.

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

TCP and ISO on TCP protocols


Takto nám to posléze bude chodit. Po navázání spojení se nám náš PC ohlásil řetězcem znaků, jsou vidět na videoukázce a můžete si podle ASCII tabulky rozklíčovat co znamenají.

TCP and ISO on TCP protocols


Spojení jsme navázali a nyní stačí něco z S7-1200 odeslat ven. K tomu slouží blok TSEND. Data které chceme odeslat, máme v DB8 a DB9, kolik znaků PLC odešle je nastaveno v parametru LEN. My jsme si totiž do DB8 nasměrovali pole z HMI, zatímco v DB9 máme natvrdo znaky jako simulaci telegramu. Uvidíme to dále. Všimněme si důležité věci, pokud si přesně nepamatujeme jak se správně zadává proměnná s pointerem, stačí vyplnit číslo DB a délku v konfiguraci bloku a vše se automaticky přenese na jeho vstup. Tohle je velmi užitečná funkce. Teď už jen zbývá na HMI stisknout tlačítko (aktivovat bit na REQ) pro odeslání dat a na HyperTerminálu uvidíme, co k nám dorazilo. Složitější zařízení vyžadují ještě na konci telegramu hodnotu kontrolního součtu, aby se mohla ověřit správnost dat, ale to už je jiná kapitola.

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

TCP and ISO on TCP protocols


Opačný postup s příjmem dat z externího zařízení. Blok TRCV, nastavení obdobné jakou u předešlé funkce. Je vhodné si pro vyzkoušení zaznamenat, že příjem dat proběhl v pořádku a kolik znaků dorazilo.

Výstupní signalizační bit TCRV_NDR je ve stavu H jen jednu dobu cyklu.

TCP and ISO on TCP protocols


VAT tabulka ovládání komunikace v TIA Portal. tady je to přesně vidět, znaky v DB8 jsou z HMI, ale údaje v DB9 již máme nastaveny jako telegram základních znaků. Schází tam samozřejmě řídicí znaky, o kterých byla řeč ze začátku, ale jako příklad to stačí. 005 může být identifikace, s245 třeba otáčky a tak podobně.

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

TCP and ISO on TCP protocols


Přijaté data nám funkční blok TRCV vrhne do patřičného datového bloku, zbývá je jen správně rozklíčovat, což je mnohdy v PLC programu taky složitější operace.

TCP and ISO on TCP protocols


Jednou jsme vyslali z PLC data z DB napojeného na HMI a podruhé ty druhé jak je to vidět v poli přijatých znaků.

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

TCP and ISO on TCP protocols


A můžeme si zkoušet co a jak. Jestliže vytváříme protokol pro skutečnou aplikaci, nemá smysl jej sestavovat u stroje, je mnohem vhodnější si tuto komunikaci odladit takto v klidu na stole.

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

TCP and ISO on TCP protocols


Uživatelská komunikace s použitím TCP protokolu a TCON, TDISCON, TSEND A TRCV

Klikněte si zde pro otevření videa v samostatném okně


Závěr: 

Nabízí se využití třeba pro připojení velkoplošných zobrazovačů, které mají často RS232 rozhraní a jejich umístění v blízkosti PLC je nereálné. Pak pomůže převodník Ethernet/RS232, nebo použít podobné zařízení přímo s Ethernetovým portem.

Jaroslav Blažek


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

Hercules SETUP utility: http://www.hwgroup.cz/products/hercules/index_cz.html       

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

Blaja automation portal

Pro psaní komentářů se přihlašte

Kontakt

email : blaja @blaja.cz
email reklama: info @blaja.cz
email adresy bez mezery 
před zavináčem

Jaroslav Blažek
Štěpánská 1888
755 01 Vsetín
+420 608 180 209