Osnova přednášky. Informační a řídicí systémy I. Programování PLC II. IEC 61131-3. Program ve strukturovaném textu. Strukturovaný text (ST)



Podobné dokumenty
Programovací jazyk Pascal

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Algoritmizace a programování

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Úvod do programovacích jazyků (Java)

Algoritmizace a programování

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

5 Přehled operátorů, příkazy, přetypování

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Strojový kód. Instrukce počítače

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

6. Příkazy a řídící struktury v Javě

Paměť počítače. alg2 1

Sada 1 - Základy programování

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

6 Příkazy řízení toku

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

LEKCE 6. Operátory. V této lekci najdete:

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Proměnné a parametry. predn_08.odt :00:38 1

CZ.1.07/1.5.00/

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení

Osnova přednášky. Informační a řídicí systémy I. Programování PLC IV. IEC Role ostatních jazyků. Role jazyka SFC.

Operátory. Základy programování 1 Martin Kauer (Tomáš Kühr)

Program a životní cyklus programu

1 Seznámení s prostředím MOSAIC

Programování v jazyce JavaScript

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Operátory. Základy programování 1 Tomáš Kühr

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Esperanto programátorů PLC: programování podle normy IEC/EN (část 4)

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

NPRG030 Programování I, 2016/17 1 / :58:13

AUTOMATIZACE Úvod do programování PLC

Poslední nenulová číslice faktoriálu

Jazyk C# a platforma.net

Sada 1 - Základy programování

8. Laboratoř: Aritmetika a řídicí struktury programu

Pohled do nitra mikroprocesoru Josef Horálek

NPRG030 Programování I, 2010/11

Konečný automat. Jan Kybic.

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

Souhrn Apendixu A doporučení VHDL

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Algoritmizace prostorových úloh

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení. N Měřicí a řídicí technika 2012/2013. Logické proměnné

Stručný návod k programu Octave

Obsah DÍL 1. Předmluva 11

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Racionální čísla, operátory, výrazy, knihovní funkce

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Knihovna XmlLib TXV první vydání prosinec 2010 změny vyhrazeny

Inovace bakalářského studijního oboru Aplikovaná chemie

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Popis programu EnicomD

SEKVENČNÍ LOGICKÉ OBVODY

PŘETĚŽOVÁNÍ OPERÁTORŮ

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Způsoby realizace této funkce:

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

2. lekce Algoritmus, cyklus Miroslav Jílek

PODPROGRAMY PROCEDURY A FUNKCE

Programování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí

Architektury počítačů a procesorů

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Algoritmy a datové struktury

VISUAL BASIC. Přehled témat

Systém řízení sběrnice

Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky.

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Úvod do programování - Java. Cvičení č.4

Transkript:

Osnova přednášky Informační a řídicí systémy I. Programování PLC II. IEC 61131-3 Strukturovaný text ST) Seznam instrukcí IL) Liniová kontaktní) schémata LD) Pavel Balda ZČU v Plzni, FAV, KKY 2 Strukturovaný text ST) Strukturovaný text Structured text, ST) je textový programovací jazyk Vyšší programovací jazyk podobný jazyku Pascal a částečně C) navržený pro programování řídicích algoritmů Používá se zejména tam, kde není snadné použít grafické programovací jazyky, např. při implementaci složitých procedur Implicitní jazyk pro popis podmínek přechodu a akcí v SFC Pro textové programovací jazyky druhým je seznam instrukcí, IL, viz dále) definuje norma IEC 61131-3 řadu konstrukcí, např: Deklarace typů Deklarace proměnných Deklarace kroků, přechodů a akcí pro SFC Deklarace funkcí a funkčních bloků Program ve strukturovaném textu Program ve strukturovaném textu ST) Posloupnost příkazů ST Každý příkaz je ukončen oddělovačem ; středník) Oddělovače oddělují identifikátory, literály a klíčová slova Bílé znaky white spaces) mezera, tabulátor, nový řádek, apod. Chovají se jako mezera znak s dekadickým kódem 32) Aktivní oddělovače zejména operátory a závorky Bílé znaky a komentáře tj. text mezi * a *)) se mohou vyskytovat mezi aktivními oddělovači identifikátory a literály Příkazy lze rozdělit do následujících kategorií Přiřazovacípříkaz assignment statement), např. Prom:=vyraz; Příkazy pro výběr selection statements) IF, THEN, ELSE, CASE, Iterační příkazy iteration statements) FOR, WHILE, REPEAT, Řídicí příkazy funkcí a funkčních bloků Řídicí příkazy RETURN, EXIT, 3 4 1

