Szekvenciális Vezérlő

A Szekvenciális Vezérlő blokk lehetővé teszi szöveges formában írt programok létrehozását.
Számos folyamatot lehet automatizálni, amihez szükség lehet szekvenciális vezérlés.

A funkcióblokk egyszerűsítheti ezeket a folyamatokat, amik gyakran több hagyományos funkcióblokkot, és összetett programozást igényelnek.

Az egyes lépéseket soronként programozzuk, egy adott funkciót végrehajtó sorcsoportot szekvenciának nevezünk.

Tartalom


Tulajdonságok↑

Rövid leírásLeírásÉrtékhatárAlapértelmezett érték
BeállításokKódszerkesztő--
Intervallum(ms)A programsor végrehajtásának időintervalluma (ms). Befolyásolja a szekvenciák feldolgozásának idejét. Az alacsony érték megnöveli a feldolgozás sebességét de megnöveli a processzor terhelését is.20...1000500




Bemenetek↑

RövidítésRövid leírásLeírásÉrtékhatár
S1-8Activate sequence 1-81-8 szekvencia aktiválása0/1
AI1-8Inputs 1-8Bemenetek 1-8∞
SSelect sequenceSzekvencia kiválasztása0...8
OffOff / LockKi / Tiltás0/1
RemRemanence inputMemória bemenet: Ha aktív a blokk visszatér az Miniserver újraindulása előtti állapotba.
A blokk állapota mentésre kerül:
- Program Miniserver-be való mentésekor
- Tervezett újraindításkor
- Biztonsági mentés előtt
- Óránként egyszer
Az adat mentésre kerül az SD kártyára.
0/1




Kimenetek↑

RövidítésRövid leírásLeírásÉrtékhatár
AQ1-8Outputs 1-8Kimenetek 1-8∞
SCurrent active sequenceAktuális futó szekvencia∞
LCurrent program lineAktuális programsor∞
TQText outputA kimenetet a szekvenciák tudják használni.-
APIAPI ConnectorIntelligens API alapú csatlakozó.
Több funkciót tud csatlakoztatni eszközök és blokkok között
$LINK::https://updatefiles.loxone.com/KnowledgeBase/Online/Common/Documents/API_Commands.pdf@@API Commands$$
-



Alkalmazási Példa↑

A következő példa egy egyszerű használati vízmelegítő alkalmazást mutat be, amelyben két melegvíztartályt melegít egymás után egy központi fűtőberendezés.

A fűtőtest hőmérsékelete, a két melegvíz tartály és a melegvíz kért hőmérsékletét a blokk bemenetein találhatók.
Az 1-es Szekvenciát az (S1) bemeneten keresztül lehet elindítani, ebben a példában egy addott időben érkező impulzus.
A fűtőtestet, szivattyúkat és a szelepeket a kimeneteken keresztül vezéreljük:

A blokkra duplán kattintva nyitható meg a programozási ablak.
A könyvtár az ablak bal oldalán található az elérhető bemenetekkel, kimenetekkel, parancsokkal és változókkal.
Ezekre az objektumokra duplán kattintva bekerülnek a jobb oldalon található szerkesztő ablakba, ahol további műveletek végezhetőek:

Minden sornak egy paranccsal kell kezdődnie, ahogy a fenti példán is látszik.
A zöld kommentek nem szükségesek a szekvencia működéséhez, de lehetővé teszi a különálló lépések dokumentálását.

Megjegyzés: Ez a példa arra szolgál, hogy áttekintést nyújtson a blokkról és annak működéséről. Egy adott megoldáshoz csak korlátozottan alkalmazható.

A szekvencia működését tesztelni lehet a szimulációban/élő nézetben. Az éppen aktuális sor sárgával van jelölve a programozói ablakban. Élő nézet esetén a teljes dokumentumnak meg kell egyezni a Miniserverével.


Funkcióleírás↑

A szekvenciák soronként, állítható időközönként kerülnek végrehajtásra. Meghatározott szakaszok kihagyhatóak feltételek használatával vagy késleltethetőek időparancsokkal.
Lehetséges több szekvenciát létrehozni, mindegyiket külön-külön indítani vagy egy paranccsal átkapcsolható.

A blokk tartalmaz egy szintaxis ellenőrzőt is, ami kiemeli a szintaktikai hibákat a szekvencia szerkesztése közben. Érvénytelen vagy üres sorok kihagyásra kerülnek a szekvencia futása közben.

A programsor mindig a kívánt funkcióval kezdődik, követve a kívánt paraméter és operátor, mindegyik szóközzel elválasztva.

