Download as pdf or txt
Download as pdf or txt
You are on page 1of 97

Bevezetés az S40

PLC-programozási nyelv
használatába
Tartalomjegyzék

1. A kézikönyvről ......................................................................................................... 5
2. Bevezetés.................................................................................................................. 5
3. Hardver feltételek és a szövegábrázolási konvenciók.............................................. 7
Hardver................................................................................................................................ 7
Szövegábrázolási konvenciók ............................................................................................. 7
4. PS4 installálás és huzalozás ..................................................................................... 8
Címkódolás ......................................................................................................................... 8
Buszlezárás.......................................................................................................................... 8
5. Első programozási feladat ...................................................................................... 11
Feladat ismertetés.............................................................................................................. 11
Alapinformációk az IEC1131-3 szerinti programozáshoz ................................................ 11
6. A navigátor ............................................................................................................. 15
Áttekintés .......................................................................................................................... 15
7. Új projekt indítása .................................................................................................. 17
8. Felhasználói program létrehozása .......................................................................... 19
Programbevitel utasításlistával.......................................................................................... 25
Program tárolás ................................................................................................................. 27
POU nyomtatás ................................................................................................................. 29
9. Topológia konfigurálás .......................................................................................... 31
10. Felhasználói program gépi kódjának generálása.................................................... 35
11. Teszt és az üzembe helyezés menete...................................................................... 39
Programozó PC és a vezérlő összekötése.......................................................................... 39
Az operációs rendszer és az alkalmazói program letöltése a PS4-150/200-ba ................. 40
Az operációs rendszer és az alkalmazói program letöltése a PS4-300/PS416-ba............. 41
Program indítás PS4-200 és PS4-300 esetén .................................................................... 44
Program ellenőrzés............................................................................................................ 47

3
12. Programbevitel kontaktusterv / funkcióblokk segítségével ................................... 51
Példaprogram bemutatása kontaktustervvel / funkcióblokkal .......................................... 51
Programbevitel kontaktusterv alapján............................................................................... 53
Programellenőrzés és üzembe helyezés kontaktusterv /funkcióblokk esetén ................... 63
13. Második programozási feladat ............................................................................... 67
Megoldási javaslat a „LIGHT” funkcióblokk fejlesztésére .............................................. 68
A funkcióblokk felhasználása ........................................................................................... 69
Javaslat az „EXP_PS4” program fejlesztésére.................................................................. 74
A második programozási feladat bevitele ......................................................................... 76
Az EXP_PS4 program bevitele......................................................................................... 82
Program online vizsgálata és változtatása......................................................................... 85
A „light” funkcióblokk többszörös instancálása ............................................................... 89
A be-/kimenetek kijelzése és a kimenetek kényszerítése PS4-en ..................................... 92
A második programozási feladat LD/FBD ábrázolása...................................................... 95

4
Bevezetés

1. A kézikönyvről

Ezen dokumentáció az AWB2528-1304 számú dokumentáció szerkesztett fordítása, mely


segítséget nyújt az S40 programozási nyelv gyors elsajátításához.
Az első egyszerű vezérlési feladaton keresztül megismerheti az S40-el kapcsolatos összes
munkafázist, azaz egy projekt indításától a programkód elkészítésén és a vezérlőbe történő
letöltésén át annak az üzembe helyezésig.
A második feladattal bemutatjuk, hogyan lehet a gyárilag kész funkcióblokkokat felhasználni,
illetve hogyan lehet egyénileg felhasználói funkcióblokkokat létrehozni.
Az első feladat áttanulmányozásához mintegy kettő, a második feladathoz ca. három óra
szükséges.

2. Bevezetés

A PS4 típusú kompakt vezérlők jó ár/teljesítményviszony mellett többcélú felhasználásra


alkalmasak mind a kis, mind a közepes automatizálási feladatok esetén. Kiemelkedő
tulajdonságuk a helytakarékos felépítésük és a nagy választékú alapkivitelük, valamint
típustól függően a bővíthetőségük. Ezen tulajdonságaik szinte minden automatizálási feladatra
alkalmassá teszik, az egyedi gépvezérlésektől kezdve a decentrális felépítésű intelligens
elosztott hálózatok kialakításáig, mint például az épületautomatizálás, vagy a területileg
szintén rendkívül szétosztott telemechanikai állomások az infrastrukturális alkalmazásokban
(víz, szennyvíz, villamos energia stb.).
A PS416 készülékeket a közepes és nagyméretű alkalmazásokra fejlesztették ki. A széles
választékú moduláris felépítés mellett egyforma nagy sebességű, de eltérő nagyságú
memóriával rendelkező központi egységek állnak rendelkezésre, melyek akár egymás között a
feladatokat megosztva, azonos párhuzamos buszon is képesek együttműködni
(Multiprocesszoros üzemmód).
Az összes vezérlőeszközt az S40 programozói szoftverrel lehet fejleszteni. A fejlesztői
szoftver felépítése és a nyelvi formája megfelel az IEC 1131-3 nemzetközi szabványnak,
három nyelvi dialektusban (utasításlista (IL), kontaktusterv (LD), funkcióblokk (FBD))
terjedelmes utasításkészlettel segíti a programozást. Az egyes dialektusok egymás között
átkapcsolhatók, így mindig a feladatnak, illetve Önnek legkedvezőbb nyelv használható a
feladataihoz.
A vezérlők az összes gyakorlatilag járatos adattípust ismerik, sőt az elemi adattípusokból
újabb származtatott adattípusok is készíthetők. A számos IEC funkcióblokk mellett jelentős
számú Moeller-készítésű funkcióblokk is rendelkezésre áll, amelyeket az egyénileg kialakított
felhasználói funkcióblokkal még tovább bővíthet.
A PS4 és PS416 PLC összes lehetőségeinek teljes bemutatása az AWB2700-1305 jelű a
szoftver kezelői felületét ismertető, valamint az S40 nyelvi elemeit ismertető AWB2700-1306
kézikönyvekben található meg.
(Megjegyezzük, hogy az S40 nyelvi elemeit ismertető kézikönyv magyar fordításban,
szerkesztett változatban, szintén rendelkezésre áll. A fájl az internetes (www.moeller.hu)
honlapunkon szintén hozzáférhető, a neve S40_003, mely Word97 formátumban tömörítve áll
rendelkezésre.)

5
Hardver feltételek és a szövegábrázolási konvenciók

3. Hardver feltételek és a szövegábrázolási konvenciók

Hardver
Az első programozási feladathoz egy PS4-141-MM1, PS4-151-MM1, PS4-201-MM1,
PS4-271-MM1 vagy PS4-341-MM1 típusú PLC, a második feladathoz egy további
EM4-101-DD1 bővítő modul, a bővítés csatlakoztatásához a KPG1-PS3 típusú
csatlakozókábelre van szükség. A programozó PC és a vezérlés összekötéséhez minden eseten
a ZB4-303-KB1 jelű kábelt kell használni.

Szövegábrázolási konvenciók
A válassza a <Project → New> felszólítás jelentése a következő: Aktiválja a New parancsot a
Project menüből.
A dőlt kisbetű azokat a szövegeket jelöli, melyeket, ahogy leírva van, kell Önnek begépelni.
Például: c:\Project\example
A kezelési utasításokat a ► jellel fogjuk jelölni. Az összes többi bekezdés csupán
információkat ad anélkül, hogy valamit kötelezően kellene tenni.

7
PS4 installálás és huzalozás

4. PS4 installálás és huzalozás

Címkódolás
Az EM4-101-DD1 készüléknek, mint minden passzív slavenek a Moeller PLC-rendszerében a
címkódoló (S2) kapcsolójával kell a megfelelő címet beállítani. Jelen esetben a kiválasztott
cím az egyes, ezért a következő kapcsoló beállítást kell eszközölni. (A kódkapcsoló részletes
ismertetése az EM4_xxxx.doc jelű dokumentációban megtalálható.)

Buszlezárás
A buszon fizikálisan az első és az utolsó helyen levő résztvevő (állomás) buszlezáró
ellenállását kell beiktatni, azaz az S1 kapcsoló mindkét elemét, mint a következő ábrán
látható, be kell állítani.

8
PS4 installálás és huzalozás

A következő ábra a PS4-141/-201/-341-MM1 és az EM4-101-DD1 huzalozását mutatja be.

9
Első programozási feladat

5. Első programozási feladat

Először a feladat kiírást és annak megvalósítását mutatjuk be utasításlistás programozással,


majd ezt követően lépésről lépésre az S40 fejlesztővel végigmegyünk a
a projekt létrehozás,
a programfájl szerkesztés
a konfiguráció kialakítás
a programkód generálás és
az ellenőrzés és üzembe helyezés műveletein.

Feladat ismertetés

A készülék alaphelyzetbe állításakor robotkarnak a kezdeti helyzetet (Initial_pos) kell


felvenni. A START nyomógomb hatására a kar elindul az „A” pozícióba. A STOP
nyomógomb működtetésekor a megkezdett művelet megszakad.

Alapinformációk az IEC1131-3 szerinti programozáshoz


Az IEC1131-3 szabvány szerint a felhasználásra kerülő változókat kulcsszavak között kell
deklarálni. A változótípus szerint különböző kulcsszavak használatosak. Az első feladatban
lokális változókat használunk, amelyeket a VAR és END_VAR kulcsszavak között kell
deklarálni.
Egy programszervezési egység deklarációs része (Program Organisation Unit - POU) mindig
az utasításrész előtt található. A változók deklarálása mindig egy változónévből, adattípusból,
illetve opcionálisan a hozzárendelt fizikai címből, kezdeti értékből, tulajdonságjelzőből, és
kommentárból épül fel. A közbenső változók lehetnek tisztán szimbolikus változók is,
anélkül, hogy hozzájuk fizikai címet rendelnénk.
A bináris bemeneti és kimeneti operandusokat, azaz fizikai címez hozzárendelt változókat, az
IEC1131-3 szabvány közvetlen címzésű változóknak jelöli. A közvetlen címzésű változók
jelölésére meghatározott konvenciókat kell betartani:
Minden egyes közvetlen címzésű változót az AT kulcsszóval kell jelölni, a cím a %-jelből a
fizikai cím jeléből (I: bemenet, Q: kimenet, M: belső merker) változóadat méretére utaló

11
Első programozási feladat
jelből (X: bit, (nem kötelező), B: bájt, W: szó) valamint az ötjegyű címzésből áll. Az első
három helyi érték a topológiai címet adja meg, mely a készülékkonfigurációból adódik. Azon
vezérlések esetén, ahol a kompakt CPU-n kívül nincs más résztvevő, az első három jegy
értéke 0. Az utolsó két jegy a bájt és a bitazonosítót adja meg. Például az AT %I0.0.0.0.3 a
nulladik bájt negyedik bitjét (számozás rendje: 0…7) jelenti. Amennyiben a változó
adatszélessége nem bit, akkor annak mérete külön jelölve van, és természetesen az ötödik jegy
elmarad. (Pl.: AT %QW0.0.0.0 a nulladik kimeneti szót jelenti. Megjegyezzük, hogy a bájtok
és szavak egyértelmű összerendelése miatt a szavak száma csak páros lehet. Részletesebben
lásd az S40_0003.doc leírásban.)
A példafeladatban csak bináris be-/kimenetek fordulnak elő, melyeknek a következő fizikai
címeket adjuk:
Initial_pos bemenet 0.0
start_button bemenet 0.1
stop_button bemenet 0.2
position_A bemenet 0.3
motor kimenet 0.0
A változónevek szabadon megválaszthatók az adott szabályokon belül (lásd: S40_0003.doc)
A deklaráció a következőképpen néz ki:

(* kezdeti pozíció *)
(* START nyomógomb *)
(* STOP nyomógomb *)
(* Pozíció A elérve *)

Az initial_pos bináris bemeneti változót beolvasva a start_button változóval ÉS kapcsolatba


hozzuk.
olvasási parancs: LD
ÉS logikai kapcsolat: AND
Ha a logikai kapcsolat értéke igaz (current result - CR=1), akkor a kimeneti változó (motor)
szintén logikai 1 értéket vesz fel. (A kimeneti LED világít.)
Statikus állítási parancs, ha CR=1: S
Végül a stop_button és a position_A bemeneti változókat beolvasva és egymással logikai
VAGY kapcsolatba hozva, az eredmény (CR=)1, akkor a motor kimeneti változót
visszaállítjuk. (A kimeneti LED elalszik.)
Statikus visszaállítási parancs, ha CR=1: R
Az utasításlista a következőképpen néz ki:

A deklarálási részlet előtt a PROGRAM kulcscsónak és a programnévnek kell még

12
Első programozási feladat
szerepelni, valamint a teljes program végét az END_PROGRAM kulcsszó zárja le.

(* kezdeti pozíció *)
(* START nyomógomb *)
(* START nyomógomb *)
(* Pozíció A elérve *)

(* A motor bekapcsol *)

(* A motor kikapcsol *)

A PROGRAM és az END_PROGRAM kulcsszavakat, azaz az első és


utolsó sorokat nem kell beírni. Ezeket a beszúrásokat a
programszerkesztő automatikusan elvégzi.

13
A navigátor

6. A navigátor

Áttekintés
Indítsa el a Windows-t és aktiválja a Sucosoft navigátor szimbólumot. A Sucosoft S40
elindul, és a következő navigátor kezelői felület jelenik meg:

A navigátor ablak felső részén, a menüsor alatt a felhasználható szerszámkészlet található


ikonos formában.
A navigátor az az ablak, mely segíti Önt a különböző munkafázisok elvégzésében, azaz a
felhasználói program elkészítésétől egészen annak a PLC-be való letöltésig és online
ellenőrzéséig bezárólag:
Tartalmazza az alapvető szerkesztési tevékenységeket, amelyekkel projektjeit
létrehozhatja, és strukturálhatja.
Lehetővé teszi a POU-editor előhívását, amellyel a különböző strukturált programozási
egységeket (program, funkcióblokkok, függvények) megszerkesztheti.
A POU editorral a felhasználói program utasításlistás, kontaktusterves valamint logikai
funkcióblokkos nyelven készíthető el.
Egyszerűen meghívható a topológia konfigurátor, amellyel a felhasználói program hardver
felülete hozható létre.
Tartalmazza a programkód előállító funkciót, amellyel a felhasználói forrásnyelvi
programból a PLC-ben futtatható, gépi kódú program állítható elő.
A navigátor ablak tartalmazza a teszt és üzembe helyezési funkciókat is, amellyel a PLC-

15
A navigátor
ben futó program online módon ellenőrizhető, módosítható.
Továbbá rendelkezésre egy dokumentumformátum szerkesztő, amellyel a nyomtatott
formátum alakja határozható meg.
A navigátor fő ablakának felső részén a cím-, alul pedig a státuszsor található. A címsor alatt
közvetlenül a menüsor, majd a szimbólumsor (ikonsor) következik. A szimbólumsorhoz
csatlakozik az eszköztár. A eszköztár és a státussor között található rész három ablakra van
felosztva:
A felső baloldali (kereső) ablak tartalmazza a fastruktúrát a mindenkori könyvtárakkal
együtt. Ezen ablak alsó részén található a forrásokat (Sources), készülékeket (Devices) és
az alkalmazói modulokat (Libraries) tartalmazó iratrendező szimbólum.
A jobb felső ablakban található az aktuális fastruktúrában megnyitott könyvtár fájlnézete.
A két fenti ablak alatt az aktuális eseményeket ismertető harmadik ablak látható, mely pl.
programkód generáláskor mutatja a státus- és a hibajelzéseket.
A három ablak méretét a határoló vonalak egérrel való mozgatásával változtathatjuk meg.
Az alábbi grafika az első programozási feladat esetén mutatja az egyes, a program
beviteltől a kész program ellenőrzéséig, terjedő lépéseket. Ez az ábra a továbbiakban
tájékoztatóul végigkíséri Önt a következő fejezetekben is.

