Sie sind auf Seite 1von 92

KRL Kuka Robot Language fr KRC V5.3.

5
Referent:

Gregor Franz

bersicht:
1.
2. 3. 4. 5.

Allgemeines zu KRL-Programmen
Variablen und Vereinbarungen Bewegungsprogrammierung Programmablaufkontrolle Ein-/Ausgabeanweisungen

6.
7.

Unterprogramme und Funktionen


Datenlisten

1 Allgemeines zu KRL-Programmen
1.1 1.2 1.3 1.4 1.5 Aufbau und Struktur von Programmen Programme erstellen und editieren ndern von Programmen Verstecken von Programmteilen Kommentare

1.1 Aufbau und Strukturen von Programmen

1.1.1 Dateienkonzept
Jedes Programm besteht aus 2 Dateien.
SRC-Datei (*.src)

DAT-Datei (*.dat)

1.1.2 Dateinstruktur

DEF PROGRAMMNAME(X1: IN)


Deklarationen Initialisierungen Anweisungen
Standardmig nicht sichtbar im Editor der KUKA HMI-Software

END

1 Allgemeines zu KRL-Programmen
1.1 1.2 1.3 1.4 1.5 Aufbau und Struktur von Programmen Programme erstellen und editieren ndern von Programmen Verstecken von Programmteilen Kommentare

1.2.1 Erstellen eines Programms


In der Bedienoberflche (KUKA HMI Software): Menleiste -> Datei -> Neu

Expert Expert Submit Function Modul und 2 weitere

1.2.2 Programm editieren, kompilieren und binden


Mit Softkey ffnen , unter der Anwahl der Datei, wird der Editor gestartet.
Beim Schlieen (Softkey Schlieen) des Editors wird das Programm gespeichert und kompiliert. Compiler: Fehler? => *.ERR-Datei Binder: => Softkey Anwhlen => Fehler? => *.ERR-Datei

1 Allgemeines zu KRL-Programmen
1.1 1.2 1.3 1.4 1.5 Aufbau und Struktur von Programmen Programme erstellen und editieren ndern von Programmen Verstecken von Programmteilen Kommentare

1.3 ndern von Programmen


Es gibt zwei Mglichkeiten mit der Kuka HMI Software Programme zu editieren:
- Programm-Korrektur-Modus (PROGKOR-Modus)

- Editor: => gewhnlichen Editor

1 Allgemeines zu KRL-Programmen
1.1 1.2 1.3 1.4 1.5 Aufbau und Struktur von Programmen Programme erstellen und editieren ndern von Programmen Verstecken von Programmteilen Kommentare

1.4 Verstecken von Programmteilen


- Versteckte Programmteile werden ab der Experten Benutzergruppe sichtbar - Versteckte Programmteile heien FOLD (von Folder = Ordner) - Beschrnkung der Informationsmenge (Detailansicht)
Code Bsp.: ;FOLD FOLDNAME Code Code ;ENDFOLD

1 Allgemeines zu KRL-Programmen
1.1 1.2 1.3 1.4 1.5 Aufbau und Struktur von Programmen Programme erstellen und editieren ndern von Programmen Verstecken von Programmteilen Kommentare

1.5 Kommentare

Code Bsp.:

;Kommentar

bersicht:
1.
2. 3. 4. 5.

Allgemeines zu KRL-Programmen
Variablen und Vereinbarungen Bewegungsprogrammierung Programmablaufkontrolle Ein-/Ausgabeanweisungen

6.
7.

Unterprogramme und Funktionen


Datenlisten

2 Variablen und Vereinbarungen


2.1
2.2

Variablen und Namen


Datenobjekte

2.3
2.4

Datenmanipulation
Systemvariablen und Systemdateien

2.1 Variablen und Namen


Namen: - maximal 24 Zeichen lang - Buchstaben(A-Z), Ziffern (0-9), sowie die Zeichen _ und $ - Nicht mit Ziffern beginnen - Keine Schlsselwrter sein
Code Bsp: P1_BIS_P12$ = 10 Lebensdauer einer Variablen - Innerhalb einer SRC-Datei deklariert -> beschrnkt auf die Laufzeit des Programms. - Innerhalb einer DAT-Datei deklariert -> solange DAT-Datei exsistiert

