Spojení HMI panel Siemens TP 177B a Arduino

  • úterý, 01 prosinec 2020 07:26

Spojení Arduino a profesionální HMI dotykový panel Siemens. Není to zase až tak úplně nemožný požadavek, kolega K.P. nám poslal ukázku, jak na to.


Arduino UNO, pro spoustu školáků, programátorů a hlavně všech co se zabývají programováním je tohle nejdostupnější zařízení. Existuje okolo něj hodně stránek a různých fór s radami a hotovými příklady a manuály.
Pokud chceme z Arduina pouze nějaké textové hlášení, je to jednoduché. Použije se dvou- nebo čtyř- řádkový displej, a s trochou programování se s tím dá poradit.

hmiarduino 01


Ale pokud potřebujeme grafy, vylepšenou grafiku, a tak dále, je to už potíž. Nemluvě o velikosti displejů.
Siemens panely již od dob Protool podporují připojení Modbus, a nejinak je tomu i ve WinCC Flexible nebo TIA portálu.
Platí, že pokud mají příslušný konektor (Canon 9), tak umí připojení Modbus. Existují ovšem výjimky, například Micro Panely 70 a 170, proto doporučuji ověřit v manuálu od konkrétního HMI.
Funkční sestava s HMI panelem TP 177B 4" color PN/DP.

hmiarduino 02


Na Internetu je opět spousta návodů, a vyznat se v nich není nic jednoduchého. Vyzkoušel jsem několik možností, a žádný mi nevyhovoval. Všechny totiž používaly připojení přes RS485, ale komunikace ze strany Arduino nebyla kvalitní, kousala se. Pak jsem zkusil RS422, a problém byl vyřešen! Použil jsem převodník TTL <-> RS422.
RS422 na rozdíl od RS485 používá pro komunikaci čtyři vodiče plus GND.

hmiarduino 03


Pro veškerou sériovou komunikaci je nutné dodržet správné zapojení jednotlivých pinů jak na straně HMI tak na straně Arduina. Velmi častá příčina nefunkční komunikace je právě špatné zapojení.
Na SW straně Arduina je použita knihovna "Modbus Slave RTU Library RS232". Arduino je Slave, panel je Master. Knihovna ke stažení tady.

hmiarduino 04


Na straně Siemens ať už s WinCC Flexible nebo TIA Portal musíme také dodržet správné nastavení komunikace.
Připojení je možné rychlostí 9600 kB nebo 19200 kB - zdá se to málo, ale věřte, že to stačí. U Arduina nebude těch tagů tolik jako v případě PLC Simatic.
Klikněte na obrázek pro zvětšení

hmiarduino 05b


Zmiňované poruchové hlášení a jeho parametrizace. Jeden byte na ukázku stačí.

hmiarduino 06


Čtvrtý bit pro vyvolání hlášení poruchy 4.

hmiarduino 07


No a to hlavní je nastavení tagů a jejich adres ve WinCC Flexible pro HMI do PLC.

hmiarduino 08


Adresy proměnných deklarované v Arduino na které bude přistupovat HMI panel. Arduino může tyto tagy číst i zapisovat, panely můžou číst vše, ale zapisovat jen do výstupů.
Konfigurace je jednoduchá, jen je nutné dodržet parametry komunikace a adresu Arduina.
Poznámka: Je taky možné si nalinkovat přímo vstupy a výstupy, a samotný program realizovat pomocí skriptů přímo v panelu.
Klikněte na obrázek pro zvětšení

hmiarduino 09b


Následně na obrazovce HMI panelu.

hmiarduino 11


Myslím že není potřeba žádné komentáře.
V úvodu programu pro Arduino si definujeme tagy pro komunikaci, do nich si zapíšeme počáteční hodnoty, a nakonec blikáme vstupem a sčítáme dvě hodnoty.
na HMI pak uvidíme blikání kolečka, součet čísel a poruchové hlášení.

hmiarduino 10


Na videu je také viditelná komunikace ze strany Arduino a mírně opožděná reakce.
https://www.youtube.com/watch?v=eM-YarMb908&feature=youtube


Download: Uvedenou knihovnu pro Arduino a projekt ve WinCC Flexible si registrovaní čtenáři můžou stáhnout zdarma tady. Z důvodů antispamové ochrany pouze pro registrované čtenáře.


Závěr:
Taky existují panely, které umí také RS232, ty jsem také zkoušel, ale neviděl jsem ve funkčnosti žádný rozdíl. Jen se musí použít převodník TTL <-> RS232. Všechny tyto převodníky lze koupit v Číně již za několik desítek korun i s poštovným.

Použito Arduino Uno a panel TP 177B 4" color PN/DP s WinCC Flexible 2008 SP3 Upd7.

 Jaroslav Blažek


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

Kontakt na autora: kareldeath (@) volny.cz

 

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