Folyamatmodell irányítása 3

Hasonló dokumentumok
Készítette: Oláh István mestertanár

Folyamatirányítás labor 4. mérés Gyártósori szállítószalag modell irányítása Modicon M340 PLC-vel. Feladat leírás

A BECKHOFF típusú PLC használata.

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék. Önálló laboratórium

Irányítástechnika Elıadás. PLC-k programozása

A C# programozási nyelv alapjai

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Irányítástechnika Elıadás. PLC-k programozása

Az IEC szabvány szoftvermodellje

Elemi adat típusok. Méret (Bit)

Java programozási nyelv

Java II. I A Java programozási nyelv alapelemei

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

Mintavételes szabályozás mikrovezérlő segítségével

Programozható Logikai Vezérlő

Algoritmizálás és adatmodellezés tanítása 1. előadás

Occam 1. Készítette: Szabó Éva

Készítette: Nagy Tibor István

A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III.28) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Követővezérlés időzítőkkel

Laborsegédlet 3. Labor

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Programozható logikai vezérlő

Algoritmizálás + kódolás C++ nyelven és Pascalban

OOP #14 (referencia-elv)

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Szoftvertervezés és -fejlesztés I.

Programozási nyelvek (ADA)

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Programozás II. 2. Dr. Iványi Péter

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Folyamatmodell irányítása 1-2

S z á m í t ó g é p e s a l a p i s m e r e t e k

BASH script programozás II. Vezérlési szerkezetek

1. Alapok. #!/bin/bash

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Hardver leíró nyelvek (HDL)

Szkriptnyelvek. 1. UNIX shell

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Java II. I A Java programozási nyelv alapelemei

TM Szervó vezérlő és dekóder

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.

HANDY PROGRAMOZÓ EGYSÉG STAR VEZÉRLÉSHEZ Használati útmutató. SAFEHOME v1.1

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Programozás C és C++ -ban

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

10. gyakorlat Struktúrák, uniók, típusdefiníciók

PLC Verseny 2012 Technológia #1: Gyártósor

Programozás alapjai. 10. előadás

Objektumorientált Programozás III.

Kifejezések. Kozsik Tamás. December 11, 2016

Adatbázis és szoftverfejlesztés elmélet

Digitális ki-bemenetek kezelése, bitszintű műveletek

Informatika terméktervezőknek

Objektumorientált Programozás VI.

_INVHU000_WriteReadParameter.cxf Frekvenciaváltók

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1. Egyszerű (primitív) típusok. 2. Referencia típusok

SYS700-PLM Power Line Monitor modul DDC rendszerelemek, DIALOG-III család

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

SYS700-A Digitális szabályozó és vezérlõ modul DDC rendszerelemek, DIALOG-III család. Terméktámogatás:

PLC programozási példák. GEVAU 140B, GEVAU 189B kurzusok (Automatika).

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

WAGO PLC-vel vezérelt hő- és füstelvezetés

A programozás alapjai

Apple Swift kurzus 3. gyakorlat

Bevezetés az informatikába

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Az AVR programozás alapjai. Előadja: Both Tamás

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Új kompakt X20 vezérlő integrált I/O pontokkal

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

7400 Kaposvár, Pázmány P. u. 17. OM TANMENET. Modul: Osztály: Heti óraszám: Hetek száma: 32. P. h.

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Panel bekötési pontok:

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

GLOFA-GM7 PLC. LG Industrial Systems YERUHAM Kft. Programozási segédlet. Simén Gábor. LG GLOFA-GM PLC programozási segédlet 1

PLC Versenyfeladat. XIV. Országos Irányítástechnikai Programozó Verseny Budapest, március Összeállította az EvoPro Kft.

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Kifejezések. Kozsik Tamás. December 11, 2016

Matematikai programok

Könyvtári címkéző munkahely

Alkalmazási példa. Gyártóberendezés-modell automatizálása PROFIBUS DP-n kommunikáló SIMATIC S7-300 és S7-200 rendszerekkel, valamint AS-i szenzorokkal

Digitális rendszerek. Utasításarchitektúra szintje

Átírás:

Mérési útmutató Folyamatirányítás laboratórium Összeállította: Kovács Gábor gkovacs@iit.bme.hu Budapesti Műszaki és Gazdaságtudományi Egyetem Irányítástechnika és Informatika Tanszék 2016

