Reference Shift Register Description
Description
The Reference Shift Register consists of a queue of reference errors where the length of the queue is user definable (0 to 255). On each cycle if there is a valid reference signal it is input to the shift register. Subsequently at the half cycle point the reference error at the output of the shift register is extracted and applied to the motor. In this way the reference errors are delayed by a number machine cycles depending on the length of the shift register.
The example below shows a four stage shift register. The machine cycle number is shown as n, n+1, etc.
Error measured here Error applied here
Shift register input Shift register output
The shift register is clocked at the half cycle point. This means that the value input to the shift register is the last valid reference error before the half cycle point. It also means that the correction is applied at the half cycle point. This helps to avoid the corrections interfering with the reference error measurement. The effective delay due to the shift register is (|RQ|-½) cycles. In this context a cycle means RL or SB if RL is zero.
The reference shift register only works in one direction which is specified by setting RQ positive or negative. If RQ is positive then the shift register is only clocked when the motor passes the half cycle point in the positive direction. If RQ is negative then the shift register is only clocked when the motor passes the half cycle point in the negative direction. In both cases the magnitude of RQ specifies the length of the shift register.
Details
When a reference error is measured it is necessary to allow for the other errors in the shift register which have not yet been applied. For this reason the value put into the shift register is not the raw reference error but is calculated by the following algorithm.
total = sum of values in the shift register
df = measured reference error
a = value put into the shift register input
c = correction taken out of the shift register output
When a reference signal occurs the value put into the shift register is:
a = df - total
The total is then updated as follows:
total = total - c + a
Reference width checking (FH, FL, ZH, ZL) is applied when the reference signal occurs. If the signal fails this check then it is ignored. In this case if RQ is non-zero the RR and/or RU outputs are NOT set regardless of bit 6 in RW.
The following filters are applied to the reference error at the input to the shift register.
FR (reference error filter). If the reference error is greater than FR the signal is ignored.
LR (reference error limit). If the reference error is greater than LR then a “reference limits” error is recorded. However the error is only reported at the output of the shift register.
SR (maximum reference correction). If the reference error is greater than SR it is limited to the value of SR.
The RA (reference accepted) output is set at this stage if it is defined and the reference error passed the FR filter. If the reference shift register is in use (RQ not zero) setting bit 2 of RW, to delay the RA output, has no effect.
WF (wait for reference) finishes when a valid reference error is seen which passes the FR filter. The QD (display reference correction) value is the corrected reference error put into the shift register. If the shift register is not in use (RQ is zero) QD is the value of the reference error after it is limited by SR whereas DF is the raw reference error before it is limited.
Reference limit, reference timeout and reference overrun errors are reported at the output of the shift register. Any resulting error messages or RR/RU outputs therefore happen when the relevant correction is applied rather than when it is measured.
If RQ is non-zero, RJ (deferred reference adjustment) is measured from the half cycle point rather than the reference signal position.
Initialization (IN/IB) is unaffected by the reference shift register, however initialization zeroes the contents of the shift register.
PTS Commands
RQnn Set Reference Shift Register length
Range: -255 to 255
Default: 0
This command sets the reference shift register length and the direction of operation. If the motor normally moves in the positive direction, RQ should be set to the required length. If the motor normally moves in the negative direction, RQ should be set to -(required length). If RQ is set to zero it is disabled.
Setting RQ will always clear the shift register contents to zeroes. This command is restricted but NOT saved.
QD Display reference correction
Display the last received reference correction in encoder counts, i.e. the last value put into the reference shift register. If RQ is zero, this displays the reference error limited by SR (if applicable).
DF Display reference error
This command is unchanged. It displays the measured reference error before it is adjusted and placed in the shift register.
Quin Systems Ltd. 28-Jan-04
Page 1 of 1
n + 3 n + 2 n + 1 n