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