Hi Juliane,
Is there a way to get for feedback in EPICS, like a debug mode?
Yes, you can see the complete communications data stream by enabling asynTraceIODriver for the underlying asyn port in your startup script.
You can modify this example startup script:
motor/modules/motorSmarAct/iocs/smarActIOC/iocBoot/iocSmarAct/smaractmcs.iocsh
to add these lines:
drvAsynIPPortConfigure("MCS_ETH","192.168.1.17:2102",0,0,0)
asynSetTraceIOMask("MCS_ETH", 0, "ESCAPE")
asynSetTraceMask("MCS_ETH", 0, "ERROR|DRIVER")
That will print all of the TCP communication between the IOC and the MCS controller.
Mark
________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Juliane Reinhardt via Tech-talk <tech-talk at aps.anl.gov>
Sent: Thursday, November 12, 2020 12:17 PM
To: Peterson, Kevin M.; tech-talk at aps.anl.gov
Subject: Re: read RVB and VAL don't match when moving smarAct motors without encoders
Hi Kevin,
thanks for your reply. I'm not sure what you mean by GST, GA or GP
commands. However, we tried to communicate with the smarAct motors via
the vendor software and did not get very informative feedback. (Same
return value no matter what motor/controller we were using) Is there a
way to get for feedback in EPICS, like a debug mode?
Best,
Juliane
On 11/11/20 16:05, Peterson, Kevin M. wrote:
Juliane,
How does the MCS controller respond to the GST, GA and GP commands for
an axis without an encoder? It should be possible to send them using an
asyn record or a terminal in the vendor software.
The MCS driver assumes every axis will have a sensor and sets the motor
record's problem bit if the GST command returns an error.
Kevin
On 11/11/20 4:14 PM, Juliane Reinhardt via Tech-talk wrote:
Dear EPICS team,
I have recently been setting up smarAct MCS controllers for a couple of
smarAct motors, some of them have encoders and some don't. The 2 motors
that don't have encoders don't move although they are connected properly
(I assume). When I do "caput motor.VAL 0.5" I get the feedback for old
and new VAL and when I check with "caget motor.VAL" it matches. However,
the actual "caget motor.RBV" does not change accordingly and the motor
did not move.
What is required to move motors without an encoder in this case?
Thanks,
Juliane
--
Juliane Reinhardt, PhD
Project Scientist | ALS Computing Group
Blg. 15-337E | phone: 510-486-4313
jreinhardt at lbl.gov
Lawrence Berkeley National Lab