Stiskněte "Enter" pro přeskočení obsahu

PLC Tecomat 1 – Seznámení a první program

5

V záplavě cizích PLCček, programovatelných reléArduin atd. se skoro zapomíná, že i Česká republika má svého výrobce PLC. Je jím Teco a.s. se svým Tecomatem. V běžném životě se s těmito PLCčky lze setkat v automatizaci budov (Foxtrot), v průmyslové sféře v automatizaci strojů (Foxtrot a TC700), nebo jako OEM řízení strojů jako jsou např. tepelná čerpadla. U starších strojů jsou běžné starší verze těchto PLC. Rozhodně se nejedná o nějaké „polovičaté“ PLCčka, ale o konkurenci např. pro Simatic, nebo níže jmenovaný Loxone.

Výhoda pro ty, jenž se rozhodují s kterým PLC začít – je zde komplet česká podpora a dokumentace. Nyní již existuje oficiální fórum a Teco Wiki.

V tomto článku se zaměřím na menší PLC, Tecomat Foxtrot. Jejich použití je možné jak při automatizaci strojů, tak i budov. Samotný Foxtrot často disponuje spoustou sběrnic, které je nutné u jiných výrobců dokupovat. Samotný modul může obsahovat CIB sběrnici pro připojení modulů (CFox) v tzv. chytrých domácností. Případně lze moduly připojit bezdrátově (RFox) a data zobrazovat na operátorském panelu (HMI), nebo jako webovou stránku – modul má vestavěný webserver. Pokud jste někdy slyšeli o Loxone, víte o co jde. Škoda, že není o na Foxtrotu tolik slyšet jako o Loxone – pak když už se někdo rozhodne pro „chytrou“ domácnost shání to, o čem už slyšel. Zdá se, že se Foxtrot prodává pod více značkami a ty samotné jsou asi širší veřejnosti známější.

PLC Teco se konfigurují v programu Mosaic dle standardu IEC 61131–3. Program je možné zdarma stáhnout (verze Lite) na stránkách výrobce a snadno za pár minut nainstalovat. Verzování aplikace je jednoduché. Není to jak Step7 od Siemensu, na který si musíte vzít půl dne dovolené a mít minimálně dvě „vejšky“… V Lite verzi je možné konfigurovat menší z PLC Foxtrot – je však omezen počtem periferií (omezení se vás alespoň ze začátku netýká). Později lze dokoupit hardwarový klíč, nebo single licenci pro jedno PLC. Dále lze na stránkách stáhnout příručky „Začínáme s Mosaicem“ a „Programování podle IEC“, které vyčerpávajícím způsobem popisují konstrukci programu pro tyto PLC.

V žádném případě zde nechci nahrazovat oficiální příručky. Spíše alespoň osvětlit základní konstrukci programu pro někoho, kdo si koupí základní modul, stáhne Mosaic a … a neví jak dál. Takže programátoři v Mosaicu můžou rovnou přestat číst… Další informace je možné si dohledat v oficiálních návodech. Pokud by byl zájem, můžu přidat další články na toto téma – třeba vytvoření vlastní funkce, webserver atd. Zde popisovaný program bude simulovat jednoduchou poloviční sčítačku – jedná se pouze o dva logické obvody. Rozhodně netvrdím, že konstrukce tohoto programu je 100% správná a jediná možná (zejména ukázka v jazyce IL). Spíše jde o zjednodušený popis tak, aby se co nejrychleji vytvořil funkční program. Tedy žádné zdlouhavé probírání registrů a historie PLC…

Program pro Mosaic má zjednodušeně takovouto hierarchii: Skupina projektů > Projekt > Hlavní organizační jednotka (funkce) > Funkční bloky (funkce), které obsahují logiku programu.

Nejdříve je nutné vytvořit skupinu projektů. Každý projekt vždy musí spadat do nějaké skupiny projektů. Jednotlivé projekty ze skupiny mohou být spolu propojeny ve společný celek = větší technologie. Zadejte tedy cestu a název skupiny (zde trochu nešťastně pojmenováno „testovaci_projekt“).

Vytvoření skupiny projektů