Výrazy Expressions) Priority operátorů Výraz konstrukce, která po svém vyhodnocení získá hodnotu jednoduchého nebo odvozeného typu Skládají se z operátorů a operandů Maximální délka výrazu závisí na implementaci Operand literál, hodnota výčtového typu, proměnná, volání funkce nebo jiný výraz Operátory viz následující tabulku, udávající jejich prioritu precedence) Vyhodnocení výrazu aplikování operátorů na operandy podle priority Nejprve se vyhodnotí operátor s nejvyšší prioritou, pak operátor s nižší prioritou, atd., dokud nenívyhodnocenívýrazu dokončeno Operátory se stejnou prioritou se ve výrazu vyhodnocují zleva doprava Příklad: A, B, C, D jsou typu INT s hodnotami 1, 2, 3, 4 v uvedeném pořadí). Pak A+B-C*ABSD) se vyhodnotí na 9 A+B-C)*ABSD) se vyhodnotí na 0 Operace Nejvyšší priorita Uzávorkování Vyhodnocení funkce Negace Doplněk complement) Umocňování Násobení Dělení Modulo Symbol výraz) jmeno_fnargumenty) NOT ** * / MOD Operace Sčítání Odčítání Porovnávání Rovnost Nerovnost Booleovský AND Booleovký exklusivní OR Booleovský OR Nejnižší priorita Symbol + <, >, <=, >= = <> &, AND XOR OR 5 6 Přiřazovací příkaz Přiřazovací příkaz nahrazuje aktuální hodnotu jednoprvkové nebo víceprvkové proměnné výsledkem vyhodnocení výrazu Na levé straně je odkaz na přiřazovanou proměnnou Pak následuje přiřazovací operátor := Na pravé straně je vyhodnocovaný výraz Příklad: A := B; Lze použít jak pro proměnné jednoduchých typů např. typu INT, tak i pro proměnné odvozených typů. V případě přiřazení proměnných typů struktur stejného typu) se přiřazují hodnoty odpovídajících si prvků Přiřazovací příkaz se používá též pro přiřazení hodnoty funkci uvnitř jejího těla. 7 Příkaz IF Příkaz IF umožní vykonávat skupinu příkazů pouze tehdy, má-li odpovídající booleovský výraz hodnotu 1 TRUE) Není-li podmínka splněna, nevykoná se žádný příkaz nebo se vykoná skupina příkazů za klíčovým slovem ELSE nebo se vykoná skupina příkazů za klíčovým slovem ELSIF pokud je splněna jemu příslušná booleovská podmínka Příklad: D := B*B 4*A*C; IF D < 0.0 THEN Nroots := 0; ELSIF D = 0.0 THEN Nroots := 1; X1 := B/2.0*A); ELSE Nroots := 2; X1 := B + SQRTD))/2.0*A); X2 := B SQRTD))/2.0*A); END_IF 8 2