Tartalomjegyzék Tartalomjegyzék Tartalomjegyzék... 2 1 Bevezetés... 3 2 Az IEC 61131-3 szabvány elemei... 3 2.1 Programszervezési egységek... 3 2.2 Változók deklarálása... 4 2.3 Strukturált szöveges programozás... 5 3 Mérési feladatok Gyártósor-modell irányítása... 7 2

Bevezetés 1 Bevezetés A mérés célja, hogy a hallgatók a Folyamatszabályozás tárgy során elsajátított, az IEC 61131-3 szabványnak megfelelő PLC-programozási ismereteiket a gyakorlatban is kipróbálhassák. Ennek során egy gyártósor-modell irányítását kell megvalósítaniuk egy Moeller XC-CPU 201-es típusú PLC segítségével, CoDeSys fejlesztőkörnyezetben. A fejlesztőkörnyezet egyike az IEC 61131-3 szabványnak legnagyobb mértékben megfelelő eszközöknek, így mind a programszervezési egységek, mind a szabványos funkcióblokkok és változókezelés gyakorlására lehetőséget nyújt. A környezet támogatja mind az öt szabványos nyelvet, ezek közül a mérés során a struktúrált szöveges (ST) nyelvet fogjuk használni. A mérés során felhasznált PLC az Eaton-Moeller cég moduláris PLC-családjának tagja. A CPU 256kByte RAM-mal rendelkezik, kommunikációs interfészek közül pedig a CAN-buszt és az Ethernet-et támogatja, utóbbi egyben programozói csatlakozóként is használható. Maga a CPU 8 digitális be- és 6 digitális kimenettel rendelkezik, ezt egy XIOC-16 típusú, 8 digitális be- és 8 digitális kimenetet tartalmazó modul egészíti ki. A CPU Windows CE operációs rendszert futtat és beépített webszerverrel is rendelkezik. 2 Az IEC 61131-3 szabvány elemei Ebben a fejezetben az IEC 61131-3 szabvány néhány, a mérés szempontjából kitüntetett elemét ismételjük át röviden: először a programszervezési egységeket, majd a váltózók használatát, míg végül a strukturált szöveges programozás alapjait. 2.1 Programszervezési egységek A jól strukturált, moduláris, újrafelhasználható szoftverek fejlesztését a szabvány három programszervezési egység (program organization unit, POU) definiálásával támogatja. Ezek (a komplexitás növekvő sorrendjében) a függvény (function), a funkcióblokk (function block) és a program (program). Fontos tudnivaló, hogy az egyes programszervezési egységek nem hívhatnak meg magasabb komplexitásúakat, valamint hogy a rekurzió tiltott. Ennek megfelelően egy függvény csak más típusú függvényt, egy funkcióblokk tetszőleges függvényt vagy más típusú funkcióblokkot, egy program pedig tetszőleges típusú függvényt vagy funkcióblokkot hívhat (programot semmilyen programszervezési egység nem hívhat). A függvények olyan programszervezési egységek, melyekhez nem tartozik dedikált adatterület, azaz két hívásuk között nem őriznek meg semmiféle értéket. Ennél fogva tetszőleges alkalommal hívva őket azonos bemenetek esetén azonos kimenettel térnek vissza. Jó példái a függvényeknek a különféle aritmetikai műveletek mint ismeretes, 2 2 mindig 4. A függvények egy projekten belül tetszőleges programszervezési egységből hívhatók (figyelembe véve természetesen a rekurzióra vonatkozó tilalmat) példányosítás nélkül. A funkcióblokkok már rendelkeznek dedikált memóriaterülettel, mely megőrződik a hívások között, így azonos bemeneti paraméterekkel hívva egy funkcióblokk különböző kimenettel is visszatérhet az előzmények függvényében. A PLC-programozás során gyakran használt számlálók és időzítők mindmind funkcióblokkok. Utóbbit meghívva például a kimenet nem csak a bemenetek, hanem az eltelt idő függvénye is, ami nyilván szükségessé teszi a belső számlálóregiszter értékének tárolását a hívások között. 3

