Hi John,
Yes, you are reading that correctly.
The first time the command is sent it times out waiting for a response.
That timeout is normal, because the XPS does not send a response on that
socket until the move completes, and the driver does not wait for that,
it uses a short timeout.
The second time it sends the command it gets a -1 error response. This
error translates as:
Error -1 : Busy socket : previous command not yet finished
The third time it sends the command it get a -22 error response, which
translates as:
Error -22 : Not allowed action
Something is not right!
Here is what I see on my XPS IOC when I turn on the same asynTrace:
ioc13bmd> 2011/06/27 17:48:24.701 164.54.160.83:5001 TCP write 44
GroupMoveAbsolute (GROUP1.POSITIONER,2.1269)
2011/06/27 17:48:24.801 SendAndReceive, sent: 'GroupMoveAbsolute
(GROUP1.POSITIONER,2.1269)'
2011/06/27 17:48:24.801 SendAndReceive, timeout on read
I only see a single GroupMoveAbsolute command sent, not 3.
Do you have a non-zero number of retries (.RTRY) set on the motor? I
wonder if those could be retry attempts, though that does not make
sense, since a retry should not happen until the move completes.
Can you send the output of
dbpr "mymotor",10
Mark
-----Original Message-----
From: John Dobbins [mailto:[email protected]]
Sent: Monday, June 27, 2011 3:40 PM
To: Mark Rivers
Cc: [email protected]
Subject: Re: Newport XPS and Motor record
Mark,
Thanks for the specific suggestions.
The asyTrace output seems to show the move command is sent three times!?
Am I reading this right?
John
epics> 2011/06/27 16:26:49.689 erpxps01:5001 TCP write 52
GroupMoveAbsolute (GROUP2.POSITIONER,11.20009791225)
2011/06/27 16:26:49.790 SendAndReceive, sent: 'GroupMoveAbsolute
(GROUP2.POSITIONER,11.20009791225)'
2011/06/27 16:26:49.790 SendAndReceive, timeout on read
2011/06/27 16:26:49.791 erpxps01:5001 TCP write 52
GroupMoveAbsolute (GROUP2.POSITIONER,11.20009791225)
2011/06/27 16:26:49.791 erpxps01:5001 TCP read 64
-1,GroupMoveAbsolute (GROUP2.POSITIONER,11.20009791225),EndOfAPI
2011/06/27 16:26:49.791 SendAndReceive, sent: 'GroupMoveAbsolute
(GROUP2.POSITIONER,11.20009791225)'
2011/06/27 16:26:49.791 SendAndReceive, read: '-1,GroupMoveAbsolute
(GROUP2.POSITIONER,11.20009791225),EndOfAPI'
2011/06/27 16:26:49.791 erpxps01:5001 TCP write 52
GroupMoveAbsolute (GROUP2.POSITIONER,11.20009791225)
2011/06/27 16:26:49.792 erpxps01:5001 TCP read 65
-22,GroupMoveAbsolute (GROUP2.POSITIONER,11.20009791225),EndOfAPI
2011/06/27 16:26:49.792 SendAndReceive, sent: 'GroupMoveAbsolute
(GROUP2.POSITIONER,11.20009791225)'
2011/06/27 16:26:49.792 SendAndReceive, read: '-22,GroupMoveAbsolute
(GROUP2.POSITIONER,11.20009791225),EndOfAPI'
2011/06/27 16:26:49.792 SendAndReceive unexpected response
=-22,GroupMoveAbsolute (GROUP2.POSITIONER,11.20009791225),EndOfAPI
On 6/27/2011 2:50 PM, Mark Rivers wrote:
Hi John,
If I look in the XPS web interface I don't see any errors reported
there. Should I expect to see them there?
No, you would not see them there. You can use the terminal interface
in
the Web page to translate error numbers into messages, but you won't
see
messages as errors occur.
If the motor is moving normally, but is reporting that error, then I
wonder if perhaps it is being told to move a second time while it is
already moving, for example?
You can do
asynReport
to see the names of all of the asyn IP port drivers connected to this
XPS. There will be several. One is used for status on all axes, and
there is 1 per axis for issuing "move" commands. You can enable trace
debugging on these ports with
asynSetTraceIOMask "port",0,2
asynSetTraceMask "port",0,9
That sets asynTraceIOEscape (to see ASCII messages with escape
sequences) and asynTraceIODriver, to see messages from the asyn IP
driver.
With that level of debugging you should be able to see what commands
are
being sent to the XPS, and which ones are working, and which are
resulting in the error you see.
Send the output of "dbpr myMotor 10" (which will print all the motor
record fields) and the contents of the stage definition file for those
motors, so we can compare maximum velocity, acceleration, limits, etc.
Mark
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of John Dobbins
Sent: Monday, June 27, 2011 1:29 PM
To: [email protected]
Subject: Re: Newport XPS and Motor record
All,
Thanks for the various replies.
If I look in the XPS web interface I don't see any errors reported
there. Should I expect to see them there?
The stages actually move normally. And report statuses that would be
expected, "Ready from Homing", "Reading from Moving", ...
Also I have two different stage types connected and both types produce
this error.
The XPS configuration was generated by the XPS using that option as
available in the web interface. Limits, velocities, ... appear to be
set
correctly. So I can't tell what the XPS is complaining about.
John
On 6/27/2011 11:57 AM, John Hammonds wrote:
I once had a problem that the configured velocity (in the motor
record)
was not allowed by the XPS. It returned the same error code. This
was
a manually configured motor. We had to play around a bit to get the
XPS configuration correct.
John
On 6/27/2011 10:52 AM, Pete Jemian wrote:
John:
What is your configuration in the XPS controller?
Can that have some influence?
Pete
On 06/27/2011 09:51 AM, [email protected] wrote:
Hi,
It could also be that the XPS axis is in the wrong 'state'. I think
it needs to be in 'ready state' (states 10 to 13) to receive move
commands.
I updated the XPS driver recently. So in the next release of the
motor support module the driver should indicate if there is a
problem
(via the motor record MSTA field). So if the axis is in a state
which
means you can't move it then you will be notified by the record
going
into alarm state.
Cheers,
Matthew
-----Original Message-----
From: [email protected] [mailto:tech-talk-
[email protected]] On Behalf Of Mark Rivers
Sent: 27 June 2011 15:17
To: John Dobbins; EPICS Tech-Talk
Subject: RE: Newport XPS and Motor record
Hi John,
If you translate that error code, -22, using ErrorStringGet in the
XPS
Web terminal interface you will get:
0,Error -22 : Not allowed action
So there is something illegal about the request you are making.
Is
it
possible that you are exceeding a soft limit, etc.?
Mark
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of John Dobbins
Sent: Monday, June 27, 2011 8:38 AM
To: EPICS Tech-Talk
Subject: Newport XPS and Motor record
All,
I am using Motor Record R6-4-4 , EPICS R3.14.9, ASYN 4-9 with a
Newport
XPS controller.
When I send a new position to an actuator I get a messages in the
IOC
like this:
epics> 2011/06/24 12:35:35.552 SendAndReceive unexpected
response
=-22,GroupMoveAbsolute (GROUP2.POSITIONER,12.00003072008),EndOfAPI
otherwise everything seems to be working, i.e. motor responds
properly.
Does someone know what this means? The XPS set-up portion of my
st.cmd
script is below.
Regards and Thanks,
John Dobbins
Cornell University
The XPS set-up portion of my st.cmd script:
# cards (total controllers)
XPSSetup(1)
# card, IP, PORT, number of axes, active poll period (ms), idle
poll
period (ms)
XPSConfig(0, "erpxps01", 5001, 3, 10, 500)
# asyn port, driver name, controller index, max. axes)
drvAsynMotorConfigure("XPS1", "motorXPS", 0, 3)
# card, axis, groupName.positionerName, stepsPerUserUnit
# PR50CC rotational stage
XPSConfigAxis(0,0,"GROUP1.POSITIONER",100)
# CMA-12CCCL linear stage
XPSConfigAxis(0,1,"GROUP2.POSITIONER",20480)
# CMA-12CCCL linear stage
XPSConfigAxis(0,2,"GROUP3.POSITIONER",20480)