Příkaz CASE Příkaz FOR 1/2) Příkaz CASE se skládá z výrazu, který se vyhodnotí na typ INT selektor), a ze seznamu skupin příkazů, z nichž každá je označena jedním nebo několika celými čísly nebo intervaly celých čísel Pro danou vypočtenou hodnotu selektoru se spustí první skupina příkazů, která tuto hodnotu obsahuje Pokud hodnota selektoru není obsažena v žádném výše uvedeném rozsahu, spustí se skupina příkazů za klíčovým slovem ELSE, vyskytuje-li se v daném příkazu CASE. Není-li klíčové slovo ELSE uvedeno, neprovede se žádný příkaz Příklad: sel := BcdToIntpredvolba); chyba := 0; CASE sel OF 1, 5: Displej := TeplotaPece; 2: Displej := RychlostMotoru; 3: Displej := SpotrebaPlynu; 4, 6..10: Displej := Stav[sel-4]; ELSE Displej := 0; chyba := 1; END_CASE 9 Příkaz FOR se používá pro cykly, kdy je dopředu znám počet iterací v opačném případě se používají příkazy WHILE a REPEAT, viz dále) Vykonává posloupnost příkazů od klíčového slova FOR až k END_FOR po dobu, než řídicí proměnná dosáhne koncové hodnoty Řídicí proměnná je inkrementována dekrementována) o zadanou hodnotu za klíčovým slovem BY není-li uvedeno je hodnota implicitně rovna 1) Počáteční a koncová hodnota před a za klíčovým slovem TO) se získají vyhodnocením výrazů stejného celočíselného typu SINT, INT nebo DINT) a neměla by se měnit výrazy uvnitř cyklu Test na ukončení cyklu se provádí na začátku cyklu, takže cyklus nemusí proběhnout ani jednou Hodnota řídicí proměnné cyklu po ukončení cyklu je implementačně závislá! 10 Příkaz FOR 2/2) Příkaz WHILE Iterační příkazy FOR, WHILE a REPEAT) lze předčasně ukončit příkazem EXIT, kterým se předá řízení na první příkaz za ukončovací klíčové slovo END_FOR, END_WHILE nebo END_REPEAT nejvnitřnějšího cyklu, v němž je EXIT obsažen Příklad V cyklu FOR se určuje první výskyt řetězce 'heslo' v lichých indexech pole řetězců Slova v rozsahu indexů [1..100]. Není-li řetězec obsažen, bude mít proměnná J hodnotu 101. V případě nalezení zadaného slova se ukončí vykonávání cyklu příkazem EXIT, aby se neprováděly zbytečné iterace J := 101; FOR I := 1 TO 100 BY 2 DO IF Slova[I] = 'heslo' THEN J := I; EXIT; END_IF; END_FOR; 11 Příkaz WHILE provádí opakovaně posloupnost příkazů až ke klíčovému slovu END_WHILE dokud je splněna daná podmínka Není-li splněna podmínka už od začátku, neprovede se posloupnost příkazů ani jednou Příklad upravený příklad z předchozí stránky pro cyklus WHILE) J := 1; WHILE J <= 100 & Slova[J] <> 'heslo' DO J := J+2; END_WHILE; 12 3

Příkaz REPEAT Příkaz REPEAT provádí opakovaně posloupnost příkazů až ke klíčovému slovu END_REPEAT dokud je splněna daná podmínka Posloupnost příkazů se provede vždy alespoň jednou Příklad z předchozí stránky upravený pro cyklus REPEAT) J := -1; REPEAT J := J+2; UNTIL J = 101 OR Slova[J] = 'heslo' END_REPEAT; Příkazy WHILE a REPEAT by se neměly používat pro synchronizaci procesů, např. jako čekací smyčka s externě nastavovanou ukončovací podmínkou. K tomu účelu slouží současně běžící sekvence v SFC dvojité divergence) Volání funkcí a funkčních bloků Z ST lze volat funkce a funkční bloky Funkce mohou být volány jako součást výrazů Funkční bloky se volají příkazem skládajícím se ze jména FB následovaného v závorkách uzavřeným seznamem přiřazení hodnot vstupním parametrům Příklad: * Volání funkčního bloku *) Monitor In := %IX5, Pt := T#300ms); * Použití výsledku funkčního bloku *) A := Monitor.Q; 13 14 Seznam instrukcí IL) Seznam instrukcí Instruction List, IL) je nízkoúrovňový low level) jazyk jakýsi assembler) Velmi efektivní pro malé aplikace a pro optimalizaci částí aplikace Instrukce pracují s IL registrem průběžný výsledek, current result), výsledek je uložen do tohoto registru POU Program Organization Unit) vytvořená v IL se skládá z posloupnosti instrukcí Každá instrukce začíná na novém řádku a obsahuje operátor s nepovinným modifikátorem a pokud je třeba jeden nebo víc dalších operandů, oddělených čárkami Operandem může být literál, vyjmenovaná hodnota a proměnná Formát instrukcí Instrukce se skládá z nepovinného návěští zakončeného dvojtečkou, operátoru, operandu a volitelného komentáře Návěští Start: Operátor LD ANDN ST Operand %IX1 %MX5 %QX2 Obecný význam operátoru je: result := result OP operand Komentáře * tlačítko *) * příkaz není blokován *) * start motoru *) tj. vyhodnocený výsledek přepisuje původní hodnotu výsledku použitého v operaci Příklad: instrukce AND %IX1 je interpretována jako result := result AND %IX1 result 15 16 4