2 Variablen und Vereinbarungen


2.1
2.2

Variablen und Namen


Datenobjekte

2.3
2.4

Datenmanipulation
Systemvariablen und Systemdateien

2.2.1 Vereinbarungen und Initialisierung von Datenobjekten


- DECEL kann fr die Datentypen INT, REAL, CHAR, BOOL, POS, E6POS, FRAME, AXIS, E6AXIS entfallen.
- Daten vom Typ POS bentigt keine Deklaration (POS=> Standardtyp)
Code Bsp.: DECEL INT ANZAHL, NUMMER

2.2.2 Einfache Datentypen


Sclsselwort Bedeutung Wertebereich INT Ganze Zahlen -231 ... 231-1 REAL Gleitkommazahlen 1.1E-38...3.4E38 BOOL Zustand TRUE, FALSE CHAR 1 Zeichen ASCII-Zeichen

INT (32Bit): Wertezuweisungen knnen ber Dezimalzahlen (90), Binrzahlen (B1011110) und Hexadezimalzahlen (H5A) gemacht werden.

REAL:

Code Bsp.

Realzahl1 = -13.156 Realzahl2 = 10 Realzahl3 = 34.65 E-12

BOOL: CHAR:

Code Bsp. Code Bsp.

Zustand1 = TRUE Zustand2 = FALSE Zeichen1 = G Zeichen2 = ?

2.2.3 Felder (Arrays)

Code Bsp.

DECL INT OTTO[2] OTTO[1] = 5 OTTO[2] = 90

Der Indexzhler beginnt immer ab 1 !

2.2.4 Zeichenketten

Code Bsp.

DECL CHAR NAME[8] NAME[3] = G NAME[] = ABCDE

2.2.5 Strukturen
Daten-Typerzeugung am Beispiel der Struktur POS: STRUC POS REAL X,Y,Z,A,B,C, INT S,T
Punkt-Separator:

DECL POS POSITION ... POSITION.X = 34.4


Erlaubt Zugriff auf Strukturvariablen, oder Zugriff ber Aggregat: POSITION = {X 34.4, Y 23.5, ... ,T 6} POSITION = {POS : X 230,Y 0.0, ... ,T 5}

Vordefinierte Strukturen
In Datei $OPERATE.SRC definiert: STRUC STRUC STRUC STRUC STRUC AXIS REAL A1,A2,A3,A4,A5,A6 E6AXIS REAL A1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5,E6 FRAME REAL X,Y,Z,A,B,C POS REAL X,Y,Z,A,B,C, INT S,T E6POS REAL X,Y,Z,A,B,C,E1,E2,E3,E4,E5,E6, INT S,T

2.2.6 Aufzhltypen (ENUM)


Bsp. Daten-Typerzeugung: ENUM MODE_OP T1,T2,AUT,EX,INVALD
Bsp. Variablendeklaration: DECL MODE_OP $MODE_OP Bsp. Initialisierung / Abfragen : $MODE_OP = #T1

2 Variablen und Vereinbarungen


2.1
2.2

Variablen und Namen


Datenobjekte

2.3
2.4

Datenmanipulation
Systemvariablen und Systemdateien

2.3.1.1 Arithmetische Operatoren `+,-,*,/`


Bsp.: ERGEBNIS = VAR+5*VAR2/4-9

2.3.1.2 Geometrische Operatoren `:`


Bsp.: NEUSYS = BASIS:WERKZEUG
-fhrt zwischen den Datentypen FRAME und POS eine Frame-Verknpfung durch. -Frame-Verknpfung stellt eine Transformation von Koordinatensystemen dar. -Datentyp des Ergebnisses entspricht immer des rechts stehenden Operanden.

2.3.1.3 Vergleichsoperatoren

Operator ==

Beschreibung gleich

zulssige Datentypen INT, REAL, CHAR, ENUM, BOOL

<>
> <

ungleich
grer kleiner

INT, REAL, CHAR, ENUM, BOOL


INT, REAL, CHAR, ENUM INT, REAL, CHAR, ENUM

>=
<=

grer gleich
kleiner gleich

INT, REAL, CHAR, ENUM


