Fresh start, using JT's tool.
https://git.cnckloon.nl/Ton/Mesa_2019/wiki
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
175 lines
7.0 KiB
175 lines
7.0 KiB
# This file was created with the 7i96 Wizard on Apr 19 2019 14:51:58 |
|
# If you make changes to this file DO NOT run the configuration tool again! |
|
# This file will be replaced with a new file if you do! |
|
|
|
# kinematics |
|
loadrt [KINS]KINEMATICS |
|
|
|
# motion controller |
|
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS |
|
|
|
# standard components |
|
loadrt pid num_chan=4 |
|
|
|
# hostmot2 driver |
|
loadrt hostmot2 |
|
|
|
loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](IPADDRESS) config="num_encoders=[HOSTMOT2](ENCODERS)num_stepgens=[HOSTMOT2](STEPGENS)"sserial_port_0=[HOSTMOT2](SSERIAL_PORT) |
|
setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 25000000 |
|
|
|
# THREADS |
|
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread |
|
addf motion-command-handler servo-thread |
|
addf motion-controller servo-thread |
|
setp hm2_[HOSTMOT2](BOARD).0.dpll.01.timer-us -100 |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.timer-number 1 |
|
addf pid.0.do-pid-calcs servo-thread |
|
addf pid.1.do-pid-calcs servo-thread |
|
addf pid.2.do-pid-calcs servo-thread |
|
addf pid.3.do-pid-calcs servo-thread |
|
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread |
|
|
|
|
|
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 |
|
|
|
# Joint 0 |
|
# axis enable chain |
|
newsig emcmot.0.enable bit |
|
sets emcmot.0.enable FALSE |
|
net emcmot.0.enable <= joint.0.amp-enable-out |
|
net emcmot.0.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable pid.0.enable |
|
|
|
# position command and feedback |
|
net emcmot.0.pos-cmd joint.0.motor-pos-cmd => pid.0.command |
|
net motor.0.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb joint.0.motor-pos-fb pid.0.feedback |
|
net motor.0.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd |
|
setp pid.0.error-previous-target true |
|
|
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0 |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.control-type 1 |
|
|
|
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 |
|
setp pid.0.maxerror [JOINT_0]MAX_ERROR |
|
|
|
# Joint 1 |
|
# axis enable chain |
|
newsig emcmot.1.enable bit |
|
sets emcmot.1.enable FALSE |
|
net emcmot.1.enable <= joint.1.amp-enable-out |
|
net emcmot.1.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable pid.1.enable |
|
|
|
# position command and feedback |
|
net emcmot.1.pos-cmd joint.1.motor-pos-cmd => pid.1.command |
|
net motor.1.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb joint.1.motor-pos-fb pid.1.feedback |
|
net motor.1.command pid.1.output hm2_[HOSTMOT2](BOARD).0.stepgen.01.velocity-cmd |
|
setp pid.1.error-previous-target true |
|
|
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0 |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.control-type 1 |
|
|
|
setp pid.1.Pgain [JOINT_1]P |
|
setp pid.1.Igain [JOINT_1]I |
|
setp pid.1.Dgain [JOINT_1]D |
|
setp pid.1.bias [JOINT_1]BIAS |
|
setp pid.1.FF0 [JOINT_1]FF0 |
|
setp pid.1.FF1 [JOINT_1]FF1 |
|
setp pid.1.FF2 [JOINT_1]FF2 |
|
setp pid.1.deadband [JOINT_1]DEADBAND |
|
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT |
|
setp pid.1.maxerror [JOINT_1]MAX_ERROR |
|
|
|
# Joint 2 |
|
# axis enable chain |
|
newsig emcmot.2.enable bit |
|
sets emcmot.2.enable FALSE |
|
net emcmot.2.enable <= joint.2.amp-enable-out |
|
net emcmot.2.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable pid.2.enable |
|
|
|
# position command and feedback |
|
net emcmot.2.pos-cmd joint.2.motor-pos-cmd => pid.2.command |
|
net motor.2.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb joint.2.motor-pos-fb pid.2.feedback |
|
net motor.2.command pid.2.output hm2_[HOSTMOT2](BOARD).0.stepgen.02.velocity-cmd |
|
setp pid.2.error-previous-target true |
|
|
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0 |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.control-type 1 |
|
|
|
setp pid.2.Pgain [JOINT_2]P |
|
setp pid.2.Igain [JOINT_2]I |
|
setp pid.2.Dgain [JOINT_2]D |
|
setp pid.2.bias [JOINT_2]BIAS |
|
setp pid.2.FF0 [JOINT_2]FF0 |
|
setp pid.2.FF1 [JOINT_2]FF1 |
|
setp pid.2.FF2 [JOINT_2]FF2 |
|
setp pid.2.deadband [JOINT_2]DEADBAND |
|
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT |
|
setp pid.2.maxerror [JOINT_2]MAX_ERROR |
|
|
|
# Joint 3 |
|
# axis enable chain |
|
newsig emcmot.3.enable bit |
|
sets emcmot.3.enable FALSE |
|
net emcmot.3.enable <= joint.3.amp-enable-out |
|
net emcmot.3.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.03.enable pid.3.enable |
|
|
|
# position command and feedback |
|
net emcmot.3.pos-cmd joint.3.motor-pos-cmd => pid.3.command |
|
net motor.3.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-fb joint.3.motor-pos-fb pid.3.feedback |
|
net motor.3.command pid.3.output hm2_[HOSTMOT2](BOARD).0.stepgen.03.velocity-cmd |
|
setp pid.3.error-previous-target true |
|
|
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.dirsetup [JOINT_3]DIRSETUP |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.dirhold [JOINT_3]DIRHOLD |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.steplen [JOINT_3]STEPLEN |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.stepspace [JOINT_3]STEPSPACE |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-scale [JOINT_3]SCALE |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAX_VEL |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAX_ACC |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.step_type 0 |
|
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.control-type 1 |
|
|
|
setp pid.3.Pgain [JOINT_3]P |
|
setp pid.3.Igain [JOINT_3]I |
|
setp pid.3.Dgain [JOINT_3]D |
|
setp pid.3.bias [JOINT_3]BIAS |
|
setp pid.3.FF0 [JOINT_3]FF0 |
|
setp pid.3.FF1 [JOINT_3]FF1 |
|
setp pid.3.FF2 [JOINT_3]FF2 |
|
setp pid.3.deadband [JOINT_3]DEADBAND |
|
setp pid.3.maxoutput [JOINT_3]MAX_OUTPUT |
|
setp pid.3.maxerror [JOINT_3]MAX_ERROR |
|
|
|
|
|
|