Az IEC 61131-3 szabvány elemei Az objektumorientált programozási paradigmához hasonlóan egy funkcióblokkot definiálva annak típusát ( osztályát ) hozzuk létre, melyet a használathoz példányosítani kell egy típusból természetesen tetszőleges számú példányt létrehozhatunk. A példányosítás során minden egyes funkcióblokk-példányhoz hozzárendelésre kerül annak saját memóriaterülete, melyhez más programszervezési egységek (beleértve az adott típus többi példányát) nem férhet hozzá. A funkcióblokk a legszélesebb körben használt programszervezési egység, a mérésen is ezekre épül majd az irányítószoftverünk. A program a legmagasabb szintű programszervezési egység, gyakorlatilag főprogramként (vö. a C main() függvénye) használjuk, feladata a funkcióblokkok és függvények működésének koordinálása. A funkcióblokkok által biztosított lehetőségeket többek között közvetlen értékek (pl. %I0.0) használatával egészíti ki. Mindegyik programszervezési egységhez definiálhatunk helyi, illetve interfész-változókat. Helyi változókat a VAR, illetve a VAR_TEMP kulcsszavakkal bevezetve deklarálhatunk. A két típus közötti egyetlen különbség, hogy a VAR típusú változók megőrzik értéküket a hívások között (ennek következtében minden egyes funkcióblokk- vagy program-példány ilyen változóihoz statikus memóriaterület kerül lefoglalásra), míg a VAR_TEMP kulcsszóval bevezetett ideiglenes változók nem (ezekhez egy közös használatú memóriaterület egy része kerül hozzárendelésre a híváskor). Függvények esetén a VAR_TEMP kulcsszó nem használható, ellenben a VAR típusú változóik sem őrzik meg értéküket a hívások között. Az interfész típusú változók közül a bemeneti változókat a VAR_INPUT kulcsszóval vezetjük be. Ezeket a változókat a hívott programszervezési egység (amelyen belül deklaráljuk) csak olvasni tudja, míg híváskor értéküket tetszőlegesen beállíthatjuk. A VAR_OUTPUT kulcsszóval bevezetett kimeneti változókat a hívott programszervezési egység írhatja és olvashatja, ellenben a hívó csak olvasni tudja őket. A VAR_IN_OUT kulcsszóval bevezetett ki- és bemeneti változók mind a hívó-, mind a hívott programszervezési egységek számára elérhetők írásra és olvasásra. Legfőbb előnyük, hogy a be- és kimeneti változókkal ellentétben nem érték, hanem referencia szerint kerülnek átadásra, így használatuk különösen nagyméretű adatok esetén memóriaterület-megtakarítást tesz lehetővé. 2.2 Változók deklarálása A programszervezési egységekhez a fentiek szerint rendelhetünk helyi- és interfész-változókat a megfelelő kulcsszó (pl. VAR_INPUT) és az END_VAR foglalt szó között felsorolva azokat. A változók deklarálása a következő sémát követi: <szimbolikus név> [AT <cím>] : <adattípus> [:= <kezdőérték>] Itt a szimbolikus név tetszőleges, betűket, számokat illetve _ (alulvonás) karaktert tartalmazó azonosító lehet, melynek az adott programszervezési egységen belül egyedinek kell lennie. Egyetlen megkötés, hogy az azonosítónak betűvel kell kezdődnie, illetve nem végződhet két alulvonás karakterrel. A változók adattípusa lehet logikai (BOOL), bit-sztring (BYTE, WORD, DWORD, LWORD), egész (SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT), lebegőpontos (REAL, LREAL), idő (DATE, TIME_OF_DAY, DATE_AND_TIME, TIME), vagy karakterlánc (STRING, WSTRING). Különleges, és a mérés során jól használható adattípus a felsorolás, mely közvetlenül, típusdefiníció nélkül is létrehozható: 4