Projekt létrehozása

POU létrehozása
Változó deklarálás
Programbevitel
Topológia konfigurálás

Programkód létrehozása

Teszt és üzembe helyezés


Programkód PLC-be való letöltése
Program indítás
Program ellenőrzés

16
Új projekt indítása

7. Új projekt indítása

Projekt létrehozása

POU létrehozása
Változó deklarálás
Programbevitel

Az itt bemutatandó példát helyezzük el a következő könyvtárba:


C:\Projects\Example
Az új projekt létrehozását vagy a <Project → New…> menüparancsokkal, vagy az alábbi
ikonnal lehet kezdeményezni.

A parancssorokra, vagy az ikonra kattintás hatására az alábbi dialógusablak nyílik meg:

► Válassza ki a kívánt meghajtót, jelen esetben a C: meghajtót.


Mivel a projektet a kiindulás szerint az újonnan létrehozandó „Projects”
alkönyvtárba kell létrehozni:

17
Új projekt indítása
► Kattintson az ablak alsó részén található „New Folder” kapcsolófelületre, majd
adja meg az új könyvtárnevet és az OK-val erősítse meg a könyvtár elnevezést.
► Az új projekt elnevezés mezőbe írja be az „Example” nevet, majd az OK-val
erősítse meg a névbeadást.
Ezáltal az S40 létrehoz egy új projektstruktúrát a saját („Sources” „Devices”)
alkönyvtáraival.
A címsorban az „Example” projektnév, a státuszsorban pedig a „C:\Projects”, mint
projektmeghajtó és az érvényes alkönyvtára jelenik meg.
Mielőtt a saját POU egységek fejlesztését megkezdené, bizonyosodjon meg,
hogy a helyes PLC-típust választotta ki. (Az aktuális típus a navigátor
szimbólum sorában egy kiválasztó ablakban látható.) A kiválasztott PLC-
típustól függően állnak rendelkezésre a különböző adattípusok, a gyártó-
specifikus függvények és funkcióblokkok.

PLC típus kiválasztása


Jelenleg három típuscsalád áll rendelkezésre, melyekkel az alábbi PLC-k
fejleszthetők:
PS4-200:
PS4-141-MM1
PS4-151-MM1
PS4-201-MM1
PS4-271-MM1
PS4-300:
PS4-341-MM1
PS416:
PS416-CPU-200
PS416-CPU-300
PS416-CPU-400

► Válassza ki a kívánt PLC családot a szimbólumsor kiválasztó ablakából, vagy


► a <Generate → Select PLC…> menüpontok hatására megjelenő „Select PLC”
című dialógus ablakban a felkínált listából a megfelelő típus kiválasztása.

18
Felhasználói program létrehozása

8. Felhasználói program létrehozása

A felhasználói programok, melyeket a POU-szerkesztővel lehet fejleszteni, egy vagy több


POU fájlból állhat. A POU (Program Organisation Unit) gyűjtőnév fogalom, mely az IEC
1131-3 szabvány szerint három program organizációs egységet jelölhet, nevezetesen a
programot, a funkcióblokkot, a függvényt. A függvény és a funkcióblokk azokat a
programrészeket jelöli, melyeket a felhasználó többször (más-más bemeneti paraméterekkel)
kíván felhasználni.
Az összes POU-t (fájlt), melyet munkája során elment (letárol), a navigátor automatikusan
regisztrál és az aktuális projektben, a „Source” könyvtárban helyezi el. Hasonlóan ebben a
könyvtárba vannak a topológia-fájlok is letárolva, melyeket a topológia konfigurátorral lehet
előállítani. A fájlnézet ablakban az összes fájl megtalálható típusmegjelöléssel együtt.
A POU-szerkesztő helyzetét, azaz milyen nyelven történjen a programírás, illetve a
megszerkesztett programozási egység letárolása, az <Options → Programming Language →
IL (FBD, LD)> menüpontokkal lehet megválasztani.
A POU indulási alaphelyzetét mind a deklarációs, mind a programszerkesztési részre, illetve
az ablakok helyzetére vonatkozóan az <Options → Setting…> menüpontokkal lehet
beállítani.
A következő leírásban a standard szimbólumsor ikonjait fogjuk használni, ezért ha szükséges
aktivizálja azt a <View → Standard toolbar> menüpontokon keresztül.
Gyors menüpontok
A gyors menüpontok kényelmes segítséget jelentenek az aktuális munkához. A gyorsmenük a
legfontosabb utasításokat tartalmazzák a különböző Sucosoft S40-funkciók esetén.
A gyorsmenü a jobb egérgomb megnyomásával nyitható meg, miközben az egérmutató az
adott ablakban található. A gyorsmenü tartalma a környezettől, illetve a kijelölt elemtől függ.

A mellékelt ábrán a
szintaktikus ellenőrzésű
deklaráció esetén érvényes
gyorsmenü látható.

A példánkban futóképes programra van szüksége, ezért indulásként a "Program" POU-t kell
választani.
A felhasználói program létrehozásához használja a navigátor menüben
► <Options. → POU Editor > menüpontokat,
vagy a szimbólumsorban válassza ki a

POU Editor ikont

19
Felhasználói program létrehozása

Ennek hatására megnyílik a POU-szerkesztő:


► A POU-típus (jelen esetben a "P" program ) kiválasztásához vagy a

megfelelő ikonra kattintva (Create new program)


► vagy válassza ki a <Select file→ New POU> menüpontokat, , majd jelölje ki a "Program"
POU-típust.
Ekkor megnyílnak a deklarációs részt és az utasításokat tartalmazó ablakok. Az ablakok
elrendezése megfelel a POU-Editor alapbeállításainak (<Options → Setting…> ).

A programbevitel két lépésben történik:


A deklarációs részben deklarálni kell azokat a változókat, melyeket az utasításrészben
akar felhasználni.
Az utasításrészben pedig létre kell hozni a tulajdonképpeni felhasználói programot.

A Sucosoft S40 a deklarációs részben a változók bevitelére egy táblázatorientált


szintaktikusan ellenőrzött, és megadott beviteli mezőkkel rendelkező a felhasználót segítő
változószerkesztőt (Syntax mode) ajánl fel. Emellett létezik egy teljesen szöveges, szabad
változószerkesztő (Free mode) is, mely nem vezeti a felhasználót, és alapvetően a már
gyakorlott programozók részére ajánlott. A kezdetben javasoljuk a szintaktikusan ellenőrzött
módot alkalmazni, mert ebben az esetben nem kell sem a szintaktikával, sem a különböző

20
Felhasználói program létrehozása
kulcsszavakkal foglalkozni.
A felhasználói program előállításához választhat a különböző programnyelvek között,
nevezetesen a szöveges utasításlistás (IL) programnyelv, valamint a grafikus programnyelvek
– a kontaktusterves (LD) és a funkcióblokkos (FDB) – között. A példaprogramot első
lépésben állítsa elő utasításlistában (IL).
A két POU-rész, a deklarálás és az utasítássorozat, létrehozása teljesen tetszőleges, sőt akár a
kettő egymással párhuzamosan is történhet. A példában azonban először deklaráljuk a
változókat, majd ezt követően készítjük el az utasítássorozatot.
Változók deklarálása

Projekt létrehozása

POU létrehozása
Változó deklarálás
Programbevitel
Topológia konfigurálás

A változók deklarálása, típusonként egymástól elkülönített iratgyűjtőkben történik. A


választott "Program" POU-típus esetén a választható változótípusok a "Type, Local, és a
Global".

Az adott változótípus kiválasztása az ablak alsó részén felajánlott típusokra való kattintással
történhet.
A változók deklarálását az előre beállított változótípussal, a"Local"-val kezdje. Ezért nem
szükséges az iratgyűjtő -lovast aktivizálni. Csak azok a cellák jelennek meg, melyek az adott
változótípus esetén megengedettek. Deklarálja az összes "Local" változótípust.
Amennyiben egy POU-ban további változótípusok is előfordulnak, akkor a iratgyűjtő-lovassal
válassza ki a következő típust és deklarálja azokat is. A listában mindig csak egy típus
változói jelennek meg.
A változók deklarálása a munkasor egyes celláinak kitöltésével történik. Az aktuális
munkasor celláinak szerkesztésekor annak sorszáma kiszíneződik.
Az egyes cellák között válthat a
kurzor balra /jobbra,
TAB / shift + TAB,
Kurzor fel/le,
oldal fel/oldal le gombokkal, vagy
az egérmutató megfelelő elhelyezésével és a jobb billentyű megnyomásával.
Egy cellának a hibás beírását, vagy nem teljes deklarálást legkésőbb a cella/sor elhagyásakor

21
Felhasználói program létrehozása
jelzi a szerkesztő.
A jelzést OK-val kell nyugtázni, majd utána lehet a cellát vagy sort javítani.
A standard Windows funkciók (másolás, kivágás, beszúrás, törlés) mellett az
„Insert line” és „Delete line” funkciókkal lehetősége van a táblázatban egy vagy
több sort a jelölt helytől kezdődően beszúrni vagy törölni.
Teljes sort a baloldali sorszámozásra való kattintással lehet kijelölni.
Ha a bevitel során elvéti a beírást, vagy a „Delete” vagy „Backspace” billentyűvel
törölheti a hibás bevitelt. A téves törlést az „Alt + Backspace”, a Ctrl + Z
billentyűk együttes lenyomásával, vagy az <Edit → Undo> menüpontok
kiválasztásával tudja visszaállítani.
Mint korábban említettük, a példaprogramban szereplő változók „Local” típusúak.
► Az első változó deklarálásához adja meg sorban egymás után a következő adatokat.
Name: initial_pos (változó nevének megadása)
Ha a bevitelre kerülő szöveg túl hosszú, akkor a bevitel balra továbbgördül. A
„Home” billentyűvel, vagy a cella megnövelésével tudja a teljes szöveget újra
láthatóvá tenni. A cella megnövelését a fejrész oldalsó határoló vonalával tudja
változtatni. (A bal egérgomb lenyomása mellett a vonalat a kívánt pozícióba
viheti.)
Type: (változó típusának megadása) Ehhez a cellához a különböző adattípusokat felsoroló
listamező tartozik, melyet az <Insert →Data types…> menüpontokkal, vagy az egérgomb
jobb gombjával előhívható gyorsmenüvel lehet megnyitni. Válassza a „BOOL” típust.
Initial Value: (változó kezdeti értékének megadása) Ennek kitöltése nem szükséges, mert
programstartnál alapbeállításként az „initial_pos” változó automatikusan nulla értéket veszi
fel.
Attribute: (változó tulajdonságának megadása) Nem kell kitölteni.
Ebben a mezőben lehet a remanens változók számára a „RETAIN” kulcsszót, vagy
konstansok esetén a „CONSTANT” megadni. Be-/kimeneti (I/Q) változók esetén nincs
értelme az attribútum megadásának.
Address: I0.0.0.0.0 (változó címének megadása) Az „initial_pos” változó címének megadása.
Comment: (változóhoz tartozó kommentár megadás). Az adott esetben adja be a berendezés
alaphelyzete kommentárt.
► Egy sort az „Enter” nyomógomb leütésével lehet befejezni és elhagyni.
A teljesen definiált változósor a következőképpen néz ki.
Name Type Address Comment
initial_pos BOOL I0.0.0.0.0 berendezés alaphelyzete
► Hasonló módon deklarálja a példaprogram többi változóját is.
Name Type Address Comment
start_button BOOL I0.0.0.0.1 start nyomógomb
stop_button BOOL I0.0.0.0.2
position_A BOOL I0.0.0.0.3 „A” pozíció elérve
motor BOOL Q0.0.0.0.0

22
Felhasználói program létrehozása
Ezzel a teljes változólista következő:

Amennyiben valamelyik változónak valamelyik mezejét módosítani kívánja, akkor a kurzort a


megfelelő mezőre állítva, hajtsa végre a változtatást. Ha a módosítás a teljes cellára / sorra
vonatkozó kivágás, másolás, beszúrás, törlés jellegű, akkor a jobb egérgomb előhívásával,
vagy POU-szerkesztő „Edit” menüpontjával hívható elő a következő menülista.

A kész deklaráció megtekinthető a „Free Variable Editor”-ban is.

► Válassza az <Options → Variable Editor → Free Mode> menüpontokat, vagy a standard

23
Felhasználói program létrehozása
szimbólumlista megfelelő ikonját.
szabad módú változó szerkesztő (Variable Editor: Free Mode)
A képernyőn megjelenik a változódeklarációs szerkesztő ablak, amelyet már korábban a
szintaktikusan vezérelt szerkesztővel létrehozott:

A szabadon deklarálható változó szerkesztőben az egyes változók olyan formában láthatók,


mint ahogyan azokat az IEC szabvány előírja (VAR, END_VAR és AT kulcsszavakkal, a
kettősponttal, mint elválasztójellel, valamint a (*kommentár*) jelöléssel).
A szintaktikusan ellenőrzött deklarációnál a szerkesztő a kulcsszavakat automatikusan
beszúrja, a deklarációban az egyes változótípusok sorrendje is automatikusan szabályozott.
Ezért a szintaktikusan ellenőrzött deklaráció rendkívül egyszerű. Azonban megvan az a
hátránya, hogy mindig csak egy változótípus, pl. csak a bemeneti, vagy a lokális változók
látható csak egyszerre.
A szabadon deklarálható szerkesztőben a változók éppen úgy deklarálhatók, de ehhez a
megfelelő kulcsszavakat, elválasztójeleket, szintaktikai szabályokat ismerni és alkalmazni
kell. A javítások egyszerűen megoldhatók. Ugyanakkor a szabad módú deklaráció komplett
áttekintést biztosít az összes deklarált változóról, függetlenül azok típusától, és a bevitel is
gyorsabb, ha a programozó már ismeri az alapvető szintaktikai szabályokat.
A két deklarációs szerkesztő között bármikor átválthat.

24
Felhasználói program létrehozása

Programbevitel utasításlistával

Projekt létrehozása

POU létrehozása
Változó deklarálás
Programbevitel
Topológia konfigurálás

Ha a változódeklarációt befejezte, kezdődhet a program utasítássorainak bevitele.


► Váltson a baloldali utasításablakba az egér bal gombjával
Az utasításlistás programnyelvet (IL) már korábban beállítottuk. Ha váltásra lenne szükséges,
akkor vagy a standard szimbólumlistából a megfelelő ikonra kattintással, vagy a POU-
szerkesztő menüjének <Option → Programing Language → IL> menüpontokkal lehet az
utasításlistás programnyelvet kiválasztani.
utasításlistás programnyelv kiválasztása (IL Editor)