Ve skupině se vytvoří samotný projekt. Zde je to „project_1“.

Vytvoření projektu

Dále je třeba vybrat řídící systém. V našem případě se z drtivé většiny jedná o Tecomat Foxtrot. Je tedy nutné zvolit Modulární systém > Foxtrot.

Výběr PLC

Dále je nutné vytvořit Programovou Organizační Jednotku. Zjednodušeně jde o funkci, která se bude vykonávat po spuštění PLCčka (U Simaticu je to např. OB1). Je možné si zvolit její název a v jakém jazyce bude tato POU vytvořena. Po zvolení typu ho již nelze změnit. Jednotlivé jazyky POU budou vysvětleny dole v tomto článku.

Deklarace POU

Poté je nutné vytvořit instanci funkce. Je nutné zadat její jméno a úlohu. Hlavní úloha je FreeWheeling – vykonává se stále dokola při každém cyklu PLC. Dále je možné vytvořit úlohy, které se zpracovávají v jednom cyklu ze čtyř, po určité době, v návaznosti na nějaký bit, nebo např. po startu.

Definice instance programu

Nyní se již nacházíme v hlavním okně programu. Nejprve je nutné v Manažeru projektu (otevře se kliknutím na ikonu složky s lupou v levém horním rohu) nastavit parametry a oživit komunikaci s PLC (pokud je připojeno). Hned v první volbě „Adresa PLC“ je možné zvolit si port pro komunikaci s PLC. Nejpoužívanější bude asi Ethernet, nebo Simulovaný PLC, pokud nemáte u sebe přímo hardware.

Pro připojení k PLC je nutné zadat IP adresu PLCčka – zobrazí se na displeji PLC po stisknutí tlačítka mode pod sedmisegmentovkou. Nyní zde můžete nechat zvoleno Simulovaný PLC.

Pokud se připojujete k PLC přímo, je nutné mít nastavený v počítači v PLC stejný rozsah IP adres. V PLC tedy např. 192.168.0.1 a v počítači stejnou mimo posledního čísla.

Manažer projektu – komunikace s PLC

Dále je třeba zvolit jaký typ modulu se bude používat. Na výběr jsou všechny nové i některé starší moduly. U každého modulu je jeho stručný popis. Více informací jde najít přímo na stránkách výrobce – ke každému modulu je možné stáhnout PDF soubor s podrobným a přehledným popisem.

Výběr PLC

Nyní lze na kartě „Konfigurace HW“ nastavit jednotlivé periferie jako jsou vstupy, výstupy, ale i sběrnice CIB, ethernet a další. Na kartě „Centrální modul“ jsou v jednotlivých řádcích dostupné periferie modulu. Zvolený CP-1004 má I/O (vstupy a výstupy), CIB (sběrnice pro domovní instalaci) a samotný CPU – kde je např. sériová linka a ethernet. Kliknutím na žlutou složku v příslušném řádku se zobrazí konfigurační okno. Zde je v řádku ETH1 možné změnit IP adresu PLCčka. Nezapomeňte poté změnit adresu v adrese PLC (viz předchozí krok) – aby se bylo možné k modulu připojit.

Pokud by byly k PLC připojeny další moduly na DIN lištu najdeme jejich konfiguraci na kartě „Externí I/O moduly TCL2“. Tyto rozšířující moduly se k hlavnímu modulu připojují dvěma stíněnými vodiči do svorek TCL2+ a TCL2– a zakončí se zakončovacím terminátorem (více v manuálu). U Foxtrotu propojení modulů nefunguje tak, jako např. u Simatic S7–1200 (moduly se dají vedle sebe na DIN lištu a z boku vyjede propojovací hřeben). Alespoň je možné řadu PLC Foxtrot osadit do více řad v rozvaděči – nejsme limitováni jeho šířkou, což je u větších systémů, nebo domovních instalací velká výhoda.

Konfigurace HW

