Jasně že se nejedná o žádný plnohodnotný SCADA systém, to ale ani nikdo netvrdí a momentálně pro naši aplikaci stačí právě něco jednoduchého, nepotřebujeme nic víc, jen vidět a editovat nějaké proměnné v PLC S7-1200/1500. Jako zkušební PLC posloužilo CPU 1212 s IP 10.100.8.12, rack 0, slot 1, outputs QB0.
Jestliže použijeme data v datovém bloku, zrušíme v jeho vlastnostech optimalizovaný přístup a budeme jeho proměnné adresovat jako dříve v S7-300 a podobně. Tohle je obecně známá věc. V OB1 pak běží tato jednoduchá smyčka v sekundovém přerušení:
L QB 0
+1
T QB0
Dále v TIA Portal musíme mít povolen plný přístup na PLC a uvolněno použití funkcí PUT/GET od vzdáleného partnera.
Klikněte na obrázek pro zvětšení
Stáhneme si pro Windows programovací jazyk Python 3.6.1 (aktuální verzi) podle použitého operačního systému PC a nainstalujeme uživatelkou instalaci podle obrázku.
Download Python here.
V uživatelské instalaci tohle vše necháme instalátor nahrnout na PC.
A ještě i tohle včetně cesty, kterou si samozřejmě zapamatujeme nebo poznačíme, budeme ji potřebovat.
Tak a počkáme v klidu, až se celá instalace dokončí.
Dále budeme potřebovat web framework Karrigell pro Python, stáhneme balíček a rozbalíme adresář na disk, tedy adresář bude C:/Karrigell-4.3.10.
Download Karrigell here.
Pro správné rozbalení tohoto archívu je nutné použít "7-zip" software, download here.
Instalujeme první krok podle návodu readme.md tady.
Ve Windows vyvoláme příkazový řádek přes Windows menu Start -> cmd.exe -> cd c:\Karrigel-4.3.10 -> python setup.py install
Dále instalujeme „Snap7 wrapper for Python“ podle odstavce snap7-python verze s pip, návod zde.
Opět použijeme příkazový řádek Windows menu Start -> cmd.exe -> pip install python-snap7
Nakopírujeme komunikační knihovnu „Snap7.dll“ ze „7z“ souboru snap7-full-1.4.2.7z do adresáře podle použitého OS, pro nás to byla „win64“ verze dll – do „C:\WINDOWS\system32“ protože jsme použili 64bit verzi Pythonu.
Download archív knihovny here.
Pro úplnost stránky hlavní komponenty, která zajišťuje celou S7 komunikaci, najdete zde.
Klikněte na obrázek pro zvětšení
Po dokončení všech instalací máme default adresář WWW serveru.
Zkopírujeme soubor „plc.py“ do adresáře serveru „www“ viz obrázek. To je vlastně prográmek, který nám zobrazí proměnné, dovolí editaci a barví malé okno podle hodnoty proměnné.
Soubor plc.py vypadá tak nějak podobně. Tady si vlastně napíšete co chcete, aby na serveru probíhalo a zobrazovalo se v prohlížeči uživatele. Jetliže si chcete vyzkouše náš příklad, kolegové z IBITEK-Czech Vám poskytli tento soubor ke stažení zde.
A jdeme na to. Spustíme www server z Windows menu Start -> cmd.exe -> cd c:\Karrigel-4.3.10\www -> python server.py
Pokud web server nenaběhne, pravděpodobně to bude již obsazeným portem localhost:80 na kterém poslouchá už jiný program, nejpravděpodobněji SKYPE, je třeba jej ukončit, nejlépe v „Správci Úloh“.
Pokud server běží, spustíme Web prohlížeč na adrese: localhost a dostaneme defaultní stránku Karrigellu.
V řádku prohlížeče zadáme localhost/plc.py/index a dostaneme obrazovku s polem zápisu hodnoty do PLC adresy QB0.
Zapsat hodnotu, pak OK, dostaneme následující stránku s vrácenou hodnotou z PLC z QB0 a podbarveným čtvercem „Color changes …“.
Stisknutím refresh, otevřeme stránku s auto občerstvením hodnot z PLC, kde se mění číselná hodnota a podbarvený čtverec „Color changes …“ podle aktuální hodnoty QB0 z PLC.
Videoukázka příkladu zde.
https://www.youtube.com/watch?v=KcdfptVZ70k&feature=youtube
Závěr:
Uvedený příklad berte jako inspiraci pro tisíce dalších možných aplikací, ne jako skutečné řešení. Funguje to bezvadně a zdarma, takže vzhůru na pokusy. Pokud budete potřebovat ohledně uvedeného řešení radu nebo vytvořit novou aplikaci, kolegové ze společnosti IBITEK-Czech s.r.o. jsou Vám k dispozici na kontaktu níže. Vždycky je totiž něco za něco, jedná se sice o software zdarma, ovšem programování v Python je potřeba se trochu naučit.
Jaroslav Blažek
Doplňující odkazy k článku:
IBITEK-Czech - kontakty přímo tady.
IBITEK-Czech s.r.o.
Podnikatelský inkubátor "Maštaliska"
Horní náměstí 3, 75501 Vsetín, Česká republika
tel.: +420 605 510 903
http://www.ibitek.cz/
info @ibitek.cz (vymažte si prosím mezeru mezi jménem a zavináčem)