+ All Categories
Home > Documents > FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící...

FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící...

Date post: 24-Mar-2018
Category:
Upload: dinhthuan
View: 220 times
Download: 2 times
Share this document with a friend
39
FST FEC krátký úvod do programování v jazyce STL
Transcript
Page 1: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FEC

krátký úvod do programování v jazyce STL

Page 2: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup
Page 3: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

OBSAH:

1 PŘEDMLUVA 1

2 VSTUPY (INPUTS) 1

2.1 Co lze se vstupy? 3

3 VÝSTUPY (OUTPUTS) 4

3.1 Co lze s výstupy? 5

4 TRIMR 6

5 PŘÍKAZY IF (JESTLIŽE), THEN (PAK), OTHRW (JINAK), SET (ZAPNI)8

6 PŘÍKAZ STEP (KROK) 10

7 PŘÍKAZ RESET (VYPNI) 11

8 PŘÍKAZ JMP TO (SKOČ NA) 12

9 PŘÍKAZ N (NENÍ PRAVDA, ŽE), PŘÍKAZ NOP (NO OPERATION) 13

10 PŘÍKAZY AND (LOGICKÉ „A“), OR (LOGICKÉ „NEBO“) 15

11 POUŽITÍ ČASOVAČE (TIMER) 15

11.1 Předvolba časovače (timer preselection - TP) 16

11.2 Aktuální hodnota časovače (timer word – TW) 16

11.3 Časovač (timer – T) 16

12 PŘÍKAZ LOAD TO (NAHRAJ DO) 19

13 POROVNÁVÁNÍ ČÍSEL (<, >, =), POUŽITÍ ZÁVOREK 20

14 POUŽITÍ ČÍTAČE (COUNTER) 20

14.1 Předvolba čítače (counter preselection - CP) 21

14.2 Aktuální hodnota čítače (counter word – CW) 21

Page 4: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

15 REGISTRY 22

16 PŘÍZNAKY 22

16.1 K čemu se hodí příznaky? 23

17 PARALELNÍ CHOD PROGRAMŮ (MULTITASKING) 24

17.1 Příklad paralelního chodu programů 24

18 PODPROGRAMY 28

19 BINÁRNÍ SOUSTAVA 29

20 JAK ZADÁVAT OPERANDY? 31

21 TCP/IP 31

Page 5: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

1

1 Předmluva

Tento velmi zjednodušený úvod do programování v jazyce STL si neklade za

cíl naučit vás vše, co lze s uvedenými prostředky dokázat; jeho úkolem by

mě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. Pokud

s takovou činností začínáte, je tento materiál určen právě vám. Nebudeme se

ani příliš zabývat instalací FST, postupem navedení do programovacího

prostředí, způsobem nahrávání dat a konfigurace systému FEC; k tomu

slouží návod pod názvem „FST FEC pro shareware verzi, krátký návod

k 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 FEC a jemu

podobný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ému

do druhého a přeložit automaticky z jednoho jazyka do druhého (software je

vž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 jsou

identické 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 to

příjemný způsob; úvod do tohoto jazyka najdete opět ve výše uvedeném

ná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í:

Page 6: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

2

Pracujeme-li například s běžnými čidly PNP, je rozepnutý stav indikován

stavem „nezapojen“, stav sepnutý napětím blízkým napájecímu (vodič se

signálem je připojen na napájení čidla; napětí na něm je tedy jen o málo

menší, než je napájecí napětí čidla).

Poněkud méně častá je práce s čidly NPN: rozepnutý stav je indikován

napě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“, ve

stavu rozepnutém připojen na napájecím napětí. Výstup čidla NPN pak ve

stavu sepnutém „nezapojen“, ve stavu rozepnutém pak uzemněn.

U našeho systému FEC se můžeme rozhodnout, zda používáme vstupy PNP

nebo NPN. U vstupů PNP připojíme svorku označenou S0 na záporný pól

napájení vstupů, pro vstupy NPN tuto svorku připojíme na kladný pól

napá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ě na

kladný pól napájení). Připojíme ho na vstup systému. Svorku S0 připojíme na

