I would like to suggest an addition to the motor record logic (or
save-restore, not sure which). I have been bitten several times by
having a set of motors under save-restore and having a restart provoke a
runaway. The sequence goes like this:
motor system running fine, save-restore operating.
IOC is stopped.
Motors are powered down.
motors powered up, causing their internal position registers to be set
to zero.
IOC re-started, save restore writes previous positions into motor
driver, causing them to move to that position, and havoc!
My proposed change would cause someone (motor, save-restore) to notice
that the hardware and software disagree, and ask the User how they want
to resolve this dilemma. Those of you old enough to remember Spec know
that this is exactly how Spec behaved on startup. If the User decides
that the software is right, then the new positions should be entered in
the SET=1 mode. If she decides that the hardware is right, then that
value should be entered in the same way. It isn't enough to just take
the hardware value as right, since it is quite liable to be wrong, as
described above, although that would prevent runaways.
In my case, the problem was compounded by the fact that the STOP command
did not work! But that is the subject of another discussion.
Pete.