Brauche bitte Hilfe bei der Steuerung des Werkzeugrevolvers

More
15 Jul 2024 13:29 #305225 by tommylight
Ok, danke fuhr die erklarung.

Please Log in or Create an account to join the conversation.

More
19 Jul 2024 09:03 #305624 by WKS-3D
Ich habe das jetzt mal so probiert wie Talla83 das gemacht und @CHEROKEE-Laredo auf Seite 1 vorgeschlagen hat, allerdings in stark gekürzter Version, erstmal ohne irgendwelche Kontrollsignale und ohne T0, denn T0 habe ich am Werkzeugrevolver nicht.
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.

More
19 Jul 2024 09:32 #305628 by Aciera
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
 
The following user(s) said Thank You: WKS-3D

Please Log in or Create an account to join the conversation.

More
19 Jul 2024 14:25 #305653 by WKS-3D

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.

More
19 Jul 2024 15:29 #305658 by Aciera
Also I würde folgendes vorschlagen:

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.

More
19 Jul 2024 15:43 #305659 by WKS-3D
Found file(REL): ./custom.hal
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.

More
19 Jul 2024 17:23 #305662 by Aciera
Das Gleiche bitte nochmals mit dieser Subroutine:
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.

More
19 Jul 2024 17:34 #305663 by WKS-3D
Found file(REL): ./custom.hal
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.

More
19 Jul 2024 17:41 #305664 by Aciera
G0 W[#<_selected_tool> * #4001-#4001]
Grundsätzlich wird natürlich deine Routine nicht funktionieren wenn
#<_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.

More
19 Jul 2024 17:42 #305665 by Aciera
Also jetzt probier mal MDI:
M6 T2

Please Log in or Create an account to join the conversation.

Time to create page: 0.129 seconds
Powered by Kunena Forum