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

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