Spindel problems in Gmoccapy

More
9 years 6 months ago - 9 years 6 months ago #92275 by newbynobi
The changed code
Code:
########################################################## # Spindeldrehzahl messen / mesurement spindle revolution # ########################################################## loadrt encoder num_chan=1 addf encoder.update-counters servo-thread addf encoder.capture-position servo-thread setp encoder.0.position-scale 1 # Anzahl der Impulse je Umdrehung setp encoder.0.counter-mode 1 # Wenn 1 gesetzt, wird B-Signal ignoriert # disable 4 times encoder, otherwise each klick will ingreas jogwheel-count by 4 instead of 1 # 4-fach-Auswertung vom Encoder ausschalten, sonst wird jogwheel-count bei jedem Klick um 4 statt um 1 erhoeht setp encoder.0.x4-mode FALSE loadrt scale count=1 # Wird gebraucht, um U/Sekunde in U/min umzurechnen addf scale.0 servo-thread setp scale.0.gain 60 # Ausgang = 60 x Eingang net spindle_index parport.0.pin-10-in => encoder.0.phase-A => encoder.0.phase-Z net spindle-index-enable motion.spindle-index-enable <=> encoder.0.index-enable net spindle-rps encoder.0.velocity => scale.0.in net spindle-rpm scale.0.out # Zum Erkennen ob Geschwindigkeit erreicht wurde # For at Speed detection loadrt near addf near.0 servo-thread # Stellt fest ob zwei Werte in etwa gleich sind # Wahr wenn, in1/scale <= in2 <= in1*scale # oder wenn |in1-in2| <= difference # prooves if two values are roughly the same # true if in1/scale <= in2 <= in1*scale # OR |in1-in2| <= difference setp near.0.scale 1.2 setp near.0.difference 10 net spindle-cmd => near.0.in1 net spindle-rpm => near.0.in2 net spindle-at-speed near.0.out => motion.spindle-at-speed

In your postgui.hal file you need:
Code:
net spindle-rpm gmoccapy.spindle_feedback_bar net spindle-at-speed gmoccapy.spindle_at_speed_led


Norbert
Last edit: 9 years 6 months ago by newbynobi.

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

More
9 years 6 months ago - 9 years 6 months ago #92276 by tecno
Replied by tecno on topic Spindel problems in Gmoccapy


Line 43

net spindle-index => encoder.1.phase-Z => encoder.1.phase-A
Last edit: 9 years 6 months ago by tecno.

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

More
9 years 6 months ago #92277 by newbynobi
Hallo bengt,

please use the changed code.
See my last post.

Norbert

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

More
9 years 6 months ago - 9 years 6 months ago #92278 by Todd Zuercher
I believe you only have one encoder so the pin names should be:
net spindle-index => encoder.0.phase-Z => encoder.0.phase-A

(There were also other places where encoder.1 should be changed to encoder.0, but Norbert corrected them while I was typing.)
Last edit: 9 years 6 months ago by Todd Zuercher.

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

More
9 years 6 months ago - 9 years 6 months ago #92279 by tecno
Replied by tecno on topic Spindel problems in Gmoccapy

File Attachment:

File Name: Blomqvist_...4-28.hal
File Size:4.15 KB
Still something wrong

Last edit: 9 years 6 months ago by tecno.

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

More
9 years 6 months ago - 9 years 6 months ago #92281 by Todd Zuercher
You have 3 lines that are essentially trying to do the same thing twice.
These two lines
net spindle-index => encoder.0.phase-Z => encoder.0.phase-A
net spindle-index <= parport.0.pin-10-in
and this one line are functionally equivalent, except for the signal name.
net spindle_index parport.0.pin-10-in => encoder.0.phase-A => encoder.0.phase-Z

