EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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  <20222023  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  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: 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 22:20:30 +0000

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


Replies:
RE: Custom Asyn motor driver hangs on any move after the first? Eloise de Castelnau via Tech-talk

Navigate by Date:
Prev: EPICS 7 side-by-side with EPICS 3/4 Gregory, Ray via Tech-talk
Next: RE: Custom Asyn motor driver hangs on any move after the first? Eloise de Castelnau via Tech-talk
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  <20222023  2024 
Navigate by Thread:
Prev: Re: EPICS 7 side-by-side with EPICS 3/4 Timo Korhonen via Tech-talk
Next: RE: Custom Asyn motor driver hangs on any move after the first? Eloise de Castelnau via Tech-talk
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  <20222023  2024 
ANJ, 06 Oct 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·