INT, REAL, CHAR, ENUM

2.3.1.4 Logische Operatoren

Operator

Operandenzahl

Beschreibung

NOT
AND OR EXOR

1
2 2 2

Invertierung
logisches UND logisches ODER exklusives ODER

Code Bsp.

(A>5) AND (B<12)

2.3.1.5 Bit-Operatoren

Operator B_NOT B_AND B_OR B_EXOR

Operandenzahl 1 2 2 2

Beschreibung bitweise Invertierung bitweise UND--Verknpfung bitweise ODER--Verknpfung bitweise exklusive ODERVerknpfung

2.3.1.6 Prioritten von Operatoren

Prioritt 1 2 3 4 5 6 7

Operator NOT B_NOT */ +AND B_AND EXOR B_EXOR OR B_OR == <> < > >= <=

2.3.2 Standardfunktionen
Beschreibung
Betrag

Funktion
ABS(X)

Wertebereich Argument
-...+

Wertebereich Ergebnis
0...+

Wurzel
Sinus Cosinus Tangens Arcuscos. Arcustang.

SQRT(X)
SIN(X) COS(X) TAN(X) ACOS(x) ATAN2(Y,X)

0...+
-...+ -...+ -...+* -1...+1 -...+

0...+
-1...+1 -1...+1 -...+ 0...180 -90...+90

* keine ungeradzahlige Vielfache von 90, d.h. X (2k-1)*90, k Alle Datentypen sind vom Typ REAL

2 Variablen und Vereinbarungen


2.1
2.2

Variablen und Namen


Datenobjekte

2.3
2.4

Datenmanipulation
Systemvariablen und Systemdateien

2.4 Systemvariablen und Systemdateien


Alle Systemvariablen beginnen mit $ gefolgt vom Namen.
Bsp.: $POS_ACT $BASE $VEL.CP => aktuelle Roboterposition => Basiskoordinatensystem => Bahngeschwindigkeit

Und viele weitere hinterlegt in der KRC-Dokumentation => Systemvariablen.pdf Flags ($FLAG[1]bis $FLAG[1024]):

Knnen als globale Merker verwendet werden; Es gibt bis zu 1024 Flags z.B. $FLAG[1] = TRUE => gesetzt

2.4 Systemvariablen und Systemdateien


Zyklische Flags ($CYCFLAG[1] ... $CYCFLAG[32]):
Code Bsp.: $CYCFLAG[10] = $IN[2] AND $IN[3]

Hier: $IN[2] und $IN[3] werden zyklisch ausgewertet. Egal wo der Programmlaufzeiger steht, wird die $CYCFLAG[10] beschreiben bzw. verndert.

Bei einer Zuweisung einer zyklischen Flag sind zulssig: boolesche Systemvariablen und boolesche Variablen, welche in einer Datenliste deklariert und initialisiert wurden. Unzulssig sind: Funktionen, welche einen booleschen Wert zurckliefern

2.4 Systemvariablen und Systemdateien


Timer: 16 Timervariablen $TIMER[1] ... $TIMER[16]
Code Bsp.: Starten des Timers 4: Stoppen des Timers 4: Setzen des Timers 4: $TIMER_STOP[4] = FALSE $TIMER_STOP[4] = TRUE $TIMER[4] = 0

Initialisierung der Timer bei Steuerungshochlauf mit: $TIMER_FLAG[1] bis [16] = FALSE $TIMER_STOP[1] bis [16] = TRUE $TIMER[1] bis [16] = 0 Timervariablen in Millisekunden (ms). Aktualisierung erfolgt alle 12ms.

2.4 Systemvariablen und Systemdateien


Vordefinierte Datenlisten mit vordefinierten Systemvariablen $MACHINE.DAT $CUSTOM.DAT $CONFIG.DAT $ROBOTER.DAT

bersicht:
1.
2. 3. 4. 5.

Allgemeines zu KRL-Programmen
Variablen und Vereinbarungen Bewegungsprogrammierung Programmablaufkontrolle Ein-/Ausgabeanweisungen

6.
7.

Unterprogramme und Funktionen


Datenlisten

3 Bewegungsprogrammierung
3.1
3.2