záporný pól napájení. Pokud je nyní vstup pod signálem (např. indukční čidlo

reaguje 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 do

logické 1 (sepne a rozsvítí se příslušná LED dioda na čelním panelu FEC).

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 FEC: jeho vstupy (inputs), jsou vždy označené nějakou

adresou. 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).

Page 7: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

3

Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

I0.0 prvním z řady. Tato řada je vyvedena na svorky, bude tedy i prvním

v ř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 rozhoduje

v konfiguraci vstupů a výstupů (najdeme v menu FST 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 FEC 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íme

jen jedno.

Je tedy jasné, že uvedeme-li při instalaci FEC například vstupní slovo IW5,

bude mít první vstup v řadě svorek adresu I5.0, další I5.1, atd., až k I5.7. Pak

budeme 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, kam

připojíme příslušnou svorku, zda na kladný či záporný pól napájení. (při

pohledu na čelní stranu FEC logicky vyplyne, že pro první osmici (bajt) vstupů

je svorka S0, pro další čtveřici svorka S1)

2.1 Co lze se vstupy?

Předběhněme několik kapitol a podívejme se na možnosti, co lze všechno se

vstupy 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 se

můžeme v našem programu ptát (testovat je):

IF I0.0 znamená dotaz, je-li napětí na vstupu I0.0. Naopak

Page 8: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

4

IF N I0.0

znamená dotaz, je-li vstup I0.0 bez napětí. Tyto signály ovšem nemůžeme

programem ovlivňovat - přichází zvenku, nemůžeme je tedy programem

zapí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:

IF IW0

= V2 je 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 FST číslo 2 (písmeno V znamená anglicky

„value“ nebo-li hodnota, je povinně uvedeno před každým číslem a říká, že za

ním uvedené číslo je skutečně číslo bez desetinné čárky – FST s jinými čísly

nepracuje).

3 Výstupy (outputs)

Jako výstupy jsou označovány signály jdoucí ze systému ven. Tady je situace

v porovnání se vstupy poněkud jednodušší, neboť v případě FEC se jedná o

kontakty 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ři

mohou 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ždy

na společnou svorku, která je jasně znázorněna opět přímo na čelní stěně

FEC.

Takže bude-li náš FEC obsahovat výstupy s adresami O0.0 až O0.7 a

sepneme-li výstup O0.0 (tedy nultý výstup – bit v nultém slově – bajtu), sepne

Page 9: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

5

relé, jehož kontakt je vyveden na první svorku v řadě (a rozsvítí se

odpovídající LED dioda).

Proč „bude-li obsahovat?“ Protože podobně jako u vstupů se u tohoto

systému rozhoduje v konfiguraci vstupů a výstupů (najdeme v menu FST jako

I/O configuration), jakou adresu bude mít právě tento první výstup. Při

konfiguraci jsme totiž také dotázáni, jaké výstupní slovo (OW) chceme

instalovat. 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 FEC 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, abychom

se podívali na to, co s nimi lze v našem programu. Výstupy mají také dva

stavy: 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,

Page 10: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

6

IF N O0.0

znamená dotaz na vypnutý stav výstupu. To má význam například při

použí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 hodit

například při nouzovém stopu k vypnutí všech výstupů jedním příkazem)

THEN LOAD V0TO OW0znamená: nahraj nulu do slova výstupů číslo 0 (OW0). V tomto okamžiku se

vypnou všechny výstupy od O0.0 do O0.7. Můžeme ovšem do tohoto slova

nahrát i jiné číslo (opět se jedná o decimální vyjádření dvojkového čísla – viz

kapitola Binární soustava).

4 Trimr

Trimr je vlastně potenciometr, jehož si můžeme povšimnout též na čelní

straně FEC. Je aktivní až po instalaci ve stejném místě FST, jako vstupy a

vý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 na

IW0 (už ale víme, že tím obsadíme nejen vstupy s adresami I0.0 až I0.7, ale i

I1.0 až I1.3), takže nejbližší volná adresa je IW2. Pokud tedy trimr

nainstalujeme 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 obsluha

stroje či zařízení zadávat jakousi hodnotu do systému, aniž by k tomu

potřebovala počítač či systém doplněný displejem s klávesnicí. Lze tedy velmi

levně a jednoduše nastavovat například čas prodlevy v technologii, atd.