Kliknutím na tlačítko „Nastavení V/V“ na spodní straně Manažeru projektu se zobrazí okno konfigurace vstupů a výstupů. Zde je na třetí kartě (samotný I/O modul) možné vidět jednotlivé vstupy (DI) a výstupy (DO). Každý vstup a výstup je popsán několika názvy z nichž jsou nejzajímavější „Svorka“ a „Alias“. Již podle názvu je jasné, že svorka udává přímo hardwarovou svorku přímo na modulu. Do kolonky Alias je možné zadat vlastní Symbolický název proměnné. Je dobré si zvyknout na nějaký styl označování proměnných, tedy i vstupů a výstupů. Např. výstup začínat podtržítkem apod. (znaménko „=“ zde nelze použít).

Jak lze vidět v okně níž, pojmenoval jsem první tři vstupy názvy „Vstup1“, „Vstup2“ a „Vstup3“. Výstupy jsou „Vystup1“ a „Vystup2“. Jsou to globální systémové proměnné, takže těmito názvy je budu volat dále v programu. Tímto stylem běženě proměnné nepojmenovávám. Doporučuji používat tzv. CamelCase.

Nastavení I/O

Nyní se může začít se samotnou konstrukcí programu. Jako při programování čehokoliv jiného je dobré si celý program rozdělit na jednotlivé části (funkce), které je možné volat a ladit samostatně. Vytvoříme si tedy novou POU mezi funkčními bloky. V zobrazeném okně zvolíme její název a jazyk. Po potvrzení nelze jazyk již změnit!

Vytvoření POU
Deklarace POU

V nově vytvořeném funkčním bloku lze již vytvářet samotný program. Protože byl v předchozím kroku zvolen jazyk FBD (grafický jazyk) vytváří se program přetahováním a přidáváním jednotlivých bloků do obvodů (u Simaticu je to Network). Tyto obvody se poté postupně zpracovávají. Po zpracování všech obvodů (celého programu!) se nově vypočítané hodnoty zapíší na výstupy – to znamená, že pokud se někde v průběhu programu nastaví výstup na log. 1 a poté zpět na log. 0 k žádné změně na výstupu nedojde!

Kliknutím na zelenou ikonu „Vložit box (POU)“ se aktivuje editační režim. Tam, kde je možné přidat nový box se zobrazí červený čtvereček. Kliknutím na něj se zobrazí okno „Editace boxu“.

Vytváření programu v FBD

Nyní je třeba zvolit potřebnou funkci. Lze si zvolit z mnoha předdefinovaných základních funkcí, je možné použít vlastní POU jako funkční bloky, nebo je možné importovat funkce z knihoven. Protože se bude vytvářet jednoduchá poloviční sčítačka vystačíme si s funkcí XOR a AND. Poloviční sčítačka má jednoduchou logiku – Výstup1 nastaví na součet dvou logických hodnot na vstupu. Pokud dojde k přetečení, je nastaven signál přetečení (Vystup2). Logika je vidět v pravdivostní tabulce.

Signál „Vystup1“ odpovídá logickému exkluzivnímu součtu „Vstup1“ a „Vsup2“. Jde tedy o funkci XOR – oba operandy musí mít rozdílnou hodnotu.
Signál „Vystup2“ odpovídá logickému součinu „Vstup1“ a „Vstup2“. Jde tedy o funkci AND – oba operandy musí být v log. 1.

---------------------------------------
| VSTUP1 - VSTUP2 - VYSTUP1 - VYSTUP2 -
|-------------------------------------|
|    0   -    0   -    0    -    0    |
|    0   -    1   -    1    -    0    |
|    1   -    0   -    1    -    0    |
|    1   -    1   -    0    -    1    |
---------------------------------------

V zobrazeném okně se tedy zvolí požadovaná funkce a klikne se na OK. U jednoduchých funkcí lze zadat pouze komentář, u uživatelských funkcí POU, je nutné zadat název instance (Jméno).

Vložení logické funkce

U vložené logické funkce jsou dva vstupy. Proměnnou lze buď na vstup přetáhnout z okna proměnných, nebo lze dvouklikem na otazníky otevřít okno Operand. V tomto okně je možné název proměnné zadat přímo, nebo kliknutím na tlačítko (…) zvolit z okna výběr proměnné. Stejně tak se nastaví výstup – dvouklikem za blok XOR se nastaví vhodná proměnná.

Výběr proměnné

