Brauche bitte Hilfe bei der Steuerung des Werkzeugrevolvers
- tommylight
- Online
- Moderator
- Posts: 19188
- Thank you received: 6430
Please Log in or Create an account to join the conversation.
In meiner Konfiguration wird auch die Pneumatik nicht geschaltet, weil ich das nicht hinbekomme, im Beispiel werden mit GPIOs die Signale ausgegeben, ich habe aber nur OUTPUTs (7i92TM+7i76+7i85) und so einiges damit versucht, aber es klappt nicht.
Mit der jetzigen Konfiguration und dem Aufruf in MDI von zB. "T1 M6" passiert nichts bzw. der Pfeil von "Aktuelle Datei ausführen" oben in der Leiste bleibt gedrückt. Unten steht auch weiterhin, Kein Werkzeug.
Die "toolchange.ngc" sieht so aus:
o<toolchange> sub
#4001=45
M61 Q#4999
o500 if[#<_current_tool> EQ #<_selected_tool>]
(DEBUG,Tool bereits in Spindel)
o500 elseif [#<_current_tool> NE #<_selected_tool>]
G0 W[#<_selected_tool> * #4001-#4001]
M6 G43
#4999=#5400
o500 endif
o<toolchange> endsub
m2
In der INI-Datei steht:
REMAP= M6 modalgroup=6 ngc=toolchange
In der "linuxcnc.var" wurde der Parameter #4999 eingefügt.
Wenn ich in MDI zB. "G0 W45" ausführe, dann dreht sich der Stepper, das funktioniert problemlos.
Um das Pneumatikventil zu schalten habe ich das hier gemacht:
"revolver_klemmen.ngc"
o<revolver_klemmen> sub
M65 P0 (Ausgang setzen Revolver klemmen)
o<revolver_klemmen> endsub
m2
"revolver_loesen.ngc"
o<revolver_loesen> sub
M64 P0 (Ausgang setzen Revolver loesen)
o<revolver_loesen> endsub
m2
und in der "custom_postgui.hal":
# --- Werkzeug-Revolver loesen-spannen ---
setp hm2_7i92.0.7i76.0.0.output-00 true
net wkz-rev-pneumatik hm2_7i92.0.7i76.0.0.output-00 <= motion.digital-out-00
Warum funktioniert überhaupt nichts davon, wo liegen die Fehler?
Danke und Gruß
Olli
Attachments:
Please Log in or Create an account to join the conversation.
dann versuch mal im MDI die subroutinen aufzurufen:setp hm2_7i92.0.7i76.0.0.output-00 true
o<Ventil_an> call
o<Ventil_aus> call
Please Log in or Create an account to join the conversation.
Lösche mal diese Zeile in deiner HAL
setp hm2_7i92.0.7i76.0.0.output-00 true
dann versuch mal im MDI die subroutinen aufzurufen:
o<Ventil_an> call
o<Ventil_aus> call
Klasse, das funktioniert
Jetzt bleibt nur noch das 1. Problem, warum dreht der Stepper nicht beim Toolchange bzw. es passiert ja garnichts.
Wenn ich im MDI die W-Achse aufrufe zB. mit G0 W180, dann dreht sich der Stepper zu dieser Position.
Please Log in or Create an account to join the conversation.
1. ändere mal deine 'toochange.ngc':
o<toolchange> sub
#4001=45
(print, 4999: #4999)
(print, current_ tool: #<_current_tool>)
(print, selected_ tool: #<_selected_tool>)
M61 Q#4999
o500 if[#<_current_tool> EQ #<_selected_tool>]
(DEBUG,Tool bereits in Spindel)
o500 else
G0 W[#<_selected_tool> * #4001-#4001]
M6 G43
#4999=#5400
o500 endif
o<toolchange> endsub
m2
2. Starte deine Konfiguration von einem Terminal:
linuxcnc
3. Ruf die Routine über MDI auf:
[code]o<toolchange> call
4. Schau mal im Terminaloutput was da für Werte von der 'toolchange.ngc' ausgegeben werden.
Vielleicht ergeben sich so neue Hinweise.
Please Log in or Create an account to join the conversation.
note: MAXV max: 166.000 units/sec 9960.000 units/min
note: LJOG max: 166.000 units/sec 9960.000 units/min
note: LJOG default: 6.000 units/sec 360.000 units/min
note: AJOG max: 180.000 units/sec 10800.000 units/min
note: AJOG default: 12.000 units/sec 720.000 units/min
note: jog_order='ZXUW'
note: jog_invert={'X'}
4999: 1.000000
current_ tool: 0.000000
selected_ tool: 0.000000
task: main loop took 0.127948 seconds
4999: 1.000000
current_ tool: 0.000000
selected_ tool: 0.000000
4999: 1.000000
current_ tool: 1.000000
selected_ tool: 0.000000
USRMOT: ERROR: invalid command
Bewegung Linear in Zeile 10 würde von Achse/Gelenk W den Anschlag Negativ überschreiten
Bewegung Linear in Zeile 10 würde neg. Anschlag von Achse/Gelenk 3 überschreiten
ungültige Parameter in linearem Kommando
Das verstehe ich aber nicht, denn in der INI-Datei steht für die W-Achse:
[AXIS_W]
MAX_VELOCITY = 66
MAX_ACCELERATION = 1000
MIN_LIMIT = -0
MAX_LIMIT = 360
[JOINT_3]
TYPE = ANGULAR
WRAPPED_ROTARY = 1
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 66
MAX_ACCELERATION = 1000
STEPGEN_MAXVEL = 100
STEPGEN_MAXACCEL = 2000
# these are in nanoseconds
DIRSETUP = 5000
DIRHOLD = 5000
STEPLEN = 5000
STEPSPACE = 5000
# 12800 Microsteps : 360 = 35,555556, Uebersetzungsverhaeltnis 2:1 = 71,111111111
STEP_SCALE = 71.111111
MIN_LIMIT = -0
MAX_LIMIT = 360
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
Und unter MDI kann ich die W-Achse sauber ansteuern
Please Log in or Create an account to join the conversation.
o<toolchange> sub
#4001=45
(print, 4999: #4999)
(print, current_ tool: #<_current_tool>)
(print, selected_ tool before M61: #<_selected_tool>)
M61 Q#4999
(print, selected_ tool after M61: #<_selected_tool>)
o500 if[#<_current_tool> EQ #<_selected_tool>]
(DEBUG,Tool bereits in Spindel)
o500 else
G0 W[#<_selected_tool> * #4001-#4001]
M6 G43
#4999=#5400
o500 endif
o<toolchange> endsub
m2
Please Log in or Create an account to join the conversation.
note: MAXV max: 166.000 units/sec 9960.000 units/min
note: LJOG max: 166.000 units/sec 9960.000 units/min
note: LJOG default: 6.000 units/sec 360.000 units/min
note: AJOG max: 180.000 units/sec 10800.000 units/min
note: AJOG default: 12.000 units/sec 720.000 units/min
note: jog_order='ZXUW'
note: jog_invert={'X'}
4999: 1.000000
current_ tool: 0.000000
selected_ tool before M61: 0.000000
selected_ tool after M61: 0.000000
4999: 1.000000
current_ tool: 0.000000
selected_ tool before M61: 0.000000
selected_ tool after M61: 0.000000
4999: 1.000000
current_ tool: 1.000000
selected_ tool before M61: 0.000000
selected_ tool after M61: 0.000000
emc/task/emctask.cc 68: interp_error: Werkzeug muss vorbereitet sein -Txx- für Werkzeugwechsel
Werkzeug muss vorbereitet sein -Txx- für Werkzeugwechsel
Please Log in or Create an account to join the conversation.
G0 W[#<_selected_tool> * #4001-#4001]
#<_selected_tool> = 0
Das gäbe dann 0*45-45 = -45
Das führt dann zur Fehlermeldung:
USRMOT: ERROR: invalid command
Bewegung Linear in Zeile 10 würde von Achse/Gelenk W den Anschlag Negativ überschreiten
Bewegung Linear in Zeile 10 würde neg. Anschlag von Achse/Gelenk 3 überschreiten
Please Log in or Create an account to join the conversation.
M6 T2
Please Log in or Create an account to join the conversation.