Page 11: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

7

Přeskočme několik kapitol, ukažme si příklad:

STEP start

IF tnastav I0.5 tlacitko nastaveni casuTHEN JMP TO nastavIF tstart I0.0 tlacitko start

THEN SET chapadlo O0.0 ventil pro sep. chapadla

STEP pokrac

IF chapad_1 I0.1 chapadlo uchopilo

THEN SET rameno O0.1 rameno podavace

.

.

.

STEP nastav

IF tnastav I0.5 tlacitko nastaveni casu

THEN LOAD trimr IW2 slovo trimruTO pcas TP1 predv. casu pro chap.

IF N tnastav I0.5 tlacitko nastaveni casu

THEN JMP TO start

V 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 do

předvolby času pro chapadlo pcas. Jakmile uvolníme tlačítko tnastav, je

př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 trimru

zadá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 nastav

vypadat takto:

Page 12: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

8

STEP nastav

IF tnastav I0.5 tlacitko nastaveni casu

THEN LOAD trimr IW2 slovo trimru* V10TO pcas TP1 predv. casu pro chap.

IF N tnastav I0.5 tlacitko nastaveni casu

THEN JMP TO start

Vš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á, pokud

není 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ínka

THEN 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.

Page 13: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

9

Další příklad:

IF I0.0 zde je podmínka

THEN SET O0.0 je-li splněna, vykoná se tato výkonná část

OTHRW SET O0.1 není-li splněna, vykoná se tato výkonná část

znamená: 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 či

nikoliv.

V software FST můžeme ovšem použít symbolické názvy (symbolic

operands), dlouhé maximálně 8 znaků, takže náš příklad může vypadat takto:

IF tstartTHEN SET chapadloOTHRW SET rameno

Pokud si dovolíme použít tento symbolický název, donutí nás FST přiřadit mu

absolutní operand (absolut operand), tedy ony I0.0, O0.0 a O0.1. Takže

nakonec se v seznamu operandů (allocation list), který se doplňuje

automaticky 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:

Page 14: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

10

Absolutní operand Symbolický operand Komentář

I0.0 tstart I0.0 tlacitko start

O0.0 chapadlo O0.0 ventil pro sepnuti chapadla

O0.1 rameno O0.1 rameno podavace

Pokud se rozhodneme používat symbolické názvy, budeme mít výhodu, že si

program po sobě plynule přečteme. Další výhodou je snadná změna: pokud

například připojíme tlačítko start na vstup I0.1, stačí ve výše uvedené tabulce

změ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 je

zkrátka všude „tstart“. V komentáři se vyplatí uvádět nejen slovní popis

operandu, ale také jeho absolutní název (tedy např. I0.0), neboť později

uvidíme, že v některých režimech FST není jiná možnost, jak daný operand

rychle lokalizovat, než podle komentáře.

Náš příklad po doplnění všech náležitostí:

IF tstart I0.0 tlacitko start

THEN SET chapadlo O0.0 ventil pro sep. chapadla

OTHRW SET rameno O0.1 rameno podavače

6 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í velmi

zjednodušší (viz též kapitola Zadávání operandů).

Page 15: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

11

Příklad:

STEP start

IF tstart I0.0 tlacitko start

THEN SET chapadlo O0.0 ventil pro sep. chapadla

STEP pokrac

IF chapad_1 I0.1 chapadlo uchopilo

THEN SET rameno O0.1 rameno podavace

Pokud teď programátor čte svoje dílo, dozví se následující: Až stisknu tlačítko

start, 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 start

IF tstart I0.0 tlacitko start

THEN SET chapadlo O0.0 ventil pro sep. chapadla

STEP pokrac

IF chapad_1 I0.1 chapadlo uchopilo

THEN SET rameno O0.1 rameno podavace

RESET k_stop O0.2 kontrolka stop (cervena)

Page 16: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

12

Po uchopení se nejen spustí rameno podavače, ale také zhasne kontrolka

stop, 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 start

IF tstart I0.0 tlacitko start

THEN SET chapadlo O0.0 ventil pro sep. chapadla

STEP pokrac

IF chapad_1 I0.1 chapadlo uchopilo

THEN SET rameno O0.1 rameno podavace