Program je vhodné rozčlenit na co největší množství obvodů (logicky). Pokud každý obvod provádí jednu funkci, je jednodušší se v programu zorientovat. Kliknutím pravým tlačítkem na aktuální obvod a zvolením „Vytvořit obvod za…“ vytvoříme další obvod, ve kterém bude funkce AND. Postup vytváření je stejný jako u obvodu XOR.

Vytvoření dalšího obvodu

Aby se program provedl je nutné vložit funkční blok „FB1_scitacka“ do hlavní funkce prgMain. Pokud není zvolena jiná funkce, je tato jediná, která se po startu provádí. A pokud v ní není „odkaz“ na jinou funkci, není důvod ji provést.

Je tedy nutné si otevřít blok prgMain a do něho známým způsobem vložit vytvořený (uživatelský) blok FB1_scitacka. Je nutné zadat jeho instanční jméno (tento blok lze samozřejmě použít v programu vícekrát, pro každé použití je nutné vytvořit instanci).

Vložení funkčního bloku

Program je již možné přeložit a odeslat do PLC. Překlad se provede kliknutím na tlačítko složky (v kroužku), nebo stisknutím F9. O výsledku překladu je uživatel informován v okně Překlad. Pokud je program bez chyby je možné ho odeslat do připojeného PLC stisknutím Shift+F9. Nebo je možné PLC spustit tlačítkem se zelenou šipkou (Ctrl+F9) a kliknutím na ikonu tužky spustit ladění. Pokud program není shodný, nebo je PLC v režimu Halt je zobrazeno upozornění.

Překlad programu

Samotné ladění probíhá ve stejném okně jako programování PLC. Stav PLC je signalizován nahoře, PLC je možné spustit nebo zastavit. Režim debug je možné ukončit tlačítkem s ikonou brouka. Zpět se lze vrátit stisknutím stejného tlačítka, tentokrát s ikonou tužky. Kliknutím na složku s nápisem „IO“ lze zobrazit vstupy a výstupy. Editováním jednotlivých vstupů ve sloupci „Hodnota“ zle měnit jejich hodnoty. Změna se ihned projeví v samotném programu – „vodič“ na kterém je log. 1 je podbarven šedě, Vystup1 je nastaven na log. 1.

Režim ladění (debug)

Jak jsem již psal výše, je možné jednotlivé funkce psát/kreslit několika jazyky. Přehled těchto jazyků naleznete taky na HW.CZ, kde je i jejich komplexnější popis. Každý z těchto jazyků je různě složitý, má jiný výkon a hodí se k různým věcem. Funkci poloviční sčítačky je tedy možné zapsat v těchto jazycích:

FBD – Jazyk funkčních bloků. Často používaný jazyk např. konstruktéry strojů. Funkce jsou vloženy jako bloky, program se provádí řádek po řádku. Nehodí se příliš pro spojité operace a pro matematické operace. Tento grafický jazyk je spolu s LD asi nejpoužívanější.

Poloviční sčítačka v jazyce FBD

LD – Ladder logic. Často používaný jazyk zejména staršími konstruktéry. Schéma připomíná zapojení kontaktů spínačů a relé, takže je v některých částech přehlednější než FBD. Složitější funkční bloky (kromě bitové logiky) jsou vloženy stejně jako u FBD.

Poloviční sčítačka v jazyce LD

CFC – Kontinuální funkční obvod. Jednotlivé bloky se zde spojují vodiči, jako by šlo o klasické součástky. Tento způsob je známý např. z konfigurace Loga! a podobných „inteligentních“ relé. Výhodná je přehlednost a logičnost, pokud se jedná o malé programy, nebo jednoduché opakující se části. U větších programů se stává nepřehledný. Tento typ programování je vhodný pro konfiguraci „chytrých“ elektroinstalací.

Poloviční sčítačka v jazyce CFC

ST – Strukturovaný text. Tento jazyk se podobá Pascalu z PC a je s ním výhodná zejména práce s tady (práce s řetězci, výpočty apod.). U tohoto jazyku je nutná znalost syntaxe a jednotlivých příkazů. Jazyk je velmi výkonný a i složité obvody v grafických jazycích je možné nahradit několika málo řádky textu.

