1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Custom Asyn motor driver hangs on any move after the first? |
From: | Eloise de Castelnau via Tech-talk <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 5 Oct 2022 23:07:37 +0000 |
RESOLVED I fixed the issue by adding the following status overrides in polling: asynStatus
AMPAxis::poll(bool
*moving) {
int
done;
int
driveOn;
int
limit;
double
position;
asynStatus
comStatus; // Read the current motor position
sprintf(pC_->outString_,
"SP",
axisNo_);
comStatus =
pC_->writeReadController();
position =
atof(&pC_->inString_[3]);
setDoubleParam(pC_->motorPosition_,
position);
setIntegerParam(pC_->motorStatusDone_,
1);
setIntegerParam(pC_->motorStatusProblem_,
0);
setIntegerParam(pC_->motorStatusPowerOn_,
1);
callParamCallbacks(); return
asynSuccess; } The driver now responds to all move commands immediately. From: Eloise de Castelnau Hi all, I’m working on writing driver support for an applied motion stepper driver, based on the MCB4B motor v3 software, but running into an extremely strange issue where I am able to write a position to the motor once successfully upon motor
startup, but subsequent attempts to write position seem to go unrecognized, or, weirder still, will only register the asyn command about 2 minutes after change to the VAL record (note in the logs below how I am able to set it to 550 within a few seconds of
startup, and then I immediately issued a command to 600 with caput, but nothing acknowledged that until about 3 min later when it finally set the value). The implementation is so far very sparse, I overwrote all axis functions except for move and poll to do
nothing and autoreturn asynSuccess to try to narrow down where this issue might be occurring and prevent hang points. I understand asyn is throwing some errors about some undefined fields (encoder res, etc) but I can’t imagine how these could be causing this
issue. Is there some kind of check I need to validate or write to in the below implementations for motorAsyn to release the thread and allow it to be moved again ( presumably now it is only releasing after some timeout)? Any advice here would be hugely appreciated. Thanks! Eloise de Castelnau Implementations of those functions: asynStatus
AMPAxis::move(double
position,
int
relative,
double
minVelocity,
double
maxVelocity,
double
acceleration) {
asynStatus
status; //static const char *functionName = "move";
if (relative)
{
sprintf(pC_->outString_,
"DI%d\rFL",
NINT(position)); }
else
{
sprintf(pC_->outString_,
"SP%d",
NINT(position)); }
status =
pC_->writeController();
return
status; } asynStatus
AMPAxis::poll(bool
*moving) {
int
done;
int
driveOn;
int
limit;
double
position;
asynStatus
comStatus; // Read the current motor position
sprintf(pC_->outString_,
"SP",
axisNo_);
comStatus =
pC_->writeReadController();
if (comStatus)
goto
skip;
position =
atof(&pC_->inString_[3]);
setDoubleParam(pC_->motorPosition_,
position); *moving
= false;
skip:
setIntegerParam(pC_->motorStatusProblem_,
comStatus ?
1:0);
callParamCallbacks(); return
asynSuccess; } Asyn debug output: #!../../bin/linux-x86_64/amp < envPaths epicsEnvSet("IOC","iocamp") epicsEnvSet("TOP","/opt/epics/modules/motor/modules/motorAMP/iocs/ampIOC") epicsEnvSet("MOTOR","/opt/epics/modules/motor") epicsEnvSet("ASYN","/opt/epics/base/../modules/asyn") epicsEnvSet("SNCSEQ","/opt/epics/base/../modules/seq") epicsEnvSet("BUSY","/opt/epics/base/../modules/busy") epicsEnvSet("EPICS_BASE","/opt/epics/base") cd "/opt/epics/modules/motor/modules/motorAMP/iocs/ampIOC" ## Register all support components dbLoadDatabase "dbd/amp.dbd" amp_registerRecordDeviceDriver pdbbase dbLoadRecords("/opt/epics/modules/motor/db/motorUtil.db", "P=amp:") dbLoadTemplate "iocBoot/iocamp/motor.substitutions.amp" drvAsynSerialPortConfigure("serial1", "/dev/ttyUSB1", 0, 0, 0) asynOctetSetInputEos("serial1",0,"\r") asynOctetSetOutputEos("serial1",0,"\r") asynSetTraceIOMask("serial1", -1, 0x01) asynSetTraceMask("serial1", -1, 0x01) #asynSetTraceMask("serial1", 0, 255) # asynOctetConnect("s1","serial1",0,100,5000) # asynOctetWrite("s1", "SP520\r") ### Motors # dbLoadRecords("db/amp.db") dbLoadRecords("/opt/epics/base/../modules/asyn/db/asynRecord.db","P=amp:,R=serial1,PORT=serial1,ADDR=0,OMAX=80,IMAX=80") AMPCreateController("AMP1", "serial1", 1, 100, 5000) asynSetTraceMask("AMP1", -1, 0x255) cd "/opt/epics/modules/motor/modules/motorAMP/iocs/ampIOC/iocBoot/iocamp" iocInit Starting iocInit ############################################################################ ## EPICS R7.0.4.1 ## Rev. 2022-08-24T16:46-0700 ############################################################################ 2022/10/05 15:08:22.334 asynPortDriver:drvUserCreate: drvInfo=MOTOR_REC_DIRECTION, index=43 2022/10/05 15:08:22.334 asynPortDriver:drvUserCreate: drvInfo=MOTOR_REC_DIRECTION, index=43 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPort locking port 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPort created queueLockPortPvt=0x557b8bae8ab0 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPort created queueLockPortPvt=0x557b8bae8ab0, event=0x557b8bae8ad0, mutex=0x557b8bae8b80 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPort taking mutex 0x557b8bae8b80 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPort queueing request 2022/10/05 15:08:22.334 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.334 AMP1 schedule queueRequest timeout in 2.000000 seconds 2022/10/05 15:08:22.334 AMP1 0 autoConnect 2022/10/05 15:08:22.334 asynPortDriver:connect:, pasynUser=0x557b8bad90e8 2022/10/05 15:08:22.334 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPortCallback signaling begin event 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPortCallback waiting for mutex from queueUnlockPort 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPort waiting for event 2022/10/05 15:08:22.334 AMP1 asynManager::queueLockPort got event from callback 2022/10/05 15:08:22.335 asynPortDriver:getIntegerParam: port=AMP1 error getting parameter 43 MOTOR_REC_DIRECTION, in list 0, value undefined 2022/10/05 15:08:22.335 AMP1 queueUnlockPort 2022/10/05 15:08:22.335 AMP1 asynManager::queueUnlockPort waiting for event 2022/10/05 15:08:22.335 AMP1 queueUnlockPort unlock mutex 0x557b8bae8b80 complete. 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_MOVE_REL, index=0 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_MOVE_ABS, index=1 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_MOVE_VEL, index=2 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_HOME, index=3 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_STOP_AXIS, index=4 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_VELOCITY, index=5 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_VEL_BASE, index=6 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_ACCEL, index=7 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_POSITION, index=8 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_RESOLUTION, index=12 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_ENCODER_RATIO, index=13 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_PGAIN, index=14 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_IGAIN, index=15 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_DGAIN, index=16 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_HIGH_LIMIT, index=17 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_LOW_LIMIT, index=18 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_CLOSED_LOOP, index=19 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_STATUS, index=25 2022/10/05 15:08:22.335 asynPortDriver:drvUserCreate: drvInfo=MOTOR_UPDATE_STATUS, index=26 2022/10/05 15:08:22.335 AMP1 0 registerInterruptUser 2022/10/05 15:08:22.335 asynPortDriver:getDoubleParam: port=AMP1 error getting parameter 9 MOTOR_ENCODER_POSITION, in list 0, value undefined 2022/10/05 15:08:22.335 asynPortDriver:getDoubleParam: port=AMP1 error getting parameter 5 MOTOR_VELOCITY, in list 0, value undefined 2022/10/05 15:08:22.335 asynMotorController:readGenericPointer: MotorStatus = status0, position=500.000000, encoder position=0.000000, velocity=0.000000 2022/10/05 15:08:22.335 devMotorAsyn::build_trans: amp:m1 motor_cmnd=9, pact=0, value=1.000000 2022/10/05 15:08:22.335 devAsynMotor::build_trans: calling queueRequest, pmsg=0x557b8bad7b40, sizeof(*pmsg)=24pmsg->command=10, pmsg->interface=1, pmsg->dvalue=inf 2022/10/05 15:08:22.335 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.335 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:22.335 devMotorAsyn::asynCallback: amp:m1 pmsg=0x557b8bad7b40, sizeof(*pmsg)=24, pmsg->command=10,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=inf, pasynUser->reason=13 2022/10/05 15:08:22.335 asynMotorController:writeFloat64: Set driver AMP1, axis 0 encoder ratio=inf 2022/10/05 15:08:22.335 devMotorAsyn::init_controller, amp:m1 setting of position not required, position=500.000000, mres=1.000000, dval=0.000000, rdbd=1.0000002022/10/05 15:08:22.335 devMotorAsyn::build_trans: amp:m1 motor_cmnd=19, pact=0,
value=10000.000000 2022/10/05 15:08:22.335 devAsynMotor::build_trans: calling queueRequest, pmsg=0x557b8bad7b40, sizeof(*pmsg)=24pmsg->command=14, pmsg->interface=1, pmsg->dvalue=10000.000000 2022/10/05 15:08:22.335 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.336 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:22.336 devMotorAsyn::asynCallback: amp:m1 pmsg=0x557b8bad7b40, sizeof(*pmsg)=24, pmsg->command=14,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=10000.000000, pasynUser->reason=17 2022/10/05 15:08:22.336 asynMotorController:writeFloat64: Set driver AMP1, axis 0 high limit=10000.000000 2022/10/05 15:08:22.336 devMotorAsyn::build_trans: amp:m1 motor_cmnd=20, pact=0, value=-10000.000000 2022/10/05 15:08:22.336 devAsynMotor::build_trans: calling queueRequest, pmsg=0x557b8bad7b40, sizeof(*pmsg)=24pmsg->command=15, pmsg->interface=1, pmsg->dvalue=-10000.000000 2022/10/05 15:08:22.336 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.336 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:22.336 devMotorAsyn::asynCallback: amp:m1 pmsg=0x557b8bad7b40, sizeof(*pmsg)=24, pmsg->command=15,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=-10000.000000, pasynUser->reason=18 2022/10/05 15:08:22.336 asynMotorController:writeFloat64: Set driver AMP1, axis 0 low limit=-10000.000000 2022/10/05 15:08:22.336 asynPortDriver:drvUserCreate: drvInfo=MOTOR_REC_OFFSET, index=44 2022/10/05 15:08:22.336 asynPortDriver:drvUserCreate: drvInfo=MOTOR_REC_OFFSET, index=44 2022/10/05 15:08:22.336 AMP1 asynManager::queueLockPort locking port 2022/10/05 15:08:22.336 AMP1 asynManager::queueLockPort taking mutex 0x557b8bae8b80 2022/10/05 15:08:22.336 AMP1 asynManager::queueLockPort queueing request 2022/10/05 15:08:22.336 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.336 AMP1 schedule queueRequest timeout in 2.000000 seconds 2022/10/05 15:08:22.336 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:22.336 AMP1 asynManager::queueLockPortCallback signaling begin event 2022/10/05 15:08:22.336 AMP1 asynManager::queueLockPortCallback waiting for mutex from queueUnlockPort 2022/10/05 15:08:22.336 AMP1 asynManager::queueLockPort waiting for event 2022/10/05 15:08:22.336 AMP1 asynManager::queueLockPort got event from callback 2022/10/05 15:08:22.336 asynPortDriver:getDoubleParam: port=AMP1 error getting parameter 44 MOTOR_REC_OFFSET, in list 0, value undefined 2022/10/05 15:08:22.337 AMP1 queueUnlockPort 2022/10/05 15:08:22.337 AMP1 asynManager::queueUnlockPort waiting for event 2022/10/05 15:08:22.337 AMP1 queueUnlockPort unlock mutex 0x557b8bae8b80 complete. 2022/10/05 15:08:22.337 asynPortDriver:drvUserDestroy: this=0x557b8bad6c80, pasynUser=0x557b8baea328 2022/10/05 15:08:22.337 asynPortDriver:drvUserCreate: drvInfo=MOTOR_REC_RESOLUTION, index=42 2022/10/05 15:08:22.337 asynPortDriver:drvUserCreate: drvInfo=MOTOR_REC_RESOLUTION, index=42 2022/10/05 15:08:22.337 AMP1 asynManager::queueLockPort locking port 2022/10/05 15:08:22.337 AMP1 asynManager::queueLockPort taking mutex 0x557b8bae8b80 2022/10/05 15:08:22.337 AMP1 asynManager::queueLockPort queueing request 2022/10/05 15:08:22.337 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.337 AMP1 schedule queueRequest timeout in 2.000000 seconds 2022/10/05 15:08:22.337 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:22.337 AMP1 asynManager::queueLockPortCallback signaling begin event 2022/10/05 15:08:22.337 AMP1 asynManager::queueLockPortCallback waiting for mutex from queueUnlockPort 2022/10/05 15:08:22.337 AMP1 asynManager::queueLockPort waiting for event 2022/10/05 15:08:22.337 AMP1 asynManager::queueLockPort got event from callback 2022/10/05 15:08:22.337 asynPortDriver:getDoubleParam: port=AMP1 error getting parameter 42 MOTOR_REC_RESOLUTION, in list 0, value undefined 2022/10/05 15:08:22.337 AMP1 queueUnlockPort 2022/10/05 15:08:22.337 AMP1 asynManager::queueUnlockPort waiting for event 2022/10/05 15:08:22.337 AMP1 queueUnlockPort unlock mutex 0x557b8bae8b80 complete. 2022/10/05 15:08:22.337 asynPortDriver:drvUserDestroy: this=0x557b8bad6c80, pasynUser=0x557b8bae9408 cas warning: Configured TCP port was unavailable. cas warning: Using dynamically assigned TCP port 37045, cas warning: but now two or more servers share the same UDP port. cas warning: Depending on your IP kernel this server may not be cas warning: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST) iocRun: All initialization complete 2022/10/05 15:08:22.851 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.852 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.852 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:22.852 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:22.852 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:22.854 asynManager::portThread port=AMP1 callback epics> 2022/10/05 15:08:42.919 devMotorAsyn::build_trans: amp:m1 motor_cmnd=6, pact=1, value=100.000000 2022/10/05 15:08:42.919 devAsynMotor::build_trans: calling queueRequest, pmsg=0x557b8bad7b40, sizeof(*pmsg)=24pmsg->command=5, pmsg->interface=1, pmsg->dvalue=100.000000 2022/10/05 15:08:42.919 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:42.919 devMotorAsyn::build_trans: amp:m1 motor_cmnd=5, pact=1, value=100.000000 2022/10/05 15:08:42.919 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb08017c90, sizeof(*pmsg)=24pmsg->command=6, pmsg->interface=1, pmsg->dvalue=100.000000 2022/10/05 15:08:42.919 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:42.919 devMotorAsyn::build_trans: amp:m1 motor_cmnd=7, pact=1, value=1.000000 2022/10/05 15:08:42.919 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb08017ce0, sizeof(*pmsg)=24pmsg->command=7, pmsg->interface=1, pmsg->dvalue=1.000000 2022/10/05 15:08:42.919 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:42.919 devMotorAsyn::build_trans: amp:m1 motor_cmnd=0, pact=1, value=550.000000 2022/10/05 15:08:42.919 devMotorAsyn::build_trans: amp:m1 motor_cmnd=8, pact=1, value=0.000000 2022/10/05 15:08:42.919 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb08017f00, sizeof(*pmsg)=24pmsg->command=0, pmsg->interface=1, pmsg->dvalue=550.000000 2022/10/05 15:08:42.919 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:08:42.921 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:42.921 devMotorAsyn::asynCallback: amp:m1 pmsg=0x557b8bad7b40, sizeof(*pmsg)=24, pmsg->command=5,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=100.000000, pasynUser->reason=5 2022/10/05 15:08:42.921 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:42.921 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb08017c90, sizeof(*pmsg)=24, pmsg->command=6,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=100.000000, pasynUser->reason=6 2022/10/05 15:08:42.921 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:42.921 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb08017ce0, sizeof(*pmsg)=24, pmsg->command=7,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=1.000000, pasynUser->reason=7 2022/10/05 15:08:42.921 asynManager::portThread port=AMP1 callback 2022/10/05 15:08:42.921 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb08017f00, sizeof(*pmsg)=24, pmsg->command=0,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=550.000000, pasynUser->reason=1 2022/10/05 15:08:42.927 asynMotorController:writeFloat64: Set driver AMP1, axis 0 move absolute to 550.000000, base velocity=100.000000, velocity=100.000000, acceleration=1.000000 2022/10/05 15:11:35.157 devMotorAsyn::build_trans: amp:m1 motor_cmnd=6, pact=1, value=100.000000 2022/10/05 15:11:35.157 devAsynMotor::build_trans: calling queueRequest, pmsg=0x557b8bad7b40, sizeof(*pmsg)=24pmsg->command=5, pmsg->interface=1, pmsg->dvalue=100.000000 2022/10/05 15:11:35.157 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.157 devMotorAsyn::build_trans: amp:m1 motor_cmnd=5, pact=1, value=100.000000 2022/10/05 15:11:35.157 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb08017c90, sizeof(*pmsg)=24pmsg->command=6, pmsg->interface=1, pmsg->dvalue=100.000000 2022/10/05 15:11:35.157 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.157 devMotorAsyn::build_trans: amp:m1 motor_cmnd=7, pact=1, value=1.000000 2022/10/05 15:11:35.157 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb08017ce0, sizeof(*pmsg)=24pmsg->command=7, pmsg->interface=1, pmsg->dvalue=1.000000 2022/10/05 15:11:35.157 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.157 devMotorAsyn::build_trans: amp:m1 motor_cmnd=0, pact=1, value=600.000000 2022/10/05 15:11:35.157 devMotorAsyn::build_trans: amp:m1 motor_cmnd=8, pact=1, value=0.000000 2022/10/05 15:11:35.157 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb08017f00, sizeof(*pmsg)=24pmsg->command=0, pmsg->interface=1, pmsg->dvalue=600.000000 2022/10/05 15:11:35.157 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.157 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.157 devMotorAsyn::asynCallback: amp:m1 pmsg=0x557b8bad7b40, sizeof(*pmsg)=24, pmsg->command=5,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=100.000000, pasynUser->reason=5 2022/10/05 15:11:35.157 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.157 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.157 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.157 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb08017c90, sizeof(*pmsg)=24, pmsg->command=6,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=100.000000, pasynUser->reason=6 2022/10/05 15:11:35.157 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.157 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb08017ce0, sizeof(*pmsg)=24, pmsg->command=7,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=1.000000, pasynUser->reason=7 2022/10/05 15:11:35.157 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.157 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb08017f00, sizeof(*pmsg)=24, pmsg->command=0,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=600.000000, pasynUser->reason=1 2022/10/05 15:11:35.158 asynMotorController:writeFloat64: Set driver AMP1, axis 0 move absolute to 600.000000, base velocity=100.000000, velocity=100.000000, acceleration=1.000000 2022/10/05 15:11:35.158 devMotorAsyn::build_trans: amp:m1 motor_cmnd=6, pact=1, value=100.000000 2022/10/05 15:11:35.158 devAsynMotor::build_trans: calling queueRequest, pmsg=0x557b8bad7b40, sizeof(*pmsg)=24pmsg->command=5, pmsg->interface=1, pmsg->dvalue=100.000000 2022/10/05 15:11:35.158 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.158 devMotorAsyn::build_trans: amp:m1 motor_cmnd=5, pact=1, value=100.000000 2022/10/05 15:11:35.158 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb08017c90, sizeof(*pmsg)=24pmsg->command=6, pmsg->interface=1, pmsg->dvalue=100.000000 2022/10/05 15:11:35.158 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.158 devMotorAsyn::build_trans: amp:m1 motor_cmnd=7, pact=1, value=1.000000 2022/10/05 15:11:35.158 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb08017ce0, sizeof(*pmsg)=24pmsg->command=7, pmsg->interface=1, pmsg->dvalue=1.000000 2022/10/05 15:11:35.158 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.158 devMotorAsyn::build_trans: amp:m1 motor_cmnd=0, pact=1, value=600.000000 2022/10/05 15:11:35.158 devMotorAsyn::build_trans: amp:m1 motor_cmnd=8, pact=1, value=0.000000 2022/10/05 15:11:35.158 devAsynMotor::build_trans: calling queueRequest, pmsg=0x7feb58000ea0, sizeof(*pmsg)=24pmsg->command=0, pmsg->interface=1, pmsg->dvalue=600.000000 2022/10/05 15:11:35.158 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.158 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.165 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.165 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.165 devMotorAsyn::asynCallback: amp:m1 pmsg=0x557b8bad7b40, sizeof(*pmsg)=24, pmsg->command=5,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=100.000000, pasynUser->reason=5 2022/10/05 15:11:35.165 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.165 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb08017c90, sizeof(*pmsg)=24, pmsg->command=6,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=100.000000, pasynUser->reason=6 2022/10/05 15:11:35.165 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.165 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb08017ce0, sizeof(*pmsg)=24, pmsg->command=7,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=1.000000, pasynUser->reason=7 2022/10/05 15:11:35.165 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.165 devMotorAsyn::asynCallback: amp:m1 pmsg=0x7feb58000ea0, sizeof(*pmsg)=24, pmsg->command=0,pmsg->interface=1, pmsg->ivalue=0, pmsg->dvalue=600.000000, pasynUser->reason=1 2022/10/05 15:11:35.170 asynMotorController:writeFloat64: Set driver AMP1, axis 0 move absolute to 600.000000, base velocity=100.000000, velocity=100.000000, acceleration=1.000000 2022/10/05 15:11:35.170 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.170 AMP1 addr 0 queueRequest priority 0 not lockHolder 2022/10/05 15:11:35.170 asynManager::portThread port=AMP1 callback 2022/10/05 15:11:35.170 asynManager::portThread port=AMP1 callback |