RESET k_stop O0.2 kontrolka stop (cervena)

JMP TO konec

.

.

.

.

STEP konec

IF ramen_1 I0.2 rameno se otocilo

THEN RESET chapadlo O0.0 ventil pro sep. chapadla

.

.

což znamená, že po uchopení a otočení ramene se chapadlo opět uvolní.

Page 17: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

13

9 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ři

přerušení signálu z tlačítka nouzový stop chceme program přemístit na krok

nouz_st, kde se vše vypne. Na toto tlačítko ale musíme reagovat v každém

kroku:

STEP start

IF N tnouzst I0.3 tlacitko nouzovy stopTHEN JMP TO nouz_stIF tstart I0.0 tlacitko start

THEN SET chapadlo O0.0 ventil pro sep. chapadla

STEP pokrac

IF N tnouzst I0.3 tlacitko nouzovy stopTHEN JMP TO nouz_stIF chapad_1 I0.1 chapadlo uchopilo

THEN SET rameno O0.1 rameno podavace

RESET k_stop O0.2 kontrolka stop (cervena)

JMP TO konec

.

.

.

.

STEP konec

IF N tnouzst I0.3 tlacitko nouzovy stopTHEN JMP TO nouz_stIF ramen_1 I0.2 rameno se otocilo

THEN RESET chapadlo O0.0 ventil pro sep. chapadla

.

Page 18: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

14

.

.

.

STEP nouz_st

IF NOPTHEN RESET chapadlo O0.0 ventil pro sep. chapadla

RESET rameno O0.1rameno podavace

.

Zde si všimněte, že se ptáme na negativní stav tlačítka nouzový stop, tedy

jestliže je přerušen signál od tohoto tlačítka, přesouvá se program na krok

nouz_st. Ten zní: jestliže nic (NOP – no operation = prázdná operace), tak

vypni chapadlo a vypni rameno.

Pokud je v kroku více akcí a podmínek, program tento krok neopustí, dokud

se nesplní poslední z nich (nebo pokud ho nepošleme pryč příkazem JMP

TO). Takže podmínka, která je vždy splněna, může vypadat například takto:

IF ramen_1 I0.2 rameno se otocilo

THEN RESET chapadlo O0.0 ventil pro sep. chapadla

OTHRW NOP

Pokud je rameno otočeno, vypne se chapadlo. Pokud není (OTHRW = jinak),

program pokračuje dál. Vidíte, že zařazení:

OTHRW NOP

Prakticky znamená příkaz k pokračování, i když není splněna podmínka po

IF.

Page 19: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

15

10 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 start

AND N tstop I0.4 tlacitko stop

THEN SET chapadlo O0.0 ventil pro sep. chapadla

Tedy: jestliže stiskneme tlačítko start a není v té době stisknuto tlačítko stop,

chapadlo se sepne.

IF tstart I0.0 tlacitko start

OR tstop I0.4 tlacitko stop

THEN SET chapadlo O0.0 ventil pro sep. chapadla

Tedy: 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).

Page 20: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

16

11.1 Předvolba časovače (timer preselection - TP)

je bajt, ve kterém je uloženo číslo, reprezentující předvolbu času v setinách

sekundy. Například, je-li v TP1 uložena hodnota 100, je předvolen na 1

sekundu. 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ále

v pohybu nebo je v něm nula. Například, je-li v TW0 hodnota 50, zbývá do

konce 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 do

aktuální hodnoty a začne se odečítat. Po jejím odečtení do nuly se časovač

sám vypne. Příklad:

STEP start

IF tstart I0.0 tlacitko start

THEN SET cas T1 casovac pro sep. chapadla

STEP ceka

IF N cas T1 casovac pro sep. chapadla

THEN SET chapadlo O0.0 ventil pro sep. chapadla

STEP pokrac

IF chapad_1 I0.1 chapadlo uchopilo

THEN SET rameno O0.1 rameno podavace

RESET k_stop O0.2 kontrolka stop (cervena)

Page 21: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

17

Tedy 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á FEC 256, tedy od T0, TP0 a TW0 až po T255, TP255 a

TW255.

Praktická poznámka:

Dejte si též pozor na následující problém: v jednom kroku programu