Modifikátory operátorů Standardní operátory jazyka IL 1/2) Modifikátory operátoru ukončují název operátoru, nesmí před nimi být mezera N Booleovská negace operandu po bitech Odložené deferred), též zpožděné delayed) vyhodnocení operátoru. Vyhodnocení operátoru je odloženo až do nalezení operátoru pravé závorky ) C Podmíněná operace conditional operation). Provede se pouze pokud má result hodnotu booleovské jedničky TRUE) Příklady ANDN %IX2 se interpretuje jako result := result AND NOT %IX2; AND %IX1 OR %IX2 ) se interpretuje jako result := result AND %IX1 OR %IX2); 17 Operátor LD ST S R AND & OR XOR NOT ADD SUB MUL DIV MOD Modif. N N N, N, N, N, Operand Proměnná Proměnná BOOL Proměnná BOOL BOOL BOOL BOOL BOOL Proměnná Popis Natažení load) operandu Uložení store) průběžného výsledku Nastav na TRUE, je-li průb. výsl. TRUE Nastav na FALSE, je-li průb. výsl. FALSE Logický součin AND) Logický součin AND) Logický součet OR) Logický exklusivní součet XOR) Negace po bitech jednotkový doplněk) Sčítání Odčítání Násobení Dělení Modulo zbytek po dělení) 18 Standardní operátory jazyka IL 2/2) Liniová kontaktní) schémata LD) Operátor GT GE EQ NE LE LT JMP CAL RET ) Modif. C, N C, N C, N Operand Návěští Jméno instance FB Popis Porovnání: > Porovnání: >= Porovnání: = Porovnání: <> Porovnání: <= Porovnání: < Skok na návěští Volání funkčního bloku Návrat z funkce, FB nebo programu Vyhodnocení odložené operace Liniové kontaktní) schéma Ladder Diagram, LD) je grafická reprezentace Booleovských výrazů kombinujících kontakty vstupní argumenty) s cívkami coils) výstupní argumenty) V LD se používají grafické symboly zorganizované podobně jako příčky na žebříku LD je omezen po obou stranách levou a pravou vodicí tyčí power rail), viz obr. Propojovací linie spojení) spojují vodicí tyče. Mohou být horizontální i vertikální 19 Levá vodicí tyč Left power rail) Pravá vodicí tyč Right power rail) 20 5

Základní grafické symboly LD Stav prvků a jejich spojení v LD Levá vodicí tyč Left power rail) Pravá vodicí tyč Right power rail) Vodorovná spojovací čára Horizontal connection line) Svislá spojovací čára Vertical connection line) Vícenásobné propojení všechny propojené dohromady Kontakt svázaný s nějakou proměnnou Cívka svázaná s výstupní nebo s vnitřní proměnnou 21 Každý prvek na spojovací čáře má svůj Booleovský stav 1 TRUE) nebo 0 FALSE) Každé spojení má svůj stav podle stavu jednotlivých prvků, které obsahuje. Tento stav odpovídá průtoku elektrického proudu ve spojení Levá vodicí tyč je trvale zapnuta pod napětím), stav pravé tyče není předem definován Vodorovné spojení Horizontal link) přenáší stav z prvku nejblíže vlevo na prvek nejblíže vpravo. Každá vodorovná čára připojená na levou vodicí tyč má stav TRUE Svislé spojení tvoří svislá čára připojená k jednomu nebo více vodorovným elementům na každé straně. Stav svislého spojení je určen logickým součtem OR) stavů vodorovných elementů připojených zleva. Tedy stav svislého spojení je Off FALSE), je-li stav všech vodorovných připojení přicházejících zleva Off FALSE). Aby byl tento stav On TRUE) stačí, aby stav alespoň jednoho připojení zleva byl On TRUE) 22 Vícenásobné připojení v LD Vícenásobné připojení vlevo Stav prvku vpravo od připojení je OR stavu všech prvků vlevo viz obr. vlevo) Vícenásobné připojení vpravo Stav prvku vlevo se přenáší do všech prvků vpravo viz obr. vpravo) Kontakty a cívky Kontakt Levé spojení Pravé spojení Prvek, který nastavuje stav na vodorovném spojení své pravé straně jako logický součin AND) stavu vodorovného spojení na své levé straně a odpovídající funkci proměnné, která jej reprezentuje vstupní, výstupní, paměťová) vstup3 := OR OR vstup3; vystup2 := ; vystup2 := ; 23 Cívka Levé spojení Pravé spojení Prvek, kopírující stav spojení na levé straně na spojení na pravé straně bez modifikace a ukládá odpovídající funkci stavu do přidružené Booleovské proměnné Existují různé druhy kontaktů a cívek, viz dále 24 6