Az IEC 61131-3 szabvány elemei <azonosító> : (<címke1>,<címke2>,,<címken>) A létrehozott változó adattípusát tekintve egész: az idézőjel nélkül megadott, szöveges címkékhez rendre a 0, 1, N 1 egészek kerülnek hozzárendelésre. A kódban (pl. egy CASE struktúrában) az egész számok helyett szintén használhatók ezek a szöveges címkék, így könnyen átláthatóvá tehető a programunk. Szintén érdemes itt felidézni az idő adattípus megadására szolgáló literális formátumát: t#<időtartam><egység>[<időtartam><egység> ] ahol az időtartam egy egész szám (kivéve az utolsót, amely lebegőpontos is lehet), míg az egység lehet d (nap), h (óra), m (perc), s (másodperc) illetve ms (millisecundum). Ennek megfelelően a másfél másodperces időtartam például t#1s500ms illetve t#1.5s formában is leírható. Visszatérve a változók deklarációjához, két opcionális paramétert is használhatunk. Az AT kulcsszóval fizikai címhez köthetjök a változónkat ne feledjük, hogy ezt csak programban tehetjük meg! A cím felépítése a következő: %<LocationPrefix><méret><sorszám> ahol a LocationPrefix értéke bemenetek esetén I, kimenetek esetén Q, míg memóriaváltozók esetén M. Fontos kiemelni, hogy utóbbiakat nem kötelező fizikai címhez rendelni. Sőt, ha nincs rá kifejezett szükség, akkor ellenjavalt is a fordítóra bízva a változók címhez rendelését biztosak lehetünk abban, hogy feledékenységből nem kötünk egy memóriacímhez több változót. A méret azonosítója lehet X (egyetlen bites logikai változó), B (bájt), W (szó), D (duplaszó) illetve L (hosszúszó, 64 bájt). A sorszám előjel nélküli egész, illetve hierarchikus címzés (pl. be- és kimeneti bitek, memóriabitek) esetén két, ponttal elválasztott előjel nélküli egész, pl. %IX0.1 A változókhoz opcionálisan kezdeti érték is rendelhető. Amennyiben ezt elhagyjuk, úgy a változó indításkor az üres vagy 0 értéket (az adattípusnak megfelelő bitszámon) veszi fel. 2.3 Strukturált szöveges programozás A strukturált szöveges (Structured Text, ST) programozási nyelv az IEC 61131-3 szabvány két szöveges nyelvének egyike. Magas szintű, ugyanakkor egyszerű, leginkább talán a Pascal nyelvhez hasonlító szintaxisának köszönhetően igen népszerű programozási eszköz. Használata során azonban nem szabad elfelednünk, hogy a magas szintű leírást egy PLC értelmezi, tehát a létradiagramhoz hasonlóan a teljes strukturált szöveges program lefut minden egyes PLC-ciklusban! Az alábbiakban a strukturált szöveges programozás alapjai közül a mérés szempontjából legfontosabb elemeket foglaljuk össze. Az ST nyelv a műveleteket kifejezéseken végzi el, amik lehetnek közvetlen értékek (pl. 123, TRUE), változók (pl. MyVar), vagy függvények visszatérési értékei (pl. SIN(0), NOT(MyVar)) is. A műveletek között elsőként az értékadás szerepel, melyre a := operátor használható, pl. MyVar:=4; (az összehasonlításra egyetlen egyenlőségjel szolgál). Mint az előbbi példából is látható, a műveleteket a szöveges nyelveknél megszokott módon ; zárja kivételt ez alól csak a foglalt szavakra (pl. THEN, END_IF) végződő sorok jelentenek. 5

Az IEC 61131-3 szabvány elemei A megszokott programozási struktúrák közül az IF elágazás általános alakja az alábbi: IF <BOOL expression> THEN ELSIF <BOOL expression> THEN ELSIF <BOOL expression> THEN ELSE END_IF; A feltétel mindenképpen logikai értékre kiértékelődő kifejezés (pl. egy logikai bemenet vagy MyVar=4), az egyes ágakban pedig tetszőleges számú művelet szerepelhet. Az ELSIF kulcsszóval bevezetett műveletblokk akkor fut le, ha a megelőző (IF vagy ELSIF) feltételek hamisak, de az adott ELSIF kulcsszó melletti kifejezés igazra értékelődik ki. Ilyen blokkból tetszőleges számú használható, de szerepeltetésük nem kötelező. Az ELSE ág művelet-blokkja akkor fut le, ha a megelőző ágak (akár csak az IF, akár tetszőleges számú ELSIF) kifejezései hamisra értékelődnek ki. A teljes blokkot az END_IF kulcsszó zárja le. Amennyiben egy egész számra kiértékelődő (ne feledjük, a felsorolás is ilyen!) kifejezés eredménye szerint kívánunk műveleteket végrehajtani, úgy a CASE struktúrát érdemes használni, melynek általános alakja az alábbi: CASE <INT expression> OF <value1>: <value2>,<value3>: ELSE END_CASE; Mint a fentiekből is látható, egy esetet több értékhez is hozzárendelhetünk, illetve megadható egy ELSE ág is, ami akkor értékelődik ki, ha a megelőző ágak egyike sem. Az előzőekben a kiértékelődés kifejezés használata nem véletlen: míg a létradiagram esetén minden létrasor egy logikai függvénynek felel meg, a strukturált szöveges programozás esetén pl. az IF A THEN B:=TRUE END_IF; művelet esetén ha A hamis, akkor a B-re vonatkozó művelet nem értékelődik ki, azaz nem lesz hamis, hanem megőrzi értékét, legyen az igaz vagy hamis. Ez a művelet létradiagramban egy kontaktust követő Set-tekercsnek felel meg. 6

