Serg писал(а): ↑
Показывай кусок HAL, как ось прописана от axis до энкодера и обратно.
Serg писал(а): ↑
UT3GE писал(а): ↑
Мультиплекс развязан с энкодерами через оптопары TLP281-4.
Зачем?
Так с энкодера сигнал 12 вольт идет а 74HC244 пяти вольтовые. Да и споконее как-то с опторазвязкой.
Вот кусочек HALа:
#*******************
# AXIS Y JOINT 1
#*******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.0125
net y-index-enable <=> pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
# Step Gen signals/setup
setp [HMOT](CARD0).stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp [HMOT](CARD0).stepgen.01.dirhold [JOINT_1]DIRHOLD
setp [HMOT](CARD0).stepgen.01.steplen [JOINT_1]STEPLEN
setp [HMOT](CARD0).stepgen.01.stepspace [JOINT_1]STEPSPACE
setp [HMOT](CARD0).stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp [HMOT](CARD0).stepgen.01.step_type 0
setp [HMOT](CARD0).stepgen.01.control-type 1
setp [HMOT](CARD0).stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp [HMOT](CARD0).stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL
setp [HMOT](CARD0).stepgen.01.direction.invert_output true
# ---closedloop stepper signals---
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
net y-output <= [HMOT](CARD0).stepgen.01.velocity-cmd
#net y-pos-fb <= [HMOT](CARD0).stepgen.01.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
net y-enable => [HMOT](CARD0).stepgen.01.enable
# ---Encoder feedback signals/setup---
setp [HMOT](CARD0).encoder.03.counter-mode 0
setp [HMOT](CARD0).encoder.03.filter 1
setp [HMOT](CARD0).encoder.03.index-invert 1
setp [HMOT](CARD0).encoder.03.index-mask 0
setp [HMOT](CARD0).encoder.03.index-mask-invert 0
setp [HMOT](CARD0).encoder.03.scale [JOINT_1]ENCODER_SCALE
setp [HMOT](CARD0).encoder.03.reset 0
net y-pos-fb <= [HMOT](CARD0).encoder.03.position
net y-vel-fb <= [HMOT](CARD0).encoder.03.velocity
net y-pos-fb => joint.1.motor-pos-fb
net y-index-enable joint.1.index-enable <=> [HMOT](CARD0).encoder.03.index-enable
net y-pos-rawcounts <= [HMOT](CARD0).encoder.03.rawcounts