Statické kontakty Přímý spínací) kontakt := AND ; Invertovaný rozpínací) kontakt := NOT) AND NOT); Kontakty s detekcí hrany Kontakt, detekující náběžnou pozitivní) hranu P := AND AND NOT predch); * predch je hodnota v predchozim cyklu *) Kontakt, detekující sestupnou negativní) hranu N := AND NOT ) AND predch); * predch je hodnota v predchozim cyklu *) 25 26 Cívky s okamžitým výstupem Cívky přidržující výstup Přímá cívka direct coil) vystup2 Negovaná inverzní) cívka := ; vystup2 := ; Set latch) coil Nastavuje přidruženou proměnnou na TRUE, pokud se stav levého spojení změní na TRUE Reset coil Nastavuje přidruženou proměnnou na FALSE, pokud se stav levého spojení změní na TRUE vystup2 := NOT ); vystup2 := ; S R IF THEN := TRUE; END_IF; IF THEN := FALSE; END_IF; 27 28 7

Cívky, ponechávající si hodnotu Cívky s detekcí hrany Cívky, ponechávající si hodnotu retentive coils) jsou tří typů Memory odpovídá přímé cívce Set memory odpovídá cívce set coil Reset memory odpovídá cívce reset coil Jediný rozdíl je v tom, že se jejich stav ukládá do paměti jejíž stav není ovlivněn teplým startem. Proměnné odpovídající těmto cívkám nemusí být deklarovány jako VAR_RETAIN memory_bool M set_bool SM reset_bool RM 29 Cívka, detekující náběžnou pozitivní) hranu P IF AND NOT predch) THEN := TRUE; ELSE := FALSE; END_IF; * predch je hodnota v predchozim cyklu *) Cívka, detekující sestupnou negativní) hranu N IF NOT ) AND predch THEN := TRUE; ELSE := FALSE; END_IF; * predch je hodnota v predchozim cyklu *) 30 Vyhodnocování LD a příkaz RETURN Příkaz JUMP POU vytvořená v LD se vyhodnoduje následovně: Schéma se vyhodnocuje shora dolů, není-li pořadí změněno příkazem RETURN nebo JUMP Jednotlivé příčky se vyhodnocují zleva doprava Příkaz RETURN umožňujepodmíněně ukončit vyhodnocování dané POU rucni_rezim vstup3 RETURN vysledek IF NOT rucni_rezim) THEN RETURN; END_IF; vysledek := OR vstup3) AND ; Pro řízení pořadí zpracování sítě LD lze dále používat návěští, podmíněné i nepodmíněné skoky pomocí příkazu JUMP rucni_rezim JINAM: >> JINAM vysledek >> KONEC vysledek Ekvivalentně v IL v ST nejsou skoky!): LDN rucni_rezim JMPC JINAM LD ST vysledek JMP KONEC JINAM: LD ST vysledek KONEC: 31 KONEC: 32 8

Funkce a Funkční bloky v LD Funkce a FB mohou být zapojeny do LD pokud mají Booleovské vstupy a výstupy Vstupy jsou přímo připojeny do schématu Výstupy jsou cívky už ve schématu existující nebo pro tento účel definované Pokud funkce nebo FB nemá Booleovské vstupy musí být připojeny ve schématu), existuje implicitně vstup EN, pomocí kterého přitéká proud power flow) do funkce Je-li EN rovno TRUE, je blok povolen enabled) a vykonává se Obdobně existuje Booleovský výstup ENO, pomocí kterého teče proud do další funkce nebo cívky. Výstup ENO je TRUE, pokud se funkce nebo FB vykonala úspěšně EN ENO EN ENO EN ENO vstup3 IF THEN := CBA), vstup3)); END_IF; eno 33 9