odstartujeme tři děje a tři časovače. V dalším kroku počkáme, až se všechny

tři splní, a teprve potom program pustíme dále. Zláká vás určitě jednoduché

řešení:

IF NOP

THEN SET cas_bub T2 casovac pro motor bubnu

SET cas_zav T3 casovac pro zavoru

SET cas_klap T4 casovac pro klapku

SET buben O0.4 motor bubnu

SET zavora O0.5 ventil zavory

SET klapka O0.6 ventil klapky

STEP konec

IF N cas_bub T2 casovac pro motor bubnu

THEN RESET buben O0.4 motor bubnu

IF N cas_zav T3 casovac pro zavoru

THEN RESET zavora O0.5 ventil zavory

IF N cas_klap T4 casovac pro klapku

THEN RESET klapka O0.6 ventil klapky

IF N cas_bub T2 casovac pro motor bubnu

AND N cas_zav T3 casovac pro zavoru

AND N cas_klap T4 casovac pro klapku

THEN NOP

STEP dale

.

Page 22: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

18

které 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 na

jednotlivé časy pro vypínání výstupů ještě může některý z časovačů být

aktivní (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ěje

ze začátku kroku ukončeny. A programátor nechápe, co se děje, vždyť je to

vlastně správně! Správnější a spolehlivý způsob je využít možnost, kterou

FST skýtá, a tou je dotaz na výstupy:

IF NOP

THEN SET cas_bub T2 casovac pro motor bubnu

SET cas_zav T3 casovac pro zavoru

SET cas_klap T4 casovac pro klapku

SET buben O0.4 motor bubnu

SET zavora O0.5 ventil zavory

SET klapka O0.6 ventil klapky

STEP konec

IF N cas_bub T2 casovac pro motor bubnu

THEN RESET buben O0.4 motor bubnu

IF N cas_zav T3 casovac pro zavoru

THEN RESET zavora O0.5 ventil zavory

IF N cas_klap T4 casovac pro klapku

THEN RESET klapka O0.6 ventil klapky

IF N buben O0.4 motor bubnu

AND N zavora O0.5 ventil zavory

AND N klapka O0.6 ventil klapky

THEN NOP

STEP dale

.

.

Page 23: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

19

V tomto případě se totiž ptáme skutečně na proběhnutý děj, nikoliv jen na

podmínky k němu vedoucí.

Předvolbu časovače můžeme naplnit přímo z FST (například v režimu on-

line), FEC si ji bude u prvních 128 časovačů (tedy TP0 až TP127) pamatovat

i po vypnutí napájení, jsou totiž retentivní. Jiná možnost je plnit předvolby

pří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é číslo

nebo 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 start

IF tstart I0.0 tlacitko start

THEN LOAD V100

TO pcas TP1 predv. casu pro chapadlo

SET cas T1 casovac pro sep. chapadla

STEP ceka

IF N cas T1 casovac pro sep. chapadla

THEN SET chapadlo O0.0 ventil pro sep. chapadla

Tí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ístech

programu 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.

Page 24: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

20

13 Porovnávání čísel (<, >, =), použití závorek

STEP start

IF tstart I0.0 tlacitko start

THEN LOAD V100

TO pcas TP1 predv. casu pro chapadlo

SET cas T1 casovac pro sep. chapadla

STEP ceka

IF ( slovcas TW1 aktualni hod. cas.chap

< V50 )THEN SET chapadlo O0.0 ventil pro sep. chapadla

Krok ceka znamená: až bude aktuální hodnota času 1 menší než 50 setin

sekundy, 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).

Page 25: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

21

14.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 start

IF NOP

THEN LOAD V20

TO pcitac CP0 predv. citace

SET citac C0 citac

STEP cyklus

IF N citac C0 citac

THEN JMP TO konec

IF citac C0 citac

AND chapad_0 I0.2 chapadlo povolilo

THEN SET chapadlo O0.0 ventil pro sep. chapadla

STEP pokrac

IF chapad_1 I0.1 chapadlo uchopilo

THEN RESET chapadlo O0.0 ventil pro sep. chapadla

INC citac C0 citac

JMP TO cyklus

STEP konec

.

.

.

Page 26: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

22