Verwendung verschiedener Koordinatensysteme


Punkt-zu-Punkt Bewegungen (PTP)

3.3
3.4

Bahnbewegungen (CP-Bewegungen = Continous Path)


Rechnervorlauf

3.5
3.6

berschleifbewegung
Teachen von Punkten

3.1 Verwendung verschiedener Koordinatensysteme


Koordinatensystem Weltkoordinatensystem Roboterkoordinatensystem Werkzeugkoordinatensystem Basis(Werkstck-)koordinatensystem Systemvariable $WORLD $ROBROOT $TOOL $BASE Status schreibgeschtzt schreibgeschtzt beschreibbar beschreibbar

3 Bewegungsprogrammierung
3.1
3.2

Verwendung verschiedener Koordinatensysteme


Punkt-zu-Punkt Bewegungen (PTP)

3.3
3.4

Bahnbewegungen (CP-Bewegungen = Continous Path)


Rechnervorlauf

3.5
3.6

berschleifbewegung
Teachen von Punkten

3.2.1 Allgemein (Synchron-PTP)


Bedeutung: Nur die fhrende Achse verfhrt mit den programmierten Grenzwerten fr Beschleunigung und Geschwindigkeit.
$VEL_AXIS[Achsnummer] in Prozent $ACC_AXIS[Achsennummer] in Prozent Bezieht sich auf hinterlegten Hchstwert

