thanks john

i found this which might be enough to make it work for me

i just need to sit down and get my head around the cascading PID loops

https://forum.linuxcnc.org/10-advanced-configuration/29851-combining-two-feedback-devices-rotary-axis

On Thu, Jan 1, 2026 at 11:58 AM johnd <[email protected]> wrote:

> Sounds interesting.  Do report on what you find out.JohnSent from my
> Samsung S10
> -------- Original message --------From: andrew beck <
> [email protected]> Date: 2025-12-31  4:12 p.m.  (GMT-06:00) To:
> "Enhanced Machine Controller (EMC)" <[email protected]>
> Subject: [Emc-users] setting up dual PID loops for servo encoders and
> scales hey guysjust looking for a config example if possible for a mesa
> card from someonethat has this nested PID loop setup.internal PID loop uses
> servo motor encoder and the outer Pid loop only usesthe Intergral value
> with the scale and then they get summed together todrive the motorI found
> this link here on the forum and want to try set it uphttp://
> wiki.linuxcnc.org/cgi-bin/wiki.pl?Combining_Two_Feedback_Devices_On_One_AxisThis
> page shows how to combine two position feedback devices into two PID'sfor
> the tuning and positioning of one axis.   1. This example has one high
> resolution linear scale on the axis table   and one rotary encoder on the
> axis drive motor.   2. This could also be a rotary encoder on the ballscrew
> and a rotary   encoder on the motor   3. This assumes the PID's are loaded
> and connected to the servo thread   4. linear scale position feedback
> connects to the input of the pid.4 PID      1. net X-linear-pos-fb 'linear
> position feedback' pid.4.feedback   5. motor encoder position feedback
> connects to the feedback input of the   pid.0 PID      1. net
> X-motor-pos-fb 'axis motor position feedback' pid.0.feedback   6. position
> command signal from LinuxCNC axis connects to both PID   command
> inputs      1. net Xpos-cmd axis.0.motor-pos-cmd pid.0.command
> pid.4.command   7. bit signals from LinuxCNC axis connnects to
> enable/disable both PID   loops      1. net Xenable axis.0.amp-enable-out
> pid.0.enable pid.4.enable   8. set PID loop output limits as specified in
> ini file      1. setp pid.0.maxoutput [AXIS_0]PID_MAX_VEL      2. setp
> pid.4.maxoutput [AXIS_0]PID_MAX_VEL   9. set the motor encoder PID loop
> gains   10. NOTE - I gain is set to zero - it would fight the other
> PID      1. setp pid.0.Pgain [AXIS_0]P      2. setp pid.0.Igain 0      3.
> setp pid.0.Dgain [AXIS_0]D      4. setp pid.0.bias [AXIS_0]BIAS      5.
> setp pid.0.FF0 [AXIS_0]FF0      6. setp pid.0.FF1 [AXIS_0]FF1      7. setp
> pid.0.FF2 [AXIS_0]FF2      8. setp pid.0.deadband [AXIS_0]DEADBAND      9.
> setp ppmc.0.DAC.00.scale [AXIS_0]OUTPUT_SCALE   11. set the linear scale
> PID loop gains   12. NOTE - it has only I gain - all other gains are set to
> zero      1. setp pid.4.Pgain 0      2. setp pid.4.Igain [AXIS_0]I      3.
> setp pid.4.Dgain 0      4. setp pid.4.bias 0      5. setp pid.4.FF0 0
> 6. setp pid.4.FF1 0      7. setp pid.4.FF2 0      8. setp pid.4.deadband
> [AXIS_0]DEADBAND   13. connect both PID output signals to sum2.4 inputs
> 14. sum the outputs of pid.0 and pid.4   15. pid.0 is using motor encoder
> feedback   16. pid.4 is using linear scale feedback      1. net
> Xoutput-motor pid.0.output sum2.4.in0      2. net Xoutput-linear
> pid.4.output sum2.4.in1   17. the summed PID output is connnected to the
> DAC input signal      1. net Xoutput sum2.4.out 'DAC input'   18. repeat as
> necessary for more
> axes_______________________________________________Emc-users mailing
> [email protected]://
> lists.sourceforge.net/lists/listinfo/emc-users
> _______________________________________________
> Emc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-users
>

_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to