(Uwaga na literówki, pisalem z głowy)
Kod: Zaznacz cały
loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=3
loadrt pid num_chan=2
loadrt hostmot2
loadrt hm2_pci config="num_encoders=2 sserial_port_0=000xxxxx"
# Hook functions into threads
addf motion-controller servo-thread
addf motion-command-handler servo-thread
addf pid.0.do-pid-calcs servo-thread
addf pid.1.do-pid-calcs servo-thread
net estop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
# os X
net motor.00.enable axis.0.amp-enable-out => pid.0.enable hm2_5i25.0.7i77.0.0.analogena
net motor.00.pos-cmd axis.0.motor-pos-cmd => pid.0.command
net motor.00.pos-fb hm2_5i25.0.encoder.00.position => pid.0.feedback
net motot.00.vel-cmd pid.0.output => hm2_5i25.0.7i77.0.0.analogout-00
setp hm2_5i25.0.encoder.00.position-scale [AXIS_0]SCALE
setp pid.0.Pgain [AXIS_0]PGAIN
setp pid.0.Igain [AXIS_0]IGAIN
setp pid.0.Dgain [AXIS_0]DGAIN
setp pid.0.FF0 [AXIS_0]FF0
setp pid.0.FF1 [AXIS_0]FF1
setp pid.0.FF2 [AXIS_0]FF2
setp pid.0.maxoutput [AXIS_0]MAXOUTPUT
setp pid.0.bias [AXIS_0]BIAS
setp pid.0.deadband [AXIS_0]DEADBAND
# os Y
net motor.01.enable axis.1.amp-enable-out => pid.1.enable
net motor.01.pos-cmd axis.1.motor-pos-cmd => pid.1.command
net motor.01.pos-fb hm2_5i25.0.encoder.01.position => pid.1.feedback
net motot.01.vel-cmd pid.1.output => hm2_5i25.0.7i77.0.0.analogout-01
setp hm2_5i25.0.encoder.01.position-scale [AXIS_1]SCALE
setp pid.1.Pgain [AXIS_1]PGAIN
setp pid.1.Igain [AXIS_1]IGAIN
setp pid.1.Dgain [AXIS_1]DGAIN
setp pid.1.FF0 [AXIS_1]FF0
setp pid.1.FF1 [AXIS_1]FF1
setp pid.1.FF2 [AXIS_1]FF2
setp pid.1.maxoutput [AXIS_1]MAXOUTPUT
setp pid.1.bias [AXIS_1]BIAS
setp pid.1.deadband [AXIS_1]DEADBAND
I ustaw z grubasza skale osi bo strojenie bez tego nie ma sensu.