Testen der Konfiguration in der Simulation

In einer Simulation kann man die Konfiguration der Universalkinematik mithilfe eines NC-Programms leicht testen, wenn man eine ungefähre Vorstellung hat, welche Achsbewegung beim Fahren unter Trafo zu erwarten ist.

Als Vorlage kann das nachfolgende NC-Programm verwendet werden. das evtl. noch leicht angepasst werden muss.

Im NC-Programm werden die Achspositionen über den NC-Befehl #MSG in eine Ausgabedatei protokolliert.
(Siehe Schreiben von Meldungen in eine Datei (#MSG SAVE) und Definition von Dateinamen (#FILE NAME))

Die protokollierten Achspositionen müssen anschließend mit den erwarteten Achspositionen verglichen werden.

Programmierbeispiel

prg_example

Art und Quelle der Gefahr

;----------------------------------------------------------

;

;   Zuerst wird die Universalkinematik im NC-Programm

;   konfiguriert, anstatt in der Kanal-Liste.

;   Das erleichtert den Test, da man nicht immer wieder

;   Listen neu laden muss.

;

;----------------------------------------------------------

; Werkzeug zeigt in Z-Richtung

N00110  V.G.KIN[91].ZERO_ORIENTATION[0]         = 0

N00120  V.G.KIN[91].ZERO_ORIENTATION[1]         = 0

N00130  V.G.KIN[91].ZERO_ORIENTATION[2]         = 1

; Nullposition des Flansches

N00160  V.G.KIN[91].ZERO_POSITION[0]            = 10000

N00170  V.G.KIN[91].ZERO_POSITION[1]            = 20000

N00180  V.G.KIN[91].ZERO_POSITION[2]            = 30000

; 5 Achsen XYZCA

N00210  V.G.KIN[91].NUMBER_OF_AXES              = 5

; X-Achse, translatorisch

N00240  V.G.KIN[91].AXIS[0].TYPE                = 1

N00250  V.G.KIN[91].AXIS[0].ORIENTATION[0]      = 1

N00260  V.G.KIN[91].AXIS[0].ORIENTATION[1]      = 0

N00270  V.G.KIN[91].AXIS[0].ORIENTATION[2]      = 0

; Y-Achse, translatorisch

N00300  V.G.KIN[91].AXIS[1].TYPE                = 1

N00310  V.G.KIN[91].AXIS[1].ORIENTATION[0]      = 0

N00320  V.G.KIN[91].AXIS[1].ORIENTATION[1]      = 1

N00330  V.G.KIN[91].AXIS[1].ORIENTATION[2]      = 0

; Z-Achse, translatorisch

N00360  V.G.KIN[91].AXIS[2].TYPE                = 1

N00370  V.G.KIN[91].AXIS[2].ORIENTATION[0]      = 0

N00380  V.G.KIN[91].AXIS[2].ORIENTATION[1]      = 0

N00390  V.G.KIN[91].AXIS[2].ORIENTATION[2]      = 1

; A-Achse

N00420  V.G.KIN[91].AXIS[3].TYPE                = 2

N00430  V.G.KIN[91].AXIS[3].ORIENTATION[0]      = 1

N00440  V.G.KIN[91].AXIS[3].ORIENTATION[1]      = 0

N00450  V.G.KIN[91].AXIS[3].ORIENTATION[2]      = 0

N00460  V.G.KIN[91].AXIS[3].POINT[0]            = 40000

N00470  V.G.KIN[91].AXIS[3].POINT[1]            = 50000

N00480  V.G.KIN[91].AXIS[3].POINT[2]            = 60000

; C-Achse

N00510  V.G.KIN[91].AXIS[4].TYPE                = 2

N00520  V.G.KIN[91].AXIS[4].ORIENTATION[0]      = 0

N00530  V.G.KIN[91].AXIS[4].ORIENTATION[1]      = 0

N00540  V.G.KIN[91].AXIS[4].ORIENTATION[2]      = 1

N00550  V.G.KIN[91].AXIS[4].POINT[0]            = 70000

N00560  V.G.KIN[91].AXIS[4].POINT[1]            = 80000

N00570  V.G.KIN[91].AXIS[4].POINT[2]            = 90000

; Achsreihenfolge in kinematischer Kette: XYZCA

N00600  V.G.KIN[91].CHAIN[0]                    = 0

N00610  V.G.KIN[91].CHAIN[1]                    = 1

N00620  V.G.KIN[91].CHAIN[2]                    = 2

N00630  V.G.KIN[91].CHAIN[3]                    = 4

N00640  V.G.KIN[91].CHAIN[4]                    = 3

; Programmiermodus 12 oder 13, P-CHAN-00112

N00670  V.G.KIN[91].PROGRAMMING_MODE            = 13

; RTCP-Modus einstellen

N00700  V.G.KIN[91].RTCP                        = 1

; Achsen holen

N00730  #SET AX [X, 1, 0] [Y, 2, 1] [Z, 3, 2] [A, 4, 3] [C, 5, 4]

;----------------------------------------------------------

;

;   Nun kann man die Maschine bewegen, verschiedene

;   Werkzeuglängen ausprobieren usw.

;

;   Mit #CHANNEL INIT werden die Achsposition geholt

;   und mit #MSG und V.A.ACS.ABS in eine Textdatei

;   ausgegeben (normalerweise "message.txt").

;

;----------------------------------------------------------

; Trafo anwaehlen

N00870  #KIN ID [91]

N00880  #TRAFO ON

; fahren

N00910  G00 X0 Y0 Z0 B0

N00920  #FLUSH WAIT

N00930  #CHANNEL INIT [CMDPOS]

N00940  #MSG SAVE EXCLUSIVE ["X-Sollwert: %f", V.A.ACS.ABS.X]

N00950  #MSG SAVE EXCLUSIVE ["Y-Sollwert: %f", V.A.ACS.ABS.Y]

N00960  #MSG SAVE EXCLUSIVE ["Z-Sollwert: %f", V.A.ACS.ABS.Z]

N00970  #MSG SAVE EXCLUSIVE ["A-Sollwert: %f", V.A.ACS.ABS.A]

N00980  #MSG SAVE EXCLUSIVE ["C-Sollwert: %f", V.A.ACS.ABS.C]

N00990  #MSG SAVE EXCLUSIVE [""]

; Trafo abwaehlen

N01020  #TRAFO OFF

; Werkzeuglaenge aendern

N01050  V.G.WZ_AKT.L = 99

; Trafo anwaehlen

N01080  #KIN ID [91]

N01090  #TRAFO ON

; fahren

N01120  G00 X0 Y0 Z0 B0

N01130  #FLUSH WAIT

N01140  #CHANNEL INIT [CMDPOS]

N01150  #MSG SAVE EXCLUSIVE ["X-Sollwert: %f", V.A.ACS.ABS.X]

N01160  #MSG SAVE EXCLUSIVE ["Y-Sollwert: %f", V.A.ACS.ABS.Y]

N01170  #MSG SAVE EXCLUSIVE ["Z-Sollwert: %f", V.A.ACS.ABS.Z]

N01180  #MSG SAVE EXCLUSIVE ["A-Sollwert: %f", V.A.ACS.ABS.A]

N01190  #MSG SAVE EXCLUSIVE ["C-Sollwert: %f", V.A.ACS.ABS.C]

N01200  #MSG SAVE EXCLUSIVE [""]

; fahren

N01230  G00 X0 Y0 Z0 B45

N01240  #FLUSH WAIT

N01250  #CHANNEL INIT [CMDPOS]

N01260  #MSG SAVE EXCLUSIVE ["X-Sollwert: %f", V.A.ACS.ABS.X]

N01270  #MSG SAVE EXCLUSIVE ["Y-Sollwert: %f", V.A.ACS.ABS.Y]

N01280  #MSG SAVE EXCLUSIVE ["Z-Sollwert: %f", V.A.ACS.ABS.Z]

N01290  #MSG SAVE EXCLUSIVE ["A-Sollwert: %f", V.A.ACS.ABS.A]

N01300  #MSG SAVE EXCLUSIVE ["C-Sollwert: %f", V.A.ACS.ABS.C]

N01310  #MSG SAVE EXCLUSIVE [""]

; Trafo abwaehlen

N01340  #TRAFO OFF

; beenden

N01370  M30