KRL Kuka Robot Language
Timotei István Erdei
Mechatronic Engineer/Researcher
University of Debrecen
Department of Electrical Engineering and Mechatronics
Facebook WebSite:
https://www.facebook.com/pages/Timotei-Robotics/468710276611086
Publications Researchgate:
https://www.researchgate.net/profile/Timotei_Erdei/?ev=hdr_xprf
Google+
https://plus.google.com/104757115611446684876/posts
Deviantart:
http://timotei-robotics.deviantart.com/
My Youtube Channel
https://www.youtube.com/channel/UCLrrzYaYaypXJjvwby6g3XA
EEEI Explore:
http://ieeexplore.ieee.org/search/searchresult.jsp?searchWithin=p_Authors:.QT.Erdei,%20T.I..QT.&newsearch=true
Linkedin:
http://hu.linkedin.com/pub/timotei-istv%C3%A1n-erdei/a9/b04/117
Színpszichológia - Timotei-Robotics - Timotei István Erdei
KRL Kuka Robot Language - Timotei István Erdei - Timotei-Robotics
1. KRL Kuka Robot Language
(Kuka Robot Nyelv)
KRC V5.3.5-nek
Referent:
Gregor Franz
Fordította:
Kovács Levente Csaba – Timotei István Erdei
2. Áttekintés:
1. Általános információk a KRL programokhoz
2. Változók és konstansok
3. Mozgás programozás
4. Program lefutás irányítás
5. I/O utasítások
6. Alprogramok és Függvények
7. Adatlisták
Kovács Levente Csaba – Timotei István Erdei
3. 1 Általános információk a KRL programokhoz
1.1 A programok felépítése és szerkezete
1.2 Programok előállítása és szerkesztése
1.3 Programok megváltoztatása
1.4 Rejtett programrészek
1.5 Megjegyzések
Kovács Levente Csaba – Timotei István Erdei
4. 1.1 A programok felépítése és szerkezete
Kovács Levente Csaba – Timotei István Erdei
6. 1.1.2 Adatstruktúra
DEF PROGRAMMNAME(X1: IN)
Deklaráció
Inicializálás
Utasítások
END
Alapértelmezésben nem
látható a KUKA HMI-
szoftver szerkesztőjében
Kovács Levente Csaba – Timotei István Erdei
7. 1 Általános információk a KRL programokhoz
1.1 A programok felépítése és szerkezete
1.2 Programok előállítása és szerkesztése
1.3 Programok megváltoztatása
1.4 Rejtett programrészek
1.5 Megjegyzések
Kovács Levente Csaba – Timotei István Erdei
8. 1.2.1 Egy program előállítása, megírása
A felhasználói felületen (KUKA HMI Software):
Menu -> File -> New
• Expert
• Expert Submit
• Function
• Modul
• és még 2 további
Kovács Levente Csaba – Timotei István Erdei
9. 1.2.2 Program szerkesztése, kompilálása
és csatolása (binden)
Az „Open“ funkciógombbal, ami „File” menüpont alatt található,
indítható el a Szerkesztő (Editor).
A „Close” funkciógomb a Szerkesztő bezárását eredményezi, ami a
program mentésével és fordításával jár.
Fordító: Error? => *.ERR-File
Csatoló:=> Funkciógomb „Choose“ => Error? => *.ERR-Datei
Kovács Levente Csaba – Timotei István Erdei
10. 1 Általános információk a KRL programokhoz
1.1 A programok felépítése és szerkezete
1.2 Programok előállítása és szerkesztése
1.3 Programok megváltoztatása
1.4 Rejtett programrészek
1.5 Megjegyzések
Kovács Levente Csaba – Timotei István Erdei
11. 1.3 Programok megváltoztatása
A Kuka HMI-vel két lehetőségünk van a programok változtatására
(szerkesztésére):
- Program-Correct-Mode (PROGCOR-Mode)
- Editor: => megszokott Szerkesztő
Kovács Levente Csaba – Timotei István Erdei
12. 1 Általános információk a KRL programokhoz
1.1 A programok felépítése és szerkezete
1.2 Programok előállítása és szerkesztése
1.3 Programok megváltoztatása
1.4 Rejtett programrészek
1.5 Megjegyzések
Kovács Levente Csaba – Timotei István Erdei
13. 1.4 Rejtett programrészek
- A rejtett programrészek az ú.n. Szerkesztői Csoportok (Expert
Groups) számára válik láthatóvá
- A rejtett programrészleteket „FOLD“-nak nevezik ami Folder,
azaz Mappa szóból ered
- Az információk mennyiségének korlátozása (részletek)
Code Bsp.:
;FOLD FOLDNAME
Code
Code
;ENDFOLD
Kovács Levente Csaba – Timotei István Erdei
14. 1 Általános információk a KRL programokhoz
1.1 A programok felépítése és szerkezete
1.2 Programok előállítása és szerkesztése
1.3 Programok megváltoztatása
1.4 Rejtett programrészek
1.5 Megjegyzések
Kovács Levente Csaba – Timotei István Erdei
16. Áttekintés:
1. Általános információk a KRL programokhoz
2. Változók és konstansok
3. Mozgás programozás
4. Program lefutás irányítás
5. I/O utasítások
6. Alprogramok és Függvények
7. Adatlisták
Kovács Levente Csaba – Timotei István Erdei
17. 2 Változók és konstansok
2.1 Változok és nevek
2.2 Adat objektumok
2.3 Adatkezelés
2.4 Rendszerváltozók és Rendszeradatok
Kovács Levente Csaba – Timotei István Erdei
18. 2 Változók és konstansok
2.1 Változok és nevek
2.2 Adat objektumok
2.3 Adatkezelés
2.4 Rendszerváltozók és Rendszeradatok
Kovács Levente Csaba – Timotei István Erdei
19. 2.2.3 Tömbök (Arrays)
Az Index számok mindig 1-től indulnak!
Példa kód: DECL INT OTTO[2]
…
OTTO[1] = 5
OTTO[2] = 90
Kovács Levente Csaba – Timotei István Erdei
21. 2.2.5 Struktúrák (Structures)
Adattípus feldolgozás a POS struktúra alapján:
STRUC POS REAL X,Y,Z,A,B,C, INT S,T
Pont-elválasztó:
DECL POS POSITION
...
POSITION.X = 34.4
Hozzáférést biztosít Strukturális változókhoz, vagy egységekhez:
POSITION = {X 34.4, Y –23.5, ... ,T 6}
POSITION = {POS : X 230,Y 0.0, ... ,T 5}
Kovács Levente Csaba – Timotei István Erdei
22. Előre definiált struktúrák
Az $OPERATE.SRC fájlban definiáltak:
STRUC AXIS REAL A1,A2,A3,A4,A5,A6
STRUC E6AXIS REAL A1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5,E6
STRUC FRAME REAL X,Y,Z,A,B,C
STRUC POS REAL X,Y,Z,A,B,C, INT S,T
STRUC E6POS REAL X,Y,Z,A,B,C,E1,E2,E3,E4,E5,E6, INT S,T
Kovács Levente Csaba – Timotei István Erdei
23. 2.2.6 Felsoroló típus (ENUM)
Példa: Adattípus feldolgozás:
ENUM MODE_OP T1,T2,AUT,EX,INVALD
Példa: Változó deklaráció:
DECL MODE_OP $MODE_OP
Példa: Inicializálás / Lekérdezés (query) :
$MODE_OP = #T1
Kovács Levente Csaba – Timotei István Erdei
24. 2 Változók és konstansok
2.1 Változok és nevek
2.2 Adat objektumok
2.3 Adatkezelés
2.4 Rendszerváltozók és Rendszeradatok
Kovács Levente Csaba – Timotei István Erdei
25. 2.3.1.1 Aritmetikai operátorok` + , - , * , / `
2.3.1.2 Geometriai operátorok`:`
Pl.: RESULT = VAR+5*VAR2/4-9
Pl.: NEUSYS = BASE:TOOL
-A FRAME és POS adattípusok között egy keret-kapcsolatot vezet keresztül.
-A keret-kapcsolat koordinátarendszer transzformációt jelent.
-Az eredmény adattípusa megfelel a jobb oldali operandusénak.
Kovács Levente Csaba – Timotei István Erdei
26. 2.3.1.3 Összehasonlító operátorok
Operátor Leírás Megengedett adat típúsok
== egyenlő INT, REAL, CHAR, ENUM, BOOL
<> nem egyenlő INT, REAL, CHAR, ENUM, BOOL
> nagyobb INT, REAL, CHAR, ENUM
< kisebb INT, REAL, CHAR, ENUM
>= nagyobb vagy egyenlő INT, REAL, CHAR, ENUM
<= kisebb vagy egyenlő INT, REAL, CHAR, ENUM
Kovács Levente Csaba – Timotei István Erdei
27. 2.3.1.4 Logikai operátorok
Példa kód: (A>5) AND (B<12)
Operátor Operandusszám Leírás
NOT 1 invartálás
AND 2 logikai ÉS
OR 2 logikai VAGY
EXOR 2 kizáró VAGY
Kovács Levente Csaba – Timotei István Erdei
28. 2.3.1.5 Bit-Operátorok
Operátor Operandusszám Leírás
B_NOT 1 bitenkénti inverzió
B_AND 2 bitenkénti ÉS--Kapcsolat
B_OR 2 bitenkénti VAGY--Kapcsolat
B_EXOR 2 bitenkénti kizáró VAGY—Kapcsolat
Kovács Levente Csaba – Timotei István Erdei
30. 2.3.2 Alapfüggvények
Leírás Függvény Argumentum
értéktartománya
Eredmény
értéktartománya
Összeg ABS(X) -∞...+∞ 0...+∞
Gyök SQRT(X) 0...+∞ 0...+∞
Sinus SIN(X) -∞...+∞ -1...+1
Cosinus COS(X) -∞...+∞ -1...+1
Tangens TAN(X) -∞...+∞* -∞...+∞
ArcusCos. ACOS(x) -1...+1 0 ...180
ArcusTang. ATAN2(Y,X) -∞...+∞ -90 ...+90
* Nincs páratlan többszöröse 90 -tól, ezért: X ¸ (2k-1)*90 , k
Minden adattípus: REAL
Kovács Levente Csaba – Timotei István Erdei
31. 2 Változók és konstansok
2.1 Változok és nevek
2.2 Adat objektumok
2.3 Adatkezelés
2.4 Rendszerváltozók és Rendszeradatok
Kovács Levente Csaba – Timotei István Erdei
32. 2.4 Rendszerváltozók és Rendszeradatok
Minden rendszerváltozó $-al kezdődik, amit a neve követ.
Példa.: $POS_ACT => Aktuális robot pozíció
$BASE => Bázis koordinátarendszer
$VEL.CP => Pályasebesség
Több példa a KRC-Dokumentációban található => Systemvariablen.pdf
Flags ($FLAG[1]-től $FLAG[1024]-ig):
Globális Merkereknek használhatóak. Flag-ek egészen 1024-ig vannak.
Példa: $FLAG[1] = TRUE => készlet
Kovács Levente Csaba – Timotei István Erdei
33. 2.4 Rendszerváltozók és Rendszeradatok
Ciklikus Flag-ek ($CYCFLAG[1] ... $CYCFLAG[32]):
Itt: $IN[2] és $IN[3] ciklikusan lesznek kiértékelve. A $CYCFLAG[10] felül
lesz írva, illetve meg lesz változtatva, nem számít, hogy a programmutató hol
áll.
Egy gyűrűs Flag kiosztásánál elfogadhatóak:
• Logikai rendszerváltozók és
• Logikai változók, amelyek egy adatlistában voltak deklarálva és inicializálva.
Elfogadhatatlan:
• Függvények, amelyek egy logikai értéket térítenek vissza
Példa kód.: $CYCFLAG[10] = $IN[2] AND $IN[3]
Kovács Levente Csaba – Timotei István Erdei
34. 2.4 Rendszerváltozók és Rendszeradatok
Időzítő:
16 időváltozó $TIMER[1] ... $TIMER[16]
Az időzítők inicializálása rendszerinduláskor (control startup):
$TIMER_FLAG[1] - [16] = FALSE
$TIMER_STOP[1] - [16] = TRUE
$TIMER[1] - [16] = 0
Az időváltozók miliszekundumban értendők. Frissítés minden 12 ms-ban.
Példa kód: a 4-es időzítő indítása: $TIMER_STOP[4] = FALSE
a 4-es időzítő leállítása: $TIMER_STOP[4] = TRUE
a 4-es időzítő beírása: $TIMER[4] = 0
Kovács Levente Csaba – Timotei István Erdei
35. 2.4 Rendszerváltozók és Rendszeradatok
Előre meghatározott adatlisták, előre meghatározott
rendszerváltozókkal:
• $MACHINE.DAT
• $CUSTOM.DAT
• $CONFIG.DAT
• $ROBOTER.DAT
Kovács Levente Csaba – Timotei István Erdei
36. Áttekintés:
1. Általános információk a KRL programokhoz
2. Változók és konstansok
3. Mozgás programozás
4. Program lefutás irányítás
5. I/O utasítások
6. Alprogramok és Függvények
7. Adatlisták
Kovács Levente Csaba – Timotei István Erdei
37. 3 Mozgás programozás
3.1 Különböző koordinátarendszerek használata
3.2 Ponttól pontig mozgás (PTP)
3.3 Pályasebesség (CP-Mozgás = Continous Path)
3.4 Számítóegység előretartása
3.5 Megközelítéses pályamozgás
3.6 Pontok betanítása
Kovács Levente Csaba – Timotei István Erdei
38. 3.1 Különböző koordinátarendszerek
használata
Kordináta rendszer Rendszerváltozó Státusz
Világ kordináta-rendszer $WORLD Írásvédett
Robot kordináta-rendszer $ROBROOT Írásvédett
Szerszám kordináta-rendszer $TOOL Írható
Bázis(Munkadarab) kordináta-rendszer $BASE Írható
Kovács Levente Csaba – Timotei István Erdei
39. 3 Mozgás programozás
3.1 Különböző koordinátarendszerek használata
3.2 Ponttól pontig mozgás (PTP)
3.3 Pályasebesség (CP-Mozgás = Continous Path)
3.4 Számítóegység előretartása
3.5 Megközelítéses pályamozgás
3.6 Pontok betanítása
Kovács Levente Csaba – Timotei István Erdei
40. 3.2.1 Általános (Synchron-PTP)
Jelentés:
A programozott sebesség és gyorsulás határértékekkel, csak a
vezető tengely mozog.
- $VEL_AXIS[Tengelyszám] százalékban
- $ACC_AXIS[Tengelyszám] százalékban
- Tárolt magas értékre vonatkozik
Kovács Levente Csaba – Timotei István Erdei
41. 3.2.3 Magasabb irányítási profil
($OPT_MODE = #STEP1)
• A sebességek mindig a megengedett legnagyobb
nyomatékokhoz lesznek hozzáigazítva.
• A sebesség- és gyorsulásértékek közvetlen hatást gyakorolnak
a megengedett legnagyobb gyorsulásnyomatékra.
Kovács Levente Csaba – Timotei István Erdei
42. 3.2.3 Mozgás parancsok
PTP {A1 0,A2 90,A3 –90,A4 0,A5 0,A6 30}
Abszolút mozgás axiális koordinátákkal
PTP_REL {A1 35,A3 –45}
Relatív mozgás, ahol csak a 3. és 1. tengely mozog
NULLFRAME:
$NULLFRAME = {FRAME: X 0,Y 0,Z 0,A 0,B 0,C 0}
S (Státusz) és T (Fordulat):
Robotpozíciók egyértelmű előállítására.
Kovács Levente Csaba – Timotei István Erdei
43. S (Státusz) und T (Fordulat):
Érték Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0 A6 >= 0 A5 >= 0 A4 >= 0 A3 >= 0 A2 >= 0 A1 >= 0
1 A6 < 0 A5 < 0 A4 < 0 A3 < 0 A2 < 0 A1 < 0
Érték Bit 2 Bit 1 Bit 0
0 0 <= A5 < 180
A5 < -180
A3 < Ф
(Ф robottípustól
függ)
Alaptartomány
1 -180 <= A5 < 0
A5 >= 180
A3 >= Ф
(Ф robottípustól
függ)
Fej feletti tartomány
S:
T:
Kovács Levente Csaba – Timotei István Erdei
44. 3 Mozgás programozás
3.1 Különböző koordinátarendszerek használata
3.2 Ponttól pontig mozgás (PTP)
3.3 Pályasebesség (CP-Mozgás = Continous Path)
3.4 Számítóegység előretartása
3.5 Megközelítéses pályamozgás
3.6 Pontok betanítása
Kovács Levente Csaba – Timotei István Erdei
45. 3.3.1 Sebesség és gyorsulás (TCP)
Változónevek Mértékegységek Funkció
Sebességek $VEL.CP m/s Pályasebesség
$VEL.ORI1 /s Schwenkgeschwindigkeit
$VEL.ORI2 /s Forgási sebesség
Gyorsulások $ACC.CP m/s² Pályasebesség
$ACC.ORI1 /s² Schwenkbeschleunigung
$ACC.ORI2 /s² Forgási sebesség
A fenti változók REAL típusúak
Kovács Levente Csaba – Timotei István Erdei
46. 3.3.2 Orientáció vezetés (TCP)
Lineáris mozgás esetén:
$ORI_TYPE = #CONSTANT Az orientáció a térben nem változik
$ORI_TYPE = #VAR Az orientáció a térben változik
Pl.:
Körmozgásnál (CIRC):
$CIRC_TYPE = #BASE Térbeli orientáció
$CIRC_TYPE = #VAR Pálya szerinti orientáció
Egy program BAS(#INITMOV,0) szerinti alapinicializálásával a $ORI_TYPE =
#VAR und $CIRC_TYPE = #BASE rendszerváltozók lesznek beállítva
Kovács Levente Csaba – Timotei István Erdei
47. 3.3.3 Lineáris mozgás
LIN => Abszolút mozgás derékszögű koordinátarendszerben
LIN_REL => Relatív mozgás derékszögű koordinátarendszerben
Mindkét parancsnál a FRAME és POS adattípusok használhatóak.
• A végpontok ‚S’ és ‚T’ szög státusza mindig egyforma a
kezdőpontokéval, mivel ‚S’ és ‚T’ figyelmen kívül vannak hagyva. Így a
HOME-ba állás szükséges, mert a SAK így elérve lesz
Kovács Levente Csaba – Timotei István Erdei
48. 3.3.4 Körmozgás
CIRC => Abszolút mozgás derékszögű koordinátarendszerben
CIRC_REL => Relatív mozgás derékszögű koordinátarendszerben a
kezdő helyzetből kiindulva.
Példa kód: CIRC {segédpont-koord.}, {célpont-koord.}
CA 235.0
Kovács Levente Csaba – Timotei István Erdei
49. 3 Mozgás programozás
3.1 Különböző koordinátarendszerek használata
3.2 Ponttól pontig mozgás (PTP)
3.3 Pályasebesség (CP-Mozgás = Continous Path)
3.4 Számítóegység előretartása
3.5 Megközelítéses pályamozgás
3.6 Pontok betanítása
Kovács Levente Csaba – Timotei István Erdei
50. 3.4 Számítóegység előretartása
Az $ADVANCE rendszerváltozón keresztül az előretartás a bealított és
feldolgozott mozgás készletek előtt kerül beállításra. A főmutató ezt
követve látható a sárga nyíl által.
Egy automatikus előretartás stopot okozhatnak bizonyos rendszerváltozók.
Az előretartás stop visszafordítható a CONTINUE-val, de ami csak a
következő sorra vonatkozik.
Például WAIT SEC 0 -ra
Kovács Levente Csaba – Timotei István Erdei
51. 3 Mozgás programozás
3.1 Különböző koordinátarendszerek használata
3.2 Ponttól pontig mozgás (PTP)
3.3 Pályasebesség (CP-Mozgás = Continous Path)
3.4 Számítóegység előretartása
3.5 Megközelítéses pályamozgás
3.6 Pontok betanítása
Kovács Levente Csaba – Timotei István Erdei
52. 3.5 Megközelítéses pályamozgás
• A programozónak a megközelítés kezdő- és végpontjára van
befolyással.
• Az előreértelmezést($ADVANCE =1) legalább 1-re kell beállítani,
valamint előtte nem következhet be automatikus előrefutás leállás.
Kovács Levente Csaba – Timotei István Erdei
53. 3.5.1 PTP-PTP-közelítés
- A gépadatokban minden tengelyhez egy szög van:
$APO_DIS_PTP[1]-től[6]=90-ig
- A $APO.CPTP = százalékos értéken keresztül lehet a közelítés
(kerekítés) kezdetét beállítani.
- Minél nagyobb a százalék értéke, annál jobban lesz a pálya lekerekítve.
Kovács Levente Csaba – Timotei István Erdei
54. 3.5.2 LIN-LIN-közelítés
Ennél a megközelítésnél a pálya parabolaformát vesz fel.
Pályaközelítés:
Változó Adattípus Mért.e. Jelentés Kulcsszó
$APO.CDIS REAL mm Transzlációs távolságkritérium C_DIS
$APO.CORI REAL Orientációs távolság C_ORI
$APO.CVEL INT % Sebességkritérium C_VEL
Kovács Levente Csaba – Timotei István Erdei
56. 3 Mozgás programozás
3.1 Különböző koordinátarendszerek használata
3.2 Ponttól pontig mozgás (PTP)
3.3 Pályasebesség (CP-Mozgás = Continous Path)
3.4 Számítóegység előretartása
3.5 Megközelítéses pályamozgás
3.6 Pontok betanítása
Kovács Levente Csaba – Timotei István Erdei
57. 3.6 Teachen von Punkten
• Kódsor:
• Kézileg ellenőrzött megközelítés
Példa kód: PTP !
Kovács Levente Csaba – Timotei István Erdei
58. Áttekintés:
1. Általános információk a KRL programokhoz
2. Változók és konstansok
3. Mozgás programozás
4. Program lefutás irányítás
5. I/O utasítások
6. Alprogramok és Függvények
7. Adatlisták
Kovács Levente Csaba – Timotei István Erdei
59. 4 Program lefutás irányítás
4.1 Program ágak
4.2 Ciklusok
4.3 Várakozási utasítások
4.4 Program megállítása
Kovács Levente Csaba – Timotei István Erdei
60. 4.1 Program ágak
• Ugrás utasítás (GOTO)
• Feltételes ág (IF)
• Osztó (SWITCH)
Példa kód: GOTO MARKE
. . .
MARKE:
Példa kód:
IF (végrehajtási feltétel) THEN
Utasítás
ELSE
Utasítás
ENDIF
Példa kód: SWITCH PROG_NR
CASE 1
. . .
CASE #NO1
. . .
DEFAULT
ENDSWITCH
Kovács Levente Csaba – Timotei István Erdei
61. 4 Program lefutás irányítás
4.1 Program ágak
4.2 Ciklusok
4.3 Várakozási utasítások
4.4 Program megállítása
Kovács Levente Csaba – Timotei István Erdei
62. 4.2 Ciklusok
• FOR-ciklus
• WHILE-ciklus
• REPEAT-ciklus
• Hurok (LOOP)
• Ciklus megszüntetése (EXIT) => idő előtti megállítás
Példa kód: WHILE (Végrehajtási feltétel )
Utasítások
ENDWHILE
Példa kód: REPEAT
Utasítások
UNTIL (Befejés feltétele)
Példa kód: LOOP
Utasítások
ENDLOOP
Példa kód: FOR számláló=Start TO Vége STEP Növekmény
Utasítások
ENDFOR
Kovács Levente Csaba – Timotei István Erdei
63. 4 Program lefutás irányítás
4.1 Program ágak
4.2 Ciklusok
4.3 Várakozási utasítások
4.4 Program megállítása
Kovács Levente Csaba – Timotei István Erdei
64. 4.3 Várakozási utasítások
• Feltételes várakozási utasítások
• Idővárakozás (delay)
Példa kód: WAIT FOR (Feltétel)
Példa kód: WAIT SEC TIME
Kovács Levente Csaba – Timotei István Erdei
65. 4 Program lefutás irányítás
4.1 Program ágak
4.2 Ciklusok
4.3 Várakozási utasítások
4.4 Program megállítása
Kovács Levente Csaba – Timotei István Erdei
66. 4.4 Program megállítása
• HALT => Felfüggeszti a programot, viszont az utolsó utasítást
végrehajtja.
• BRAKE => Az utasítást azonnal leállítja
Kovács Levente Csaba – Timotei István Erdei
67. Áttekintés:
1. Általános információk a KRL programokhoz
2. Változók és konstansok
3. Mozgás programozás
4. Program lefutás irányítás
5. I/O utasítások
6. Alprogramok és Függvények
7. Adatlisták
Kovács Levente Csaba – Timotei István Erdei
68. 5 I/O utasítások
5.1 Általános
5.2 Bináris ki- és bemenetek
5.3 Digitális ki- és bemenetek
5.4 Impulzuskimenetek
Kovács Levente Csaba – Timotei István Erdei
69. 5.1 Általános
Kuka-Alap vezérlőszekrény -> Dugó X-11 (MFC-Modul) -> a következő ki-
és bemenetek vannak:
Bemenetek 1 ... 16
Kimenetek 1 ... 16 (max. 100mA terhelés; 100% egyidejűség)
Kimenetek 17 ... 20 (max. 2A terhelés; 100% egyidejűség)
• A következő változókkal történik a címzésük:
$IN[Nr] illetve $OUT[Nr].
• E változók használata előrehaladási stopot vált ki.
(Jeder Zugriff auf diese Variablen löst Vorlaufstopp aus.)
Kovács Levente Csaba – Timotei István Erdei
70. 5 I/O utasítások
5.1 Általános
5.2 Bináris ki- és bemenetek
5.3 Digitális ki- és bemenetek
5.4 Impulzuskimenetek
Kovács Levente Csaba – Timotei István Erdei
71. 5.2 Bináris ki- és bemenetek
$OUT[Nr] = TRUE
$OUT[Nr] = FALSE
A ki- és bemenetek külön-külön lesznek megcímezve, ezek bináris ki- és bemenetek.
A SIGNAL segítségével lehetőségünk van ki- és bemenetekhez nevet hozzáfűzni.
Példa kód: BOOL KAPCSOLÓ
SIGNAL KAPCSOLÓ $IN[5]
Így az 5-ös bemenet neve:
KAPCSOLÓ
Kovács Levente Csaba – Timotei István Erdei
72. 5 I/O utasítások
5.1 Általános
5.2 Bináris ki- és bemenetek
5.3 Digitális ki- és bemenetek
5.4 Impulzuskimenetek
Kovács Levente Csaba – Timotei István Erdei
73. 5.3 Digitális ki- és bemenetek
Itt a „KI” signalnéven keresztül egy 11 bites ($OUT[10] To $OUT[20])
digitális kimenet van definiálva. Így a kimenetre ki lehet küldeni egy értéket:
KI = 35
KI = `B1000111`
KI = `H23`
Példa kód: SIGNAL KI $OUT[10] TO $OUT[20]
Kovács Levente Csaba – Timotei István Erdei
74. 5 I/O utasítások
5.1 Általános
5.2 Bináris ki- és bemenetek
5.3 Digitális ki- és bemenetek
5.4 Impulzuskimenetek
Kovács Levente Csaba – Timotei István Erdei
75. 5.4 Impulzuskimenetek
PULSE($OUT[4],TRUE,0.7) -> 4-es kimenet 0,7 másodpercig
TRUE(High)-ra, azaz logikai 1 értékre lesz állítva
Impulzus idők 0,012 és 231 másodperc között lehetségesek. A rácsnak
0,1 másodperc van.
Kovács Levente Csaba – Timotei István Erdei
76. Áttekintés:
1. Általános információk a KRL programokhoz
2. Változók és konstansok
3. Mozgás programozás
4. Program lefutás irányítás
5. I/O utasítások
6. Alprogramok és Függvények
7. Adatlisták
Kovács Levente Csaba – Timotei István Erdei
77. 6 Alprogramok és Függvények
6.1 Deklarálások
6.2 Meghívás és Paraméterátadás
Kovács Levente Csaba – Timotei István Erdei
78. 6.1 Deklarálások
• Lokális alprogramok / függvények => A főprogram alatt
• Globális alprogramok / függvények => Saját SRC-Fájl
• Függvények mint alprogramok
Példa kód: DEF ALPROG()
. . .
END
Példa kód: DEFFCT INT FÜGGVÉNY()
. . .
RETURN(X)
ENDFCT
Kovács Levente Csaba – Timotei István Erdei
79. Kulcsfontosságú mondatok:
• A főprogram adatlistájában (DAT-fájl) deklarált minden változó a lokális
alprogramok / függvények-ben érvényesek.
• A főprogramban (SRC-fájl) deklarált változók csak a főprogramban
érvényesek
• Egy főprogram nem tud egy másik főprogram alprogramjaihoz és
függvényeihez hozzáférni.
• Az alprogramok és függvények nevei egyenként maximum 24
karakterből állhatnak.
Kovács Levente Csaba – Timotei István Erdei
80. Különbségek Lokális és Globális
alprogramok között:
Kovács Levente Csaba – Timotei István Erdei
81. 6 Alprogramok és Függvények
6.1 Deklarálások
6.2 Meghívás és Paraméterátadás
Kovács Levente Csaba – Timotei István Erdei
82. 6.2 Meghívás és Paraméterátadás
• Call by value (IN)
• Call by value (OUT)
Példa kód: DEFFCT INT FUNCTION(SZÁM: IN)
INT SZÁM
SZÁM = SZÁM * SZÁM
RETURN(SZÁM)
ENDFCT
Példa kód: DEFFCT INT FUNCTION(SZÁM: OUT)
. . . Lásd fent. . .
ENDFCT
Kovács Levente Csaba – Timotei István Erdei
83. Áttekintés:
1. Általános információk a KRL programokhoz
2. Változók és konstansok
3. Mozgás programozás
4. Program lefutás irányítás
5. I/O utasítások
6. Alprogramok és Függvények
7. Adatlisták
Kovács Levente Csaba – Timotei István Erdei
84. 7 Adatlisták
7.1 Lokális adatlisták
7.2 Globális adatlisták
Kovács Levente Csaba – Timotei István Erdei
85. 7.1 Lokális adatlisták
Készletek:
• Az adatlista lokális, annak ellenére, hogy ő egy saját maga egy adat.
• Egy adatlistában csak deklarációk és inicializálások lehetnek.
• Ugyanabban a sorban lehet deklarálni és inicializálni is.
• A program lefutása után a változtatott értékek az adatlistában lesznek
tárolva.
Kovács Levente Csaba – Timotei István Erdei
86. 7 Adatlisták
7.1 Lokális adatlisták
7.2 Globális adatlisták
Kovács Levente Csaba – Timotei István Erdei
87. 7.2 Globális adatlisták 1
Kulcsszavak: IMPORT és PUBLIC:
Kovács Levente Csaba – Timotei István Erdei
88. 7.2 Globális adatlisták 2
Kulcsszavak: GLOBALIS és PUBLIKUS:
Kovács Levente Csaba – Timotei István Erdei
89. Áttekintés:
1. Általános információk a KRL programokhoz
2. Változók és konstansok
3. Mozgás programozás
4. Program lefutás irányítás
5. I/O utasítások
6. Alprogramok és Függvények
7. Adatlisták
Sikerült!
Köszönöm a figyelmet!
Kovács Levente Csaba – Timotei István Erdei