Tedy nejprve se naplní předvolba, pak se časovač inicializuje (SET citac) a

probí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ři

počítání od předvolené hodnoty směrem dolů).

15 Registry

Registry jsou bajty, které obsahují nějaké číslo. Těchto registrů je ve FEC

256, tedy od R0 do R255, R0 až R127 jsou retentivní, jejich obsah zůstává

zachován i po vypnutí FEC. 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ážeme

si jeho použití třeba pro hodnotu, kterou chceme nahrát do předvolby

časovače:

STEP start

IF tstart I0.0 tlacitko start

THEN LOAD hodnota R10 zadani predv.cas.chap.

TO pcas TP1 predv. casu pro chapadlo

SET cas T1 casovac pro sep. chapadla

STEP ceka

IF ( slovcas TW1 akt. hod. cas. chapadla

< V50 )

THEN SET chapadlo O0.0 ventil pro sep. chapadla

16 Příznaky

Příznaky (flags – F) jsou jednobitové paměti, které tedy mohou nabývat

hodnoty logická 1 nebo logická 0. Vždy 16 příznaků tvoří slovo příznaků

Page 27: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

23

(FW), tedy jeden bajt (v případě příznaků mluvíme o 16-ti bitovém bajtu – viz

kapitola 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.0

THEN SET O0.0

znamená, že pokud je zapnut příznak F0.0, zapne se výstup O0.0.

Příkaz:

IF N F0.0

THEN SET O0.1

zase 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). FEC obsahuje

celkem 256 slov příznaků, tedy FW0 až FW255, z nichž první polovina (FW0

až FW127) je retentivní, takže jejich stav zůstává uchován i po vypnutí FEC.

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 nebo

programů. Viz například kapitola Paralelní chod programů.

Page 28: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

24

17 Paralelní chod programů (multitasking)

V systému FEC může být nahráno až 64 programů, které všechny mohou

běžet současně. Po spuštění FEC se rozeběhne program číslo 0, který pak

může pouštět ostatní (ty se navzájem mohou také spouštět nebo zastavovat).

Stačí k tomu například příkaz:

SET P3

který znamená spusť program číslo 3. V praxi to znamená, že si můžeme

naš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ý bude

plnit ř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 pro

kaž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 statusx

Program pro každou pozici může mít tuto strukturu:

STEP zacatek

IF N start3 F0.3 start podprogramu 3

THEN JMP TO zacatek

OTHRW SET status3 F1.3 status podpgm. 3 – bezi

Page 29: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

25

STEP start

zde se odehraje technologie až do fáze, kdy lze otočit stolem (už nic

nepřekáží, ale činnost pracoviště ještě úplně skončit nemusela)

.

.

RESET status3 F1.3 status podpgm. 3 – bezi

STEP xxx

zde se odehraje zbytek technologie, aby bylo pracoviště znovu připraveno ke

startu nového cyklu

.

.

STEP konec

IF NOP

RESET start3 F0.3 start podprogramu 3

JMP TO zacatek

Hlavní, organizační program bude vypadat následovně:

STEP init

IF NOP

THEN RESET start1 F0.1 start podprogramu 1

RESET start2 F0.2 start podprogramu 2

RESET start3 F0.3 start podprogramu 3

.

.

RESET status1 F1.1 status podpgm. 1 – bezi

RESET status2 F1.2 status podpgm. 2 – bezi

RESET status3 F1.3 status podpgm. 3 – bezi

.

.

SET kelimky P1 prisun kelimku

Page 30: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

26

SET plneni P2 plneni materialem

SET vicka P3 vicka

.

.

STEP cyklus

IF NOP

THEN SET start1 F0.1 start podprogramu 1

SET start2 F0.2 start podprogramu 2

SET start3 F0.3 start podprogramu 3

.

.

STEP bezi

IF status1 F1.1 status podpgm. 1 – bezi

AND status2 F1.2 status podpgm. 2 – bezi

AND status3 F1.3 status podpgm. 3 – bezi

.

.

THEN NOP

STEP stul

IF N status1 F1.1 status podpgm. 1 – bezi

AND N status2 F1.2 status podpgm. 2 – bezi

AND N status3 F1.3 status podpgm. 3 – bezi

