Vortrag_KRL - robocup.hs

Werbung
KRL Kuka Robot Language
für KRC V5.3.5
Referent:
Gregor Franz
Übersicht:
1.
Allgemeines zu KRL-Programmen
2.
Variablen und Vereinbarungen
3.
Bewegungsprogrammierung
4.
Programmablaufkontrolle
5.
Ein-/Ausgabeanweisungen
6.
Unterprogramme und Funktionen
7.
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
END
Standardmäßig nicht
sichtbar im Editor der
KUKA HMI-Software
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 Bedienoberfläche (KUKA HMI Software):
Menüleiste -> 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 Schließen (Softkey „Schließen“) des Editors wird das
Programm gespeichert und kompiliert.
Compiler: Fehler? => *.ERR-Datei
Binder: => Softkey „Anwählen“ => 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 Möglichkeiten mit der Kuka HMI Software
Programme zu editieren:
- Programm-Korrektur-Modus (PROGKOR-Modus)
- Editor: => gewöhnlichen 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 heißen „FOLD“ (von Folder =
Ordner)
- Beschränkung 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.
Allgemeines zu KRL-Programmen
2.
Variablen und Vereinbarungen
3.
Bewegungsprogrammierung
4.
Programmablaufkontrolle
5.
Ein-/Ausgabeanweisungen
6.
Unterprogramme und Funktionen
7.
Datenlisten
2 Variablen und Vereinbarungen
2.1
Variablen und Namen
2.2
Datenobjekte
2.3
Datenmanipulation
2.4
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 Schlüsselwörter sein
Code Bsp: P1_BIS_P12$ = 10
Lebensdauer einer Variablen
- Innerhalb einer SRC-Datei deklariert -> beschränkt auf die
Laufzeit des Programms.
- Innerhalb einer DAT-Datei deklariert -> solange DAT-Datei
exsistiert
2 Variablen und Vereinbarungen
2.1
Variablen und Namen
2.2
Datenobjekte
2.3
Datenmanipulation
2.4
Systemvariablen und Systemdateien
2.2.1 Vereinbarungen und Initialisierung
von Datenobjekten
- DECEL kann für die Datentypen INT, REAL, CHAR, BOOL,
POS, E6POS, FRAME, AXIS, E6AXIS entfallen.
- Daten vom Typ POS benötigt keine Deklaration (POS=>
Standardtyp)
Code Bsp.:
DECEL INT ANZAHL, NUMMER
2.2.2 Einfache Datentypen
Sclüsselwort
INT
REAL
BOOL
CHAR
Bedeutung
Ganze Zahlen
Gleitkommazahlen
Zustand
1 Zeichen
Wertebereich
-231 ... 231-1
1.1E-38...3.4E38
TRUE, FALSE
ASCII-Zeichen
• INT (32Bit):
Wertezuweisungen können über Dezimalzahlen (90), Binärzahlen
(B1011110) und Hexadezimalzahlen (H5A) gemacht werden.
• REAL:
Code Bsp.
Realzahl1 = -13.156
Realzahl2 = 10
Realzahl3 = 34.65 E-12
• BOOL:
Code Bsp.
Zustand1 = TRUE
Zustand2 = FALSE
• CHAR:
Code Bsp.
Zeichen1 = „G”
Zeichen2 = „?“
2.2.3 Felder (Arrays)
Code Bsp.
DECL INT OTTO[2]
…
OTTO[1] = 5
OTTO[2] = 90
Der Indexzähler 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 Aufzähltypen (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
Variablen und Namen
2.2
Datenobjekte
2.3
Datenmanipulation
2.4
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
-führt zwischen den Datentypen FRAME und POS eine Frame-Verknüpfung durch.
-Frame-Verknüpfung stellt eine Transformation von Koordinatensystemen dar.
-Datentyp des Ergebnisses entspricht immer des rechts stehenden Operanden.
2.3.1.3 Vergleichsoperatoren
Operator
Beschreibung
zulässige Datentypen
==
gleich
INT, REAL, CHAR, ENUM, BOOL
<>
ungleich
INT, REAL, CHAR, ENUM, BOOL
>
größer
INT, REAL, CHAR, ENUM
<
kleiner
INT, REAL, CHAR, ENUM
>=
größer gleich
INT, REAL, CHAR, ENUM
<=
kleiner gleich
INT, REAL, CHAR, ENUM
2.3.1.4 Logische Operatoren
Operator
Operandenzahl
Beschreibung
NOT
1
Invertierung
AND
2
logisches UND
OR
2
logisches ODER
2
exklusives ODER
EXOR
Code Bsp.
(A>5) AND (B<12)
2.3.1.5 Bit-Operatoren
Operator
Operandenzahl
Beschreibung
B_NOT
1
bitweise Invertierung
B_AND
2
bitweise UND--Verknüpfung
B_OR
2
bitweise ODER--Verknüpfung
B_EXOR
2
bitweise exklusive ODER—Verknüpfung
2.3.1.6 Prioritäten von Operatoren
Priorität
Operator
NOT B_NOT
1
2
* /
3
+ -
4
AND B_AND
5
EXOR B_EXOR
6
OR B_OR
7
== <> < > >= <=
2.3.2 Standardfunktionen
Beschreibung
Funktion
Wertebereich
Argument
Wertebereich
Ergebnis
Betrag
ABS(X)
-∞...+∞
0...+∞
Wurzel
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°
* keine ungeradzahlige Vielfache von 90°, d.h. X ¸ (2k-1)*90°, k
Alle Datentypen sind vom Typ REAL
2 Variablen und Vereinbarungen
2.1
Variablen und Namen
2.2
Datenobjekte
2.3
Datenmanipulation
2.4
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]):
Können 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.
verändert.
Bei einer Zuweisung einer zyklischen Flag sind zulässig:
• boolesche Systemvariablen und
• boolesche Variablen, welche in einer Datenliste deklariert und initialisiert
wurden.
Unzulässig sind:
• Funktionen, welche einen booleschen Wert zurückliefern
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.
Allgemeines zu KRL-Programmen
2.
Variablen und Vereinbarungen
3.
Bewegungsprogrammierung
4.
Programmablaufkontrolle
5.
Ein-/Ausgabeanweisungen
6.
Unterprogramme und Funktionen
7.
Datenlisten
3 Bewegungsprogrammierung
3.1
Verwendung verschiedener Koordinatensysteme
3.2
Punkt-zu-Punkt Bewegungen (PTP)
3.3
Bahnbewegungen (CP-Bewegungen = Continous Path)
3.4
Rechnervorlauf
3.5
Überschleifbewegung
3.6
Teachen von Punkten
3.1 Verwendung verschiedener
Koordinatensysteme
Koordinatensystem
Systemvariable
Status
Weltkoordinatensystem
$WORLD
schreibgeschützt
Roboterkoordinatensystem
$ROBROOT
schreibgeschützt
Werkzeugkoordinatensystem
$TOOL
beschreibbar
Basis(Werkstück-)koordinatensystem
$BASE
beschreibbar
3 Bewegungsprogrammierung
3.1
Verwendung verschiedener Koordinatensysteme
3.2
Punkt-zu-Punkt Bewegungen (PTP)
3.3
Bahnbewegungen (CP-Bewegungen = Continous Path)
3.4
Rechnervorlauf
3.5
Überschleifbewegung
3.6
Teachen von Punkten
3.2.1 Allgemein (Synchron-PTP)
Bedeutung:
Nur die führende Achse verfährt mit den programmierten
Grenzwerten für Beschleunigung und Geschwindigkeit.
-
$VEL_AXIS[Achsnummer] in Prozent
$ACC_AXIS[Achsennummer] in Prozent
Bezieht sich auf hinterlegten Höchstwert
3.2.3 Höheres Fahrprofil
($OPT_MODE = #STEP1)
• Die Geschwindigkeiten werden immer dem maximal zulässigen
Momenten angepasst.
• Die Geschwindigkeits- und Beschleunigungswerte wirken sich
unmittelbar auf die maximal zulässigen
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
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°
Wert
Bit 2
Bit 1
Bit 0
0
0° <= A5 < 180°
A5 < -180°
A3 < Ф
(Ф hängt vom
Robotertyp ab)
Grundbereich
1
-180° <= A5 < 0°
A5 >= 180°
A3 >= Ф
(Ф hängt vom
Robotertyp ab)
Überkopfbereich
S:
3 Bewegungsprogrammierung
3.1
Verwendung verschiedener Koordinatensysteme
3.2
Punkt-zu-Punkt Bewegungen (PTP)
3.3
Bahnbewegungen (CP-Bewegungen = Continous Path)
3.4
Rechnervorlauf
3.5
Überschleifbewegung
3.6
Teachen von Punkten
3.3.1 Geschwindigkeiten und
Beschleunigung (des TCP)
Variablenname
Geschwindigkeiten
Beschleunigungen
Einheit
Funktion
$VEL.CP
m/s
Bahngeschwindigkeit
$VEL.ORI1
°/s
Schwenkgeschwindigkeit
$VEL.ORI2
°/s
Drehgeschwindigkeit
$ACC.CP
m/s²
Bahnbeschleunigung
$ACC.ORI1
°/s²
Schwenkbeschleunigung
$ACC.ORI2
°/s²
Drehbeschleunigung
Alle Variablen sind vom Typ REAL
3.3.2 Orientierungsführung (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 zulässig
•
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
Verwendung verschiedener Koordinatensysteme
3.2
Punkt-zu-Punkt Bewegungen (PTP)
3.3
Bahnbewegungen (CP-Bewegungen = Continous Path)
3.4
Rechnervorlauf
3.5
Überschleifbewegung
3.6
Teachen von Punkten
3.4 Rechnervorlauf
Über die Systemvariable $ADVANCE wird der Vorlauf in maximal zuvor
abgearbeiteten Bewegungssätzen 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 für die folgende Zeile.
z.B. durch
WAIT SEC 0
3 Bewegungsprogrammierung
3.1
Verwendung verschiedener Koordinatensysteme
3.2
Punkt-zu-Punkt Bewegungen (PTP)
3.3
Bahnbewegungen (CP-Bewegungen = Continous Path)
3.4
Rechnervorlauf
3.5
Überschleifbewegung
3.6
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 für jede Achse ein Winkel vordefiniert:
$APO_DIS_PTP[1] bis [6]=90
Über $APO.CPTP = Prozentsatz lässt sich der Beginn des
Überschleifens einstellen.
Je größer dieser Prozentsatz, desto mehr wird die Bahn abgerundet.
3.5.2 LIN-LIN-Überschleifen
Als Überschleifkontur wird eine Parabelförmige Bahn berechnet.
Überschleifbeginn mit:
Variable
Datentyp
Einheit
Bedeutung
Schlüsselwort
$APO.CDIS
REAL
mm
Translatorisches Distanzkriterium
$APO.CORI
REAL
°
Orientierungsdistanz
C_ORI
$APO.CVEL
INT
%
Geschwindigkeitskriterium
C_VEL
C_DIS
3.5.3 CIRC-CIRC-Überschleifen und
CIRC-LIN-Überschleifen
3 Bewegungsprogrammierung
3.1
Verwendung verschiedener Koordinatensysteme
3.2
Punkt-zu-Punkt Bewegungen (PTP)
3.3
Bahnbewegungen (CP-Bewegungen = Continous Path)
3.4
Rechnervorlauf
3.5
Überschleifbewegung
3.6
Teachen von Punkten
3.6 Teachen von Punkten
•
Codezeile:
Code Bsp:
•
Handgesteuertes Anfahren
PTP !
Übersicht:
1.
Allgemeines zu KRL-Programmen
2.
Variablen und Vereinbarungen
3.
Bewegungsprogrammierung
4.
Programmablaufkontrolle
5.
Ein-/Ausgabeanweisungen
6.
Unterprogramme und Funktionen
7.
Datenlisten
4 Programmablaufkontrolle
4.1
Programmverzweigungen
4.2
Schleifen
4.3
Warteanweisungen
4.4
Anhalten eines Programms
4.1 Programmverzweigungen
•
Sprunganweisungen (GOTO) Code Bsp.:GOTO MARKE
...
MARKE:
•
Bedingte Verzweigung (IF)
Code Bsp.:
IF (Ausführbedingung) THEN
Anweisung
ELSE
Anweisung
ENDIF
•
Verteiler (SWITCH)
Code Bsp.: SWITCH PROG_NR
CASE 1
...
CASE #NO1
...
DEFAULT
ENDSWITCH
4 Programmablaufkontrolle
4.1
Programmverzweigungen
4.2
Schleifen
4.3
Warteanweisungen
4.4
Anhalten eines Programms
4.2 Schleifen
•
FOR-Schleife
Code Bsp.:FOR Zähler=Start TO Ende STEP Schrittweite
Anweisungen
ENDFOR
•
WHILE-Schleife
Code Bsp.:WHILE (Ausführbedingung )
Anweisungen
ENDWHILE
•
REPEAT-Schleife
Code Bsp.:REPEAT
Anweisungen
UNTIL (Abbruchbedingung)
•
Endlosschleife (LOOP)
Code Bsp.:LOOP
Anweisungen
ENDLOOP
•
Schleifenabbruch (EXIT) => beendet Schleife vorzeitig
4 Programmablaufkontrolle
4.1
Programmverzweigungen
4.2
Schleifen
4.3
Warteanweisungen
4.4
Anhalten eines Programms
4.3 Warteanweisungen
•
Bedingte Warteanweisung
Code Bsp.:
•
WAIT FOR (Bedingung)
Wartezeiten
Code Bsp.:
WAIT SEC Zeit
4 Programmablaufkontrolle
4.1
Programmverzweigungen
4.2
Schleifen
4.3
Warteanweisungen
4.4
Anhalten eines Programms
4.4 Anhalten des Programms
• HALT
• BRAKE
=> Unterbricht das Programm, führt jedoch die letzte
Anweisung aus.
=> Anweisung wird sofort angehalten
Übersicht:
1.
Allgemeines zu KRL-Programmen
2.
Variablen und Vereinbarungen
3.
Bewegungsprogrammierung
4.
Programmablaufkontrolle
5.
Ein-/Ausgabeanweisungen
6.
Unterprogramme und Funktionen
7.
Datenlisten
5 Ein-/Ausgabeanweisungen
5.1 Allgemeines
5.2 Binäre Ein-/Ausgänge
5.3 Digitale Ein-/Ausgänge
5.4 Impulsausgänge
5.1 Allgemeines
Kuka-Standartsteuerschrank -> Stecker X-11 (MFC-Baugruppe) sind
folgende Ein- und Ausgänge:
Eingänge 1 ... 16
Ausgänge 1 ... 16 (mit max. 100mA belastbar; 100% Gleichzeitigkeit)
Ausgänge17 ... 20 (mit max. 2A belastbar; 100% Gleichzeitigkeit)
•
Über die Variablen $IN[Nr] bzw. $OUT[Nr] werden diese angesprochen.
Jeder Zugriff auf diese Variablen löst Vorlaufstopp aus.
5 Ein-/Ausgabeanweisungen
5.1 Allgemeines
5.2 Binäre Ein-/Ausgänge
5.3 Digitale Ein-/Ausgänge
5.4 Impulsausgänge
5.2 Binäre Ein-/Ausgänge
$OUT[Nr] = TRUE
$OUT[Nr] = FALSE
Werden Ein-/Ausgänge einzeln angesprochen, so sind diese binäre Ein-/Ausgänge.
SIGNAL -> Es ist möglich Ein-/Ausgängen 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 Binäre Ein-/Ausgänge
5.3 Digitale Ein-/Ausgänge
5.4 Impulsausgänge
5.3 Digitale Ein-/Ausgänge
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 Binäre Ein-/Ausgänge
5.3 Digitale Ein-/Ausgänge
5.4 Impulsausgänge
5.4 Impulsausgänge
PULSE($OUT[4],TRUE,0.7) -> Ausgang 4 wird 0,7 Sekunden auf
TRUE(High) gesetzt.
Impulszeiten zwischen 0,012 und 231 Sekunden sind möglich. Das Raster
hat 0,1 Sekunde.
Übersicht:
1.
Allgemeines zu KRL-Programmen
2.
Variablen und Vereinbarungen
3.
Bewegungsprogrammierung
4.
Programmablaufkontrolle
5.
Ein-/Ausgabeanweisungen
6.
Unterprogramme und Funktionen
7.
Datenlisten
6 Unterprogramme und Funktionen
6.1 Deklarationen
6.2 Aufruf und Parameterübergabe
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 Sätze:
•
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 Parameterübergabe
6.2 Aufruf und Parameterübergabe
• 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.
Allgemeines zu KRL-Programmen
2.
Variablen und Vereinbarungen
3.
Bewegungsprogrammierung
4.
Programmablaufkontrolle
5.
Ein-/Ausgabeanweisungen
6.
Unterprogramme und Funktionen
7.
Datenlisten
7 Datenlisten
7.1 Lokale Datenlisten
7.2 Globale Datenlisten
7.1 Lokale Datenlisten
Sätze:
• Die Datenliste ist lokal, obwohl sie eine eigene Datei ist.
• In einer Datenliste dürfen nur Deklarationen und Initialisierungen
stehen.
• Es kann in einer Zeile deklariert und initialisiert werden.
• Nach Ausführen des Programms werden veränderte Werte in
Datenliste gespeichert.
7.2 Globale Datenlisten
Schlüsselwörter IMPORT und PUBLIC:
7 Datenlisten
7.1 Lokale Datenlisten
7.2 Globale Datenlisten
7.2 Globale Datenlisten
Schlüsselwörter GLOBAL und PUBLIC:
Übersicht:
1.
Allgemeines zu KRL-Programmen
2.
Variablen und Vereinbarungen
3.
Bewegungsprogrammierung
4.
Programmablaufkontrolle
5.
Ein-/Ausgabeanweisungen
6.
Unterprogramme und Funktionen
7.
Datenlisten
Geschafft!
Vielen Dank für‘s Zuhören!
Herunterladen