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