Here I've deleted the offending line and reconnected the original parallel port pin line.
Code:
# Generated by stepconf 1.1 at Mon Apr 17 15:16:45 2017 # If you make changes to this file, they will be # overwritten when you run stepconf again loadrt trivkins loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES loadrt hal_parport cfg="0x378 out" setp parport.0.reset-time 5000 loadrt stepgen step_type=0,0,0 ctrl_type=p,p,v loadrt charge_pump setp charge-pump.enable 1 net charge-pump <= charge-pump.out loadrt encoder num_chan=1 loadrt scale count=1 loadrt near net spindle-cmd-rpm => stepgen.2.velocity-cmd setp stepgen.2.position-scale 0.9 #steps/RPM setp stepgen.2.steplen 5000 setp stepgen.2.stepspace 5000 #setp stepgen.2.dirdelay 35000 setp stepgen.2.maxaccel 5000 addf parport.0.read base-thread addf stepgen.make-pulses base-thread addf charge-pump base-thread addf parport.0.write base-thread addf parport.0.reset base-thread addf encoder.update-counters base-thread addf encoder.capture-position servo-thread addf scale.0 servo-thread addf near.0 servo-thread addf stepgen.capture-position servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf stepgen.update-freq servo-thread net spindle-index => encoder.0.phase-Z => encoder.0.phase-A net spindle-cmd-rpm <= motion.spindle-speed-out net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs net spindle-cmd-rps <= motion.spindle-speed-out-rps net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs net spindle-at-speed => motion.spindle-at-speed net spindle-enable <= motion.spindle-on => stepgen.2.enable net spindle-cw <= stepgen.2.step net spindle-ccw <= stepgen.2.dir #setp encoder.0.counter-mode 1 setp encoder.0.position-scale 1 setp encoder.0.counter-mode 1 setp encoder.0.x4-mode FALSE setp scale.0.gain 60 setp near.0.scale 1.2 setp near.0.difference 10 net spindle-cmd => near.0.in1 net spindle-rpm => near.0.in2 net spindle-at-speed near.0.out => motion.spindle-at-speed net coolant-flood <= iocontrol.0.coolant-flood net xstep => parport.0.pin-02-out setp parport.0.pin-02-out-reset 1 net xdir => parport.0.pin-03-out #setp parport.0.pin-04-out-invert 1 net zstep => parport.0.pin-04-out setp parport.0.pin-04-out-reset 1 setp parport.0.pin-05-out-invert 1 net zdir => parport.0.pin-05-out net spindle-cw => parport.0.pin-06-out net spindle-ccw => parport.0.pin-07-out net coolant-flood => parport.0.pin-09-out net charge-pump => parport.0.pin-14-out net spindle-index <= parport.0.pin-10-in net home-z <= parport.0.pin-11-in-not net home-x <= parport.0.pin-12-in-not net estop-ext <= parport.0.pin-15-in-not net spindle-index-enable motion.spindle-index-enable <=> encoder.0.index-enable net spindle-rps encoder.0.velocity => scale.0.in net spindle-rpm scale.0.out setp stepgen.0.position-scale [AXIS_0]SCALE setp stepgen.0.steplen 1 setp stepgen.0.stepspace 0 setp stepgen.0.dirhold 35000 setp stepgen.0.dirsetup 35000 setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb net xstep <= stepgen.0.step net xdir <= stepgen.0.dir net xenable axis.0.amp-enable-out => stepgen.0.enable net home-x => axis.0.home-sw-in setp stepgen.1.position-scale [AXIS_2]SCALE setp stepgen.1.steplen 1 setp stepgen.1.stepspace 0 setp stepgen.1.dirhold 35000 setp stepgen.1.dirsetup 35000 setp stepgen.1.maxaccel [AXIS_2]STEPGEN_MAXACCEL net zpos-cmd axis.2.motor-pos-cmd => stepgen.1.position-cmd net zpos-fb stepgen.1.position-fb => axis.2.motor-pos-fb net zstep <= stepgen.1.step net zdir <= stepgen.1.dir net zenable axis.2.amp-enable-out => stepgen.1.enable net home-z => axis.2.home-sw-in net estop-ext => iocontrol.0.emc-enable-in loadusr -W hal_manualtoolchange net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Last edit: 9 years 6 months ago by Todd Zuercher.

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

Moderators: newbynobi, HansU
Time to create page: 0.236 seconds
Powered by Kunena Forum