Mérési feladatok 3 Mérési feladatok 3.1 Gyártósor-modell irányítása A feladat során használt gyártósor-modell négy futószalagból, a merőleges futószalagokat összekötő két tologatóból, valamint egy maró- és egy fúrógépből áll (ld. 1. ábra). 1. ábra - A gyártósor-modell felépítése A futószalagok mentén fotoérzékelők helyezkednek el, melyek fénysugarát az előttük elhelyezkedő munkadarab megszakítja, így annak jelenlétét az érzékelő logikai 0 szintje jelzi. A futószalagok és a szerszámgépek motorjai a PLC megfelelő kimenetét 1 értékre állítva működtethetők. A tologatók esetén a motorok ki- és bekapcsolása mellett egy másik kimenettel a mozgás iránya is megadható (1: előre, 0: hátra). A tologatók első és hátsó véghelyzetében egy-egy végálláskapcsoló helyezkedik el, ami jelez, ha a tologató az adott pozícióban tartózkodik. A gyártósor irányítása során a következő működést kell biztosítani. Az első futószalag elejére (az 1. fotoérzékelő elé) egy munkadarabot helyezve a futószalag induljon el, és továbbítsa a munkadarabot az 1. tologatóra. Ehhez a 2. fotoérzékelő jelzése után még kb. 2 másodpercig járatni kell a szalagot. A megérkezett munkadarabot a tologató tolja át a 2. futószalagra (a megfelelő működés érdekében ekkor a 2. futószalag már járjon), majd húzódjon vissza hátsó véghelyzetébe. Amint a munkadarab a marógép alá ért, a 2. futószalag álljon le, a gép pedig 3 másodpercen keresztül üzemeljen. Ezután a futószalag továbbítsa a munkadarabot a fúrógép felé, majd álljon le. Ehhez a szalagot a marás befejezése után kb. 4 másodpercig kell működtetni, és közben már a 3. futószalagot is el kell indítani. Amint a munkadarab a fúrógép alá ért, a 3. futószalag álljon le, a gép pedig 5 másodpercen keresztül üzemeljen. Ezután a futószalag továbbítsa a munkadarabot a 2. tologató felé (a fotoérzékelő elhagyása után ehhez kb. 4 másodpercig kell működtetni a szalagot). A 2. tologató tolja át a munkadarabot a 4. futószalagra (az közben már mozogjon), majd húzódjon vissza a hátsó véghelyzetbe. A 4. futószalag az 5. fotoérzékelő jelzését követően 2 másodpercig még járjon, majd álljon le. 7

Mérési feladatok Mérési feladat Implementáljanak egy olyan PLC-alkalmazást, mely biztosítja a gyártósor fent ismertetett működését! Feltételezhetik, hogy a gyártósoron egyszerre csak egyetlen munkadarab helyezkedik el. Ehhez készítsenek egy-egy funkcióblokkot a bemeneti futószalag, egy tologató, egy szerszámgép illetve a kimeneti futószalag vezérlésére, majd ezeket a főprogramban példányosítsák megfelelő beés kimenetekkel! Kiegészítő feladat Módosítsák az alkalmazást úgy, hogy a gyártósoron egyszerre több munkadarab is jelen lehessen! Feltételezhetik, hogy az első futószalagra csak akkor kerül új munkadarab, amikor az előző már elhagyta azt. Jótanácsok Az egyes gyártósori elemekhez (bemeneti futószalag, kimeneti futószalag, szerszámgépek, tologatók) készítsenek külön-külön állapotgépeket! Ezeket először tervezzék meg papíron, csak utána implementálják! Ügyeljen arra, hogy a tologatók a végálláskapcsolók jelzése után ne mozoghassanak helytelen irányba! Amennyiben bármilyen probléma (pl. túlfutott tologató) adódna, a szakaszmodellt állítsa le a vészgombbal és kérje a mérésvezető segítségét! 3.2 Manipulátor-modell irányítása A feladat során egy 3D manipulátor használatával kell munkadarabokat egy felvételi pontról a bemeneti futószalagra, valamint a kimeneti futószalagról a késztermék-tárolóba pakolni. A manipulátor egy megfogóval ellátott, 3 szabadságfokú kar, melynek vázlatát a 2. ábra mutatja be. 2. ábra - A 3D manipulátor vázlata Az 1. csukló egy rotációs csukló, mely az egész kart forgatja függőleges tengelye körül (a pozitív irány az óramutató járásával megegyező). A második csukló transzlációs, segítségével a kar 2. szegmense süllyeszthető (pozitív irány) vagy emelhető (negatív irány). A 3. tengellyel a 2. szegmens vízszintesen kitolható (pozitív irány) illetve visszahúzható (negatív irány). A megfogó a motor pozitív irányú 8