.

.

THEN SET stul O0.5 motor stolu

.

.

následuje zastavení stolu apod.

.

.

.

Page 31: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

27

STEP znovu?

IF N start1 F0.1 start podprogramu 1

AND N start2 F0.2 start podprogramu 2

AND N start3 F0.3 start podprogramu 3

.

.

THEN JMP TO cyklus

Teď komentář k tomu všemu: program pro pozici na otočném stole (říkejme

mu podprogram, i když z pohledu systému FEC se jedná o stejně

plnohodnotný program jako je hlavní, organizační) má na začátku krok

s názvem zacatek, v něm čeká na zapnutí příznaku start3. Hlavní program na

začá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 (kontrola

odpovědí všech odstartovaných podprogramů) a poté čeká, až bude moci

otočit stolem (krok stul). Dočká se v okamžiku, kdy všechny podprogramy

vypnou svoje statuty (v kroku, kde už nepřekáží otočení stolu, příkaz RESET

status3) a otočí stolem. Během otáčení stolu se dokončí činnost všech

podprogramů až do konce tak, aby mohly být znovu odstartovány. Najevo to

dají vypnutím startux (tedy v naší ukázce v kroku konec dojde k RESET

start3). Hlavní program poté, co zastavil stůl, zkontroluje (eventuelně i

počká), až budou všechny činnosti dokončeny, a vrátí se na start nového

cyklu (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í chod

programů a komunikaci mezi nimi prostřednictvím příznaků. Samozřejmě, že

podobnou funkci mohou mít i například registry, jejichž obsah je navzájem

přepisován a testován oběma (nebo všemi) komunikujícími programy.

Page 32: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

28

18 Podprogramy

Ve FST můžeme používat též tzv. podprogramy. Jejich tvorba a struktura je

shodná s programy, základní rozdíl je v tom, že podprogram už nemůže

spouštět další podprogram. Při zakládání programu v editoru STL stačí uvést

typ 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 …

PSE

Program, 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…..

THEN CMP0

Podprogram takto spuštěný se rozeběhne, po dojetí na výše uvedený příkaz

PSE se zastaví a předá štafetu opět programu, který ho zavolal. Tento

program čeká na toto „předání štafety“, aby mohl pokračovat.

Page 33: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

29

19 Binární soustava

Pracujeme-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 20), první

poveze 2 (21), druhý poveze 4 (22) a každý další vždy dvojnásobek toho, co

předchozí.

č.vagónku 7 6 5 4 3 2 1 0kolik veze jeden

každý128 64 32 16 8 4 2 1

tj. 27 26 25 24 23 22 21 20

Celý 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 jeden

jednotlivý 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 1

tj. 27 26 25 24 23 22 21 20

Takže zapneme-li pouze výstup O0.0 a všechny ostatní jsou vypnuty, bude

ve 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 1

tj. 27 26 25 24 23 22 21 20

Součet (obsah

bajtu) je 17vypnut vypnut vypnut 16 vypnut vypnut vypnut 1

Page 34: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

30

Znamená to tedy, že zapnout výstupy O0.4 a O0.0 a vypnout všechny ostatní

O0.x lze příkazem:

LOAD V17

TO OW0

nebo-li: nahraj číslo 17 do slova výstupů OW0.

Naprosto shodně vypadá situace u vstupů. V následující tabulce je například

situace, kdy je signál na vstupech I0.3, I0.5 a I0.7. Obsah vstupního slova

IW0 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 1

tj. 27 26 25 24 23 22 21 20

Součet (obsah

bajtu) je 168128 bez

signálu

32 bez

signálu

8 bez

signálu

bez

signálu

bez

signálu

Stejný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.8

Kolik znamená

jeden každý

32768 16384 8192 4096 2048 1024 512 256

Tj. 215 214 213 212 211 210 29 28

Příznak F13.7 F13.6 F13.5 F13.4 F13.3 F13.2 F13.1 F13.0

Kolik znamená

jeden každý

128 64 32 16 8 4 2 1

tj. 27 26 25 24 23 22 21 20

Page 35: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

31

20 Jak zadávat operandy?

Na závěr ještě jedna poznámka k zadávání operandů v programu FST.

