Cinématique avec axes "redondants" (+présentation)
vincentECN wrote: It's that i begin to understand now... but as i said, i'm affraid to do a wrong change and damage the machine (like one joint will diverge and go very fast on limits).
If you have working f-error detection, and LinuxCNC can disable the drives, and you have limit witches, then it should all be fine....
Rather than make a simulated configuration it would be better to make a hardware test setup. Assuming that you already have the leadscrew, encoder and secondary carriage, then you could create a simple 1-axis config with a small servo motor.
Alternatively a test config with one axis and connected to the real machine, but with the motor uncoupled from the system. The PID tuning would be very different for the uncoupled motor, so this would have to be a separate config. However as it would be working with the real hardware it would be possible to watch the motor move in the opposite direction to your hand-cranked leadscrew.
I have modified hal files and ini file for the real machine (after had an overview of the configuration, see "Document Scannable").
There is few modif (to add a disturbance on X), like this :
In INI, only one line in [AXIS] for the scale of new encoder (i can also directly add on hal ?) :
INPUT_SUM_SCALE = -200
In montenc_motion.hal :
loadrt sum2 count=1 addf sum2.0 servo-thread linksp Xpos-fb <= motenc.0.enc-00-position linksp Xpos-fb <= motenc.0.enc-00-position net Xpos-fb sum2.0.in0 linksp Ufic <= motenc.0.enc-03-position net Ufic => sum2.0.in1 setp motenc.0.enc-03-scale [AXIS_0]INPUT_SUM_SCALE net XUpos-fb sum2.0.out
In core servo.hal :
net XUpos-fb axis.0.motor-pos-fb => pid.0.feedback
Did i miss something ?
And first, before try to add a real encoder, i want to try with a manual entry on hal, for the real machine. In motenc_motion.hal, instead of "linksp Ufic <= motenc.0.enc-03-position" Can i do like this :
newsig Ufic float net Ufic => sum2.0.in1 sets Ufic 0
? But i'm wondering, if I define Ufic, for example, by sets Ufix 0.1 (in "show hal configuration"), the machine will think that there is 0.1 mm of displacement at each period ? (so, can escalate quickly) ??
I want to be sure before trying in the next few days. ^^"
Thx for your help !
vincentECN wrote:linksp Xpos-fb <= motenc.0.enc-00-position linksp Xpos-fb <= motenc.0.enc-00-position net Xpos-fb sum2.0.in0
This is a rather old-fashioned way to define nets. You can just use:
net xpos-fb motenc.0.enc-00-position sum2.0.in0 net xdelta motenc.0.enc-03-position sum2.0.in1
But i'm wondering, if I define Ufic, for example, by sets Ufix 0.1 (in "show hal configuration"), the machine will think that there is 0.1 mm of displacement at each period
No, the addition will only be cumulative if you feed-back the result of the addition to the input.
You can actually run the basic config in a stepper simulation if you want, but I would run it on the actual hardware with the motor shaft disconnected I think.
andypugh wrote: but I would run it on the actual hardware with the motor shaft disconnected I think.
So, what can i observe in this case ? If the hal is good ?
And when you say "disconnect the motor shaft", it's from the driver card ?
vincentECN wrote: And when you say "disconnect the motor shaft", it's from the driver card ?
No, I mean disconnect the motor from the machine mechanically so that you can't damage the actual metal parts through misconfiguration.
Hmmm. Ok. (But it seems it will be difficult on this industrial machine. I will see with a technician.)