Kurzy programování

Kurzy programování SIMATIC S7-300

Kurzy programování PLC SIEMENS SIMATIC S7-300, díl 3


Třetí díl věnujeme přiřazování symbolických názvů proměnným ve STEP7, principu zpracování programu v PLC S7-300, prvním instrukcím ve STEP7 a akumulátorům v PLC.

Ve spolupráci se společností FOXON s.r.o. vzniká kurz programování PLC SIEMENS SIMATIC S7-300 a práce s tímto PLC. Cílem následujících dílů, jejichž počet bude flexibilně přizpůsoben zájmu a jednotlivým tématům, nebude detailní vysvětlení kompletního programování a vlastností PLC SIMATIC, právě naopak.

Zaměříme se na ryze praktické stránky práce s PLC a nejpoužívanější programové segmenty pro začínající a občasné uživatele, kteří potřebují v základech porozumět Simatikům, dále na ty, kteří se s tímto PLC setkávají jen občas, a v neposlední řadě i ty, kteří mají v zaměstnání vícero druhů PLC od různých výrobců a nelze pro všechna PLC absolvovat detailní školení. Proto uvítáme jakékoliv vaše ohlasy, abychom mohli eventuálně další díly korigovat.

Pokud nemáte k dispozici nějaké zkušební PLC pro ukázky tohoto kurzu, bude vám pro většinu příkladů stačit i SIEMENS PLC simulátor, tedy vystačíte si pouze s počítačem a softwarem.

FOXON s.r.o. & Jaroslav Blažek

banner skoleni blog



3.1 PŘIŘAZENÍ SYMBOLICKÝCH NÁZVŮ JEDNOTLIVÝM PROMĚNNÝM V PLC PROGRAMU

Ještě než si vytvoříme a nahrajeme náš první program do PLC, je nezbytné si něco říci o symbolickém přiřazování adres ve Step7. Tato funkce je ve Step7 velmi propracovaná a v praxi hojně využívaná. Jen je třeba upozornit na příliš dlouhé, a tím pádem někdy nesrozumitelné názvy proměnných, které občas někteří programátoři používají.

Symbolický název znamená, že proměnnou, třeba digitální výstup Q0.0, můžeme v PLC programu zapsat jako Q0.0, ale také jejím symbolickým názvem, který si libovolně zvolíme a zapíšeme do tabulky symboliky. Tedy zmíněnému výstupu si v tabulce symboliky přiřadíme název například KM1. Z praxe mohu doporučit ještě nějaké další rozlišení symbolických názvů digitálních vstupů, výstupů, merkru a ostatních proměnných, jako například pro výstup ještě znaménko =, vstup třeba *, časovač a čítač například velkými písmeny atp. Sami uvidíte, jak se to vyplatí v rychlé orientaci v programu. Ukážeme si to následně přímo v tabulce proměnných.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 1 1

Tabulku proměnných najdeme ve složce S7 Program (1) pod názvem Symbols a stačí na ni kliknout. Pak se otevře v samostatném editoru proměnných.

Poznámka: Tabulka je jeden soubor a můžeme jej libovolně kopírovat z projektu do projektu.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 1 2

Do jednotlivého řádku si napíšeme naše proměnné v PLC programu. Ke každému názvu můžeme ještě dopsat náš komentář, což je také velmi používané. Pro ukázku jsme si okomentovali 3 výstupy Q0.1 až Q0.3 jako stykače KMx.

Symbolika je napevno provázána s PLC programem, proto při psaní programu můžeme již psát jen symbolické názvy, Step7 si automaticky přiřadí proměnné podle naší tabulky. Tohle je velmi důležité mít neustále na paměti, neboť nám to usnadní a urychlí psaní a úpravy v programu.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 1 3

Pokud se nám stane, že potřebujeme delší symbolické názvy, nebo jinou velikost písma než je standardně přednastaveno ve Step7, jiné barvy pro zobrazení a podobné, můžeme si toto nastavit vždy ve vlastnostech každého nástroje, tedy Simatic Manageru, editoru programu, editoru symboliky atd. Vždy v menu Options – Customize.

Poznámka: Největší možnosti vlastního nastavení nabízí editor programu, ovšem v praxi většinou vyhoví základní přednastavené hodnoty, moc často se tohle nemění.


3.2 PRINCIP ZPRACOVÁNÍ PROGRAMU PŘÍMO V PLC

Protože naše PLC není nic jiného než procesor, který zpracovává program řádek po řádku, instrukci po instrukci, je nezbytné si připomenout, jak to vlastně probíhá, abychom nezažili nepříjemné překvapení v podobě nefunkčnosti části PLC programu v důsledku elementární chyby z neznalosti funkce.

Naše PLC vykoná v jednom časovém okamžiku vždy jen jednu operaci, jako například součet, porovnání proměnných, atd. K tomu v PLC slouží tzv. akumulátor, což je laicky řečeno paměťový prostor pro 4 byty, tedy jeden double word. U PLC Simatic jsou většinou tyto akumulátory dva a slouží jen pro tu jednu uvedenou instrukci na řádku. U starších PLC řady S7-200 je těchto akumulátorů více a navíc i uživatelské, které se dost využívají. Počet akumulátorů u ostatních PLC je také různý, ale dva jsou minimum.

Prakticky to funguje následně. PLC v případě příkazu na součet dvou proměnných, třeba 10 + 20 = 30, vezme první číslo 10 a nahraje je do akumulátoru 1 (dále jen accu 1). Následně vezme druhé číslo 20, které nahraje do accu 1, když ale před tím přesunul obsah accu 1 do accu 2. To znamená, že vždy při instrukci záznamu proměnné do accu 1 PLC nejprve vezme obsah accu 1 a přesune jej do accu 2, aby si accu 1 uvolnil pro proměnnou. Teď máme tedy obě proměnné v obou akumulátorech. Ve třetím kroku PLC provede součet obou akumulátorů a výsledek uloží opět do accu 1, obsah accu 1 se teď nepřesouvá, je přepsán výsledkem. Zdá se to možná složité, ale jen na první pohled, my si to ukážeme dále i na online programu.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 2 1

Práce s jednotlivými příkazy a akumulátory je tedy jasná, zbývá se podívat na to, jak tohle vše funguje jako celek. Procesor zpracovává program cyklicky neustále dokola po jednotlivých instrukcích v programu přesně podle obrázku.

Nejprve přečte jednorázově hodnoty všech PLC vstupů a uloží si je do tabulky vstupu. Dále vykoná náš program příkazy po jednotlivých instrukcích, nebo chcete-li řádcích, s použitím stavu vstupu z načtené tabulky, tedy ne z aktuálního stavu, a výsledky zapisuje do tabulky výstupu, tedy ne přímo na výstupy PLC. Na závěr nastaví jednorázově výstupy podle tabulky výstupu.

Poznámka: Dá se samozřejmě instrukcí přes PIB/PQB přečíst nebo nastavit vstup/výstup přímo v daném okamžiku programu.

Čas, který je potřeba pro tento celý průběh, je doba cyklu, o které jsme si už říkali. Pokud bude například doba cyklu 200 ms, tak se klidně stane, že signál na digitálním vstupu, který bude kratší než doba cyklu, například impuls 100 ms, naše PLC vůbec nezaregistruje, neboť stav vstupu se načítá do tabulky jednorázové na začátku cyklu a impuls na vstup přijde až později, když už PLC řeší jednotlivé instrukce.

Tohle se občas stává jako chyba programátora, který musí tento stav ošetřit jinak, většinou hardwarovým přerušením od změny stavu na patřičném vstupu.


3.3 PRVNÍ INSTRUKCE V NAŠEM PROGRAMU

Jestliže se vám zdála trocha teorie složitá, tak to opravdu složité ještě přijde později. Je ale nutné, aby vám výše uvedené věci v podstatě přešly do krve. Při jakémkoliv řešení problému nebo poruchy musíme vždy vědět, jak to ten PLC dělá, abychom se dokázali řádně orientovat.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 1

Konečně se dostaneme k napsání nějakého programu, čemuž ale předchází nejprve vytvoření bloku programu, pokud nechceme vše psát do OB1. Přes nabídku pravého tlačítka myší vložíme do našeho projektu nový objekt, a sice funkční blok.

Poznámka: Rozdělení bloku v programu jsme si objasnili v minulé lekci.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 2

Před vygenerováním našeho nového funkčního bloku nastavíme v automaticky otevřeném okně jeho vlastnosti, tedy hlavně název, číslo (FB4), komentář a hlavně jazyk, ve kterém se blok vytvoří. Na výběr je STL, tedy program psaný po řádcích a jednotlivých instrukcích, dále LAD, nebo-li kontakt plán, což je velmi používaný jazyk, a funkční plán FBD. I po vytvoření bloku můžeme mezi jednotlivými jazyky přepínat podle libosti. Vyzkoušejte si to na jednoduchém kousku programu.

Poznámka: Pokud je blok programu napsán na více řádcích v STL, nemusí vždy fungovat přepínání jazyku.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 3

Nový blok FB4 se nám otevře v editoru programu, což je a bude nejpoužívanější nástroj Step7. Je samozřejmě prázdný, ale to nám nebrání v jeho nahrání do PLC přes označenou ikonu downloadu.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 4

Pokud jste pozorně četli předchozí díly, je vám jistě jasné, že aby nám PLC vykonalo program, který si napíšeme do našeho FB4, musíme mu říci, aby do našeho bloku šel, tedy do OB1 napsat instrukci podle obrázku a celý OB1 nahrát do PLC.

Jestliže instrukci UC označíme myší, pak přes klávesy F1 se nám otevře přímo kontextová nápověda s popisem této a dalších instrukcí. Rozhodně si vše přečtěte, abyste získali přehled o možnostech volání různých bloků v programu.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 5

Otevřeme si opět náš FB4 a do prvního segmentu programu si napíšeme jednoduchý prográmek, kde merkr M1.5 je blikací bit s cyklem 1 Hz a ovládá 3 výstupy.

V LADER zobrazení vkládáme instrukce přes označené menu. Zobrazení v editoru si vyzkoušíme změnit přes menu View – STL.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 6

Protože jsme věnovali kus této lekce symbolickému zápisu proměnných do tabulky symboliky, nastal čas začít tuto tabulku využívat. Takže si zapneme zobrazení symboliky a také si v patřičném menu můžeme vybrat zobrazení dalších komentářů. Vše si vyzkoušejte a najděte si zobrazení, jaké vám vyhovuje. Například zapnuté zobrazení komentářů každého segmentu zbytečně omezuje plochu zobrazení v editoru.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 7

Takhle potom vypadá zobrazení při zapnuté symbolice. Po najetí myši nad prvek Q0.1 se nám navíc ukáže i náš komentář. Tady si můžeme vyzkoušet přepsat jen číslo stykače a okamžitě se nám přepíše i adresa výstupu, neboť symbolika je s adresami pevně svázaná. Tohle je důležité vědět a vyzkoušet si, neboť se to v praxi používá velmi často.

A můžeme přes ikonu downloadu nahrát tento blok do našeho PLC.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 8

Označená ikona brýlí v editoru znamená zapnutí tzv. online režimu, který nám zobrazí přímo stav jednotlivých proměnných.

Poznámka: U jiných PLC a programovacích nástrojů se můžete setkat s pojmem debug – ladění, který znamená v podstatě to samé, tedy online zobrazení programu.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 3 9

Instrukcí, které můžeme používat v programu, je ve Step7 velmi mnoho a jejich kompletní nabídka se nám zobrazí pomocí označené ikony v levém okně editoru. Vše je přehledně roztříděno podle funkcí jednotlivých instrukcí a s detailním popisem přes nápovědu. Takže zcela určitě si je projděte a hlavně vyzkoušejte. Je totiž nezbytné vědět, co vlastně můžeme v programu používat.

Poznámka: Nemusíte je znát všechny zpaměti, stačí vědět, kde je najít a jak zobrazit jejich popis.


3.4 AKUMULÁTORY V PLC

V odstavci 3.2 jsme si teoreticky vysvětlili, jak funguje zpracování PLC programu a co vůbec jsou akumulátory v PLC. Zcela jistě to všem nebylo jen z popisu jasné, proto nejlepší vysvětlení a pochopení bude přes praktickou ukázku uvedeného přikladu. Pokud si totiž vše vyzkoušíte sami, zapamatujete si to již napořád.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 4 1

V programovém editoru si přepneme zobrazení přes menu View – STL do STL, tedy do řádkového psaní jednotlivých instrukcí programu, a do dalšího segmentu si napíšeme uvedený  příklad 10 + 20 = 30. V komentářích, které jsou vždy označeny dvěma lomítky, je popsán stav proměnných v akumulátorech. Instrukce +I znamená součet proměnných.

Poznámka: Všimneme si, jak se nám v STL zobrazil i první segment programu.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 4 2

Po nahrání bloku do PLC vidíme v online režimu přesně, jak se jednotlivé proměnné posouvají v akumulátorech podle toho, jaký řádek s instrukcí zrovna PLC vykonává. Abychom vše viděli správně, tak přes nabídku pravého tlačítka myši si zobrazíme správný sloupec a formát pro online režim.

Poznámka: Velké záporné číslo v accu 2 na prvním řádku je někde z předchozí části programu a nás nijak nezajímá.

Výše uvedený příklad je ale pro praktické použití špatný, neboť je v něm jedna zásadní chyba. Jistě jste si všimli, že nahráním čísla 55 v posledním řádku programu se nám výsledek posunul do accu 2 a dalším nahráním o výsledek přijdeme. Tohle je častá chyba, která se při psaní programu stane, že po složitějším souboru instrukcí a převodech mezi číselnými formáty si někde ten správný výsledek přepíšeme.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 4 1

Musíme si proto bezprostředně po vykonání výpočtu výsledek někde uložit. K tomu nám poslouží instrukce Transfer, která nám překopíruje číslo tam, kam potřebujeme, zde do merkru, ale častěji do datové oblasti v libovolném datovém bloku.


Kurz programovani Siemens PLC S7 STEP7 foxon 3 4 4

Takhle je to správně, výsledek jsme si přesunuli do paměťové oblasti merkru MW50, kde zůstane zachován i pro vypnutí a opětovném zapnutí PLC.

Poznámka: V praxi se většinou ukládají data do datových bloků, neboť merkrová oblast je jen jedna a malá, zatímco datových bloků můžeme mít mnoho.


Vyzkoušejte si několikrát vytvoření různých bloků v programu, nahrávání programu, online režim. Projděte si seznam instrukcí a zkuste si představit, co jednotlivé příkazy znamenají. Přes nápovědu získáte detailní popis. V dalším díle si předvedeme, jak fungují časovače a čítače v PLC a ukážeme si vytvoření datových bloků pro uložení dat včetně jejich sestavení podle UDT struktury, což je výborná věc.

Autor: Jaroslav Blažek, blaja.cz


Užitečné odkazy k tématu 3. dílu:

Technická podpora Siemens pro CPU Simatic S7-300

PLC Simatic hlavní stránka v češtině

Související produkty

{foxonstore id="30380,30383,30379,23201,23473,24131"}

Novinky
z naší firmy

Stačí 2 e-maily měsíčně a neunikne vám nic podstatného. 
Přihlaste se a každou druhou středu čtěte přímo ve své poště.

Váš e-mail je u nás v bezpečí. Vždy ctíme Zásady zpracován osobních údajů.

Rychlý dotaz


Typ vašeho dotazu



Společnost FOXON je držitelem certifikátu ISO 9001:2015

Sledujte nás i na sociálních sítích.

Made by FOXON s.r.o. © 2022