[JOINT_0] # # Step timing is 2 us steplen + 2 us stepspace # That gives 4 us step period = 250 KHz step freq # # Bah, even software stepping can handle that, hm2 doesnt buy you much with # such slow steppers. # # Scale is 5000 steps/rev * 0.1 revs/mm = 500 steps/mm # # This gives a maxvel of 12.5/1 = 12.5 ips # TYPE = ANGULAR MAX_VELOCITY = 95 MAX_ACCELERATION = 190 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 100 STEPGEN_MAX_ACC = 200 BACKLASH = 0.000 # scale is 5000 steps/rev * 0.1 revs/mm INPUT_SCALE = -4000 OUTPUT_SCALE = 10 MAX_OUTPUT = 10 MIN_LIMIT = -180.0 MAX_LIMIT = 180.0 FERROR = 10 MIN_FERROR = 10 HOME = 0.000 HOME_OFFSET = 0.0 #HOME_SEARCH_VEL = 0.10 #HOME_LATCH_VEL = -0.01 #HOME_USE_INDEX = YES #HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 1 # these are in nanoseconds DIRSETUP = 3000 DIRHOLD = 3000 STEPLEN = 2000 STEPSPACE = 2000 #pid tuning param DEADBAND = 0.000015 P = 1 I = 0 D = 0 FF0 = 0 FF1 = 0 FF2 = 0 BIAS = 0 # ################ # Joint [0] # ################ # axis enable chain newsig emcmot.00.enable bit sets emcmot.00.enable FALSE net emcmot.00.enable => pid.0.enable net emcmot.00.enable <= joint.0.amp-enable-out net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.7i83.0.6.analogena0 #encoder feedback setp hm2_[HOSTMOT2](BOARD).1.encoder.00.counter-mode 0 setp hm2_[HOSTMOT2](BOARD).1.encoder.00.filter 1 setp hm2_[HOSTMOT2](BOARD).1.encoder.00.index-invert 0 setp hm2_[HOSTMOT2](BOARD).1.encoder.00.index-mask 0 setp hm2_[HOSTMOT2](BOARD).1.encoder.00.index-mask-invert 0 setp hm2_[HOSTMOT2](BOARD).1.encoder.00.scale [JOINT_0]INPUT_SCALE #summary position net j0-abs-encoder sum2.0.in0 hm2_5i25.1.uart.0.abs-pos net j0-inc-encoder sum2.0.in1 hm2_5i25.1.encoder.00.position # position command and feedback net motor.00.pos-fb sum2.0.out => pid.0.feedback net motor.00.pos-fb => joint.0.motor-pos-fb #push copy back to Axis GUI # position command signals setp hm2_[HOSTMOT2](BOARD).0.7i83.0.6.analogout0-scalemax [JOINT_0]OUTPUT_SCALE net emcmot.00.pos-cmd joint.0.motor-pos-cmd => pid.0.command net motor.00.command pid.0.output => hm2_[HOSTMOT2](BOARD).0.7i83.0.6.analogout0 # set PID loop gains from inifile setp pid.0.Pgain [JOINT_0]P setp pid.0.Igain [JOINT_0]I setp pid.0.Dgain [JOINT_0]D setp pid.0.bias [JOINT_0]BIAS setp pid.0.FF0 [JOINT_0]FF0 setp pid.0.FF1 [JOINT_0]FF1 setp pid.0.FF2 [JOINT_0]FF2 setp pid.0.deadband [JOINT_0]DEADBAND setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT