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. |
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. |
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. |
Naše PLC je na síti stejně jako HMI panel, to jen pro ověření a můžeme začít. |
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ě. |
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. |
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í. |
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. |
Jedině nám přibyla zmíněná obrazovka na HMI, ze které se bude celá komunikace ovládat. |
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. |
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í. |
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í. |
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í. |
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. |
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í. |
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. |
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í. |
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í. |
Uživatelská komunikace s použitím TCP protokolu a TCON, TDISCON, TSEND A TRCV
|
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-1200: http://support.automation.siemens.com/BR/view/en/36932465