Jakmile napíšete nějaký výraz, který program dosud nezná, považuje ho za

symbolický operand (tj. váš název nějakého operandu systému) a vyzve vás

k doplnění ostatních údajů, absolutního operandu a komentáře. Pokud se

vám povede napsat absolutní název operandu (například I0.0), jste vyzváni

k 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žít

možností, které nám program nabízí, měli bychom začít oním symbolickým

operandem například tstart, po výzvě doplnit absolutní operand – I0.0 (vstup

I0.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ího

menu a pak volby edit allocation list. Právě v tomto místě můžeme například

elegantně změnit přiřazení vstupů – pokud všude používáme výraz tstart a

pak se rozhodneme tlačítko připojit na jiný vstup (nebo ho tam někdo připojil

za 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/IP

S rozvojem moderních technologií se ukázalo jako velice výhodné vybavit

automaty rozhraním pro komunikaci pomocí protokolu TCP/IP. Automat

vybavený tímto rozhraním může sdílet informace nejen s mnoha dalšími

automaty vybavenými tímto rozhraním, ale i jinými zařízeními vybavenými

tímto rozhraním. V dnešní době se jedná o např. o některé typy displejů, ale i

o osobní počítače a servery. TCP/IP je protokol univerzální, takže nejsme při

Page 36: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

32

komunikaci omezeni vzdáleností, ale je možné v případě potřeby

komunikovat 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 Driver

Configuration, zvolí se Insert Driver a vybere se TCP/IP driver. Objeví se

ná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 IP

address. 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ůžeme

využívat výhod počítačové sítě. Nyní si předvedeme jak odeslat informace do

jiného automatu a vyžádat si informace z jiného automatu.

Page 37: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

33

Budeme potřebovat následující podprogramy a tak je vložíme do projektu pod

uvedená čísla (viz. tabulka). Pravým tlačítkem myši klepneme ve stromu

projektu 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 automatu

A nyní si předvedeme jak jednotlivé příkazy použít.

Protože ve FST nepracujeme přímo s IP adresami, potřebujeme napřed do

tzv. Tabulky IP adres zavést IP adresu automatu, s nímž budeme

komunikovat. Budeme předpokládat, že jeho adresa je 192.168.2.45, je

zapnutý a má nainstalován TCP/IP driver a je připojen do sítě.

IF ...

THEN CMP 0

WITH V1 -chceme zapsat do tabulky

WITH V192 -1. část IP adresy

WITH V168 -2. část IP adresy

WITH V2 -3. část IP adresy

WITH V45 -4. část IP adresy

Page 38: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

34

Tak nyní máme uloženu IP adresu a můžeme vyslat blok operandů do

vzdáleného automatu:

IF ...

THEN CMP 1

WITH V1 - Index v tabulce IP adres

WITH V1 - Druh operandu

WITH 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. chybu

Tento příkaz odešle na IP adresu s indexem 1 deset flagwordů od čísla FW33

pro FW42. Ve vzdáleném automatu se uloží do flagwordů od indexu FW44

dále. Výsledek operace uloží do FW11. Další možnosti parametrů:

Druh operandu:

- 1 = flagword, 2 = vstupy, 3 = výstupy, 4 = registry, 11 = Strings

Page 39: FST FEC - ksr.tul.cz · PDF fileVšechny ostatní řídící systémy od firmy Festo využívají stejn ... Takže bude-li náš FEC obsahovat vstupy s adresami 0.0 až 0.7, bude vstup

FST FECkrátký úvod do programování v jazyce STL, verze 1-3/98

35

Poslední podstatnou funkcí je vyžádání bloku operandů ze vzdáleného

automatu:

IF ...

THEN CMP 1

WITH V1 - Index v tabulce IP adres

WITH V1 - Druh operandu

WITH 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. chybu

Tento příkaz si vyžádá z IP adresy s indexem 1 deset flagwordů od FW44 po

FW53 a uloží je v tomto automatu od čísla FW33 po FW42. Výsledek

operace uloží do FW11. Další možnosti parametrů:

Druh operandu:

- 1 = flagword, 2 = vstupy, 3 = výstupy, 4 = registry, 11 = Strings

FESTO-CZ, 6/01


Recommended