Állítások strukturált szöveggel
A strukturált szöveg állításokból áll. Az állítások sora mondja meg a PLC-nek, hogy mit kell tennie.
Vegyük példának az első állítást az előző cikk példájában:
A fordító ezt egy állításként fogja felolvasni, mert amikor eléri a pontosvesszőt, tudja, hogy ennek a kijelentésnek vége. Ne feledje, hogy az utasításokat pontosvessző választja el egymástól. Ez a nyelv fő szintaxisszabálya.
Ebben az utasításban azt mondja a PLC- nek, hogy hozzon létre egy X nevű változót, és ennek a változónak BOOL típusúnak kell lennie.
Változók használata strukturált szövegben
Mielőtt jobban belemélyednénk az állításokba, térjünk vissza a korábban említett kulcsszavakhoz. Az X változó két másik kulcsszó – VAR és END_VAR – között van meghatározva.
A PROGRAM / END_PROGRAM és a VAR / END_VAR egyaránt konstrukciók, ami azt jelenti, hogy a programban egy bizonyos területet határolnak körül valamilyen konkrét célból. A PROGRAM konstrukcióban van az összes programja, és a VAR konstrukcióban adhatók meg változók.
Mind a négyet kulcsszónak hívják, mert fenntartott szavak. Ezeket a szavakat nem használhatja másra sehol a program területén. A program neve nem lehet „PROGRAM” vagy „program” (az ST nem különbözteti meg a kis- és nagybetűket), mert ez a szó csak arra használható, hogy a PLC program behatárolására konstruktumot készítsen.
Vissza a változókhoz …
Ha ismer más programozási nyelveket, akkor valószínű, hogy már tud a változókról. A következőkben erről van szó:
A változó az a hely, ahol adatokat tárolhat.
A tárolni kívánt adatok típusától függően többféle adattípus áll rendelkezésre. Ha van olyan változója, amiben az IGAZ vagy a HAMIS értéket szeretné tárolni, akkor azt deklarálhatja BOOL típusként.
A BOOL típus logikai adattípus, ami azt jelenti, hogy tartalmazhat logikai értéket (IGAZ vagy HAMIS). Ezek alapján a változóknak két nélkülözhetetlen jellemzője van: van egy bizonyos adattípusuk, és mindegyiknek van saját egyedi neve is. Amikor meghatároz egy változót a VAR konstrukcióban, akkor kezdje azzal, hogy megadja a változó nevét:
Ez az utasítás egy X nevű változót hoz létre BOOL adattípussal. Egyes fejlesztői környezetek már előre kiegészítik a változó deklarációs területet a VAR / END_VAR kulcsszavakkal, vagy grafikusan (például táblázatosan) tud létrehozni változókat.
Adattípusok strukturált szövegben
Az összes szabványos adattípust a PLCOpen Szervezet határozza meg, és ezek a PLC programozási nyelvek részét képezik. Minden strukturált szöveget tartalmazó PLC programozó szoftver tartalmazza ezeket az adattípusokat. Az IEC szabványban az adattípusokat két kategóriára osztják: Elemi adattípusok és származtatott adattípusok.
Elemi adattípusok:
- Egész számok (integer)
- Tört számok (floating points)
- Idő (time)
- Karakter sorozatok (string)
- Bit sorozatok (bit string)
Minden elemi adattípus alatt több IEC adattípus áll rendelkezésre. Ezek az IEC 61131-3 szabványban definiált adattípusok:
Egész számok:
IEC adat típus | Formátum | Lehetséges értékek |
SINT | Short Integer | -128 … 127 |
INT | Integer | -32768 … 32767 |
DINT | Double Integer | -2^31 … 2^31-1 |
LINT | Long Integer | -2^63 … 2^63-1 |
USINT | Unsigned Short Integer | 0 … 255 |
UINT | Unsigned Integer | 0 … 2^16-1 |
LDINT | Long Double Integer | 0 … 2^32-1 |
ULINT | Unsigned Long Integer | 0 … 2^64-1 |
Tört számok:
IEC adat típus | Formátum | Lehetséges értékek |
REAL | Real Numbers | ±10^±38 |
LREAL | Long Real Numbers | ±10^±308 |
Idő:
IEC adat típus | Formátum | Használat |
TIME | Duration of time after an event | T#10d4h38m57s12ms TIME#10d4h38m |
DATE | Calendar date | D#1989-05-22 DATE#1989-05-22 |
TIME_OF_DAY | Time of day | TOD#14:32:07 TIME_OF_DAY#14:32:07.77 |
DATE_AND_TIME | Date and time of day | DT#1989-06-15-13:56:14.77 DATE_AND_TIME#1989-06-15-13:56:14.77 |
Karakter sorozatok:
IEC adat típus | Formátum | Lehetséges értékek |
STRING | Character String | ‘My string’ |
Bit sorozatok:
IEC adat típus | Formátum | Lehetséges értékek |
BOOL | Boolean | 1 bit |
BYTE | Byte | 8 bits |
WORD | Word | 16 bits |
DWORD | Double Word | 32 bits |
LWORD | Long Word | 64 bits |
Származtatott adat típusok:
- Struktúrált adat típusok
- Sorolt adat típusok
- Résztartományos adat típusok
- Tömb adat típusok
A származtatott adattípusok az Ön saját egyéni adattípusai. Az összes származtatott adattípus a TYPE és END_TYPE kulcsszavak felépítésével épülnek fel. A kulcsszavak között található az a fajta származtatott adattípus, amelyet deklarálni szeretne.
Ezek a különböző adattípusok egyelőre kissé elsöprőnek tűnhetnek, különösen, ha még nem használt szöveges programozási nyelvet. Egyelőre csak néhányra kell emlékeznie, hogy elkezdhesse a strukturált szöveg programozását. Ahogy javul és a programok bonyolultabbak lesznek, fokozatosan megismerhet több adattípust használat közben. Ami itt fontos, hogy ne haladjon túl gyorsan ha meg akarja érteni az alapokat.
Mint látható, a különböző adattípusok különböző adatformátumokat és ezáltal különböző értékeket tárolhatnak.
Operátorok és kifejezések az ST-ben
Az operátorok az adatok manipulálására használják, és szinte minden programozási nyelv részét képezik. Az operátorokhoz hasonlóan a kifejezések is kulcsfontosságú részét képezik a programozási nyelveknek.
A kifejezés olyan konstrukció, amely kiértékelve értéket ad.
Ez azt jelenti, hogy amikor a fordító összeállít egy kifejezést, akkor azt kiértékeli, és az utasítással helyettesíti az eredményt. Vegyük ezt a példát A és B változóval.
A = 10 és B = 8.
Ennek a kifejezésnek az eredménye 18. Tehát A + B helyett a fordító a 18 értéket adja.
Egy kifejezés operátorokból és operandusokból áll.
Tehát mik az operátorok és az operandusok?
Ne feledje, hogy az operátorok az adatok manipulálására valók. Pontosan ezt teszi a +. Az A változó értékét veszi, és hozzáadja a B értékéhez. A + -t addíciós operátornak is hívják, mert a művelet összeadás.
Operátorok
A strukturált szövegben több operátor érhető el. Az IEC 61131-3 meghatározza az összes szabványos operátort a strukturált szöveg nyelvben:
Művelet | Szimbólum | Végrehajtási prioritás |
Zárójel | (kifejezés) | Legmagasabb |
Funkció kiértékelés | MAX(A,B) | |
Tagadás | – NOT |
|
Hatványozás | ** | |
Szorzás Osztás Modulo |
* / MOD |
|
Összeadás Kivonás |
+ – |
|
Összehasonlítás | <, >, <=, >= | |
Egyenlőség Egyenlőtlenség |
= <> |
|
Logikai ÉS | & AND |
|
Logikai kizáró VAGY | XOR | |
Logikai VAGY | OR | Legalacsonyabb |
A fenti táblázatban szereplő összes operátor elsőbbség szerint rendezve van. Ezt műveleti sorrendnek is nevezik, és főleg a matematikából származik. A műveletek sorrendje a műveletek végrehajtásának vagy kiszámításának sorrendje. Vessen egy pillantást erre a kifejezésre:
Amint az operátorok táblázatában látható, a legnagyobb elsőbbségű operátor zárójel. Ez azt jelenti, hogy az első dolog, amit ki kell értékelni, minden ami a zárójelben látható – ebben a példában: (C, D). Mivel a MAX (C, D) valójában függvény, a táblázat kiértékelésével egy sort lejjebb ugorhatunk.
A fenti kifejezésben elsőként a MAX: (C, D) függvényt fogjuk értékelni. A függvény az eredményét adja önmaga helyett (helyettesíti a függvényt). Ebben az esetben a két C és D változó közül a legmagasabb.
Tegyük fel, hogy a C lesz az eredménye a függvénynek. A kifejezés most így fog kinézni a fordító számára:
Két művelet maradt: szorzás és összeadás. Mivel a szorzásnak magasabb a prioritása, ezért ezt fogja a szoftver elsőként kiértékelni. Először B * C következik, majd az eredmény hozzáadódik A-hoz.
4 operátortípus, 4 kifejezéstípus
A strukturált szöveg kifejezéseihez használt operátorok négy csoportra oszthatók. Az operátorok minden csoportjának sajátos funkciója lesz, és sajátos adattípust ad.
- Számtani operátorok
- Relációs operátorok
- Logikai operátorok
- Bitenkénti operátorok
Számtani operátorok
Az összes aritmetikai operátort gyakran csak matematikai operátoroknak hívják, mert ezek képviselik a matematikát. Az eredmény mindig a kifejezés matematikai eredménye lesz.
- + (összeadás)
- – (kivonás / tagadás)
- * (szorzás)
- ** (hatványozás)
- / (osztás)
- MOD (maradék képzés, modulo osztás)
Példa:
Relációs operátorok
Két érték közötti összehasonlításhoz vagy összefüggés megkereséséhez használhatja az egyik relációs operátort. Összehasonlításként használják őket, és az eredmény logikai érték lesz (BOOL típus), IGAZ vagy HAMIS.
- = (egyenlő)
- < (kisebb mint)
- <= (kisebb vagy egyenlő)
- > (nagyobb mint)
- >= (nagyobb vagy egyenlő)
- <> (nem egyenlő)
Példa:
Logikai operátorok
Ha össze szeretné hasonlítani a logikai értékeket (BOOL), és logikát szeretne készíteni belőle, akkor logikai operátorokat kell használnia. Ezek az operátorok a kifejezés eredményeként egy TRUE vagy FALSE logikai értéket is eredményeznek.
- & vagy AND ÉS kapcsolat
- OR VAGY kapcsolat
- XOR Kizáró VAGY kapcsolat
- NOT Tagadás
Példa:
Bitenkénti operátorok
Az operátorok utolsó csoportját bitenként operátoroknak nevezzük, mert a műveleteket bitenként végzik. Ez egyszerűen azt jelenti, hogy két szám mindegyik bitjével logikai műveletet hajtanak végre. Az eredmény egy új szám – a bitenkénti műveletek teljes eredménye.
- & vagy AND ÉS maszkolás
- OR VAGY maszkolás
- XOR Kizáró VAGY maszkolás
- NOT Tagadás
Példa:
Folytatás a következő cikkben…
« Strukturált szöveges programozás 1. rész
1 hozzászólás ezen: “Strukturált szöveges programozás 2. rész”
A hozzászólások ki vannak kapcsolva.
Nagyon jó magyarázat! Köszönöm!