Betöltés…
WAGO Hungária

Strukturált szöveges programozás 2. rész

Á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  255
UINT Unsigned Integer  2^16-1
LDINT Long Double Integer  2^32-1
ULINT Unsigned Long Integer  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…

1 hozzászólás ezen: “Strukturált szöveges programozás 2. rész

  1. Kovács Imre szerint:

    Nagyon jó magyarázat! Köszönöm!

A hozzászólások ki vannak kapcsolva.