Az utasításlistás programnyelv (IL) szöveges formátumú sororientált nyelv, mely a következő


felépítéssel rendelkezik: címke (opcionális), műveleti jel (operátor), változó (operandus),
kommentár (opcionális).
Az egyes elemek között minimum egy-egy tabulátort vagy szóközt kötelező tenni. Minden
utasítást új sorban kell kezdeni.
Az utasításra vonatkozó kommentárt a (* és *) jelkombinációk között lehet beírni.
A kommentárok előtt mindenképpen célszerű egy tabulátort elhelyezni, hogy az az utasítástól
megfelelően távol legyen.
Az aktuális kurzorpozíció sorának és oszlopának számozása az ablak alsó részén, a státussor
jobb oldalán nyomon követhető.
Az egyes utasításrészek és kommentárok különböző színezése megkönnyíti az egyes sorok
szerkesztését.

Operátorok beszúrása
Az „Insert” menüpont alatt található az „Operators…” kiválasztó menüpont, amellyel a
rendelkezésre álló műveleteket tudja beszúrni, azaz a listából közvetlenül egy operátort a
programba bevinni. A művelet a következő lépcsőkből áll: <Insert → Operators…>
menüpontok, majd a kiválasztott művelet kifestése, és az „Accept” kapcsolófelületre
kattintással a kiválasztás megerősítése. További lehetőségként rendelkezésére áll a „Toolbox”,
melyet a <View → Toolbox> menüpontokkal lehet a szerkesztőablakba behívni / kiszűrni.
A műveleti jelet a szerkesztő a kurzor pozíciónál szúrja be, azonban ha ismeri a szükséges
operátor írásmódját, akkor közvetlenül a tasztatúráról is beviheti a műveleti jelet.

25
Felhasználói program létrehozása
Változók beszúrása
Az „Insert” menüpont alatt található az „Insert Variable…” kiválasztó menüsor, amelyben a
deklarált változók típusonként vagy összesítve kilistázhatók. A listából a kívánt változó
kiválasztható, és a program utasítássorába az „Accept” kapcsolófelületre kattintással kurzor
helyére beszúrható.
A változók beszúrására további két egyszerű lehetőség áll rendelkezésre. Az egyik az
egérgomb jobbgombjára kattintva az előzőekben ismertetett menüsor előhívása, a másik a
standard szimbólumsor alábbi szimbólumára kattintás.
Beszúrás az összes változóból (Select from all variables)
A programbevitel során a két szerkesztőablak között a Ctrl + TAB váltással bármikor
választhat.
► Vigye be a példaprogramot, mint az alábbiakban látható, miközben vegye figyelembe a
korábban megadott szabályokat.

A programbevitel után az utasításrészt tartalmazó ablak a követezőket tartalmazza:

26
Felhasználói program létrehozása

Program tárolás
A POU-k egy projekten belül mindig a „source”, vagy annak valamelyik alkönyvtárában
kerülnek letárolásra. Ha egy POU, pl. egy funkcióblokkot alkönyvtárban kell letárolni, akkor
előzőleg az alkönyvtárt a navigátorban az <Edit → New> parancsokkal létre kell hozni.
► Tárolja le a kész programot a <File → Save as…> menüpontokkal, vagy kattintson a
következő szimbólumra.
aktuális POU letárolása (Save the current POU)

A megnyíló ablakban látható lesz a „SOURCE”, mint az aktuális projekt célkönyvtára.


► Adjon position nevet a POU-nak, és OK-val erősítse meg a bevitelt.

Szintaktikus ellenőrzés
A szintaktikus ellenőrzéskor mindig az utoljára letárolt változatot ellenőrzi a program.
Amennyiben a képernyőn látható programot megváltoztatta anélkül, hogy azt letárolta volna,
akkor program szintaktikus ellenőrzés meghívásakor a következő dialógussal kérdez vissza.
„Save changes in <POU name> ?”. Az ellenőrzéshez erősítse meg a rákérdezést OK-vel.
► Az ellenőrzéshez válassza a <File → Syntax check> menüpontokat, vagy a

27
Felhasználói program létrehozása

szintaktikai ellenőrzés (Syntax check)


szimbólumot.
Mivel a fájlt éppen az előbb tárolta le, az ellenőrzés azonnal megkezdődik.
Ha mindent hibátlanul írt be, akkor az ellenőrzés a státussorban megjelenő hibátlan üzenettel
(„No syntax error ocurred”) befejeződik.
Hibajavítás
Amennyiben az ellenőrzés során egy, vagy több hibát talált a program, akkor a következő
hibalista ablak jelenik meg az aktuális POU-hoz.

Balról jobbra a => jel után a következők vannak feltüntetve:


Hibahely („Decl” a deklarációs, az „Ins" az utasítás ablakot jelöli),
a sor száma (Line: 6),
az oszlop száma (Col: 2) és „-„ jelet követően
a hiba rövid leírása.
Amennyiben a rövid összefoglaló nem elegendő a hiba azonosításához, akkor jelölje ki a
hibás sort, és az F1 lenyomásával további információkhoz juthat a fellépett hibával
kapcsolatban.
Hibakezelés: Amennyiben a hibasorra kétszer rákattint, vagy a hibasort kijelölve az Enter–t
megnyomja, automatikusan megnyílik a POU-szerkesztő, és a kurzor azon a helyen villog,
ahol a hibát a program felfedezte. A hibás sor, az alapbeállításnak megfelelően, pirossal van
megjelölve.

28
Felhasználói program létrehozása

POU nyomtatás
► A nyomtatáshoz válassza a <File → Print…> menüpontokat, vagy a

nyomtatás (Print)

szimbólumot a standard listából.


A nyomtatáshoz megnyílik a következő Print dialógus ablak.

► Válassza ki a kívánt formátumot, pl. standard formátum: DFORM1.WMF.


► Jelölje be nyomtatási eszközként a képernyőt (Printer)
Nyomtatási területként a teljes terület („All”) van alapértékként beállítva, azaz a teljes POU, a
deklarációs és utasításrész együtt kerül kinyomtatásra.
► Az OK kapcsolófelület megnyomásakor a képernyőn megjelenik a POU, melyet
ellenőrizhet.
► A Printer kiválasztása és az OK kapcsolófelület megnyomása után, a program az
ellenőrzött POU-t a kiválasztott nyomtatóra küldi.
► A POU-szerkesztés befejezése után az Alt + F4 billentyűk lenyomásával visszatérhet a
navigátor menühöz.

29
Topológia konfigurálás

9. Topológia konfigurálás

Topológia konfigurálás

Programkód létrehozása

Teszt és üzembe helyezés

A programkód generálás előtt az alkalmazni kívánt hardver rendszert a „Topology


Configurator” segítségével össze kell állítani. Az összeállítás során megadja a rendszer
felépítéséhez szükséges eszközöket, elrendezésüket, és a rendszerelemek beállításához tartozó
információkat.
► Aktiválja a Sucosoft navigátorban a <Tools → Topology Configurator> menüparancsokat,
vagy kattintson a standard szimbólumlista

topológia konfigurátor szimbólumára (Topology Configurator)


A „Topology Configurator” a következőképpen épül fel.

A PS4 topológia konfigurátora


Egy konfiguráció létrehozását a következő példa alapján mutatjuk be. A példához egy
PS4-141-MM1, PS4-151-MM1, PS4-201-MM1, PS4-271-MM1 vagy PS4-341-MM1
kompakt PLC szükséges.
A konfiguráláskor az automatizálási rendszer összes építőelemét és az egyes komponensekhez
szükséges információkat meg kell adni. Az adott példához azonban csak a megfelelő PS4
kompakt vezérlő típuscsalád kiválasztása lényeges.

31
Topológia konfigurálás
A topológia konfigurálás összes műveletét a menüsorból vagy a topológia konfigurátor
szimbólumlistájának megfelelő ikonjaival lehet elvégezni.

Először a CPU deklarációja következik:


► Nyisson meg egy új konfigurációt a <Configuration →New…> menüpontokkal, vagy a
szimbólumsor első „Create a new configuration” nevezetű ikonjával. Ekkor megnyílik az
új konfigurációt indító dialógusablak.

► Adjon konfigurációnak „Device” nevet, valamint a legördülő PLC-típusok közül válassza


ki a felhasználni kívánt CPU-típust. A bevitt adatokat az OK-val erősítse meg.
A jelenlegi példában a PLC-t nem kell sem master-nek, slave-nek paraméterezni,
Erre csak akkor van szükség, ha a PLC-t egy Suconet K hálózaton felfűzött több
CPU-s automatizálási rendszer egyik tagjaként kívánja használni. A beállításokat
egyébként a paraméterező ablakban lehet véglegesíteni. Az ablakot az <Edit →
Set parameters…> menüpontokkal vagy az egér jobbgombjával kiváltható
gyorsmenűből a ”Set parameters…” menüponttal, vagy a „Set the parameters for
the marked component” feliratú szimbólummal hívható meg.
► A konfiguráció elkészítése után válassza a <Configuration → Save> menüpontokat, vagy a
„Save the active configuration” szimbólumot a listából. A konfigurációs fájl az aktuális
„example” projektben kerül tárolásra.

32
Topológia konfigurálás
A fájl automatikusan *.dcf kiterjesztéssel kerül mentésre az utoljára megnyitott aktuális
könyvtárba. Figyeljen arra, hogy a fájlt a project kompo.sys, vagy annak egyik alkönyvtárába

tárolja le.
► A topológia konfigurálás befejezése után az Alt + F4 billentyűk lenyomásával visszatérhet
a navigátor menühöz.

A PS416 topológia konfigurátora


A konfigurálás hasonló a PS4 esetéhez, részletes leírása az eredeti dokumentációban
megtalálható (Training Guide - Sucosoft S40 Programming Software; AWB 27-1307)

33
Felhasználói program gépi kódjának generálása

10. Felhasználói program gépi kódjának generálása

Topológia konfigurálás

Programkód létrehozása

Teszt és üzembe helyezés

A futtatható PLC-specifikus felhasználói program létrehozásához a navigátor ablakban vagy a


„Generate” menüponttal vagy a felső ikonsor jobboldali szimbólumaival előhívható
parancsok állnak rendelkezésre. Az egyes parancsokat fejezetenként ismertetjük a
következőkben.
A programkód létrehozása (generálása) két lépcsőben történik:
A generáló lista létrehozása, amelyben meg kell adni, mely elemeket (fájlokat) kell a
generálás során figyelembe venni, azaz az összes POU-t (a programot, az esetleges
funkcióblokkokat, függvényeket), a topológia konfigurációs fájlt és a program egyéb
paramétereit.
A generáló listát programonként (Program POU) egyszer kell elkészíteni, mely
alapbeállításként mindig a program nevét veszi fel. A későbbiek során a Sucosoft S40
mindig ezt a listát aktualizálja, ha a lista valamely eleme megváltozott.
Második lépcsőben a programkód generálása a generáló lista alapján, azaz a lista elemei
alapján történik meg.
A programkód generálás előkészítése előtt a topológia konfigurátor fájlban használt PLC-nek
megfelelő PLC-típuscsaládot kell felső munkasorban található legördülő menüben beállítani
(lásd a „PLC típus kiválasztása” fejezetet).

Generáló lista létrehozása


► Válassza ki a <Generate → New Make File…> menüpontokat, vagy az ennek megfelelő
feliratú ikont.

új generáló fájl létrehozása (Create a meke file)

Válaszként megnyílik a következő „New Make file – PS4-200” feliratú dialógus ablak:

35
Felhasználói program gépi kódjának generálása

A legördülő listamezőkből válassza ki:


Azt a programnevet, melynek a futtatható programkódját akarja generálni.
A topológia konfigurációban állítsa be az idevonatkozó PLC-konfiguráció nevét.
A példánkban jelenleg csak egy-egy POU és topológia létezik, (azonban a gyakorlatban egy
projektben az adott PLC típuscsaládhoz több POU és *.dcf is tartozhat) melyeket már a
rendszerprogram előre beállít, és Önnek azt csak meg kell erősíteni.
► Nyomja meg az OK kapcsolófelületet
Az OK hatására elkészül az a generáló lista, amely szerint a későbbiekben a futtatandó
program létrehozható. A lista elkészültét a státussorban megjelenő jelzés igazolja vissza.
A POU-k számában, a paraméterekben (azaz a projektben) végrehajtott összes
változtatást a lista automatikusan átvezeti.

A program paraméterezése
A különböző programparamétereket (pl. a mindenkori PLC-típusnak megfelelő kompilálási
opciókat, a lényeges programindítási feltételeket, a ciklusidő milyenségét, maximumát, a
jelszót, a merkerterületeket) ebben a menüpontban kell meghatározni. Ez történhet pl. a
megfelelő ikonra
PLC program paraméterek (PLC program parameters)
kattintással, azonban esetünkben elegendő az előzetesen beállított standard paramétersor is.

A programkód generálás
► Válassza a <Generate → All generate> menüpontokat, vagy az
új programkód generálás (Generate new program code)
ikonra kattintva létrehozza a futtatandó programkódot az aktuálisan kiválasztott generáló lista
alapján.
A kimeneti (alsó) ablakban látható a generálás menete.
Hibamentes lefutás esetén megfelelő jelzés jelenik meg az ablak utolsó soraként.
Amennyiben a fordítás során hiba lép fel, akkor az a kimeneti ablakban magyarázattal együtt
megjelenik.
A kijelzett hiba a <Project → Print Output> menüpontokkal kinyomtatható.

36
Felhasználói program gépi kódjának generálása
Hibakezelés
Ha programkód generálás során hiba lépett fel, akkor az a navigátor ablak alsó kimeneti felén
megjelenik.
Balról jobbra a következők láthatók:
hibahely ( deklarációs vagy utasításlistás rész)
hibahely sorának száma
oszlopának száma és
a POU neve illetve elérési útvonala.
► a hibás sor kifestése mellett az Enter billentyűt leütve, vagy a hibás sorra való kettős
kattintásra megjelenik a POU-szerkesztő.
A szerkesztőben a kurzor a hiba helyén villog, és a POU-sort pirossal kifestve jelzi a program.
► Javítsa ki a talált hibát, majd újra indítsa el a kódgenerálási folyamatot.

37
Teszt és az üzembe helyezés menete

11. Teszt és az üzembe helyezés menete

A teszt és üzembe helyezési műveletekkel lehet az elkészített programot a PLC-be letölteni,


és azt a futás közben ellenőrizni. Az online kapcsolathoz a következő egyedi lépések
szükségesek:
A programozó készülék és a PLC közti kapcsolatot definiálni és létrehozni.
A PS4-300/PS416 rendszereknél a vezérlőbe az operációs rendszert letölteni.
Az alkalmazói programot a PLC-be letölteni.
PLC-ben az alkalmazói programot indítani
Az alkalmazói programot ellenőrizni.
► Aktiválja a navigátorban a <Tools → Test and Commissioning> menüpontokat, vagy a
szimbólumlistából a
teszt és üzembe helyezés (Test and Commissioning)
ikont.
Ennek hatására a „Test and Commissioning” fő ablakban megnyílik az üzembe helyezési
kapcsolati lista („Communications Configuration”) ablak.

A megnyílt ablakban a következő szimbólumok állnak rendelkezésre:

online POU-szerkesztő

online topológia konfigurátor

csatoló felület paraméterezése

Programozó PC és a vezérlő összekötése


Összekötést definiálni
Először az összeköttetést kell definiálni. A „Connection List” ablakban néhány előre definiált
standard érték jelenik meg, melyet igény estén módosítani lehet.
► Pl. az egérrel válassza ki a „Device Name” mezőbe beírt nevet, és írja be a csatolandó
program nevét, az „example”-t.
Amennyiben a programozó kábel nem standard COM1-re van csatlakoztatva, módosítsa a
megfelelő portra a soros illesztő megjelölését. Ehhez kattintson az „Interface” mezőre és a

39
Programbevitel kontaktusterv / funkcióblokk segítségével
legördülő menüből válassza ki a megfelelő csatlakozást.
A vonal (line) és állomás (station) mezőknek a példánk szempontjából nincs jelentősége, ezért
ezek üresen hagyhatók. (Ezen mezőknek a jelentősége a Suconet K hálózaton keresztüli
programozásnál van jelentősége.)
► A kommunikációs konfigurációt a <File → Save> menüpontokkal lehet letárolni
miközben a rendszerprogram automatikusan az example.ccf nevet adja a fájlnak.

Összekötés felépítése
► Kapcsolja össze a programozó PC-t a PLC-vel.
► A „Connect” ikonra kattintva, hozza létre az összeköttetést. Ha az összeköttetés létrejött,
akkor az example mező sorában a status mezőben a „connected” (összekapcsolva) jelzés
jelenik meg.

Az operációs rendszer és az alkalmazói program letöltése a PS4-150/200-ba

Teszt és üzembe helyezés


Programot a PLC-be letölteni
Programot a PLC-ben indítani
Programot a PLC-ben ellenőrizni

► Aktiválja a „Transfer…” ikont, melynek hatására megnyílik a Transfer/File Manager


dialógus ablak:

40
Teszt és az üzembe helyezés menete

A baloldali mezőben alapfelállásban a futtatható (.pcd kiterjesztésű) fájlok nevei láthatók. (Az
alsó kiválasztó mezőben a PLC operációs (.osf kiterjesztésű) fájljainak a típusa is beállítható.)
A „Memory Medium” alapbeállítása a PRG, azaz a programozó készülék.

A program átvitele a PLC-be


Válassza ki a programkód fájlokat (.pcd kiterjesztést) a fájltípusok listájából (List Files of
Types).
► Válassza ki azt a fájt, melyet a PLC-be akar letölteni, majd kattintson a „Transfer → PLC”
kapcsoló felületre. Megkezdődik a kiválasztott program átvitele, melynek folyamatáról
külön kijelzés látható.
► Az átvitel befejezése után zárja be a Transfer/File Manager dialógus ablakot a „Close”
kapcsolófelületre történő kattintással.

Az operációs rendszer és az alkalmazói program letöltése a PS4-300/PS416-ba


Ha vezérlőjében nincs még operációs rendszer, vagy csak egy korábbi változatú operációs
rendszer található, akkor először az új operációs rendszert kell letöltenie. A Sucosoft S40
mindig az aktuális operációs rendszerrel együtt kerül kiszállításra, a újabb módosítások az
internetről letölthetők.

41
Programbevitel kontaktusterv / funkcióblokk segítségével
Az operációs rendszer letöltése a PLC-be
► Aktiválja a „Transfer…” kapcsolófelületet a teszt és üzembe helyezési menü fő ablakában.
Megnyílik a korábban már ismertetett, de a PS4-300/PS416-ra vonatkozó „Transfer/File
Manager” nevezetű dialógus ablak.

A baloldali mezőben alapfelállásban a futtatható (.pcd kiterjesztésű) fájlok nevei láthatók.


A „Memory Medium” alapbeállítása a PRG, azaz a programozó készülék.

► Az operációs rendszer letöltése érdekében a válassza ki az „osf” kiterjesztésű fájlokat a


fájltípusok listájából, majd kattintson a „Transfer → PLC” kapcsoló felületre.
Ha egy korább operációs rendszert egy újabbal felülírja, akkor egyidejűleg az
összes felhasználói program és adat is elveszik! Ezért az egész műveletet még egy
dialógusablakkal meg kell erősíteni.
Az átvitel a beállított átviteli sebességtől függően néhány percig tarthat. Az átvitel
folyamatáról a rendszer kijelzést biztosít.
A sikeres átvitelt követően a PLC-n zöld „Ready” LED jelzi az üzemkészséget.

42
Teszt és az üzembe helyezés menete
Alkalmazói program átvitele a PLC-be
A „Transfer/File Manager” dialógus ablakban válassza ki a”.pcd” kiterjesztésű fájlokat.

► Jelölje ki a listából a letölteni kívánt programkód fájt, majd a „Transfer→ PLC” kapcsoló-
felületre kattintva, töltse le a programot. Az előzőekhez hasonlóan itt is kijelzés jelenik
meg a képernyőn az átvitel folyamatáról.

► Befejezésül zárja be a dialógus ablakot a „Close” kapcsolófelülettel.

43
Programbevitel kontaktusterv / funkcióblokk segítségével

Program indítás PS4-200 és PS4-300 esetén

Teszt és üzembe helyezés


Programot a PLC-be letölteni
Programot a PLC-ben elindítani
Programot a PLC-ben ellenőrizni

► A kötési listában (Connection List) kattintson a Program status… ikonra.

Ha korábban a PS4-200 típusú PLC családot választotta, akkor a következő ablak jelenik
meg:

Ha korábban a PS4-300 típusú PLC családot választotta, akkor viszont a következő ablak
jelenik:

44
Teszt és az üzembe helyezés menete

A „CPU Operating Status” mező mutatja a CPU üzemállapotát, valamint a PLC üzemmód-
választó kapcsolójának állását. A „Program Information” azokat a program végrehajtási
paramétereket mutatja meg, melyeket a kódgenerálás előtt beállított. Jelenlegi példánkban ez
az alap paraméter (default) értékeknek felel meg. A paramétereket nem lehet ebben az
ablakban módosítani.
Az alsó sorban található kapcsolófelületekkel lehet a programot indítani, leállítani, illetve a
programfutás közben fellépő hibákat diagnosztizálni.
► Állítsa a PLC üzemmód választó kapcsolót „RUN” állásba, melynek hatására a hidegstart
„Cold Start” kapcsolófelület kifeketedik, azaz indítható a PLC-t.
► A hidegstartra kattintva a PLC elindul, melyet a „CPU Operating Status” mező első sora a
„CPU Status” „Run” jelzése is mutat.
Ha Sucosoft S40 nem képes a programot elindítani, akkor a rendszer a lehetséges üzenet
kijelzésével ad felvilágosítást az előfordulható okokról. A „Diagnostics” kapcsolófelületre
kattintással a következő ablak jelenik meg a PS4-200 esetén:

45
Programbevitel kontaktusterv / funkcióblokk segítségével

A PS4-300 esetén egy kissé különböző kép jelenik meg:

Az OK-ra kattintva, újra a „Program Status” ablak jelenik meg.

46
Teszt és az üzembe helyezés menete
► A program futása leállítható, ha a „Halt” kapcsolófelületre kattint, vagy a PLC választó-
kapcsolót HALT-ba állítva a PLC-n a RESET gombot megnyomja. A leállított program
bármikor újra indítható a melegstart vagy a hidegstart kapcsolófelületek működtetésével,
ha a választókapcsoló RUN állásban van. (Természetesen a választókapcsoló nem HALT
állása mellett a RESET nyomógomb működtetése mellett is indítható a PLC!)
► Az OK-ra kattintva lehet a dialógus ablakot bezárni.

Program ellenőrzés

Teszt és üzembe helyezés


Programot a PLC-be letölteni
Programot a PLC-ben elindítani
Programot a PLC-ben ellenőrizni

► Kattintson a főmenüben a POU Editor Online ikonra.


A Program ablak megnyílik, és a menüsorban a második menüpont, a „Program” helyettesíti a
„Device” menüpontot:

A „Program” ablak két részből áll. A baloldali a”Instanc” rész tartalmazza a RESOURCE-t,
mely a programstruktúrának legfelső szintjét mutatja, és a CPU-t reprezentálja.
A jobb oldali rész a mintaprogramot (jelen esetben a Position POU-t) tartalmazza.
► A RESOURCE-ra való kettős kattintással lehet a program további strukturális szintjeit
megjeleníteni. Jelen esetben csak a Position POU-t.
Ebben az ablakban a fastruktúrában kiválaszthatja azt a POU-t, melyet online módon
megjeleníteni, vagy módosítani akar. Ha a program további POU-t (funkcióblokkot,
függvényt) tartalmaz, akkor azt a programnév melletti „+” jelzés mutatja, melyeket további
kettős kattintással lehet javítás vagy megjelenítés céljából előhívni.

47
Programbevitel kontaktusterv / funkcióblokk segítségével
Ha egy programot online módon kíván módosítani, akkor annak regisztrálva kell
lennie, másrészt a teljes programnak tartalmában és a programkódban azonosnak
kell lenni a PLC-ben letárolt program verzióval. A példánkban feltételeztük, hogy
a fenti utasításokat követte, és akkor az említett két kívánalom automatikusan
teljesül.
► Válassza ki a baloldali ablakban a Position POU-t, majd kattintson a Display/Modify
kapcsolófelületre, hogy megnyíljon az az ablak, amelyben a Position POU programsorai
láthatók.

Az online POU editorban három parancs aktiválható, nevezetesen az állapot megjelenítés


(Status Display), a módosítás (Modify) és a módosítás aktiválása (Activate). Ezek az
utasítások az ikonsorban is elérhetők, melyek magyarázata az alábbi.
változók állapotainak megjelenítése (Status Display)

az adott utasítás módosítása (Modify)

a adott módosított utasításrészlet átvitele a PLC-be (Activate)

► Válassza az állapotkijelzés ikont (Status Display). A rendszerszoftver automatikusan


online üzemmódba kapcsol. A kijelzés három részre van felosztva. Baloldalon a változó
deklaráció, jobb oldalon az utasításrész látható. Kettő között, a középső mezőben az egyes
utasításokhoz tartozó változók állapotai láthatók, melyek a program futása közben változás
esetén folyamatosan aktualizálódnak.
► Amennyiben a változók aktualizálását le kívánja állítani, akkor még egyszer rákattintva az
állapotkijelzés ikonra, a kijelzett értékek „befagynak”.
A képernyőn az utolsó „befagyott” értékeket lehet látni. Ezt a szolgáltatást – mely a
példaprogramban nem szükséges – hibakeresésre lehet felhasználni.
Ha egy terjedelmesebb programban olyan változókat akar megjeleníteni, melyek az
utasításrészben egymástól távol találhatók, és ezért összefüggően nem láthatók, vagy más
esetben különböző POU-k változóit kívánja egyszerre látni, akkor a következő változó
ablakos kijelzési mód is rendelkezésére áll. A minimális méretű mintaprogram esetén
természetesen ennek nincs jelentősége, azonban mégis a gyakorlat érdekében próbálja ki az
„initial_pos” és a „motor” változók esetében.

48
Teszt és az üzembe helyezés menete
► Jelölje ki az „initial_pos” változót és az <Online → Transfer Variable> menüpontokkal
vigye át a kijelölt változót a változó ablakba. Ismételje meg az eljárást a „motor” változó
estében is, majd az <Online → Online Variable Window> menüparancsokkal nyissa meg a
változó ablakot, amelyben a „Position” nevű POU látható.
► Kétszer a „Positon” névre kattintva, megjelenik a két bevitt változó, és kijelölve a „Display
Status” négyzetet, a kiválasztott változók állapota is folyamatosan kijelzésre kerül:

A PS4-300/PS416 típusú PLC-k esetén két további oszlop is megjelenik az ablakban, melyek
a változók „RUN” állapotban való adott értékű kényszerítésére (Force) szolgálnak, melynek
most a példánk szempontjából nincsen jelentősége.
► Az állapotkijelzés folyamatos megjelenítéséhez kattintson még egyszer a „Display Status”
kijelölő négyzetre.
► Az online szerkesztőbe az ALT + TAB billentyűk lenyomásával térhet vissza.
► Válassza a „Modify” parancsot
A változó ablak becsukódik, és a kurzor ismét a program első sorában villog. Így lehetősége
van a program esetleges módosítására.
Egy változtatás után a PLC-be való letöltéshez még az aktiválás (Activate)
kapcsolófelületet is működtetni kell. Ezáltal a módosított részlet mind a kiinduló
forrásnyelvi POU-ban és a letárolt programkódban, mind a PLC-ben
aktualizálásra kerül.
► Végezetül, ha be akarja fejezni az Online-Editort, akkor válassza a <File → Exit>
menüpontokat.

Az eddigiek során a bemutatott mintapéldán keresztül a Sucosoft S40 összes segédeszközét


megismerhette, amelyek egy program létrehozásához, annak a PLC-be való letöltéséhez,
illetve online ellenőrzéséhez, módosításához voltak szükségesek.
A következő fejezetben a mintapélda kontaktusterves és logikai funkcióblokkos nyelvvel való
szerkesztését mutatjuk be.

49
Programbevitel kontaktusterv / funkcióblokk segítségével

12. Programbevitel kontaktusterv / funkcióblokk segítségével

Az utasításlistás programszerkesztéshez és üzembe helyezéshez hasonlóan programfejlesztési


feladatait a kontaktusterves / logikai funkcióblokkos formában is elvégezheti, mely esetben az
egyes utasításokat szimbolikusan ábrázolja a rendszerszoftver. A deklarációs rész az
utasítássoros nyelv során megismertekkel azonosan épül fel. Az egyes programnyelvek
közötti váltás szabadon megtörténhet, azaz megírhat egy POU-t kontaktusterves formában, és
a megjelenítést, az ellenőrzést pl. funkcióblokkos formában végezheti el.
Használja az „Insert” menü pontjait, vagy a szerkesztősor ikonjait a program létrehozásához.
► A grafikus szerkesztőt segítő eszköztárat a <View → LD/FBD Toolbar> menüpontokkal
hívhatja elő.

Példaprogram bemutatása kontaktustervvel / funkcióblokkal


Az utasításlistával elkészített példaprogramot a grafikai programnyelvek bármelyikével is
megtekintheti és módosíthatja.
A POU-szerkesztő nyitásakor a kiválasztott programorganizációs egység abban a
programnyelvben jelenik meg, amely az „Options → Settings… → Instruction Section”
menüpontokban korábban kiválasztásra került.
Előfeltételek: A POU-szerkesztő indítva, az „Example projekt „position” POU-ja van
megjelenítve.

51
Második programozási feladat
POU megjelenítés kontaktusterves formában
► Válassza ki a kontaktusterves nyelvet (ladder logic) az <Options → Programming
Language → LD> menüpontokat, vagy a standard szimbólumlistából a

LD
ikont. A „position” POU az utasításrészben kontatktusterves (létradiagramos) formában
jelenik meg.

52
Programbevitel kontaktusterv / funkcióblokk segítségével
POU megjelenítés logikai funkcióblokkos formában
► Válassza ki a logikai funkcióblokkos nyelvet (Funtion Bock Diagram) az <Options →
Programming Language → FBD> menüpontokat, vagy a standard szimbólumlistából a

FBD
ikont. A „position” POU az utasításrészben funkcióblokkos formában jelenik meg.

Mindkét előző ábrán látható grafikai ábrázolás logikai tartalma megfelel a mintaprogramban
felvázolt feladatnak.
Az egyes utasításkommentárok nem az egyes grafikus szimbólumokhoz, hanem a hálózathoz
(annak kezdetéhez), vannak hozzárendelve.

Programbevitel kontaktusterv alapján


Előfeltételek: Ismeri az első mintapélda feladat kiírását.
Az „Example” projektet már létrehozta.
Egy új program típusú POU-t már létrehozott, a szükséges változókat már deklarálta.

53
Második programozási feladat
A program megvalósítási javaslata létradiagramban:
Motor bekapcsolása

Motor kikapcsolása

A programot két hálózatban lehet megvalósítani.


A 001 hálózatban a motor bekapcsolási feltétele valósul meg, azaz a két „initial_pos” és a
„start_button” érintkezők soros kapcsolásával (logikai ÉS kapcsolattal) lehet a motort
bekapcsolni, indítani.
A 002 hálózatban a motor kikapcsolási feltétele valósul meg, azaz a „stop_button” és a
véghelyzet (position_A) érintkezők párhuzamos kapcsolásával (logikai VAGY kapcsolattal)
lehet a motort kikapcsolni, leállítani.
A hálózat fejrészében található a hálózat működésére szolgáló rövid leírás, a hálózati
kommentár.
A fent ábrázolt példaprogramot a következőkben, létradiagramos formában maga is valósítsa
meg. Használja ehhez az „Insert” menüpontot, a standard szimbólumlista LD/FBD
szimbólumait vagy a gyors menüpontokat (jobb egérgombbal előhívható gyors
menüpontokat).
► Válassza ki a létradiagramos programnyelvet az <Options → Programming Language →
LD> menüpontokkal, vagy a standard szimbólumlista megfelelő ikonjaival.
► Kattintson az
„Initial LD Network (új hálózat indítása) ikonra,
hogy egy új hálózatot indítson el. A létrehozott új 001 számú hálózat tartalmaz egy
kontaktust és egy kimeneti szimbólumot. Mindkét szimbólum az ideiglenes „undef_opd”
megnevezést kapta.
► Pozícionálja a kurzort a két szimbólum közé, hogy egy további érintkezőt (ÉS kapcsolatot)
beszúrhasson.
► Kattintson a megnyitott eszköztár „AND” kapcsolófelületére, vagy szúrjon be egy AND
operátort az <Insert → Operands…> menüpontokkal, vagy a jobboldali egérgomb által
előhívott gyorsmenü segítségével.
A már meglévő kontaktussal sorba kapcsolva egy újabb érintkező épül be a
kontaktustervbe.
► Egérrel jelölje ki a kimeneti szimbólumot, hogy a hálózatot az „S” (set) paranccsal
lezárhassa.

54
Programbevitel kontaktusterv / funkcióblokk segítségével
► Kattintson a megnyitott eszköztár „S” kapcsolófelületére, vagy szúrjon be egy S operátort
az <Insert → Operands…> menüpontokkal, vagy a jobboldali egérgomb által előhívott
gyorsmenü segítségével.
A már meglévő kimenettel párhuzamosan kapcsolva egy Set-kimenet épül be a
kontaktustervbe. Jelölje ki a „régebbi” kimenetet és törölje azt.
A 001 hálózat grafikus szerkesztése elkészült.

► Kattintson az „Initial LD Network (új hálózat indítása) ikonra, hogy egy újabb hálózatot
indítson el. A létrehozott új 002 számú hálózat szintén tartalmaz egy kontaktust és egy
kimeneti szimbólumot az ideiglenes „undef_opd” megnevezésekkel
► Jelölje ki a kurzorral az első kontaktus szimbólumot, hogy egy további érintkezőt (VAGY
kapcsolatot) beszúrhasson.
► Kattintson a megnyitott eszköztár „OR” kapcsolófelületére, vagy szúrjon be egy OR
operátort az <Insert → Operands…> menüpontokkal, vagy a jobboldali egérgomb által
előhívott gyorsmenü segítségével.
A már meglévő kontaktussal sorba kapcsolva egy újabb érintkező épül be a
kontaktustervbe.
► Egérrel jelölje ki a kimeneti szimbólumot, hogy a hálózatot az „R” (reset) paranccsal
lezárhassa.
► Kattintson a megnyitott eszköztár „R” kapcsolófelületére, vagy szúrjon be egy R operátort
az <Insert → Operands…> menüpontokkal, vagy a jobboldali egérgomb által előhívott
gyorsmenü segítségével.
A már meglévő kimenettel párhuzamosan kapcsolva egy Reset-kimenet épül be a
kontaktustervbe. Jelölje ki a „régebbi” kimenetet és törölje azt.
Ezzel mindkét hálózat grafikus szerkesztése elkészült.

55
Második programozási feladat

A rendszerprogram által ideiglenesen kiadott „undef_opd” változóneveket a deklarációnak


megfelelően még el kell nevezni. A névadáshoz a alapvetően két lehetőség áll rendelkezésre:
1. Változónév átvétele a deklarált változók közül. (lásd a „Programbevitel utasításlistával”
című fejezetet.)
2. Változónév beadása a „Name element” nevű dialógusablak segítségével.
► Jelölje ki a 001számú hálózatban az első, baloldali érintkezőt az egérrel, és nyomja meg az
Enter billentyűt, vagy kétszer gyorsan kattintson az egér bal gombjával. Ennek hatására
megnyílik „Name element” nevű dialógus ablak:

56
Programbevitel kontaktusterv / funkcióblokk segítségével

► Írja be az „initial_pos” változónevet és erősítse meg az OK kapcsolófelület


működtetésével. Ennek hatására a változónév megjelenik az érintkező szimbólum felett.
Hasonló módon nevezze el a többi érintkezőt is mindkét hálózatban.
Végezetül az egyes hálózatokhoz tartozó megjegyzések, az úgynevezett kommentárok
beadása maradt hátra. Az egyes hálózatok kommentárjaihoz először ki kell jelölni a kérdéses
hálózatokat.
► A kijelöléshez vagy állítsa a kurzort a kérdéses hálózatba, vagy kattintson az aktuális
hálózat bal alsó részén található kis négyzetre. A kijelölést végezze el az első hálózatra.
► Kattinson az

Insert Network Comment (hálózati kommentár beszúrása)


ikonra, vagy használja az egér jobb gombjával kiváltható gyorsmenüt, hogy a hálózati
kommentár szerkesztőablakot előhívhassa.
Ennek hatására a következő ablak jelenik meg:

► Adja meg a motor bekapcsolása („Switches motor on”) kommentárt, majd az OK kapcsoló
felülettel erősítse meg a beadást. A beadott kommentár a hálózat fejrészében a hálózati
számozás alatt jelenik meg.
Hasonló módon adja meg a 002 hálózat számára is a szükséges kommentárt.

57
Második programozási feladat
A kontaktusterves formában való programozás ezzel befejeződött. A LD/FBD ablak a
következőket kell mutatnia:

Programbevitel funkcióblokkok segítségével


Előfeltételek: Ismeri az első mintapélda feladat kiírását.
Az „Example” projektet már létrehozta.
Egy új program típusú POU-t már létrehozott, a szükséges változókat már deklarálta.

A program megvalósítási javaslata logikai funkcióblokkos diagramban:


Motor bekapcsolása

58
Programbevitel kontaktusterv / funkcióblokk segítségével
Motor kikapcsolása

A program két hálózatra van felosztva.


Az első hálózatban a motor bekapcsolási feltétele valósul meg, azaz a két „initial_pos” és a
„start_button” változók logikai ÉS kapcsolatával lehet a motort bekapcsolni, indítani.
A második hálózatban a motor kikapcsolási feltétele valósul meg, azaz a „stop_button” és a
véghelyzet (position_A) változók logikai VAGY kapcsolatával lehet a motort kikapcsolni,
leállítani.
A hálózat fejrészében található a hálózatok működésére szolgáló rövid leírás, a hálózati
kommentár.
A fent ábrázolt példaprogramot a következőkben funkcióblokk diagramos formában maga is
valósítsa meg. Használja ehhez az „Insert” menüpontot, a standard szimbólumlista LD/FBD
szimbólumait vagy a gyors menüpontokat (jobb egérgombbal előhívható gyors
menüpontokat).
► Válassza ki a funkcióblokkos programnyelvet az <Options → Programming Language →
FBD> menüpontokkal, vagy a standard szimbólumlista megfelelő ikonjaival.
► Kattintson az

„Initial FBD network (új hálózat indítása) ikonra,


hogy egy új hálózatot elindítson. A létrehozott új 001 számú hálózat tartalmaz egy
bemenetet és egy kimenetet tartalmazó szimbólumot. A be-és kimenetek az ideiglenes
„undef_opd” megnevezést kapták.
► Pozícionálja a kurzort a bemeneti szimbólum sorára, hogy egy további funkcióblokkot (ÉS
kapcsolatot) beszúrhasson.
► Kattintson a megnyitott eszköztár „AND” kapcsolófelületére, vagy szúrjon be egy AND
operátort az <Insert → Operands…> menüpontokkal, vagy a jobboldali egérgomb által
előhívott gyorsmenü segítségével.
A megjelölt helyen megjelenik egy ÉS logikai funkcióblokk két csatlakozással, mint
bemenetekkel.
► Egérrel jelölje ki a kimeneti szimbólumot, hogy a hálózatot az „S” (set) paranccsal
kiegészíthesse.
► Kattintson a megnyitott eszköztár „S” kapcsolófelületére, vagy szúrjon be egy S operátort
az <Insert → Operands…> menüpontokkal, vagy a jobboldali egérgomb által előhívott
gyorsmenü segítségével.
A már meglévő kimenettel párhuzamosan kapcsolva egy Set-kimenet épül be a
kontaktustervbe. Jelölje ki a „régebbi” kimenetet és törölje azt a DEL billentyűvel.
A 001 hálózat grafikus szerkesztése elkészült.

59
Második programozási feladat

► Kattintson az „Initial FBD Network (új hálózat indítása) ikonra, hogy egy újabb hálózatot
indítson el. A létrehozott új 002 számú hálózat szintén tartalmaz egy bemenetet és egy
kimenetet tartalmazó szimbólumot, az ideiglenes „undef_opd” megnevezésekkel
► Jelölje ki a kurzorral a bementi szimbólumot, hogy egy további logikai funkcióblokkot
(VAGY kapcsolatot) beszúrhasson.
► Kattintson a megnyitott eszköztár „OR” kapcsolófelületére, vagy szúrjon be egy OR
operátort az <Insert → Operands…> menüpontokkal, vagy a jobboldali egérgomb által
előhívott gyorsmenü segítségével.
A megjelölt helyen megjelenik egy VAGY logikai funkcióblokk két csatlakozással, mint
bemenetekkel.
► Egérrel jelölje ki a kimeneti szimbólumot, hogy a hálózatot az „R” (reset) paranccsal
kiegészíthesse.
► Kattintson a megnyitott eszköztár „R” kapcsolófelületére, vagy szúrjon be egy R operátort
az <Insert → Operands…> menüpontokkal, vagy a jobboldali egérgomb által előhívott
gyorsmenü segítségével.
A már meglévő kimenettel párhuzamosan kapcsolva egy Reset-kimenet épül be a
funkcióblokk diagramba. Jelölje ki a „régebbi” kimenetet és törölje azt.
Ezzel mindkét hálózat grafikus szerkesztése elkészült.

60
Programbevitel kontaktusterv / funkcióblokk segítségével

A rendszerprogram által ideiglenesen kiadott „undef_opd” változóneveket a deklarációnak


megfelelően még el kell nevezni. A névadáshoz alapvetően két lehetőség áll rendelkezésre:
1. Változónév átvétele a deklarált változók közül. (lásd a „Programbevitel utasításlistával”
című fejezetet.)
2. Változónév beadása a „Name element” nevű dialógusablak segítségével.
► Jelölje ki a 001számú hálózatban az első, baloldali érintkezőt az egérrel, és nyomja meg az
„Enter” billentyűt, vagy kétszer gyorsan kattintson az egér bal gombjával. Ennek hatására
megnyílik „Name element” nevű dialógus ablak:

61
Második programozási feladat

► Írja be az „initial_pos” változónevet és erősítse meg az OK kapcsolófelület


működtetésével. Ennek hatására a változónév megjelenik a kijelölt csatlakozási szimbólum
felett. Hasonló módon nevezze el a többi csatlakozást is mindkét hálózatban.
Végezetül az egyes hálózatokhoz tartozó megjegyzések, az úgynevezett kommentárok
beadása maradt hátra. Az egyes hálózatok kommentárjaihoz először ki kell jelölni a kérdéses
hálózatokat.
► A kijelöléshez vagy állítsa a kurzort a kérdéses hálózatba, vagy kattintson az aktuális
hálózat bal alsó részén található kis négyzetre. A kijelölést végezze el az első hálózatra.
► Kattinson az

Insert Network Comment (hálózati kommentár beszúrása)


ikonra, vagy használja az egér jobb gombjával kiváltható gyorsmenüt, hogy a hálózati
kommentár szerkesztőablakot előhívhassa.
Ennek hatására a következő ablak jelenik meg:

► Adja meg a motor bekapcsolása („Switches motor on”) kommentárt, majd az OK kapcsoló
felülettel erősítse meg a beadást. A beadott kommentár a hálózat fejrészében a hálózati
számozás alatt jelenik meg.
Hasonló módon adja meg a 002 hálózat számára is a szükséges kommentárt.

62
Programbevitel kontaktusterv / funkcióblokk segítségével
A funkcióblokkos formában való programozás ezzel befejeződött. A LD/FBD ablak a
következőket kell mutatnia:

Programellenőrzés és üzembe helyezés kontaktusterv /funkcióblokk esetén


A PLC-ben végrehajtandó programot az online szerkesztő segítségével utasításlistás,
létradiagramos vagy logikai funkcióblokkos formában lehet megjeleníteni.
Ha a „Display/Change POU” kapcsolófelületre kattint, akkor a megjelenítendő
program először utasításlistás formában jelenik meg, függetlenül attól, hogy az
milyen programnyelvvel állították elő.
Ha a programot LD/FBD szerkesztővel készítette el, akkor a kommentárok az utasításlistás
megjelenítésben is a megfelelő programsori szekvencia előtt és nem programsori
kommentárként jelenik meg:

63
Második programozási feladat
LD megjelenítés
Az egyes programnyelvek között, akár aktív, akár kikapcsolt állapot-kijelzés mellett szabadon
átkapcsolhat.
► Válassza ki az <Options → Programming Language> menüpontokat.
► Válassza ki az LD programnyelvet, hogy a program létradiagramban legyen látható:

► Válassza ki az „Online” menüsorból a „Modify” parancsot, ha a programot módosítani


kívánja. Ez a parancs a

Modify ikonnal

is előhívható. Végezze el a módosításokat az LD/FBD offline szerkesztéssel teljesen


azonosan. A pontos leírás az AWB27-1305számú gépkönyvben található, de egyébként az
egész művelet az eddigieknek megfelelően magától érthető.
► Ha befejezte a POU módosítását, akkor az „Online” menüpont „Activate” parancsával,
vagy az
Activate ikonnal
véglegesítse a módosított programnak megfelelően a forrásnyelvi, a gépi kódú, valamint a
PLC-ben futó programot.

FBD megjelenítés
A programnyelvek között, akár aktív, akár kikapcsolt állapot-kijelzés mellett szabadon
átkapcsolhat.

64
Programbevitel kontaktusterv / funkcióblokk segítségével
► Válassza ki az <Options → Programming Language> menüpontokat.
► Válassza ki az FBD programnyelvet, hogy a program logikai funkcióblokkos formában
legyen látható:

► Válassz ki az „Online” menüsorból a „Modify” parancsot, ha a programot módosítani


kívánja. Ez a parancs a

Modify ikonnal

is előhívható. Végezze el a módosításokat az LD/FBD offline szerkesztéssel teljesen


azonosan. A pontos leírás az AWB27-1305számú gépkönyvben található, de egyébként az
egész művelet az eddigieknek megfelelően magától érthető.
► Ha befejezte a POU módosítását, akkor az „Online” menüpont „Activate” parancsával,
vagy az
Activate ikonnal
véglegesítse a módosított programnak megfelelően a forrásnyelvi, a gépi kódú, valamint a
PLC-ben futó programot.

65
Második programozási feladat

13. Második programozási feladat

Feladat valamilyen digitális kimeneti egység nyolc kimenetes LED kijelzőjén futófény hatás
programozása, azaz az egyes LED-k egymás után rövid időre felvillannak. A váltásnak 2Hz-
es ütemben kell megvalósulni.
A futófény automatikusan indul, ha a vezérlés feszültséget kap, és addig fut, míg a vezérlést
kívülről le nem állítják. Kezelőszerveket nem kell figyelembe venni, azaz a bemeneteket nem
kell lekérdezni.
Az üzembe helyezést követően online módon a programfutást módosítani kell, miszerint a
futási sebességet le kell csökkenteni 1Hz-re.

A feladat megvalósítási sorrendje


Először olvassa el ezt a fejezetet, mely ismerteti, hogyan történjen az feladat utasításlistás
programozása. A fejezet tartalmazza az összes a programozási információt a felépítésre és a
felhasznált utasításokra vonatkozóan.
A két lényeges részfeladatot kell a programozás során megoldani. Az egyik a világítási időt
határozza meg, a másik a kijelzést vezérli.
A világítási idő meghatározásához egy az időzítők családjából kiválasztott tetszőleges gyártó-
specifikus funkcióblokkot érdemes felhasználni. A feladat megoldásához a „TimePulse”
(impulzusformáló) funkcióblokkot választjuk, mert az időzítők közül ezzel lehet a feladatot a
legegyszerűbben megoldani.
A kijelzés vezérléshez egy „semleges” funkcióblokkot írunk, hogy a blokk bármilyen hasonló
feladathoz felhasználható legyen. Ezért a kimeneti bájtot, valamint a konkrét időzítést
kívülről, a meghívó POU-ból, kell paraméterként a funkcióblokknak átadni. Ez a semleges
funkcióblokk aztán ugyanabban a programban többször is meghívható, azaz több kimeneti
bájtot különböző időzítésű futófénnyel vezérelhetünk.
Létrehozandó egy olyan funkcióblokk, mely
a kijelzést vezérli, és
a TP gyártó-specifikus funkcióblokkot az időzítés céljából meghívja.
A funkcióblokk legyen „LIGHT” nevezetű.
A tulajdonképpeni program, melynek neve legyen EXP_PS4, a „LIGHT” funkcióblokk
hívását tartalmazza, továbbá meghatározza a vezérelendő kimeneti bájt címét, valamint a
világítási idő értékét.
A feladat megoldásához két POU-t kell megszerkeszteni:
Egy „FUNCTION_BLOCK” típusú, „LIGHT” nevezetű funkcióblokkot, valamint a egy
második „PROGRAM” típusú, „EXP_PS4” nevezetű POU-t.

67
Második programozási feladat

Program EXP_PS4
FB_LIGHT hívása
konkrét adatokkal
-kimeneti bájt
-időzítés

FB_LIGHT
kijelzés
vezérlése
FB_TP hívása

FB_TP
világítási
időzítés

Megoldási javaslat a „LIGHT” funkcióblokk fejlesztésére


A kijelzés vezérlése
A futófény hatás egy nyolcbites mintával egyszerűen megvalósítható, ha a bitmintában az
egyetlen logikai „1” szintű bitet egyenlő időközönként 1-1 hellyel tovább léptetjük. A
bitmintát egy változóban tároljuk le. A Sucosoft megengedi, hogy egy változót egyidejűleg
mind bemeneti, mind kimeneti változóként beolvassuk, feldolgozzuk és a feldolgozott jelet
módosítva kiadjuk, ha a felhasznált változót be-/kimeneti változóként deklaráljuk.
A be-/kimeneti változót az adott példában a VAR_IN_OUT kulcsszóval, „byte” adattípussal,
„light_stripÿ” névvel definiáljuk. (A deklarációs blokkot, mint minden esetben az END_VAR
kulcsszóval kell lezárni.)
Mivel a konkrét címet csak a fölérendelt POU első hívásakor kell megadni, ezért ezzel
jelenleg nem kell foglalkozni, és a deklarációs rész a következőképpen alakul:

A bitminta eltolásához mind a tolás (shift), mind a forgatás (rotate) függvények


felhasználhatók, akár jobb, akár bal irányban. Tolás függvény esetén azonban legkésőbb
nyolc függvényhívás után egy újabb „1” betöltése válna szükségessé, ezért egyszerűbb a
(jobbra) forgatási függvény alkalmazása. A választott utasítássorozat a következő:

68
Második programozási feladat

A világítási időzítés meghatározása


A világítási idő meghatározásához a TP gyártó-specifikus funkcióblokkot (impulzusformáló)
használjuk fel.
A TP funkcióblokk

ahol
IN indítási feltétel
PT időzítési érték
Q az időtag bináris kimenete (állapota)
ET aktuális idő kijelzése

Az idődiagram különböző bemeneti állapotok esetén

Az időtag az IN bemenetre adott digitális jel felfutó élére indul, és az időtag kimenetén (Q)
függetlenül a bemenet értékétől a PT-n megadott ideig logikai „1” szint jelenik meg, majd
visszavált nullába.

A funkcióblokk felhasználása
Egy létező funkcióblokk minden egyes felhasználásakor a meghívó POU deklarációs részében
egy instancálást, azaz egy kópiát kell definiálni. Ehhez a funkcióblokkot egy szabadon
megválasztott instanc-névvel, lokális változóként kell deklarálni.
A TP funkcióblokkot a „LIGHT” funkcióblokkban kell meghívni, ezért a „LIGHT” POU
deklarációs részében kell azt deklarálni. Ebben az esetben a TP funkcióblokknak a Pulse
lokális változónevet adjuk. A lokális változóknak a kulcsszava a VAR, tehát:

69
Második programozási feladat

Egy funkcióblokk hívása előtt a bemeneti változóknak át kell adni azokat az értékeket,
melyeket a futás során fel kell dolgozni, illetve az eredményként szolgáló kimeneti változók
értékeit szintén hozzá kell rendelni valamilyen változókhoz. Ezek a változónevek szabadon
megválaszthatók.
A példánkban a „LIGHT” funkcióblokkban a TP funkcióblokk felhasználásához a következő
változókat határoztuk meg:
Start az az indítási feltétel, melyet át kell adni az IN bemeneti változónak
Pulse_duration azr impulzusidőt meghatározó operandus
Time_running az időzítő kimeneti státusza, melyet a funkcióblokk Q kimenete biztosít
Curent_time az aktuálisan eltelt idő, melyet a funkcióblokk ET kimenete mutat

A Pulse_duration változót, mint bemeneti változót deklaráljuk, és amellyel a „LIGHT”


funkcióblokk meghívásakor a TP funkcióblokknak tetszőleges időalapot adhatunk. A további
változókat lokálisnak deklarálhatjuk, mivel csak a „LIGHT” funkcióblokkban kerülnek
felhasználásra, és a meghívó EXP_PS4 POU-ban nincs jelentőségük. A bementi változókat a
VAR_INPUT, a lokális változókat a VAR kulcsszavakkal jelöljük, így a következő
deklarációs rész adódik:

A funkcióblokkot a CAL Pulse utasítással lehet meghívni, ahol a „Pulse” a hívandó


funkcióblokk neve.
A paraméterátadásra három lehetőség kínálkozik, melyekből itt most csak kettőt mutatunk be
(A harmadik végső soron ebből a kettőből levezethető):
Az első eljárás esetén a paraméterátadás a funkcióblokk hívásával egyidejűleg történik. A
paramétereket kerek zárójelben kell megadni egymástól vesszővel elválasztva, a bemeneti és
kimeneti paraméterek közé pedig a "|" elválasztó jel kerül.

70
Második programozási feladat
A második eljárás esetén a funkcióblokk hívása előtt az egyes bemeneti paramétereket egyedi
LD utasításokkal kell betölteni, és az ST paranccsal a funkcióblokk bemeneti operandusának
átadni. A funkcióblokk hívása után lehet az egyes kimeneti operandusokat lekérdezni, ahol az
egyes kimeneti operandusokra vonatkozó írásmód az alábbiak szerint hangzik:
Instancnév.operandus
A funkcióblokk hívás és az egyes paraméterátadások a fenti példában a második eljárás
szerint a következő formájú:

A harmadik eljárás lényegében az első és a második ötvözete. A funkcióblokk


hívásakor csak a bemeneti paraméterek átadása történik meg, majd a hívás után az
egyes kimeneti operandusok lekérdezése következik az LD és ST utasításokkal.

Az eljárások közül melyiket használja, az gyakorlatilag ízlés kérdése.


A második változat esetében az az előny, hogy ez az egyik IEC1131-3 szerinti
szabványos funkcióblokk hívás, és ezért más IEC-kompatíbilis rendszerek is egy-
az egyben használhatják.
A kompakt első változat, mellyel azonnal a kimeneti paraméterezés is
megvalósítható, Moeller-specifikus.
A bemutatott példában a TP funkcióblokkot a második eljárással hívjuk meg.

A világítási időzítés programrészlet kompletté alakítása


A negált Q kimenetet visszavezetve a IN bemenetre egy ütemadót kapunk:

A Q kimenet addig ad "1" kimenetet, amíg az időzítés fut. Ezután egy ciklusidőre a kimenet
"0"-t vesz fel, mely az időtag újraindítását eredményezi. A periódusidő közelítőleg megfelel a
PT értékének, hiszen az egy ciklusidő okozta hiba ebben az esetben elhanyagolható.
Így a világítási időzítés programozási utasítássorai a következők:

71
Második programozási feladat

A program a következőképpen egyszerűsíthető;


Az időtag közvetlenül a Q kimenet negált állapotával is indítható, és ekkor nincs szükség
a"Start” és a "Time_running" változókra. Az aktuális időre sincs szükség a jelenlegi példában,
azonban a "Current_time" változót érdemes meghagyni, mert így az időérték online
ellenőrzéskor egyszerűen kijelezhető.
A program így a következő formát veszi fel:

A "LIGHT" funkcióblokk strukturája


A PT időzítés lefutása után a bitmintát egy hellyel el kell tolni. Erre a célra az ugrási címke
kínálkozik, amellyel egyszerűen megvalósítható, hogy a bitforgatás ne történjen meg, amíg az
időzítés fut. A "light_strip" változóban elhelyezett bitmintát csak akkor kell forgatni, ha az idő
letelt, azaz a Q kimenet értéke éppen 0. A címkére történő feltételes ugrás a JMPC "címke"
paranccsal programozható. Az ugrás akkor történik meg, ha az akkumulátor tartalma "1", azaz
ha az aktuális eredmény = 1. A címke neve szabadon megválasztható, jelen esetben legyen
"not_shift".

(* címke *)

72
Második programozási feladat

A programot tovább optimalizálhatjuk.


Az LDN Pulse.Q utasítás, mely az ütemadó indítási feltételét adja, egyidejűleg az ugrás
feltételeként is felhasználható, ha a JMPC helyett a JMPCN (azaz ugrás, ha az aktuális
eredmény = 0), utasítást alkalmazzuk.

(* időzítési alapérték *)

(* futó fény *)

(* aktuális idő *)
(* TP funkcióblokk instancálása *)

(* aktuális eredmény = 1, ha az idő lefutott *)


(* időzítés indítása *)
(* bitminta forgatás átugrása, ha t < alapérték (PT)*)

(* bitminta forgatás *)

(* időzítési alapérték átadása *)

(* funkcióblokk hívása *)

(* aktuális idő kijelzés online ellenőrzéshez *)

Az a programrészlet, amelyben a "light_strip" változó forgatásra kerül, csak akkor jut

73
Második programozási feladat
feldolgozásra, ha az időzítés éppen lefutott. Ezután az időzítés azonnal újra startol, és a
forgatási rész mindaddig nincs feldolgozva, amíg az újabb időzítés fut.

Javaslat az „EXP_PS4” program fejlesztésére


A "LIGHT" funkcióblokkot az "EXP_PS4" fogja hívni, és a híváskor két paramétert kell
átadnia:
- A futófény sebességét meghatározó időértéket, és
- a fizikai címet, amelyen a futófény pontjait ki kell jelezni.
Először megint a funkcióblokkot kell deklarálni. Az "EXP_PS4" POU deklarációs részében a
"LIGHT" felhasználó által készített funkcióblokkot "Light_sequence" névvel intancáljuk.

A futófény sebességét egy TIME adattípusú változó adja meg, melyet 500ms kezdeti értékkel
veszünk figyelembe, mert ez felel meg a 2Hz-es elvárt ütemidőnek. A változót lokális
változóként deklaráljuk, mivel csak ebben a POU-ban használjuk fel. A változó neve legyen a
Running_speed:

A kijelzés vezérlésére a Display nevű változót használjuk. Ez a változó adja meg majd a
kimeneti címet. Jelen esetben legyen a 0-ás kimeneti bájt, melynek kezdeti értéke hideg start
esetén legyen = 1. Ezt a változót szintén lokálisnak deklaráljuk.

Hasonló lenne az eredmény, ha az inicializálás bináris alapon (2#0000_0001) történt volna.


(Az aláhúzás az áttekinthetőség érdekében alkalmazott elválasztás miatt van, hiszen a szóköz
nem megengedett!)

Az"EXP_PS4" POU utasításrészében csupán csak a "LIGHT" funkcióblokkot kell az


instancált név alatt meghívni. Ebben az esetben az első eljárást használjuk a
paraméterátadásra.

74
Második programozási feladat
Az "EXP_PS4" program végezetül a következő formával rendelkezik:

)
END_PROGRAM
Az alábbi grafika összefoglalva a programbeadástól a kész program ellenőrzéséig mutatja be
az egyes lépéseket.
FB_LIGHT funkcióblokk bevitele
változó deklaráció
programbevitel
EXP_PS4 program bevitele
változó deklaráció
programbevitel
topológia konfigurálás
programkód generálás
teszt és üzembe helyezés
programot a PLC-be letölteni
programot elindítani
programot online ellenőrizni és módosítani

A topológia konfigurálást, a programkód generálást, a teszt és üzembe helyezést már az első


mintapéldánál megismertük. Ebben a példában a teszt és üzembe helyezés segédeszközt
fogjuk egy kissé elmélyíteni.
A következő fejezetben először a "LIGHT" funkcióblokkot, majd a "EXP_PS4" programot
fogjuk létrehozni.

75
Második programozási feladat

A második programozási feladat bevitele


Ebben a fejezetben bemutatjuk Önnek, hogyan kell a két POU-t a szerkesztő segítségével
bevinni. (Az egyes programrészek felépítését az előző fejezetben már ismertettük.
Először a "LIGHT" funkcióblokkot, majd az "EXP_PS4" programot fogjuk lekódolni. Bár a
sorrend fordított elvileg is lehetne, célszerű először mindig az alacsonyabb hierarchiájú
szinten levő programegységeket elkészíteni.
Mindkét programegység részére először a deklarációs részt, majd az utasításrészt készítjük el.
A navigátorral állítson elő egy új "learn_PS4" nevezetű projektet a "Projects" könyvtárban.
Ehhez használja a következő
► <Projects → New…> menüparancsokat,
vagy a megfelelő ikont a navigátor standard szimbólumlistájából.

Create new project


Erre megnyílik a már ismert dialógusablak "Create new project" felirattal:
► Válassz ki először a C: lemezmeghajtót, majd a Projects" könyvtárat.
► A "New project folder" mezőbe írja be a könyvtárnevet, a "learn_PS4"-t, mint ú projekt
nevet.
► Mindezt erősítse meg az OK nyomógombbal.

A "LIGHT" funkcióblokk bevitele


A funkcióblokk létrehozásához használja a navigátor menüjéből a
► <Options → POU Editor> parancsokat,
vagy az eszköztár megfelelő parancsát, azaz a következő ikont:

POU Editor

Ezek hatására a következő ablak nyílik le:


► A létrehozandó programtípusnak megfelelően válassza ki az "FB" feliratú (funkcióblokk
létrehozása) programszervezési egységet, vagy
► válassza a <File → New POU> menüpontokat, és végezetül jelölje ki a funkcióblokkot,
mint programszervezési egységet.
Ennek hatására megnyílik a deklarációs és az utasításrészt tartalmazó kétablakos
szerkesztőablak, melynek elrendezése megfelel a POU-szerkesztő alapbeállításának.

76
Második programozási feladat
Változók deklarálása
FB_LIGHT funkcióblokk bevitele
változó deklaráció
programbevitel
EXP_PS4 program bevitele
változó deklaráció
programbevitel

A változókat szintaktikusan vezérelt módban deklaráljuk, mert ebben a formában nem kell a
kulcsszavakra és a helyes írásmódra gondot fordítani.
A programjavaslatban a következő változókat határoztuk meg:

(* időzítési alapérték *)

(* futófény *)

(* aktuális idő *)

(* TP funkcióblokk instancálása *)

Kapcsoljon át, ha szükséges, a <Options → Variable Edior → Syntax mode> menüpontokkal,


vagy a
Syntax mode

megfelelő kapcsolófelülettel a szintaktikusan vezérelt módba.


► Kezdje a "Current_Time" változóval. A funkcióblokk szerkesztő változó deklaráló ablakát
a lokális változótípusra kell átállítani a képernyő alsó szélén levő lovasok közül a "local"
változótípus-lovasra kattintással.
A kiválasztott változótípust a fehér háttérszínű lovas jelképezi.
Adja be a "Current_Time" változónevet. Az adattípus mezőre kattintva, nyissa meg a
listamezőt, melyből válassza TIME adattípust. Kommentárként írja be az "aktuális idő"
szöveget. Hibátlan beírás esetén az Enter hatására a beírt változó után a következő sorba
kerül a kurzor.
A gyártó-specifikus TP funkcióblokkot szintén lokális változóként kell deklarálni.

77
Második programozási feladat
► Írja be a "Pulse" változónevet.
► A funkcióblokk adattípusának megadása a következőképpen történik:

Válassza ki az <Insert → Data Type…> menüpontokat, vagy az egér jobb gombjával


előhívható gyorsmenüből válassza ki a Data Type… menüpontot.
► Data Type… menüpontra kattintva, megjelenik egy kiválasztó ablak, mely csoportosítva
tartalmazza a választható funkcióblokkokat.
(Mivel az ablakban alapbeállításként a funkcióblokkok és azon belül a gyártó-specifikus
FB-k (Manufacturer) vannak beállítva, azonnal kiválaszthatók a megfelelő gyártó-
specifikus funkcióblokk csoportok.
► Válasszon a csoportok közül, melyekben, mint alkönyvtárakban vannak az egyes FB-
típusok összerendezve.

78
Második programozási feladat
► Válassza ki az időzítő (Timer) funkcióblokk alkönyvtárat.
► Jelölje ki az idősítők listájából a TP funkcióblokkot, majd kattintson az "Accept"
kapcsolófelületre. a lista bezáródik, és a munkasor típus mezejében megjelenik a TP jelölés.
Egy másik, de csak, mint a jelenlegi egyszerű esetekben ajánlott lehetőség, a
mezőbe funkcióblokk kézzel való begépelése.
► Adja meg a kommentár értékét.
► Kattinson a változókat kijelölő lovasok közül az "In_Out"-ra, hogy a funkcióblokk be-
/kimeneti változóját, a "light_strip"-t deklarálja. (Korábban deklarált lokális változó eltűnik
a képernyőről.)
► Kattinson a változókat kijelölő lovasok közül az "Input"-ra, hogy a funkcióblokk be-
meneti változóját, a "pulse_duration"-t deklarálja.
Ezzel elkészült a funkcióblokk változóinak deklarálása. Az összes deklarált változót egyszerre
is meg lehet tekinteni, ha a szerkesztőt átkapcsolja a szabad módú formátumba.
► A szabad módú deklarálás bekapcsolásához. vagy a < Options → Variable Editor → Free
mode> menüpontokat, vagy a megfelelő ikont kell leütnie.

Free mode

Ekkor együtt láthatja az összes, különböző típusú változót a megfelelő szintaktikával és


sorrendben valamint a hozzátartozó kulcsszavakkal.

79
Második programozási feladat
Programbevitel utasításlistával
FB_LIGHT funkcióblokk bevitele
változó deklaráció
programbevitel
EXP_PS4 program bevitele
változó deklaráció
programbevitel

Váltson át a deklarációs részből az utasításrészbe vagy a bal egérgomb kattintásával,


miközben a jobb oldali ablakba viszi az egérmutatót, vagy a CTRL+TAB billentyűk együttes
lenyomásával. Az utasításrészlet aktivizálását a szöveges részek szintaktikus kiszínezése
mutatja.
A programot utasításlistában írja meg, ezért ha szükséges, <Options → Programming
Language → IL> menüpontokkal, vagy a

IL ikonnal

válthatja át a programozási nyelvet.


Írja be a következő ábra szerinti programot. Figyeljen az alábbi szabályokra:
Kis és nagybetű használat tetszőleges.
A megjegyzéseket az ábrán is látható zárójel és * jelek közé írja be.
Az egyes operátorokat, változókat, kommentárokat, a jobb áttekinthetőség érdekében,
legalább egy tabulátorral válassza el egymástól.
Az összetartozó utasításrészeket a többi utasítássoroktól egy üres sorral válassza el.

80
Második programozási feladat
► Tárolja le az elkészült programot a megfelelő <File → Save as…> menüpontokkal, vagy a

Save he current POU


nevezetű ikonnal.
A megnyíló dialógusablakban azonnal a „learn_ps4” nevezetű aktuális projekt „source”
alkönyvtára jelenik meg.
► Tárolja le a funkcióblokkot „LIGHT” név alatt.
► Végezze el a szintaktikai ellenőrzést vagy a <File → Syntax check> menüpontokkal, vagy
Syntax Check
a megfelelő ikonra kattintással.
Ha programbevitel hibamentesen a javasolt eljárás szerint történt, akkor az ellenőrzés
sikeresen lezárul. Ha a szintaktikai ellenőrzés hibát jelez, akkor vizsgálja át a bevitelt, és
javítsa ki a talált hibákat, majd újólag végeztesse el az ellenőrzést.
► Válassza a <File → Print> menüpontokat, vagy a megfelelő ikont a standard menülistából

Print
Állítsa be a képernyőt, mint kimenetet, és így megszemlélheti a teljes POU-t (deklarációs és
utasításrészt együttese), vagy pedig a POU nyomtatása fejezet szerint (29. oldalon) akár az
egészet is kinyomtathatja.
A funkcióblokkok elkészítéséhez bonyolult esetben célszerűbb az alábbi eljárást
alkalmazni.
1. Első lépésként program típusként a teljes blokkfunkciót leprogramozni, majd
szintaktikusan ellenőrizni, és lefordítani illetve a PLC-ben letöltés után online
módon ellenőrizni.
2. A letesztelt és lementett programot a POU-szerkesztő <File → Convert POU
Type> menüpontokkal és a „Function Block” típusváltással funkcióblokká
átalakítani.
3. Az átalakított és más néven lementett funkcióblokk deklarációs részét
átalakítani, hiszen FB-k esetén nem lehet a változókhoz abszolút címzést
hozzárendelni, továbbá alapvetően meg kell egymástól különböztetni a
bemeneti, kimeneti, be-/kimeneti és lokális változókat.
A deklarációt célszerű a szabad módú (Free mode) deklarációs formában
átalakítani, mert ebben az esetben egyszerre látható az összes változótípus.
4. A deklaráció módosítását követően végre kell hajtani a szintaktikus
ellenőrzést, és hibajelzés esetén az adott helyeken a hibákat kijavítani.

81
Második programozási feladat
Az EXP_PS4 program bevitele
Továbbra is maradjon a POU-szerkesztőben aktivált szintaktikai módban és utasításlistás
programnyelv mellett.
► Nyissa meg a <File → New POU> menüpontokkal, vagy a standard szimbólumlista „P”
ikonjával egy új program típusú POU-t.

Változók deklarálása
FB_LIGHT funkcióblokk bevitele
változó deklaráció
programbevitel
EXP_PS4 program bevitele
változó deklaráció
programbevitel

A program javaslatban a következő változókat határoztuk meg:

A program típusú POU-k esetén alapbeállításban a lokális változók vannak kiválasztva.


Deklarálja először a „LIGHT” funkcióblokkot, melyet ez a POU fog meghívni.
► Adja meg először a „light_sequence” instanc nevet.
Mivel a „LIGHT” funkcióblokk letárolásakor, a rendszerszoftver a blokkot automatikusan a
felhasználói funkció blokkok közé bejegyzi, a gyártó-specifikus funkcióblokkokhoz
hasonlóan lehet a felhasználói FB-ket is a rendelkezésre álló listából kiválasztani:
► Kezdje az adattípus kiválasztásával. Pozícionálja kurzort a Type mezőre, és az egérgomb
jobb gombjának működtetésével előhívott gyorsmenüből válassza ki a Data Types…
menüpontot, vagy az <Insert→ Data Types…> menüpontokat jelölje ki.
► Az adattípus kiválasztásához megjelenő dialógusablakban válassza ki a felhasználói
funkcióblokkok (User) lovasát.
► Jelölje ki a korábban elkészített „LIGHT” nevű funkcióblokkot, majd kattintson az Accept
kapcsolófelületre. A lista bezáródik és a munkasorban a „Type” mezőben megjelenik a
„LIGHT” funkcióblokk adattípus.
► Deklarálja a „Running_speed” változót lokálisnak, és kezdeti értékként az „Initial Value”
mezőbe adjon meg T#500ms értéket, mely a 2Hz-nek felel meg.
► Deklarálja a „Display változót szintén lokálisnak, a név- és típusmegadás mellett kezdeti
értékként adjon 1-t, illetve adja meg a változó fizikai helyeként (címként) QB0.0.0.0-t.

82
Második programozási feladat
Ezzel befejeződött a POU deklarálása.
► Állítsa be a szabad módú változószerkesztőt (<Options→ Variable Editor → Free mode>),
és láthatja a helyes szintaktikai ábrázolásban a változókat.

Programbevitel utasításlistában

EXP_PS4 program bevitele


változó deklaráció
programbevitel

► Váltson át a deklarációs részből az utasításrészre, és továbbra is az utasításlistás


programnyelvet használja.
A POU utasításrészében a „LIGHT” funkcióblokkot az instanc névvel kell felhívni. A hívás
és paraméterátadás kézzel való begépeléssel is történhet.
A Sucosoft S40 azonban lehetőséget ad egy előre definiált paraméterátadással egybekötött
funkcióblokk hívásra is. Ehhez az előfeltétel, hogy a funkcióblokk az aktuális projektben
legyen, melynek korábban a szintaktikus ellenőrzése hibamentesen megtörtént. Mindkét
feltétel jelen esetben korábban már teljesítettük.
A gyártó-specifikus funkcióblokkok projekt függetlenek, és minden különösebb
intézkedés nélkül minden projektben felhasználhatók.
► Kezdje a deklarált funkcióblokk beszúrását a jobb egérgombra kattintással, melynek
hatására a megjelenik a az alábbi gyorsmenü. (Másik lehetőség az <Insert → Insert
variable> menüpontok alkalmazása)

83
Második programozási feladat

► A deklarált változónak megfelelően válassza a „Local”-t, melynek hatására a megjelenik a


az „Insert variable: Local „ kiválasztó ablak jelenik meg.
► Válassza ki felhasználói funkcióblokkot.

► A listából jelölje ki a [FB]-vel jelölt, „light_sequence” instanc nevű fájlt, majd kattintson
az „Accept” kapcsolófelületre. A lista bezáródik, majd az utasításlistában megjelenik a
funkcióblokk.
► Egészítse ki a megfelelő paraméterezéssel a már meghívott funkcióblokkot, azaz a be-
/kimenetekhez rendelje hozzá a megfelelő változókat („Running_speed” és „Display”),
amint az a következő ábrán látható.

84
Második programozási feladat

Ezzel elkészült a program utasításrésze is:

)
Amennyiben a funkcióblokk hívásának beírása kézzel történik, figyeljen arra,
hogy „In_Out” típusú változókat csak a zárójelen belül szabad átadni, továbbá
üresen nem lehet hagyni, azaz mindig értéket kell kapni.

► Tárolja le az elkészített programot „EXP_PS4” név alatt.


► Végezze el a szintaktikus ellenőrzést vagy a megfelelő ikonra kattintással, vagy a <File →
Syntax check> menüpontokkal. Ha programot a javaslatnak megfelelően vitte be, akkor az
ellenőrzés hibamentesen lefutott. amennyiben hibajelzést talál, akkor ellenőrizze a beadást,
és korrigálja a talált hibákat, majd végezze el még egyszer a szintaktikus ellenőrzést.
► Válassza a<File → Print…> utasításokat.
Állítsa be kimeneti eszközként a képernyőt, és teljes programot (a deklarációs és az
utasításrészt egyben megtekintheti és igény esetén természetesen a kimeneti eszköz
átállításával a POU-t ki is nyomtathatja a POU nyomtatása fejezet szerint (29. oldalon).

Program online vizsgálata és változtatása


Mielőtt a programot online módon leellenőrizné, a leellenőrzött programot a futásképes kóddá
kell átalakítani, majd be kell tölteni a PLC-be. Ehhez el kell készíteni a topológiát, valamint a
kódgenerálást. Mindkettőt az első mintapélda során részletesen ismertettük a 7. és 8.
fejezetekben, mely a jelen esetben is teljesen hasonló.
Ezért a következőkben csak a programellenőrzésre és módosításra fogunk kitérni.

85
Második programozási feladat

teszt és üzembe helyezés


programot a PLC-be letölteni
programot elindítani
programot online ellenőrizni és módosítani

A teljes program egyes részei (POU-k) a programvégrehajtás közben megjeleníthetők, és


szükség esetén módosíthatók. Ennek a fejezetnek a feladata a futófény irányának és
sebességének változtatása. Ehhez az „EXP_PS4” programot meg kell nyitni, és a
„light_sequence” részt kell megjeleníteni.
► Kattintson a kötési lista ablakban (Connection list) a „POU editor online” kapcsoló-
felületre, melynek hatására megnyílik a „Programm” ablak.
A baloldali ablakban először csak a legfelsőbb szint, a „RESOURCE” jelenik meg. A
baloldali ablakban többszöri dupla kattintással a teljes program további alárendelt szintjei is
megjeleníthetők. Ha a baloldali ablakban csak egy programot jelölünk ki, akkor a jobb
oldalon csak az ezalatti szinten levő programkomponenseket jelenítjük meg.
► Kattintson duplán a „Resource” felületre. A bal ablakban megjelenik az „EXP_PS4”
nevezetű program.
► Újabb dupla kattintással az EXP_PS4[EXP_PS4] felületre megjelenik a LIGHT funkció-
blokk.
► Végül a Light_sequence[LIGHT] felületre történő kettős kattintással a legalsó szint a TP
funkcióblokk is megjeleníthető.

► Jelölje ki a Light_sequence[LIGHT] funkcióblokkot, és kattintson a Display/ChangePOU


ikonra. Ennek hatására megnyílik az IL Online-Editor, amelyben a funkcióblokk
deklarációs és utasítás része látható.
Ebben az ablakban az egyik ellenőrzési lehetőségként a változóállapotok jeleníthetők meg,
amely hibakeresésre ad rendkívül kedvező alkalmat.
► Válassza ki az online menüből a Status Display parancsot. Az utasításlista mellett az egyes
változók állapotai jelennek meg, melyeknek értékei folyamatosan aktualizálódnak.

86
Második programozási feladat

► Még egyszer hajtsa végre az előző parancsot, vagy kattintson a Status Display ikonra, hogy
az eddigi folyamatos változófrissülés befejeződjön. A képernyőn az utolsó aktualizált érték
„befagyva” látható.

Módosítások az Online-Editorban
Az online szerkesztőben az utasításlista online módon változtatható, melynek előnye, hogy
nincs szükség a POU-editor és az újólagos programkód generálás időt igénylő műveleteire. A
rendszerprogram az egyes változtatásokat a hozzátartozó POU fájlban és a futásképes prog-
ramkódban automatikusan visszavezeti.

A futófény irányának megváltoztatása


A fény irányának megváltoztatását legegyszerűbben a „ROR” (forgatás jobbra) parancsnak
„ROL” (forgatás balra) való módosításával érhetjük el.
A PS4 vezérlőknél egy bájton belül a legkisebb helyi értékű digitális kimeneti bit
a baloldalon, a legnagyobb helyi értékű bit pedig a jobb oldalon helyezkedik el.
Ezért a valóságban a ROR paranccsal a futófény balra lépked, és a ROL
paranccsal pedig jobbra. Az ok, hogy a digitális technikában megszokott
ábrázolásnál a legkisebb helyi értékű bit éppen fordítva, a jobb oldalon található.
A futási sebesség 1Hz-re módosítható, amennyiben a TP funkcióblokk időbeállítását egy
másodpercre változtatjuk.
► Válassz ki az Online menü „Modify” parancsát. A kurzor megjelenik az első
programsorban.
► Állítsa a kurzort abba a sorba, amelyben a „ROR” parancs található, és változtassa azt
„ROL” parancsra. A változtatás után kattintson a módosítást követően aktívvá (feketévé)
váló

Activate nyomógombra.

87
Második programozási feladat
A módosítást automatikusan tárolja a funkcióblokk, és ezzel egyidejűleg az új programkód is
legenerálódik. Ezután a megváltozott programkód letöltődik a PLC-be, és a programfutásnál
hatásossá válik, azaz a kimeneti LED soron megváltozik a futófény iránya. Az egész folyamat
során különböző rendszerüzenetek jelennek meg, melynek lezárásaként az OK gombbal kell a
egészet megerősíteni.
► végül zárja le az Online-Editort a <File → Exit> parancsokkal.

Futófény sebesség módosítása


A futófény sebességét a TP funkcióblokk PT bemenetére kötött „Pulse_duration” változó
határozta meg. A konkrét időértéket a „LIGHT” funkcióblokk első hívásakor kapja meg,
miközben a „Pulse_duration” változó felveszi a programban deklarált „Running_speed”
változó értékét. (Ezt a változót az „EXP_PS4” program deklarációs részben 500ms értékkel
inicializáltuk.)
Mivel az Online-Editorban csak az utasításrész (a deklaráció nem!) módosítható, az új
időértéket a két funkcióblokk egyikének hívásakor időkonstans formájában lehet csak
bevinni. Az időkonstans meghatározható már a „LIGHT” funkcióblokkban, és úgy átadva az
értéket a „TP” standard funkcióblokknak, azonban ebben az esetben a „LIGHT” funkcióblokk
nem lenne a továbbiakban „semleges”. Ezért az új értéket a „LIGHT” funkcióblokk hívásakor
az „EXP_PS4” programban kell megadni. Azaz a „Pulse_duration” változóhoz kell az 1s
időkonstanst hozzárendelni az eddigi 500ms kezdeti értékkel inicializált „Running_speed”
változó helyett:

► Nyissa meg az Online-Editort


► Válassza ki az „EXP_PS4” POU-t az instancfa struktúrából; a programablak jobb oldalán a
fastruktúrában jelölje ki POU-t, majd kattintson a Display/Change POU kapcsolófelületre.
► Válassza ki az Online menü „Modify” parancsát.
► Változtassa meg az időbevitel értékét a T#1s konstansra.
► Kattintson az
Activate
ikonra.
A változtatás a programozó PC-ben és a PLC-ben letárolásra kerül.
A kért módosításokat (futófény irányának és sebességének változtatását) végrehajtottuk.
► Lépjen ki az Online-Editorból.
► Fejezze be a teszt és üzembe helyezés feladatot.

88
Második programozási feladat

A „light” funkcióblokk többszörös instancálása


A lokális változókkal történő cím független funkcióblokk programozás előnyeinek
bemutatása érdekében egyszerűen bővítsük a második programozási feladatot.
Az egyszer már létrehozott „LIGHT” funkcióblokkot, mely mint lezárt és leellenőrzött
modulnak tekinthető, még egyszer instancálni kell. Ha a feladatot a PS4 vezérlőcsaláddal
kívánja megvalósítani, akkor példa kedvéért használjon kimeneti bájtként egy EM4-101-DD1
modult, és módosítsa a topológiát a következőképpen:
► Nyissa meg a topológia konfigurátorral a DEVICE nevű topológiát.
► Jelölje ki a PS4-t, és kattintáson a Remote Expansion gombra.
► A felajánlott listából válassza ki az EM4-101-DD1/88 típust, majd az OK-val erősítse meg
a kiválasztást. Ezzel a modul 8-8 be-/kimenettel konfigurálódik.

► tárolja le a konfigurációt.
► Nyissa meg az „EXP_PS4” programot a POU-szerkesztőben, és bővítse a változó-
deklarációt a második futófény változóival.
A „LIGHT” funkcióblokk újabb instancálása érdekében bevezetjük a „Light_sequence2”
változót.
Az online nyomkövetés érdekében, azaz hogy a másodikként instancált „LIGHT” funkció-
blokk az elsőtől teljesen függetlenül fut, további két változót deklarálunk a
„Light_sequence2” funkcióblokk paraméterezéséhez.
A „Runnung_speed2” változót T#250ms értékkel inicializáljuk, és így a második futófény
kétszeres sebességgel fut, mint az első.
A második futófény kijelzése, mint az előbb már konfiguráltuk, az EM4-101-DD1 kimeneti

89
Második programozási feladat
bájtján, a „Display2” változóval történik. A cím első helye azt a vonalszámot mutatja, ahová a
modul csatlakozik, azaz a jelenlegi példánkban az első vonalra. Az EM4-101-DD1 a
példánkban ezen a vonalon az első résztvevő, azaz a második szám is 1. Mivel a bővítő modul
közvetlenül a soros vonalra csatlakozik, a modul száma 0, mely a harmadik számjegyet adja.
A címzés negyedik száma a megszólítandó kimeneti bájtot tartalmazza, mely, jelen esetben az
első (és egyetlen) kimeneti bájt miatt, szintén 0. Így a második futófény teljes címzése, az
(EM4-101-DD1 kimeneti bájtja) %QB1.1.0.0 jelöléssel írható le.
A bővített változó deklaráció a következőképpen néz ki:

LIGHT funkcióblokk második instancálása

második futófény impulzusideje


250ms => 4Hz

második futófény hely az EM4-101-DD1-en

► A kiegészítő deklarációt írja be vagy szintaktikusan ellenőrzött, vagy szabad módban.

A deklarálás után még a szerkesztő utasításrészében meg kell hívni a második funkcióblokkot
is:
► Pozícionálja a kurzort a program végére.
► Az újonnan deklarált funkcióblokk bekötésével kezdje a módosítást:
Az egér bal gombjával elhívható gyorsmenü megnyitása után használja az <Insert → Insert
variable…> parancsokat.

90
Második programozási feladat
► Válassza ki deklarált változótípusnak megfelelően a „Local…” menüpontot, melynek
hatására megnyílik a „Insert variable: Local” kiválasztó ablak.
► Jelölje ki a listában a „Light_sequence2” változót, majd kattintson az „Accept”
kapcsolófelületre. A lista bezáródik, majd az utasításlistában megjelenik a funkcióblokk.
► A paramétereket jelölje el a „Running_speed2” és a „Display2” változókkal.
A bekötés másik módjaként a meglévő „Light_sequence” hívást a program végére bemásolni,
és utána a jelöléseket értelemszerűen hozzáigazítani.
Ehhez lenyomott bal egérgombbal jelölje ki a funkcióblokkot, majd kattintson a másolás
(Copy) ikonra. Poziciónálja a program végére a kurzort, és kattintson a beszúrás (Insert)
ikonra. Végül módosítsa sorban a „Light_sequence” „Running_speed” és „Display”
megnevezéseket sorban egymás után „Light_sequence2” „Running_speed2” és „Display2”
nevekre.

► Tárolja le a POU-t, és hozza létre a programkód létrehozás alatt egy új generáló listát.
► Generálja le módosított programkódot a <Generate → Generate All> menüparancsokkal,
vagy a megfelelő szimbólumokkal, majd töltse le a programot a PLC-be
A start után láthatja , hogy a futófény az EM4-101-DD1 kimenetén kétszer gyorsabb ütemben
fut, mint a PS4-en.
Ezzel sikerült Önnek egy saját maga által gyártott funkcióblokkot egyszerű módon
kétszeresen is instancálni, anélkül, hogy külön gondoskodni kellene arról, hogy a „LIGHT”
funkcióblokk belső változóit a PLC-ben hol helyezze el. Hasonlóképpen nem kell a több-
szörösen instancált gyártó-specifikus funkcióblokk (TP) adatterületeinek címzésével sem
foglalkozni.
A módosított „EXP-PS4” program LD vagy FBD nyelvi formában a következők szerint
ábrázolható:

91
Második programozási feladat

A be-/kimenetek kijelzése és a kimenetek kényszerítése PS4-en


Hozzon létre újra egy új kódgeneráló listát a program számára, mert a második instancálás
miatt a program hívó struktúrája megváltozott. Generálja újra a programot, töltse le a már
ismert módon a PLC-be és indítsa el a vezérlést.
Futás közben ellenőrizheti a be- és kimeneti változók állapotait, és a diagnosztikai
státuszokat.
► Indítsa el a teszt és üzembe helyezési funkciót.
► Kattintson a topológia ikonra. A képernyőn - kiolvasva a PLC-ből - kirajzolódik az
aktuális topológia.
► A bal egérgombbal jelölje ki lenyomott CTRL gomb mellett mindkét készüléket, és
kattintson a „Display Force Input/Output…” kapcsolófelületre.
A kiválasztott készülékek be- és kimenetei egy ablakban megjelennek:

92
Második programozási feladat

► Fejezze be az állapotok kijelzését az Cancel gombra kattintással.


A teszt és üzembe helyezési funkcióban az egyes hálózatba kapcsolt készülékek státuszát a
„Network Diagnostics” kapcsolófelület bekapcsolásával lehet lekérdezni. A hibás
készülékeket vagy építőelemeket vonalkázással jelöli a rendszerprogram. A zavart (hibás)
Suconet K hálózat master tagját továbbá egy villámjellel is megjelölik. Könnyen kipróbálhatja
a funkciót, ha bekapcsolt „Network Diagnostics” mellett megszakítja az összeköttetést a PLC
és az EM4-101-DD1 között.

93
Második programozási feladat

Pontosabb információkat kaphat a hibakereséshez, ha a „Diagnostics Status…” gombra


kattint, és kijelöli az egérrel a kívánt elemet vagy készüléket.

Az eddiek során Ön gyakorlatilag az összes Sucosoft S40 programrészletet megismerhette, de


természetesen ebben a rövid bevezetőben nem lehetett az összes funkciót figyelembe venni,
melyet a Sucosoft S40 felajánl.
Reméljük, hogy sikerült azonban egy átfogó képet nyernie az S40-ről, és bátorságot merített,
hogy további lehetőségeket kipróbáljon, illetve kutasson. Részletes információk állnak
rendelkezésére a szoftver kezelői felületéről és az egyes ismertető utasítások (AWB2700-
1306-D/GB) ismertetéséről a megfelelő gépkönyvekben (AWB2700-1305-D/GB illetve

94
Második programozási feladat
AWB2700-1306-D/GB).
Felhívjuk a figyelmét, hogy magyar nyelven szerkesztett formában is rendelkezésre áll az IEC
kompatíbilis programnyelv adatainak és változóinak típusait, illetve az egyes utasításokat,
függvényeket, funkcióblokkokat ismertető dokumentációja. A dokumentációs fájl neve
S40_xxxx.doc (word97 formátumban), elérhető az internetes honlapunkon (www.moeller.hu).
(Az xxxx helyén az évszám utolsó két dekádja és majd azon belül a hónap sorszáma található.)

A második programozási feladat LD/FBD ábrázolása


Befejezésül a második programozási feladat programját mutatjuk be LD és FBD nyelvi
formákban.
A programkészítési és letöltési programindítási eljárások teljesen megfelelnek a korábban
utasításlistás formájú programozás során leírtaknak.

LIGHT funkcióblokk
FBD ábrázolási mód:

95
Második programozási feladat

LD ábrázolás:

96
Második programozási feladat

Az EXP_PS4 program
LD és FBD ábrázolás módban:

97

You might also like