Poloviční sčítačka v jazyce ST

IL – Instruction list. Jedná se o nízko úrovňový programovací jazyk na úrovni Assembleru. Program v tomto jazyce se vytváří na úrovni práce až s jednotlivými bity paměti. Sestává pouze z několika málo operací, jako je načtení proměnné, logických funkcí nad registry a pamětí, porovnání, podmíněný a nepodmíněný skok atd. Hodí se pro tvorbu částí programu, které je nutné odladit na nejvyšší rychlost, nebo kde chce mít programátor jistotu, že program dělá přesně to, co má.

Poloviční sčítačka v jazyce IL

Výhodou je, že je možné jednotlivé jazyky při programování Teca kombinovat. Je možné vytvořit všechny bloky třeba v FBD a jeden blok např. pro synchronizaci času přes Web v ST, které je pro to vhodnější. Mosaic dále obsahuje spoustu různých nástrojů a uživatelských knihoven, které usnadňují další tvorbu programu.

Myslím si, že Mosaic s Foxtrotem je plnohodnotná náhrada PLC jiných výrobců a více než vhodný pro začátek s PLCčky. Samotný Foxtrot lze rozšířit digitálními a analogovými vstupy a výstupy. Modul může komunikovat pomocí několika druhů sběrnic (po sériové lince i bez dodatečných rozšiřujících modulů), lze k němu připojit vzdálené periferie připojené buď pomocí dvou vodičů (včetně napájecích) nebo bezdrátově. Lze s ním bez problémů udělat „chytrou“ domovní elektroinstalaci. K modulu lze dokoupit i víceosý polohový modul pro ovládání pohonů.
Jediné co trochu kazí dojem je vzhled samotného Foxtrotu. Ne, že by to bylo nějak extra důležité, ale použití univerzální krabičky budí dojem neprofesionálního zařízení. Dále nutnost rozmontovat Foxtrot kvůli montáži komunikačního modulu, nebo výměně baterie je poněkud zvláštní. Jasné, modul je určen pro profesionály, takže by s tím neměl být problém.

Dále by mohl být alespoň jeden typ CPUčka cenově podobný S7–1200. Ne vždy jsou potřeba různé sběrnice a modul pouze s 8 vstupy a 6 výstupy za nějakých třeba 5000 Kč by přišel vhod. Někdy je potřeba rozhýbat jednoduchý stroj, na který je LOGO! už slabé, ale Foxtrot už drahý. Sice není na Tecomat potřeba drahý software, ale teď mi nějak S7–1200 začíná dávat smysl.

Největší výhoda pro začátečníky je však v již zmiňované české dokumentaci a nápovědě.

  1. MarekF MarekF

    Pěkný článek a byl bych rád kdyby bylo i pokračování třeba v CFC nebo FBD jazyku. Třeba měření teplot a zobrazení přes webovou stránku.

  2. Radomil Paták Radomil Paták

    Moc děkuji za článek a těším se na druhý díl!

  3. Tomáš M. Tomáš M.

    Také děkuji za článek a přimlouvám se za pokračování. Ideálně vícedílný, zaměřený postupně na jednotlivé problematiky… zpracování vstupů z termočlánku a jiných čidel, řízení vytápění (motorické hlavice), rolety, ventilace, ovládací panely atd.
    Děkuji

  4. Peťan: Uvidím, jestli něco ještě napíšu. Teď jsem s Foxtrotem dlouho nedělal. Spíš ladím S7-1200. Ale možná bych mohl ukázat alespoň načítání teplot a vstupů po CIB sběrnici třeba z PT1000.
  5. Petr Petr

    Úžasný článek, moc se těším a doufám v tom, že bude další díl.. 🙂

    Peťan: Díky, díky, momentálně další díl neplánuji. Ale schyluje se jedna akce s Foxtrotem, tak bych při tom mohl něco napsat. Ale nevím na jaké téma.

  6. Michal Michal

    Moc hezký článek, též bych se přikláněl k pokračování … celkově na tvých stránkách nacházím spousta užitečných informací. Díky za to!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *