[Date Prev][Date Next][Date Index]

Re: Reply to Ben Ocko re: pseudomotors




Arun Bommannavar wrote:

> As long as we have your attention, Gerry, how does Spec handle CNTRL-C
> with respect to pseudomotors?

Let's be clear.  Spec has its own internal pseudomotors, sometimes  
implemented in C code (such as for a gamma-rotation plus gamma-translation  
equals detector rotation on a six-circle diffractometer) and sometimes in  
macros (as is often done at ESRF for all sorts of things).  However, in  
both cases these pseudomotors are tied to real motors also configured in  
spec.  When a user types ^C to stop the current motion, the real motors  
associated with the pseudomotors are halted.

However, the current discussion about EPICS pseudomotors describes a  
different situation.  From spec's point of view, these EPICS pseudomotors  
will be treated like real motors.  Spec will have no knowledge of the  
physical motors associated with the EPICS pseudomotors.  When a user types  
a ^C to halt the motors, spec will send through channel access the agreed  
upon command that stops EPICS pseudomotors, just as it sends a .STOP to  
stop a standard EPICS motor.  The EPICS side then does its magic to stop  
the real motors.

The motivation behind this news-group thread is that I can't build into  
spec a standard set of commands to start, stop, read position and get  
current status for these EPICS pseudomotors, because there is no agreed  
upon standard for the process variable names or the channel names, as  
there is for the standard EPICS motors.

If the standard names for the commands were:

.RRBV to read back the current position
.RVAL to set the target position and initiate a move
.STOP to stop a move
.DMOV to indicate starting/stopping status
.HLS to indicate hitting the high limit
.LLS to indicate hitting the low limit

and the motor name was formed by a prefix + 'm' + an integer, then spec's  
existing motor support would work with the EPICS pseudomotors with no  
change to the spec code.

The above set of names doesn't seem like the most descriptive set for the  
desired functionality, though.  I'm perfectly happy to implement a new  
set of names for the new (and 'real' to spec) motor type of EPICS  
pseudomotor.  The problem is for all the different people who are working  
with EPICS at APS to agree on something.  I ought to be able to make any  
necessary modifications in spec in very short order, once I know what the  
standard will be.

Gerry