Mérési feladatok forgatásával nyitható, míg negatív forgásiránnyal zárható. Az egyes csuklókhoz, illetve a megfogóhoz két-két PLC-kimenet tartozik. Ezek közül az egyik a motort kapcsolja be vagy ki, a másik pedig a forgásirányt állítja (1: pozitív irány, 0: negatív irány). Az egyes csuklók és a megfogó nullpozícióját (a 2. csukló esetében a legmagasabb pozíciót, a 3. csukló esetén a teljesen visszahúzott pozíciót, megfogó esetén a zárt állást) végálláskapcsolók jelzik, ezek abszolút információt adnak az adott csuklók helyzetéről. A csuklók impulzusadókkal is fel vannak szerelve, melyek mozgás közben bocsátanak ki impulzusokat. Ezek irányhelyes számlálásával a csuklók nullhelyzettől mért relatív pozíciója meghatározható. A kar pozícióit ezen számlálóértékekkel (az ún. csuklókoordinátákkal) adjuk meg, azaz pl. a (30,0,20,5) koordináta azt jelenti, hogy az 1. csukló 30 impulzusnyit fordult a nullhelyzethez képest, a 2. csukló a nullhelyzetében (felső végállás) van, a harmadik csukló 20 impulzusnyival van kitolva a nullhelyzetéhez képest, a megfogó pedig 5 impulzusnyit nyílt ki. Az irányításnak a következő működést kell biztosítania. Bekapcsolás után a manipulátor helyzete nem meghatározott, így a kart kalibrálni kell, azaz minden csuklót és a megfogót is a végálláskapcsolókkal jelzett nullpozícióba kell mozgatni. Kalibrálás után a kart a felvételi pont feletti 1. pozícióba kell vezérelni, és a megfogót ki kell nyitni, majd a kart leereszteni és a megfogót zárni. A kar felemelése után a bemeneti futószalag feletti 2. pozícióba kell mozogni, ott leereszkedni, majd a megfogó nyitásával elengedni a munkadarabot. Emelés után a kimeneti futószalag fölé kell pozícionálni a kart nyitott megfogóval, majd ha van ott munkadarab (erről a fotoérzékelő jelének megváltozása szolgáltat információt), leereszteni, majd megfogás után felemelni, és a késztermék-tároló csúszdája fölé mozogva elengedni. A műveletsor végén ismért a nullpozícióba kell mozogni, ahol megtörténik az újrakalibrálás. Mérési feladat Implementáljanak olyan PLC-programot, mely biztosítja a manipulátor fent ismertetett működését! Ehhez készítsenek egy-egy funkcióblokkot, mely képes a csuklók illetve a megfogó adott célpozícióba mozgatására! Fontos, hogy zérus célpozíció esetén ne a számlálóértéket, hanem a végálláskapcsoló jelzését figyeljék, így az elkalibrálódásból adódó problémák kiküszöbölhetők. A főprogramban ezen funkcióblokkok példányosításával biztosítsák a megfelelő működést! Jótanácsok Az impulzusadók pergése miatt fogadja el célpozícióként az attól 1-1 impulzusnyira eső értékeket is! Az 1. és 3. csuklót csak abban az esetben mozgassa, ha a 2. csukló a legfelső helyzetben van! A kar képes kárt tenni saját magában, illetve a gyártócella elemeiben. Amennyiben veszélyes helyzet adódna, azonnal állítsa le a manipulátort a vészgombbal és kérje a mérésvezető segítségét! 9