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.
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.
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.
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.
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í
Zmiňované poruchové hlášení a jeho parametrizace. Jeden byte na ukázku stačí.
Čtvrtý bit pro vyvolání hlášení poruchy 4.
No a to hlavní je nastavení tagů a jejich adres ve WinCC Flexible pro HMI do PLC.
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í
Následně na obrazovce HMI panelu.
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í.
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