3.2.3 Hheres Fahrprofil ($OPT_MODE = #STEP1)


Die Geschwindigkeiten werden immer dem maximal zulssigen Momenten angepasst. Die Geschwindigkeits- und Beschleunigungswerte wirken sich unmittelbar auf die maximal zulssigen Beschleunigungsmomente aus.

3.2.3 Bewegungsbefehle
PTP {A1 0,A2 90,A3 90,A4 0,A5 0,A6 30}
Absolutbewegung mit Achskoordinaten PTP_REL {A1 35,A3 45} Realtivbewegung, wobei hier nur Achse 3 und 1 bewegt werden NULLFRAME: $NULLFRAME = {FRAME: X 0,Y 0,Z 0,A 0,B 0,C 0}

S (Status) und T (Turn): Um Eindeutigkeit der Roboterstellung herzustellen.

S (Status) und T (Turn):


T:
Wert 0 1 Bit 5 A6 >= 0 A6 < 0 Bit 4 A5 >= 0 A5 < 0 Bit 3 A4 >= 0 A4 < 0 Bit 2 A3 >= 0 A3 < 0 Bit 1 A2 >= 0 A2 < 0 Bit 0 A1 >= 0 A1 < 0

S:
0 1

Wert

Bit 2
0 <= A5 < 180 A5 < -180 -180 <= A5 < 0 A5 >= 180

Bit 1
A3 < ( hngt vom Robotertyp ab) A3 >= ( hngt vom Robotertyp ab)

Bit 0
Grundbereich

berkopfbereich

3 Bewegungsprogrammierung
3.1
3.2

Verwendung verschiedener Koordinatensysteme


Punkt-zu-Punkt Bewegungen (PTP)

3.3
3.4

Bahnbewegungen (CP-Bewegungen = Continous Path)


Rechnervorlauf

3.5
3.6

berschleifbewegung
Teachen von Punkten

3.3.1 Geschwindigkeiten und Beschleunigung (des TCP)


Variablenname Geschwindigkeiten $VEL.CP m/s Einheit Funktion Bahngeschwindigkeit

$VEL.ORI1
$VEL.ORI2 Beschleunigungen $ACC.CP $ACC.ORI1 $ACC.ORI2 Alle Variablen sind vom Typ REAL

/s
/s m/s /s /s

Schwenkgeschwindigkeit
Drehgeschwindigkeit Bahnbeschleunigung Schwenkbeschleunigung Drehbeschleunigung

3.3.2 Orientierungsfhrung (des TCP)


Bei Linearbewegung: $ORI_TYPE = #CONSTANT Orientierung im Raum ndert sich nicht $ORI_TYPE = #VAR Orientierung im Raum ndert sich z.B.:

Bei Kreisbewegung (CIRC): $CIRC_TYPE = #BASE $CIRC_TYPE = #VAR

Raumbezogene Orientierung Bahnbezogene Orientierung

Durch die Standardinitialisierung eines Programms mit BAS(#INITMOV,0) werden die Systemvariablen $ORI_TYPE = #VAR und $CIRC_TYPE = #BASE gesetzt.

3.3.3 Linearbewegung
LIN => Absolutbewegung mit kartesischen Koordinaten LIN_REL => Relativbewegung in kartesischen Koordinaten Bei beiden Befehlen sind nur die Datentypen FRAME oder POS zulssig
Der Winkelstatus S und T des Endpunktes ist immer gleich der des Startpunkts, weil S u. T ignoriert werden. Somit ist HOME-Fahrt notwendig damit SAK erreicht wird.

3.3.4 Kreisbewegung
CIRC CIRC_REL => Absolutbewegung mit kartesischen Koordinaten => Relativbewegung ausgehend von Startposition mit kartesischen Koordinaten.

Code Bsp.:

CIRC {Hilfspunkt-Koodinaten}, {Zielpunkt-Koordinaten} CA 235.0

3 Bewegungsprogrammierung
3.1
3.2

Verwendung verschiedener Koordinatensysteme


Punkt-zu-Punkt Bewegungen (PTP)

3.3
3.4

Bahnbewegungen (CP-Bewegungen = Continous Path)


Rechnervorlauf

3.5
3.6

berschleifbewegung
Teachen von Punkten

3.4 Rechnervorlauf
ber die Systemvariable $ADVANCE wird der Vorlauf in maximal zuvor abgearbeiteten Bewegungsstzen eingestellt. Der Hauptlaufzeiger eilt diesem nach und ist sichtbar durch den gelben Pfeil dargestellt. Ein automatischer Vorlaufstop kann durch bestimmte Systemvariablen verursacht werden. Der Vorlaufstop kann mit CONTINUE aufgehoben werden, gilt jedoch nur fr die folgende Zeile.
z.B. durch

WAIT SEC 0

3 Bewegungsprogrammierung
3.1
3.2

Verwendung verschiedener Koordinatensysteme


Punkt-zu-Punkt Bewegungen (PTP)

3.3
3.4

Bahnbewegungen (CP-Bewegungen = Continous Path)


Rechnervorlauf

3.5
3.6

berschleifbewegung
Teachen von Punkten

3.5 berschleifbewegung

Der Programmierer hat nur Einfluss auf Beginn und Ende des berschleifens. Der Rechnervorlauf ($ADVANCE =1) muss mindestens auf 1 gesetzt sein und kein automatischer Vorlaufstop sollte zuvor eingelegt werden.

3.5.1 PTP-PTP-berschleifen
In Maschinendaten ist fr jede Achse ein Winkel vordefiniert: $APO_DIS_PTP[1] bis [6]=90 ber $APO.CPTP = Prozentsatz lsst sich der Beginn des berschleifens einstellen. Je grer dieser Prozentsatz, desto mehr wird die Bahn abgerundet.

3.5.2 LIN-LIN-berschleifen
Als berschleifkontur wird eine Parabelfrmige Bahn berechnet. berschleifbeginn mit:
Variable $APO.CDIS $APO.CORI $APO.CVEL Datentyp REAL REAL INT Einheit mm % Bedeutung Translatorisches Distanzkriterium Orientierungsdistanz Geschwindigkeitskriterium Schlsselwort C_DIS C_ORI C_VEL

3.5.3 CIRC-CIRC-berschleifen und CIRC-LIN-berschleifen

3 Bewegungsprogrammierung
3.1
3.2

Verwendung verschiedener Koordinatensysteme


Punkt-zu-Punkt Bewegungen (PTP)

3.3
3.4

Bahnbewegungen (CP-Bewegungen = Continous Path)


Rechnervorlauf

3.5
3.6

berschleifbewegung
Teachen von Punkten

3.6 Teachen von Punkten


Codezeile:
Code Bsp: Handgesteuertes Anfahren PTP !

bersicht:
1.
2. 3. 4. 5.

Allgemeines zu KRL-Programmen
Variablen und Vereinbarungen Bewegungsprogrammierung Programmablaufkontrolle Ein-/Ausgabeanweisungen

6.
7.

Unterprogramme und Funktionen


Datenlisten

4 Programmablaufkontrolle
4.1
4.2

Programmverzweigungen
Schleifen

4.3
4.4

Warteanweisungen
Anhalten eines Programms

4.1 Programmverzweigungen
Sprunganweisungen (GOTO) Code Bsp.: GOTO MARKE
... MARKE:

Bedingte Verzweigung (IF)

Code Bsp.: IF (Ausfhrbedingung) THEN Anweisung ELSE Anweisung ENDIF

Verteiler (SWITCH)

Code Bsp.: SWITCH PROG_NR CASE 1 ... CASE #NO1 ... DEFAULT ENDSWITCH

4 Programmablaufkontrolle
4.1
4.2

Programmverzweigungen
Schleifen

4.3
4.4

Warteanweisungen
Anhalten eines Programms

4.2 Schleifen
FOR-Schleife
Code Bsp.: FOR Zhler=Start TO Ende STEP Schrittweite Anweisungen ENDFOR
Code Bsp.: WHILE (Ausfhrbedingung ) Anweisungen ENDWHILE Code Bsp.: REPEAT Anweisungen UNTIL (Abbruchbedingung) Code Bsp.: LOOP Anweisungen ENDLOOP

WHILE-Schleife

REPEAT-Schleife

Endlosschleife (LOOP)

Schleifenabbruch (EXIT) => beendet Schleife vorzeitig

4 Programmablaufkontrolle
4.1
4.2

Programmverzweigungen
Schleifen

4.3
4.4

Warteanweisungen
Anhalten eines Programms

4.3 Warteanweisungen
Bedingte Warteanweisung
Code Bsp.: WAIT FOR (Bedingung)

Wartezeiten Code Bsp.: WAIT SEC Zeit

4 Programmablaufkontrolle
4.1
4.2

Programmverzweigungen
Schleifen

4.3
4.4

Warteanweisungen
Anhalten eines Programms

4.4 Anhalten des Programms


HALT
BRAKE

=> Unterbricht das Programm, fhrt jedoch die letzte Anweisung aus. => Anweisung wird sofort angehalten

bersicht:
1.
2. 3. 4. 5.

Allgemeines zu KRL-Programmen
Variablen und Vereinbarungen Bewegungsprogrammierung Programmablaufkontrolle Ein-/Ausgabeanweisungen

6.
7.

Unterprogramme und Funktionen


Datenlisten

5 Ein-/Ausgabeanweisungen
5.1 Allgemeines
5.2 Binre Ein-/Ausgnge

5.3 Digitale Ein-/Ausgnge


5.4 Impulsausgnge

5.1 Allgemeines
Kuka-Standartsteuerschrank -> Stecker X-11 (MFC-Baugruppe) sind folgende Ein- und Ausgnge:
Eingnge 1 ... 16 Ausgnge 1 ... 16 (mit max. 100mA belastbar; 100% Gleichzeitigkeit) Ausgnge17 ... 20 (mit max. 2A belastbar; 100% Gleichzeitigkeit)

ber die Variablen $IN[Nr] bzw. $OUT[Nr] werden diese angesprochen. Jeder Zugriff auf diese Variablen lst Vorlaufstopp aus.

5 Ein-/Ausgabeanweisungen
5.1 Allgemeines
5.2 Binre Ein-/Ausgnge

5.3 Digitale Ein-/Ausgnge


5.4 Impulsausgnge

5.2 Binre Ein-/Ausgnge


$OUT[Nr] = TRUE $OUT[Nr] = FALSE
Werden Ein-/Ausgnge einzeln angesprochen, so sind diese binre Ein-/Ausgnge. SIGNAL -> Es ist mglich Ein-/Ausgngen Namen ber SIGNAL zuzuweisen Code Bsp: BOOL SCHALTER SIGNAL SCHALTER $IN[5]
Nun ist der Name des Eingangs 5 = Schalter

5 Ein-/Ausgabeanweisungen
5.1 Allgemeines
5.2 Binre Ein-/Ausgnge

5.3 Digitale Ein-/Ausgnge


5.4 Impulsausgnge

5.3 Digitale Ein-/Ausgnge

Code Bsp:

SIGNAL AUS $OUT[10] TO $OUT[20]

Hier wird ber den Signalnamen AUS ein Digitaler Ausgang von 11Bit ($OUT[10] To $OUT[20]) definiert. Dem Ausgang kann nun ein Wert bermittelt werden: AUS = 35 AUS = `B1000111` AUS = `H23`

5 Ein-/Ausgabeanweisungen
5.1 Allgemeines
5.2 Binre Ein-/Ausgnge

5.3 Digitale Ein-/Ausgnge


5.4 Impulsausgnge

5.4 Impulsausgnge
PULSE($OUT[4],TRUE,0.7) -> Ausgang 4 wird 0,7 Sekunden auf TRUE(High) gesetzt.
Impulszeiten zwischen 0,012 und 231 Sekunden sind mglich. Das Raster hat 0,1 Sekunde.

bersicht:
1.
2. 3. 4. 5.

Allgemeines zu KRL-Programmen
Variablen und Vereinbarungen Bewegungsprogrammierung Programmablaufkontrolle Ein-/Ausgabeanweisungen

6.
7.

Unterprogramme und Funktionen


Datenlisten

6 Unterprogramme und Funktionen


6.1 Deklarationen
6.2 Aufruf und Parameterbergabe

6.1 Deklarationen
Code Bsp.: DEF UNTERPROG() ... END

Lokale Unterprogramme/ Funktionen => Unterhalb des Hauptprogramms Globale Unterprogramme/ Funktionen => Eigene SRC-Datei Funktionen als Unterprogramm Code Bsp.: DEFFCT INT FUNKTION() ... RETURN(X) ENDFCT

Wichtige Stze:
Alle in der Datenliste (DAT-Datei) des Hauptprogramms deklarierten Variablen sind in den lokalen Unterprogrammen/Funktionen bekannt.
Alle im Hauptprogramm (SRC-Datei) deklarierten Variabeln sind nur dem Hauptprogramm bekannt. Ein Hauptprogramm kann nicht auf lokale Unterprogramme oder Funktionen eines anderen Hauptprogramms zugreifen. Der Name von Unterprogrammen/ Funktionen darf 24 Zeichen lang sein.

Unterschied zwischen lokalen und globalen Unterprogrammen:

6 Unterprogramme und Funktionen


6.1 Deklarationen
6.2 Aufruf und Parameterbergabe

6.2 Aufruf und Parameterbergabe


Call by value (IN)
Code Bsp.: DEFFCT INT FUNCTION(ZAHL: IN) INT ZAHL ZAHL = ZAHL* ZAHL RETURN(ZAHL) ENDFCT

Call by value (OUT)


Code Bsp.: DEFFCT INT FUNCTION(ZAHL: OUT) . . . siehe oben . . . ENDFCT

bersicht:
1.
2. 3. 4. 5.

Allgemeines zu KRL-Programmen
Variablen und Vereinbarungen Bewegungsprogrammierung Programmablaufkontrolle Ein-/Ausgabeanweisungen

6.
7.

Unterprogramme und Funktionen


Datenlisten

7 Datenlisten
7.1 Lokale Datenlisten
7.2 Globale Datenlisten

7.1 Lokale Datenlisten


Stze: Die Datenliste ist lokal, obwohl sie eine eigene Datei ist. In einer Datenliste drfen nur Deklarationen und Initialisierungen stehen. Es kann in einer Zeile deklariert und initialisiert werden. Nach Ausfhren des Programms werden vernderte Werte in Datenliste gespeichert.

7.2 Globale Datenlisten


Schlsselwrter IMPORT und PUBLIC:

7 Datenlisten
7.1 Lokale Datenlisten
7.2 Globale Datenlisten

7.2 Globale Datenlisten


Schlsselwrter GLOBAL und PUBLIC:

bersicht:
1.
2. 3. 4. 5.

Allgemeines zu KRL-Programmen
Variablen und Vereinbarungen Bewegungsprogrammierung Programmablaufkontrolle

Geschafft! Vielen Dank frs Zuhren!

Ein-/Ausgabeanweisungen

6.
7.

Unterprogramme und Funktionen


Datenlisten