10.07.2015 Views

FST FEC

FST FEC

FST FEC

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL


OBSAH:1 PŘEDMLUVA 12 VSTUPY (INPUTS) 12.1 Co lze se vstupy? 33 VÝSTUPY (OUTPUTS) 43.1 Co lze s výstupy? 54 TRIMR 65 PŘÍKAZY IF (JESTLIŽE), THEN (PAK), OTHRW (JINAK), SET (ZAPNI)86 PŘÍKAZ STEP (KROK) 107 PŘÍKAZ RESET (VYPNI) 118 PŘÍKAZ JMP TO (SKOČ NA) 129 PŘÍKAZ N (NENÍ PRAVDA, ŽE), PŘÍKAZ NOP (NO OPERATION) 1310 PŘÍKAZY AND (LOGICKÉ „A“), OR (LOGICKÉ „NEBO“) 1511 POUŽITÍ ČASOVAČE (TIMER) 1511.1 Předvolba časovače (timer preselection - TP) 1611.2 Aktuální hodnota časovače (timer word – TW) 1611.3 Časovač (timer – T) 1612 PŘÍKAZ LOAD TO (NAHRAJ DO) 1913 POROVNÁVÁNÍ ČÍSEL (, =), POUŽITÍ ZÁVOREK 2014 POUŽITÍ ČÍTAČE (COUNTER) 2014.1 Předvolba čítače (counter preselection - CP) 2114.2 Aktuální hodnota čítače (counter word – CW) 21


15 REGISTRY 2216 PŘÍZNAKY 2216.1 K čemu se hodí příznaky? 2317 PARALELNÍ CHOD PROGRAMŮ (MULTITASKING) 2417.1 Příklad paralelního chodu programů 2418 PODPROGRAMY 2819 BINÁRNÍ SOUSTAVA 2920 JAK ZADÁVAT OPERANDY? 3121 TCP/IP 31


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/981 PředmluvaTento velmi zjednodušený úvod do programování v jazyce STL si neklade zacíl naučit vás vše, co lze s uvedenými prostředky dokázat; jeho úkolem bymělo být navedení programátora na vlastní cestu řešení a nastíněnínejobvyklejších postupů při programování jednoduchých úloh. Pokuds takovou činností začínáte, je tento materiál určen právě vám. Nebudeme seani příliš zabývat instalací <strong>FST</strong>, postupem navedení do programovacíhoprostředí, způsobem nahrávání dat a konfigurace systému <strong>FEC</strong>; k tomuslouží návod pod názvem „<strong>FST</strong> <strong>FEC</strong> pro shareware verzi, krátký návodk použití“.STL, statement list (seznam příkazů) je nejčastěji používaný programovacíjazyk, který dovoluje plně využít všech vlastností systému <strong>FEC</strong> a jemupodobných. Všechny ostatní řídící systémy od firmy Festo využívají stejnýjazyk, dokonce lze kopírovat bloky jednotlivých programů z jednoho systémudo druhého a přeložit automaticky z jednoho jazyka do druhého (software jevždy k dispozici anglicky či německy). Tento materiál používá výrazy převzatéz anglické verze jazyka STL. Všechny výrazy uvedené kurzívou jsouidentické s výrazy, se kterými se při skutečném programování setkáte.Programovat lze i v liniovém schématu (LDR), kdy se na obrazovce tvoříreléové schéma logiky. Pro uživatele zvyklé pracovat s reléovou logikou je topříjemný způsob; úvod do tohoto jazyka najdete opět ve výše uvedenémnávodu.2 Vstupy (inputs)Jako vstupy do systému označujeme signály, přicházející zvenku dovnitř,tedy například signály od čidel. Pokud mluvíme o tzv. binárních vstupech,jedná se o signály mající dvě základní úrovně: logickou 0 a logickou 1.Nejprve čidla spínací:1


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Pracujeme-li například s běžnými čidly PNP, je rozepnutý stav indikovánstavem „nezapojen“, stav sepnutý napětím blízkým napájecímu (vodič sesignálem je připojen na napájení čidla; napětí na něm je tedy jen o málomenší, než je napájecí napětí čidla).Poněkud méně častá je práce s čidly NPN: rozepnutý stav je indikovánnapětím blízkým 0 V (vodič se signálem je „nezapojen“), stav sepnutýnapětím 0V (vodič se signálem je uzemněn).A čidla rozpínací?Tady je vše opačně; výstup čidla PNP je v sepnutém stavu „nezapojen“, vestavu rozepnutém připojen na napájecím napětí. Výstup čidla NPN pak vestavu sepnutém „nezapojen“, ve stavu rozepnutém pak uzemněn.U našeho systému <strong>FEC</strong> se můžeme rozhodnout, zda používáme vstupy PNPnebo NPN. U vstupů PNP připojíme svorku označenou S 0 na záporný pólnapájení vstupů, pro vstupy NPN tuto svorku připojíme na kladný pólnapájení.Vypadá to složitě, ale pro praxi většinou vystačíme s tímto: používámečidlo PNP (nebo spínač, jazýčkové relé, apod., připojené na jedné straně nakladný pól napájení). Připojíme ho na vstup systému. Svorku S 0 připojíme nazáporný pól napájení. Pokud je nyní vstup pod signálem (např. indukční čidloreaguje na přiblížení kovu), připomíná sepnutý vypínač – dává tedy napětíblízké napájecímu. Řídící systém reaguje jednoduše postavením vstupu dologické 1 (sepne a rozsvítí se příslušná LED dioda na čelním panelu <strong>FEC</strong>).Jakmile pomine důvod k sepnutí čidla, napětí klesne a vstup systému se vrátído logické 0 (rozepne a LED zhasne).Zpátky k našemu <strong>FEC</strong>: jeho vstupy (inputs), jsou vždy označené nějakouadresou. Například vstup I0.0 je nultý vstup (nultý bit) z nultého slova (bajtu)vstupů. Patří tedy do nultého slova vstupů IW0 (input word 0).2


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Takže bude-li náš <strong>FEC</strong> obsahovat vstupy s adresami 0.0 až 0.7, bude vstupI0.0 prvním z řady. Tato řada je vyvedena na svorky, bude tedy i prvnímv řadě svorek. Tam budeme muset připojit vstup (= čidlo nebo spínač), kterýbude mít onu adresu I0.0.Proč „bude-li obsahovat?“ Protože u tohoto systému se rozhodujev konfiguraci vstupů a výstupů (najdeme v menu <strong>FST</strong> jako I/O configuration),jakou adresu bude mít právě tento první vstup. Při konfiguraci jsme totiždotázáni, jaké vstupní slovo (IW) chceme instalovat. Odpovíme-li, že IW0,začnou naše vstupy právě adresou I0.0. Protože <strong>FEC</strong> má více vstupů než 8,neskončí na adrese I0.7, ale bude automaticky pokračovat adresami I1.0 ažI1.3. Proto při instalaci obsazujeme vlastně dvě vstupní slova, i když uvádímejen jedno.Je tedy jasné, že uvedeme-li při instalaci <strong>FEC</strong> například vstupní slovo IW5,bude mít první vstup v řadě svorek adresu I5.0, další I5.1, atd., až k I5.7. Pakbudeme pokračovat od I6.0 až k I6.3. Všimněte si též, že svorky S jsou dvě;můžeme tedy použít některé vstupy PNP a některé NPN, podle toho, kampřipojíme příslušnou svorku, zda na kladný či záporný pól napájení. (připohledu na čelní stranu <strong>FEC</strong> logicky vyplyne, že pro první osmici (bajt) vstupůje svorka S 0 , pro další čtveřici svorka S 1 )2.1 Co lze se vstupy?Předběhněme několik kapitol a podívejme se na možnosti, co lze všechno sevstupy v našem programu. Vstupy mají, jak již víme, dva stavy: logická 1(signál přichází) a logická 0 (signál není k dispozici). Na takové signály semůžeme v našem programu ptát (testovat je):IF I0.0znamená dotaz, je-li napětí na vstupu I0.0. Naopak3


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98IF N I0.0znamená dotaz, je-li vstup I0.0 bez napětí. Tyto signály ovšem nemůžemeprogramem ovlivňovat - přichází zvenku, nemůžeme je tedy programemzapínat (SET) nebo vypínat (RESET).Dotazovat se můžeme ovšem i na celou osmici (bajt) vstupů najednou – stačídotaz na obsah celého vstupního slova, tj. například podmínka:IFIW0= V2je splněna tehdy, je-li zapnut výstup I0.1 a všechny ostatní vypnuty. (jednáse o decimálně vyjádřené dvojkové číslo – bajt – viz kapitola Binárnísoustava). Výraz V2 je v jazyce <strong>FST</strong> číslo 2 (písmeno V znamená anglicky„value“ nebo-li hodnota, je povinně uvedeno před každým číslem a říká, že zaním uvedené číslo je skutečně číslo bez desetinné čárky – <strong>FST</strong> s jinými číslynepracuje).3 Výstupy (outputs)Jako výstupy jsou označovány signály jdoucí ze systému ven. Tady je situacev porovnání se vstupy poněkud jednodušší, neboť v případě <strong>FEC</strong> se jedná okontakty výstupních relé, které mohou něco spínat. Jsou rozděleny do třískupin, z nichž každá má jeden společný kontakt. To znamená, že první třimohou připojovat jednu úroveň napětí (například 24 V DC), druhé tři jinou(třeba 48 V DC) a poslední dva také jinou. Tohle napětí je nutné přivést vždyna společnou svorku, která je jasně znázorněna opět přímo na čelní stěně<strong>FEC</strong>.Takže bude-li náš <strong>FEC</strong> obsahovat výstupy s adresami O0.0 až O0.7 asepneme-li výstup O0.0 (tedy nultý výstup – bit v nultém slově – bajtu), sepne4


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98relé, jehož kontakt je vyveden na první svorku v řadě (a rozsvítí seodpovídající LED dioda).Proč „bude-li obsahovat?“ Protože podobně jako u vstupů se u tohotosystému rozhoduje v konfiguraci vstupů a výstupů (najdeme v menu <strong>FST</strong> jakoI/O configuration), jakou adresu bude mít právě tento první výstup. Přikonfiguraci jsme totiž také dotázáni, jaké výstupní slovo (OW) chcemeinstalovat. Odpovíme-li, že OW0, začnou naše výstupy právě adresou O0.0.Je tedy jasné, že uvedeme-li při instalaci <strong>FEC</strong> například výstupní slovo OW5,bude mít první výstup v řadě svorek adresu O5.0, další O5.1, atd., až k O5.7.3.1 Co lze s výstupy?Podobně jako u vstupů předběhneme i u výstupů několik kapitol, abychomse podívali na to, co s nimi lze v našem programu. Výstupy mají také dvastavy: logická 1 a logická 0. Protože jsou ovšem na rozdíl od vstupůovlivňovány programem, můžeme je zapínat:SET O0.0zapne výstup O0.0,nebo vypínat:RESET O0.0vypne výstup O0.0.Pokud potřebujeme, můžeme se na ně ovšem také ptát:IF O0.0je dotaz na zapnutý výstup O0.0,5


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98IF N O0.0znamená dotaz na vypnutý stav výstupu. To má význam například připoužívání časovačů způsobem, který je popsán v kapitole Použití časovačů.Také můžeme ovládat celou osmici výstupů najednou (bude se nám to hoditnapříklad při nouzovém stopu k vypnutí všech výstupů jedním příkazem)THEN LOAD V0TOOW0znamená: nahraj nulu do slova výstupů číslo 0 (OW0). V tomto okamžiku sevypnou všechny výstupy od O0.0 do O0.7. Můžeme ovšem do tohoto slovanahrát i jiné číslo (opět se jedná o decimální vyjádření dvojkového čísla – vizkapitola Binární soustava).4 TrimrTrimr je vlastně potenciometr, jehož si můžeme povšimnout též na čelnístraně <strong>FEC</strong>. Je aktivní až po instalaci ve stejném místě <strong>FST</strong>, jako vstupy avýstupy, tedy I/O configuration. Tady totiž můžeme tento trimr instalovat tak,že mu přiřadíme nějaké vstupní slovo - IW (logicky musí být odlišné od slova,které jsme použili pro skutečné vstupy). Například: vstupy jsme instalovali naIW0 (už ale víme, že tím obsadíme nejen vstupy s adresami I0.0 až I0.7, ale iI1.0 až I1.3), takže nejbližší volná adresa je IW2. Pokud tedy trimrnainstalujeme na tuto adresu, bude se ve vstupním slově číslo 2 (bajt – IW2)odrážet poloha trimru (podle jeho polohy bude mít obsah tohoto slova - kteréje vlastně jako každé slovo číslem – hodnotu 1 až 63).Tato hodnota je velmi užitečná, neboť jejím prostřednictvím může obsluhastroje či zařízení zadávat jakousi hodnotu do systému, aniž by k tomupotřebovala počítač či systém doplněný displejem s klávesnicí. Lze tedy velmilevně a jednoduše nastavovat například čas prodlevy v technologii, atd.6


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Přeskočme několik kapitol, ukažme si příklad:STEP startIF tnastav I0.5 tlacitko nastaveni casuTHEN JMP TO nastavIF tstart I0.0 tlacitko startTHEN SET chapadlo O0.0 ventil pro sep. chapadlaSTEP pokracIF chapad_1 I0.1 chapadlo uchopiloTHEN SET rameno O0.1 rameno podavace...STEP nastavIF tnastav I0.5 tlacitko nastaveni casuTHEN LOAD trimr IW2 slovo trimruTO pcas TP1 predv. casu pro chap.IF N tnastav I0.5 tlacitko nastaveni casuTHEN JMP TO startV tomto příkladu lze při zapnutí napájení držet tlačítko tnastav, které způsobískok na krok nastav. V tomto kroku se přepisuje slovo trimru nazvané trimr dopředvolby času pro chapadlo pcas. Jakmile uvolníme tlačítko tnastav, jepřepis přerušen a program se přesouvá opět na začátek, aby následněproběhl běžným způsobem. Pokud chceme, můžeme tuto otáčením trimruzadávanou hodnotu pro potřeby času například násobit číslem 10 (max.hodnota bude tedy 10 x 63 = 630, tj. 6,3 sekundy. Pak bude krok nastavvypadat takto:7


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98STEP nastavIF tnastav I0.5 tlacitko nastaveni casuTHEN LOAD trimr IW2 slovo trimru* V10TO pcas TP1 predv. casu pro chap.IF N tnastav I0.5 tlacitko nastaveni casuTHEN JMP TO startVšechny příkazy k tomuto příkladu najdete v příslušných kapitolách.5 Příkazy IF (jestliže), THEN (pak), OTHRW (jinak), SET(zapni)Struktura programování v jazyce STL je jednoduchá – vždy se jedná o výraz„jestliže (IF) je splněna podmínka, potom (THEN) se něco vykoná, pokudnení splněna (=jinak) (OTHRW), vykoná se něco jiného. Část výrazu bezOTHRW je povinná.A hned jeden příklad:IF I0.0 zde je podmínkaTHEN SET O0.0 zde je akce (výkonná část)Znamená: jestliže je signál na vstupu I0.0, pak zapni (SET) výstup O0.0.8


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Další příklad:IF I0.0 zde je podmínkaTHEN SET O0.0 je-li splněna, vykoná se tato výkonná částOTHRW SET O0.1 není-li splněna, vykoná se tato výkonná částznamená: jestliže je signál na vstupu I0.0, pak zapni (SET) výstup O0.0.Pokud není tento signál, zapni (SET) výstup O0.1.Jak vidíte, část OTHRW je nepovinná a záleží jen na vás, zda ji potřebujete činikoliv.V software <strong>FST</strong> můžeme ovšem použít symbolické názvy (symbolicoperands), dlouhé maximálně 8 znaků, takže náš příklad může vypadat takto:IFtstartTHEN SET chapadloOTHRW SET ramenoPokud si dovolíme použít tento symbolický název, donutí nás <strong>FST</strong> přiřadit muabsolutní operand (absolut operand), tedy ony I0.0, O0.0 a O0.1. Takženakonec se v seznamu operandů (allocation list), který se doplňujeautomaticky každým novým výrazem, objeví nejen povinný absolutníoperand, ale také operand symbolický a pokud ho vložíme, také komentář,například:9


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Absolutní operand Symbolický operand KomentářI0.0 tstart I0.0 tlacitko startO0.0 chapadlo O0.0 ventil pro sepnuti chapadlaO0.1 rameno O0.1 rameno podavacePokud se rozhodneme používat symbolické názvy, budeme mít výhodu, že siprogram po sobě plynule přečteme. Další výhodou je snadná změna: pokudnapříklad připojíme tlačítko start na vstup I0.1, stačí ve výše uvedené tabulcezměnit přiřazení výrazu „tstart“ jinému vstupu – I0.1. Není třeba kontrolovat,kde se všude tento vstup v našem programu či programech vyskytuje; on jezkrátka všude „tstart“. V komentáři se vyplatí uvádět nejen slovní popisoperandu, ale také jeho absolutní název (tedy např. I0.0), neboť pozdějiuvidíme, že v některých režimech <strong>FST</strong> není jiná možnost, jak daný operandrychle lokalizovat, než podle komentáře.Náš příklad po doplnění všech náležitostí:IF tstart I0.0 tlacitko startTHEN SET chapadlo O0.0 ventil pro sep. chapadlaOTHRW SET rameno O0.1 rameno podavače6 Příkaz STEP (krok)Celý program můžeme rozdělit do kroků (STEP) s mnemotechnickými názvy(opět do osmi znaků), které programování většiny technologií velmizjednodušší (viz též kapitola Zadávání operandů).10


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Příklad:STEP startIF tstart I0.0 tlacitko startTHEN SET chapadlo O0.0 ventil pro sep. chapadlaSTEP pokracIF chapad_1 I0.1 chapadlo uchopiloTHEN SET rameno O0.1 rameno podavacePokud teď programátor čte svoje dílo, dozví se následující: Až stisknu tlačítkostart, zapne se chapadlo. Až uchopí (koncový spínač na vstupu I0.1 –chapadlo uchopilo), zapne se pohyb ramene podavače.Už známe: IF (jestliže), THEN (potom), OTHRW (jinak), SET (zapni)7 Příkaz RESET (vypni)STEP startIF tstart I0.0 tlacitko startTHEN SET chapadlo O0.0 ventil pro sep. chapadlaSTEP pokracIF chapad_1 I0.1 chapadlo uchopiloTHEN SET rameno O0.1 rameno podavaceRESET k_stop O0.2 kontrolka stop (cervena)11


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Po uchopení se nejen spustí rameno podavače, ale také zhasne kontrolkastop, která mohla být dřívější částí programu rozsvícena.8 Příkaz JMP TO (skoč na)Tento příkaz dovolí skok na libovolný krok v programu, například:STEP startIF tstart I0.0 tlacitko startTHEN SET chapadlo O0.0 ventil pro sep. chapadlaSTEP pokracIF chapad_1 I0.1 chapadlo uchopiloTHEN SET rameno O0.1 rameno podavaceRESET k_stop O0.2 kontrolka stop (cervena)JMP TO konec....STEP konecIF ramen_1 I0.2 rameno se otociloTHEN RESET chapadlo O0.0 ventil pro sep. chapadla..což znamená, že po uchopení a otočení ramene se chapadlo opět uvolní.12


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/989 Příkaz N (není pravda, že), příkaz NOP (no operation)V každém kroku může být i více podmínek a akcí najednou. Například připřerušení signálu z tlačítka nouzový stop chceme program přemístit na kroknouz_st, kde se vše vypne. Na toto tlačítko ale musíme reagovat v každémkroku:STEP startIF N tnouzst I0.3 tlacitko nouzovy stopTHEN JMP TO nouz_stIF tstart I0.0 tlacitko startTHEN SET chapadlo O0.0 ventil pro sep. chapadlaSTEP pokracIF N tnouzst I0.3 tlacitko nouzovy stopTHEN JMP TO nouz_stIF chapad_1 I0.1 chapadlo uchopiloTHEN SET rameno O0.1 rameno podavaceRESET k_stop O0.2 kontrolka stop (cervena)JMP TO konec....STEP konecIF N tnouzst I0.3 tlacitko nouzovy stopTHEN JMP TO nouz_stIF ramen_1 I0.2 rameno se otociloTHEN RESET chapadlo O0.0 ventil pro sep. chapadla.13


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98...STEP nouz_stIFNOPTHEN RESET chapadlo O0.0 ventil pro sep. chapadlaRESET rameno O0.1rameno podavace.Zde si všimněte, že se ptáme na negativní stav tlačítka nouzový stop, tedyjestliže je přerušen signál od tohoto tlačítka, přesouvá se program na kroknouz_st. Ten zní: jestliže nic (NOP – no operation = prázdná operace), takvypni chapadlo a vypni rameno.Pokud je v kroku více akcí a podmínek, program tento krok neopustí, dokudse nesplní poslední z nich (nebo pokud ho nepošleme pryč příkazem JMPTO). Takže podmínka, která je vždy splněna, může vypadat například takto:IF ramen_1 I0.2 rameno se otociloTHEN RESET chapadlo O0.0 ventil pro sep. chapadlaOTHRWNOPPokud je rameno otočeno, vypne se chapadlo. Pokud není (OTHRW = jinak),program pokračuje dál. Vidíte, že zařazení:OTHRWNOPPrakticky znamená příkaz k pokračování, i když není splněna podmínka poIF.14


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/9810 Příkazy AND (logické „A“), OR (logické „NEBO“)Podmínek pro každou akci může být víc; lze je spojovat do logických vazeb:IF tstart I0.0 tlacitko startAND N tstop I0.4 tlacitko stopTHEN SET chapadlo O0.0 ventil pro sep. chapadlaTedy: jestliže stiskneme tlačítko start a není v té době stisknuto tlačítko stop,chapadlo se sepne.IF tstart I0.0 tlacitko startOR tstop I0.4 tlacitko stopTHEN SET chapadlo O0.0 ventil pro sep. chapadlaTedy: jestliže stiskneme tlačítko start nebo tlačítko stop, chapadlo se sepne.11 Použití časovače (timer)Každý časovač obsazuje tři operandy:časovač (T), předvolbu časovače (TP) a aktuální hodnotu času (TW).15


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/9811.1 Předvolba časovače (timer preselection - TP)je bajt, ve kterém je uloženo číslo, reprezentující předvolbu času v setináchsekundy. Například, je-li v TP1 uložena hodnota 100, je předvolen na 1sekundu. Rozmezí hodnot v předvolbě je 0 až 65.535, tj. 655,35 s.11.2 Aktuální hodnota časovače (timer word – TW)je bajt, ve kterém je momentální hodnota časovače; je tedy neustálev pohybu nebo je v něm nula. Například, je-li v TW0 hodnota 50, zbývá dokonce běžícího času 0,5 s.11.3 Časovač (timer – T)je bit, který vše uvádí do pohybu. Nabývá tedy pouze hodnot 0 a 1, podobnějako například binární výstup. Po jeho zapnutí se předvolba času přepíše doaktuální hodnoty a začne se odečítat. Po jejím odečtení do nuly se časovačsám vypne. Příklad:STEP startIF tstart I0.0 tlacitko startTHEN SET cas T1 casovac pro sep. chapadlaSTEP cekaIF N cas T1 casovac pro sep. chapadlaTHEN SET chapadlo O0.0 ventil pro sep. chapadlaSTEP pokracIF chapad_1 I0.1 chapadlo uchopiloTHEN SET rameno O0.1 rameno podavaceRESET k_stop O0.2 kontrolka stop (cervena)16


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Tedy po stisku tlačítka start spustíme časovač. V dalším kroku si počkáme,až se sám vypne (= dojde do nuly) a zapneme chapadlo.Těchto časovačů má <strong>FEC</strong> 256, tedy od T0, TP0 a TW0 až po T255, TP255 aTW255.Praktická poznámka:Dejte si též pozor na následující problém: v jednom kroku programuodstartujeme tři děje a tři časovače. V dalším kroku počkáme, až se všechnytři splní, a teprve potom program pustíme dále. Zláká vás určitě jednoduchéřešení:IFNOPTHEN SET cas_bub T2 casovac pro motor bubnuSET cas_zav T3 casovac pro zavoruSET cas_klap T4 casovac pro klapkuSET buben O0.4 motor bubnuSET zavora O0.5 ventil zavorySET klapka O0.6 ventil klapkySTEP konecIF N cas_bub T2 casovac pro motor bubnuTHEN RESET buben O0.4 motor bubnuIF N cas_zav T3 casovac pro zavoruTHEN RESET zavora O0.5 ventil zavoryIF N cas_klap T4 casovac pro klapkuTHEN RESET klapka O0.6 ventil klapkyIF N cas_bub T2 casovac pro motor bubnuAND N cas_zav T3 casovac pro zavoruAND N cas_klap T4 casovac pro klapkuTHENNOPSTEP dale.17


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98které je ale riskantní. Proč? Při průchodu tímto krokem může dojít z důvodučasového rizika k problému, neboť při dotazech na začátku kroku najednotlivé časy pro vypínání výstupů ještě může některý z časovačů býtaktivní (takže jeho výstup se nevypne), pak časovač doběhne a vypne se,program na konci kroku to zjistí a pokračuje dále, aniž by byly všechny dějeze začátku kroku ukončeny. A programátor nechápe, co se děje, vždyť je tovlastně správně! Správnější a spolehlivý způsob je využít možnost, kterou<strong>FST</strong> skýtá, a tou je dotaz na výstupy:IFNOPTHEN SET cas_bub T2 casovac pro motor bubnuSET cas_zav T3 casovac pro zavoruSET cas_klap T4 casovac pro klapkuSET buben O0.4 motor bubnuSET zavora O0.5 ventil zavorySET klapka O0.6 ventil klapkySTEP konecIF N cas_bub T2 casovac pro motor bubnuTHEN RESET buben O0.4 motor bubnuIF N cas_zav T3 casovac pro zavoruTHEN RESET zavora O0.5 ventil zavoryIF N cas_klap T4 casovac pro klapkuTHEN RESET klapka O0.6 ventil klapkyIF N buben O0.4 motor bubnuAND N zavora O0.5 ventil zavoryAND N klapka O0.6 ventil klapkyTHENNOPSTEP dale..18


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98V tomto případě se totiž ptáme skutečně na proběhnutý děj, nikoliv jen napodmínky k němu vedoucí.Předvolbu časovače můžeme naplnit přímo z <strong>FST</strong> (například v režimu online),<strong>FEC</strong> si ji bude u prvních 128 časovačů (tedy TP0 až TP127) pamatovati po vypnutí napájení, jsou totiž retentivní. Jiná možnost je plnit předvolbypřímo v našem programu:12 Příkaz LOAD TO (nahraj do)Tímto příkazem můžeme obsadit celý bajt, tedy nahrát do něj nějaké číslonebo jiný bajt. Lze ho použít třeba pro plnění registrů, předvoleb časovačů,předvoleb čítačů, vypínání celé osmice výstupů najednou, atd.Ukážeme si příklad, jak naplnit předvolbu čítače:STEP startIF tstart I0.0 tlacitko startTHEN LOAD V100TO pcas TP1 predv. casu pro chapadloSET cas T1 casovac pro sep. chapadlaSTEP cekaIF N cas T1 casovac pro sep. chapadlaTHEN SET chapadlo O0.0 ventil pro sep. chapadlaTímto způsobem nahrajeme hodnotu V100 (value = hodnota) do předvolbyčasovače TP1. Je tedy patrné, že lze stejný časovač v různých místechprogramu použít pro jiná zpoždění.Můžeme se též v případě nutnosti ptát na velikost aktuální hodnoty časovače.Z důvodu rizika dotazu na přesnou hodnotu je lepší použít nerovnost.19


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/9813 Porovnávání čísel (, =), použití závorekSTEP startIF tstart I0.0 tlacitko startTHEN LOAD V100TO pcas TP1 predv. casu pro chapadloSET cas T1 casovac pro sep. chapadlaSTEP cekaIF ( slovcas TW1 aktualni hod. cas.chap< V50 )THEN SET chapadlo O0.0 ventil pro sep. chapadlaKrok ceka znamená: až bude aktuální hodnota času 1 menší než 50 setinsekundy, zapni chapadlo.Všimněte si použití závorek. Závorky lze používat pro logické vazby až do 7úrovní (lze tedy otevřít až 7 závorek po sobě).14 Použití čítače (counter)Práce s čítači je velmi podobná práci s časovači. Každý čítač obsazuje takétři operandy:čítač (C), předvolbu čítače (CP) a aktuální hodnotu čítače (CW).20


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/9814.1 Předvolba čítače (counter preselection - CP)je bajt, ve kterém je uloženo číslo, reprezentující předvolbu čítače. Rozmezíhodnot v předvolbě je 0 až 65.535.14.2 Aktuální hodnota čítače (counter word – CW)je bajt, ve kterém je momentální hodnota čítače.Příklad:STEP startIFNOPTHEN LOAD V20TO pcitac CP0 predv. citaceSET citac C0 citacSTEP cyklusIF N citac C0 citacTHEN JMP TO konecIF citac C0 citacAND chapad_0 I0.2 chapadlo povoliloTHEN SET chapadlo O0.0 ventil pro sep. chapadlaSTEP pokracIF chapad_1 I0.1 chapadlo uchopiloTHEN RESET chapadlo O0.0 ventil pro sep. chapadlaINC citac C0 citacJMP TO cyklusSTEP konec...21


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Tedy nejprve se naplní předvolba, pak se časovač inicializuje (SET citac) aprobíhá cyklus. Po uplynutí 20 cyklů se program přesune na krok konec.Příkaz INC zvyšuje obsah čítače o jedničku, příkaz DEC ho snižuje (připočítání od předvolené hodnoty směrem dolů).15 RegistryRegistry jsou bajty, které obsahují nějaké číslo. Těchto registrů je ve <strong>FEC</strong>256, tedy od R0 do R255, R0 až R127 jsou retentivní, jejich obsah zůstávázachován i po vypnutí <strong>FEC</strong>. Do registru lze uložit číslo od 0 do 65.535, totočíslo může reprezentovat například počet vyrobených kusů, apod. Ukážemesi jeho použití třeba pro hodnotu, kterou chceme nahrát do předvolbyčasovače:STEP startIF tstart I0.0 tlacitko startTHEN LOAD hodnota R10 zadani predv.cas.chap.TO pcas TP1 predv. casu pro chapadloSET cas T1 casovac pro sep. chapadlaSTEP cekaIF ( slovcas TW1 akt. hod. cas. chapadla< V50 )THEN SET chapadlo O0.0 ventil pro sep. chapadla16 PříznakyPříznaky (flags – F) jsou jednobitové paměti, které tedy mohou nabývathodnoty logická 1 nebo logická 0. Vždy 16 příznaků tvoří slovo příznaků22


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98(FW), tedy jeden bajt (v případě příznaků mluvíme o 16-ti bitovém bajtu – vizkapitola Binární soustava). Podobně jako u výstupů můžeme jednotlivépříznaky jak zapínat (SET), tak vypínat (RESET), můžeme se také na ně ptát:IF F0.0THEN SET O0.0znamená, že pokud je zapnut příznak F0.0, zapne se výstup O0.0.Příkaz:IF N F0.0THEN SET O0.1zase znamená, že pokud není zapnut příznak F0.0, zapne se výstup O0.1.I o příznacích platí, že lze pracovat s bajtem, tedy používat decimálnívyjádření dvojkových čísel (viz kapitola Binární soustava). <strong>FEC</strong> obsahujecelkem 256 slov příznaků, tedy FW0 až FW255, z nichž první polovina (FW0až FW127) je retentivní, takže jejich stav zůstává uchován i po vypnutí <strong>FEC</strong>.16.1 K čemu se hodí příznaky?Lze je použít k jednoduchému „značkování“ chodu programu (kudy prošel)nebo třeba k předávání informace mezi jednotlivými částmi programu neboprogramů. Viz například kapitola Paralelní chod programů.23


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/9817 Paralelní chod programů (multitasking)V systému <strong>FEC</strong> může být nahráno až 64 programů, které všechny mohouběžet současně. Po spuštění <strong>FEC</strong> se rozeběhne program číslo 0, který pakmůže pouštět ostatní (ty se navzájem mohou také spouštět nebo zastavovat).Stačí k tomu například příkaz:SETP3který znamená spusť program číslo 3. V praxi to znamená, že si můžemenaši úlohu obvykle rozdělit do několika dílčích, které se snadno naprogramujía odladí, a pak je pustíme najednou.17.1 Příklad paralelního chodu programůDejme poněkud zjednodušený, ale typický příklad: otočný stůl, který budeplnit řekněme nějaké kelímky: každá pozice stolu je jednoduchou úlohou(přisunutí kelímku, dávka náplně, víčko, razítko, vysunutí kelímku), takže prokaždou použijeme jeden program. Celou úlohu bude řídit také jeden program,říkejme mu organizační. Jeho úkolem bude také otáčet stolem.Jak bude vypadat spolupráce mezi programy?Jedna z možností je použít příznaky, které nazveme startx a statusxProgram pro každou pozici může mít tuto strukturu:STEP zacatekIF N start3 F0.3 start podprogramu 3THEN JMP TO zacatekOTHRW SET status3 F1.3 status podpgm. 3 – bezi24


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98STEP startzde se odehraje technologie až do fáze, kdy lze otočit stolem (už nicnepřekáží, ale činnost pracoviště ještě úplně skončit nemusela)..RESET status3 F1.3 status podpgm. 3 – beziSTEP xxxzde se odehraje zbytek technologie, aby bylo pracoviště znovu připraveno kestartu nového cyklu..STEP konecIFNOPRESET start3 F0.3 start podprogramu 3JMP TO zacatekHlavní, organizační program bude vypadat následovně:STEP initIFNOPTHEN RESET start1 F0.1 start podprogramu 1RESET start2 F0.2 start podprogramu 2RESET start3 F0.3 start podprogramu 3..RESET status1 F1.1 status podpgm. 1 – beziRESET status2 F1.2 status podpgm. 2 – beziRESET status3 F1.3 status podpgm. 3 – bezi..SET kelimky P1 prisun kelimku25


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98SET plneni P2 plneni materialemSET vicka P3 vicka..STEP cyklusIFNOPTHEN SET start1 F0.1 start podprogramu 1SET start2 F0.2 start podprogramu 2SET start3 F0.3 start podprogramu 3..STEP beziIF status1 F1.1 status podpgm. 1 – beziAND status2 F1.2 status podpgm. 2 – beziAND status3 F1.3 status podpgm. 3 – bezi..THENNOPSTEP stulIF N status1 F1.1 status podpgm. 1 – beziAND N status2 F1.2 status podpgm. 2 – beziAND N status3 F1.3 status podpgm. 3 – bezi..THEN SET stul O0.5 motor stolu..následuje zastavení stolu apod....26


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98STEP znovu?IF N start1 F0.1 start podprogramu 1AND N start2 F0.2 start podprogramu 2AND N start3 F0.3 start podprogramu 3..THEN JMP TO cyklusTeď komentář k tomu všemu: program pro pozici na otočném stole (říkejmemu podprogram, i když z pohledu systému <strong>FEC</strong> se jedná o stejněplnohodnotný program jako je hlavní, organizační) má na začátku kroks názvem zacatek, v něm čeká na zapnutí příznaku start3. Hlavní program nazačátku cyklu (krok cyklus) zapne starty všech pozic (tedy také SET start3),takže podprogram se rozjede a odpoví zapnutím příznaku status3, podobnějako i ostatní podprogramy. Hlavní program přejede krok bezi (kontrolaodpovědí všech odstartovaných podprogramů) a poté čeká, až bude mociotočit stolem (krok stul). Dočká se v okamžiku, kdy všechny podprogramyvypnou svoje statuty (v kroku, kde už nepřekáží otočení stolu, příkaz RESETstatus3) a otočí stolem. Během otáčení stolu se dokončí činnost všechpodprogramů až do konce tak, aby mohly být znovu odstartovány. Najevo todají vypnutím startux (tedy v naší ukázce v kroku konec dojde k RESETstart3). Hlavní program poté, co zastavil stůl, zkontroluje (eventuelně ipočká), až budou všechny činnosti dokončeny, a vrátí se na start novéhocyklu (krok znovu?, skok JMP TO cyklus).Tato ukázka si neklade za cíl radit vám při tvorbě vaší úlohy, je to jen příklad,který by vám mohl pomoci při promýšlení toho, jak lze využít paralelní chodprogramů a komunikaci mezi nimi prostřednictvím příznaků. Samozřejmě, žepodobnou funkci mohou mít i například registry, jejichž obsah je navzájempřepisován a testován oběma (nebo všemi) komunikujícími programy.27


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/9818 PodprogramyVe <strong>FST</strong> můžeme používat též tzv. podprogramy. Jejich tvorba a struktura jeshodná s programy, základní rozdíl je v tom, že podprogram už nemůžespouštět další podprogram. Při zakládání programu v editoru STL stačí uvésttyp B (z německého Baustein) namísto P a rázem tvoříme podprogram.Takových podprogramů může být celkem 100 (od 0 do 99). Podprogram stačíukončit příkazem PSE, který znamená konec podprogramu:IF ……THEN …PSEProgram, ve kterém chceme tento podprogram, řekněme třeba hned ten první(s označením B00) zavolat, bude vypadat například takto:IF…..THENCMP0Podprogram takto spuštěný se rozeběhne, po dojetí na výše uvedený příkazPSE se zastaví a předá štafetu opět programu, který ho zavolal. Tentoprogram čeká na toto „předání štafety“, aby mohl pokračovat.28


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/9819 Binární soustavaPracujeme-li s výrazy bit a bajt, bude dobré vysvětlit, co se tím míní.Představme si vláček s vagónky. Nultý poveze číslo 1 (nebo-li 2 0 ), prvnípoveze 2 (2 1 ), druhý poveze 4 (2 2 ) a každý další vždy dvojnásobek toho, copředchozí.č.vagónku 7 6 5 4 3 2 1 0kolik veze jedenkaždý128 64 32 16 8 4 2 1tj. 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0Celý vlak veze tolik, kolik je na jednotlivých vagóncích, tj. maximálně 255.Celý vlak je jeden bajt, který se skládá z osmi bitů (vagónků).A teď si představme, že vlak je slovo výstupů a každý vagónek jedenjednotlivý výstup.Výstup O0.7 O0.6 O0.5 O0.4 O0.3 O0.2 O0.1 O0.0Kolik znamenájeden každý128 64 32 16 8 4 2 1tj. 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0Takže zapneme-li pouze výstup O0.0 a všechny ostatní jsou vypnuty, budeve slově výstupů OW0 číslo 1. Zapneme-li ještě O0.4, bude ve slově výstupůOW0 číslo 17:Výstup O0.7 O0.6 O0.5 O0.4 O0.3 O0.2 O0.1 O0.0Kolik znamenájeden každý128 64 32 16 8 4 2 1tj. 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0Součet (obsahbajtu) je 17vypnut vypnut vypnut 16 vypnut vypnut vypnut 129


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Znamená to tedy, že zapnout výstupy O0.4 a O0.0 a vypnout všechny ostatníO0.x lze příkazem:LOADTOV17OW0nebo-li: nahraj číslo 17 do slova výstupů OW0.Naprosto shodně vypadá situace u vstupů. V následující tabulce je napříkladsituace, kdy je signál na vstupech I0.3, I0.5 a I0.7. Obsah vstupního slovaIW0 je v tomto případě tedy 168:Vstup I0.7 I0.6 I0.5 I0.4 I0.3 I0.2 I0.1 I0.0Kolik znamenájeden každý128 64 32 16 8 4 2 1tj. 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0Součet (obsahbajtu) je 168128 bez 32 bez 8 bez bez bezsignálu signálu signálu signálu signáluStejným způsobem lze pracovat i s ostatními jednobitovými operandy,například příznaky. V jejich případě mluvíme o tzv. 16-ti bitovém bajtu,tabulka bude mít tedy následující podobu (například pro FW13):Příznak F13.15 F13.14 F13.13 F13.12 F13.11 F13.10 F13.9 F13.8Kolik znamená 32768 16384 8192 4096 2048 1024 512 256jeden každýTj. 2 15 2 14 2 13 2 12 2 11 2 10 2 9 2 8Příznak F13.7 F13.6 F13.5 F13.4 F13.3 F13.2 F13.1 F13.0Kolik znamená 128 64 32 16 8 4 2 1jeden každýtj. 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 030


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/9820 Jak zadávat operandy?Na závěr ještě jedna poznámka k zadávání operandů v programu <strong>FST</strong>.Jakmile napíšete nějaký výraz, který program dosud nezná, považuje ho zasymbolický operand (tj. váš název nějakého operandu systému) a vyzve vásk doplnění ostatních údajů, absolutního operandu a komentáře. Pokud sevám povede napsat absolutní název operandu (například I0.0), jste vyzvánik doplnění symbolického názvu a komentáře. Jediný výraz z těchto tří, kterýje povinný, je absolutní název operandu. Pokud ale chceme využítmožností, které nám program nabízí, měli bychom začít oním symbolickýmoperandem například tstart, po výzvě doplnit absolutní operand – I0.0 (vstupI0.0) a komentář – I0.0 tlacitko start. Výzva po stisku F1 zmizí a vše se uložído seznamu operandů (allocation list), ve kterém můžeme přirozeně editovat.Editace je možná například přímo při programování po stisku F7 z hlavníhomenu a pak volby edit allocation list. Právě v tomto místě můžeme napříkladelegantně změnit přiřazení vstupů – pokud všude používáme výraz tstart apak se rozhodneme tlačítko připojit na jiný vstup (nebo ho tam někdo připojilza nás), stačí v této tabulce přepsat (po stisku F2 – změna) přiřazení, tj.místo I0.0 například I0.7. Rázem se ve všech programech vše změní, anižbychom museli hledat, kde všude se onen původní vstup I0.0 vyskytuje.21 TCP/IPS rozvojem moderních technologií se ukázalo jako velice výhodné vybavitautomaty rozhraním pro komunikaci pomocí protokolu TCP/IP. Automatvybavený tímto rozhraním může sdílet informace nejen s mnoha dalšímiautomaty vybavenými tímto rozhraním, ale i jinými zařízeními vybavenýmitímto rozhraním. V dnešní době se jedná o např. o některé typy displejů, ale io osobní počítače a servery. TCP/IP je protokol univerzální, takže nejsme při31


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98komunikaci omezeni vzdáleností, ale je možné v případě potřebykomunikovat i pomocí Internetu třeba z jednoho kontinentu na druhý.Nejprve je potřeba vložit do projektu TCP/IP driver. To se provede v DriverConfiguration, zvolí se Insert Driver a vybere se TCP/IP driver. Objeví senásledující okno, kde se nastaví některé důležité údaje:Pro správnou funkci všech jednotek v síti, je nutné nastavit pouze hodnotu IPaddress. Tato adresa se skládá ze čtyř číslic od 0 do 999 a každý počítačnebo automat musí mít jiné číslo. V našem případě má 192.168.2.44 jiný mátřeba 192.168.2.45.Nyní klepneme na tlačítko OK a máme nainstalován TCP/IP driver a můžemevyužívat výhod počítačové sítě. Nyní si předvedeme jak odeslat informace dojiného automatu a vyžádat si informace z jiného automatu.32


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Budeme potřebovat následující podprogramy a tak je vložíme do projektu poduvedená čísla (viz. tabulka). Pravým tlačítkem myši klepneme ve stromuprojektu na položku CFMs a zvolíme Import:Název číslo popisIP_TABLE CFM 0 Vytvoří tabulku IP adresEASY_S CFM 1 Odešle blok operandů do jiného automatuEASY_R CFM 2 Vyžádá si blok operandů z jiného automatuA nyní si předvedeme jak jednotlivé příkazy použít.Protože ve <strong>FST</strong> nepracujeme přímo s IP adresami, potřebujeme napřed dotzv. Tabulky IP adres zavést IP adresu automatu, s nímž budemekomunikovat. Budeme předpokládat, že jeho adresa je 192.168.2.45, jezapnutý a má nainstalován TCP/IP driver a je připojen do sítě.IF ...THEN CMP 0WITH V1 -chceme zapsat do tabulkyWITH V192 -1. část IP adresyWITH V168 -2. část IP adresyWITH V2 -3. část IP adresyWITH V45 -4. část IP adresy33


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Tak nyní máme uloženu IP adresu a můžeme vyslat blok operandů dovzdáleného automatu:IF ...THEN CMP 1WITH V1 - Index v tabulce IP adresWITH V1 - Druh operanduWITH V10 -Počet operandů (max. 256)WITH V33 -Číslo 1. operandu (zde FW33)WITH V44 -Číslo kde se uloží ve vzdáleném aut.WITH V11 -do FW11 uloží stav příp. chybuTento příkaz odešle na IP adresu s indexem 1 deset flagwordů od čísla FW33pro FW42. Ve vzdáleném automatu se uloží do flagwordů od indexu FW44dále. Výsledek operace uloží do FW11. Další možnosti parametrů:Druh operandu:- 1 = flagword, 2 = vstupy, 3 = výstupy, 4 = registry, 11 = Strings34


<strong>FST</strong> <strong>FEC</strong>krátký úvod do programování v jazyce STL, verze 1-3/98Poslední podstatnou funkcí je vyžádání bloku operandů ze vzdálenéhoautomatu:IF ...THEN CMP 1WITH V1 - Index v tabulce IP adresWITH V1 - Druh operanduWITH V10 -Počet operandů (max. 256)WITH V33 -Číslo 1. operandu (zde FW33)WITH V44 -Číslo operadu vzdáleného aut.WITH V11 -do FW11 uloží stav příp. chybuTento příkaz si vyžádá z IP adresy s indexem 1 deset flagwordů od FW44 poFW53 a uloží je v tomto automatu od čísla FW33 po FW42. Výsledekoperace uloží do FW11. Další možnosti parametrů:Druh operandu:- 1 = flagword, 2 = vstupy, 3 = výstupy, 4 = registry, 11 = StringsFESTO-CZ, 6/0135

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!