A blokk könyvtárában lévő bemeneteket és kimeneteket lehet írni és lekérdezni is.
Ha egy bemenet egy logikához csatlakozik, az utolsó beállított érték lesz érvényes. A bemenet megváltoztatása felülírja a szekvencia által beállított értéket.

A Képlet funkcióblokk által támogatott parancsok kimenetek beállítására és összehasonlítására használhatók (pl. SET AQ1 = AI2 * 3).


Operátorok, Bemenet/Kimenetek (IOs) és Változók↑

Használható műveleti jelek: ==, >=, >, <=, <, !=

Elérhető bemenetek: (AI1-8). A bemenetek neveit át lehet írni a párbeszédablakban.

Elérhető kimenetek: (AQ1-8). A kimenetek neveit át lehet írni a párbeszédablakban.

Változók: érték1 - érték5. A változók nevei testreszabhatók a párbeszédpanelben.
A változókat olyan értékek feldolgozására használjuk, amelyek nem állnak rendelkezésre az IO-kon. Az IO-khoz hasonlóan számításokban vagy memóriaként használhatók.

A változók és az egyéni beviteli nevek kizárólag alfanumerikus karaktereket és alulvonásokat tartalmazhat.

Parancsok↑

Sleep
Vár a meghatározott ideig
Szintaxis: sleep [value] [s: másodpercek, m: percek]
Példák:
sleep 300 s (300 másodpercig vár, majd folytatja a következő sorral)
sleep 10 m (10 percig vár, majd folytatja a következő sorral)

Waitcondition
Vár a feltétel teljesüléséig
Szintaxis: waitcondition [IO] [operator] [érték]
Példák:
waitcondition AI1 > AQ1 (vár amíg AI1 nagyobb mint, AQ1 majd végrehajtja a következő sort)
waitcondition AI1 + 3 > value1 (vár amíg AI1 + 3 nagyobb lesz mint a változó érték1, majd végrehajtja a következő sort)

Set
Egy bemenetet, kimenetet vagy változót állít be egy értékre
Szintaxis: set [IO] = [érték]
Példák:
set AQ1 = AI1 - AI2 (kivonja AI2-t AI1-ből és kiadja az AQ1 kimenetre)
set value1 = AI2 + AI3 (összeadja AI2-t és AI3-at és beállítja az érték1 változóra)

Setpulse
Impulzust ad egy bemenetre vagy kimenetre
Szintaxis: setpulse [IO]
Példák:
setpulse AQ1 (kiad egy rövid impulzust az AQ1-en)
setpulse AI2 = 4 (kiad egy rövid impulzust 4-es értékkel az AI2-n)

Startsequence
Elindít egy meghatározott szekvenciát
Szintaxis: startsequence [szám] vagy startsequence [szekvencia neve]
Példák:
startsequence 2 (elindítja a második szekvenciát)
startsequence Alarm (elindítja az “Alarm” nevű szekvenciát)

Return
Ha az aktuális szekvenciát egy másik indította el a [startsequence] paranccsal, ez a parancs visszatér a meghívó szekvenciával és végrehajtja a következő sort
Szintaxis: return

Goto
Egy megadott sorra ugrik
Szintaxis: goto [érték]
Példák:
goto 1 (az elejéről kezdi a szekvenciát)
goto 23 (a 23. sorra ugrik, és onnan folytatja)

If
A "ha" előszőr megvizsgálja, hogy feltételek megvalósulnak-e, amennyiben igen, a következő parancs az "endif"-ig végrehajtódnak.
Szintaxis: if [bal kifejezés] [operátor] [jobb kifejezés] ... endif
Példák:
if AQ3 >= 4
set AQ1 = AQ3
endif

Kommentek és szövegek

Komment
Kommentet tudsz hozzáadni az aktuális sorhoz vagy kizárni a programból a sor további részét
Szintaxis: //
Példák:
waitcondition AI2 > AI4 // várj amíg AI2 nagyobb mint AI4 (komment használata magyarázatként)
// waitcondition AI2 > AI4 (a komment jelek használata a sor elején kizárja a programból az adott sort)

Szöveges kimenet TQ
Az idézőjelben lévő karakterek szövegként jelennek meg a kimeneten, máskülönben analóg kimenetként lesz kezelve
Syntax: set TQ = "..."
Examples:
[set TQ = AQ2] will output "27.5"
[set TQ = "Value of AQ2 is" AQ2] will output "Value of AQ2 is 27.5"