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  <20172018  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  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: MCB-4B Motor WriteInt32 Errors
From: Mark Rivers <[email protected]>
To: Caleb Marshall <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 9 Feb 2017 18:12:05 +0000
Hi Caleb,

I don't see any obvious problem.  Please add the following lines just before iocInit.  Then try to move a motor a few times and send the complete output.

asynSetTraceIOMask("L0", 0, 2)
asynSetTraceMask("L0", 0, 9)
asynSetTraceIOMask("MCB4B1", 0, 2)
asynSetTraceMask("MCB4B1", 0, 255)

Also send the output of asynReport again after trying to move the motor.

In your original message you reported:

> 2017/02/08 10:53:40.203 asynMotorController:writeInt32 error, status=3 axis=0, function=4, value=0

function=4 means this is a "stop" command, which calls this function in the MCB4B driver:

asynStatus MCB4BAxis::stop(double acceleration )
{
  asynStatus status;
  //static const char *functionName = "MCB4BAxis::stop";

  sprintf(pC_->outString_, "#%02dQ", axisNo_);
  status = pC_->writeReadController();
  return status;
}

So writeReadController must be returning 3 which is asynError.  I'm not sure why this would be happening but hopefully the asyn trace will tell us.

Mark



________________________________
From: Caleb Marshall [[email protected]]
Sent: Thursday, February 09, 2017 11:47 AM
To: Mark Rivers; [email protected]
Subject: Re: MCB-4B Motor WriteInt32 Errors

Here it comes...

epics> asynReport 10 MCB4B1
MCB4B1 multiDevice:Yes canBlock:Yes autoConnect:Yes
    enabled:Yes connected:Yes numberConnects 1
    nDevices 4 nQueued 0 blocked:No
    asynManagerLock:No synchronousLock:No
    exceptionActive:No exceptionUsers 0 exceptionNotifys 0
    traceMask:0x1 traceIOMask:0x0 traceInfoMask:0x1
    interposeInterfaceList
        asynOctet pinterface 0x7f98f18521c0 drvPvt 0x22d2510
    interfaceList
        asynCommon pinterface 0x7f98f18528d0 drvPvt 0x22d6310
        asynDrvUser pinterface 0x7f98f18526c0 drvPvt 0x22d6310
        asynOctet pinterface 0x7f98f18527e0 drvPvt 0x22d6310
        asynInt32 pinterface 0x7f98f18528a0 drvPvt 0x22d6310
        asynFloat64 pinterface 0x7f98f1852840 drvPvt 0x22d6310
        asynFloat64Array pinterface 0x7f98f1852740 drvPvt 0x22d6310
        asynGenericPointer pinterface 0x7f98f1852720 drvPvt 0x22d6310
    addr 0 autoConnect Yes enabled Yes connected Yes exceptionActive No
        exceptionActive No exceptionUsers 0 exceptionNotifys 0
        blocked No
        traceMask:0x1 traceIOMask:0x0 traceInfoMask:0x1
    addr 1 autoConnect Yes enabled Yes connected Yes exceptionActive No
        exceptionActive No exceptionUsers 0 exceptionNotifys 0
        blocked No
        traceMask:0x1 traceIOMask:0x0 traceInfoMask:0x1
    addr 2 autoConnect Yes enabled Yes connected Yes exceptionActive No
        exceptionActive No exceptionUsers 0 exceptionNotifys 0
        blocked No
        traceMask:0x1 traceIOMask:0x0 traceInfoMask:0x1
    addr 3 autoConnect Yes enabled Yes connected Yes exceptionActive No
        exceptionActive No exceptionUsers 0 exceptionNotifys 0
        blocked No
        traceMask:0x1 traceIOMask:0x0 traceInfoMask:0x1
MCB-4B motor driver MCB4B1, numAxes=4, moving poll period=0.100000, idle poll period=5.000000
  axis 0
  axis 1
  axis 2
  axis 3
Port: MCB4B1
  Timestamp: <undefined>
  Input EOS[0]:
  Output EOS[0]:
Parameter list 0
Number of parameters is: 70
Parameter 0 type=asynFloat64, name=MOTOR_MOVE_REL, value is undefined
Parameter 1 type=asynFloat64, name=MOTOR_MOVE_ABS, value is undefined
Parameter 2 type=asynFloat64, name=MOTOR_MOVE_VEL, value is undefined
Parameter 3 type=asynFloat64, name=MOTOR_HOME, value is undefined
Parameter 4 type=asynInt32, name=MOTOR_STOP_AXIS, value is undefined
Parameter 5 type=asynFloat64, name=MOTOR_VELOCITY, value is undefined
Parameter 6 type=asynFloat64, name=MOTOR_VEL_BASE, value is undefined
Parameter 7 type=asynFloat64, name=MOTOR_ACCEL, value is undefined
Parameter 8 type=asynFloat64, name=MOTOR_POSITION, value=-121.000000, status=0
Parameter 9 type=asynFloat64, name=MOTOR_ENCODER_POSITION, value is undefined
Parameter 10 type=asynInt32, name=MOTOR_DEFER_MOVES, value is undefined
Parameter 11 type=asynInt32, name=MOTOR_MOVE_HOME, value is undefined
Parameter 12 type=asynFloat64, name=MOTOR_RESOLUTION, value is undefined
Parameter 13 type=asynFloat64, name=MOTOR_ENCODER_RATIO, value=-inf, status=0
Parameter 14 type=asynFloat64, name=MOTOR_PGAIN, value is undefined
Parameter 15 type=asynFloat64, name=MOTOR_IGAIN, value is undefined
Parameter 16 type=asynFloat64, name=MOTOR_DGAIN, value is undefined
Parameter 17 type=asynFloat64, name=MOTOR_HIGH_LIMIT, value=-0.000000, status=0
Parameter 18 type=asynFloat64, name=MOTOR_LOW_LIMIT, value=-16000.000000, status=0
Parameter 19 type=asynInt32, name=MOTOR_CLOSED_LOOP, value is undefined
Parameter 20 type=asynInt32, name=MOTOR_STATUS, value=514, status=0
Parameter 21 type=asynInt32, name=MOTOR_UPDATE_STATUS, value is undefined
Parameter 22 type=asynInt32, name=MOTOR_STATUS_DIRECTION, value is undefined
Parameter 23 type=asynInt32, name=MOTOR_STATUS_DONE, value=1, status=0
Parameter 24 type=asynInt32, name=MOTOR_STATUS_HIGH_LIMIT, value is undefined
Parameter 25 type=asynInt32, name=MOTOR_STATUS_AT_HOME, value is undefined
Parameter 26 type=asynInt32, name=MOTOR_STATUS_SLIP, value is undefined
Parameter 27 type=asynInt32, name=MOTOR_STATUS_POWERED, value is undefined
Parameter 28 type=asynInt32, name=MOTOR_STATUS_FOLLOWING_ERROR, value is undefined
Parameter 29 type=asynInt32, name=MOTOR_STATUS_HOME, value is undefined
Parameter 30 type=asynInt32, name=MOTOR_STATUS_HAS_ENCODER, value is undefined
Parameter 31 type=asynInt32, name=MOTOR_STATUS_PROBLEM, value=1, status=0
Parameter 32 type=asynInt32, name=MOTOR_STATUS_MOVING, value is undefined
Parameter 33 type=asynInt32, name=MOTOR_STATUS_GAIN_SUPPORT, value is undefined
Parameter 34 type=asynInt32, name=MOTOR_STATUS_COMMS_ERROR, value is undefined
Parameter 35 type=asynInt32, name=MOTOR_STATUS_LOW_LIMIT, value is undefined
Parameter 36 type=asynInt32, name=MOTOR_STATUS_HOMED, value is undefined
Parameter 37 type=asynInt32, name=PROFILE_NUM_AXES, value is undefined
Parameter 38 type=asynInt32, name=PROFILE_NUM_POINTS, value is undefined
Parameter 39 type=asynInt32, name=PROFILE_CURRENT_POINT, value is undefined
Parameter 40 type=asynInt32, name=PROFILE_NUM_PULSES, value is undefined
Parameter 41 type=asynInt32, name=PROFILE_START_PULSES, value is undefined
Parameter 42 type=asynInt32, name=PROFILE_END_PULSES, value is undefined
Parameter 43 type=asynInt32, name=PROFILE_ACTUAL_PULSES, value is undefined
Parameter 44 type=asynInt32, name=PROFILE_NUM_READBACKS, value is undefined
Parameter 45 type=asynInt32, name=PROFILE_TIME_MODE, value is undefined
Parameter 46 type=asynFloat64, name=PROFILE_FIXED_TIME, value is undefined
Parameter 47 type=asynFloat64Array, name=PROFILE_TIME_ARRAY, value is undefined
Parameter 48 type=asynFloat64, name=PROFILE_ACCELERATION, value is undefined
Parameter 49 type=asynInt32, name=PROFILE_MOVE_MODE, value is undefined
Parameter 50 type=asynInt32, name=PROFILE_BUILD, value is undefined
Parameter 51 type=asynInt32, name=PROFILE_BUILD_STATE, value is undefined
Parameter 52 type=asynInt32, name=PROFILE_BUILD_STATUS, value is undefined
Parameter 53 type=string, name=PROFILE_BUILD_MESSAGE, value is undefined
Parameter 54 type=asynInt32, name=PROFILE_EXECUTE, value is undefined
Parameter 55 type=asynInt32, name=PROFILE_EXECUTE_STATE, value=0, status=0
Parameter 56 type=asynInt32, name=PROFILE_EXECUTE_STATUS, value is undefined
Parameter 57 type=string, name=PROFILE_EXECUTE_MESSAGE, value is undefined
Parameter 58 type=asynInt32, name=PROFILE_ABORT, value is undefined
Parameter 59 type=asynInt32, name=PROFILE_READBACK, value is undefined
Parameter 60 type=asynInt32, name=PROFILE_READBACK_STATE, value is undefined
Parameter 61 type=asynInt32, name=PROFILE_READBACK_STATUS, value is undefined
Parameter 62 type=string, name=PROFILE_READBACK_MESSAGE, value is undefined
Parameter 63 type=asynInt32, name=PROFILE_USE_AXIS, value is undefined
Parameter 64 type=asynFloat64Array, name=PROFILE_POSITIONS, value is undefined
Parameter 65 type=asynFloat64Array, name=PROFILE_READBACKS, value is undefined
Parameter 66 type=asynFloat64Array, name=PROFILE_FOLLOWING_ERRORS, value is undefined
Parameter 67 type=asynFloat64, name=PROFILE_MOTOR_RESOLUTION, value is undefined
Parameter 68 type=asynInt32, name=PROFILE_MOTOR_DIRECTION, value is undefined
Parameter 69 type=asynFloat64, name=PROFILE_MOTOR_OFFSET, value is undefined
Parameter list 1
Number of parameters is: 70
Parameter 0 type=asynFloat64, name=MOTOR_MOVE_REL, value is undefined
Parameter 1 type=asynFloat64, name=MOTOR_MOVE_ABS, value is undefined
Parameter 2 type=asynFloat64, name=MOTOR_MOVE_VEL, value is undefined
Parameter 3 type=asynFloat64, name=MOTOR_HOME, value is undefined
Parameter 4 type=asynInt32, name=MOTOR_STOP_AXIS, value is undefined
Parameter 5 type=asynFloat64, name=MOTOR_VELOCITY, value is undefined
Parameter 6 type=asynFloat64, name=MOTOR_VEL_BASE, value is undefined
Parameter 7 type=asynFloat64, name=MOTOR_ACCEL, value is undefined
Parameter 8 type=asynFloat64, name=MOTOR_POSITION, value is undefined
Parameter 9 type=asynFloat64, name=MOTOR_ENCODER_POSITION, value is undefined
Parameter 10 type=asynInt32, name=MOTOR_DEFER_MOVES, value is undefined
Parameter 11 type=asynInt32, name=MOTOR_MOVE_HOME, value is undefined
Parameter 12 type=asynFloat64, name=MOTOR_RESOLUTION, value is undefined
Parameter 13 type=asynFloat64, name=MOTOR_ENCODER_RATIO, value=-inf, status=0
Parameter 14 type=asynFloat64, name=MOTOR_PGAIN, value is undefined
Parameter 15 type=asynFloat64, name=MOTOR_IGAIN, value is undefined
Parameter 16 type=asynFloat64, name=MOTOR_DGAIN, value is undefined
Parameter 17 type=asynFloat64, name=MOTOR_HIGH_LIMIT, value=-0.000000, status=0
Parameter 18 type=asynFloat64, name=MOTOR_LOW_LIMIT, value=-16000.000000, status=0
Parameter 19 type=asynInt32, name=MOTOR_CLOSED_LOOP, value is undefined
Parameter 20 type=asynInt32, name=MOTOR_STATUS, value=512, status=0
Parameter 21 type=asynInt32, name=MOTOR_UPDATE_STATUS, value is undefined
Parameter 22 type=asynInt32, name=MOTOR_STATUS_DIRECTION, value is undefined
Parameter 23 type=asynInt32, name=MOTOR_STATUS_DONE, value is undefined
Parameter 24 type=asynInt32, name=MOTOR_STATUS_HIGH_LIMIT, value is undefined
Parameter 25 type=asynInt32, name=MOTOR_STATUS_AT_HOME, value is undefined
Parameter 26 type=asynInt32, name=MOTOR_STATUS_SLIP, value is undefined
Parameter 27 type=asynInt32, name=MOTOR_STATUS_POWERED, value is undefined
Parameter 28 type=asynInt32, name=MOTOR_STATUS_FOLLOWING_ERROR, value is undefined
Parameter 29 type=asynInt32, name=MOTOR_STATUS_HOME, value is undefined
Parameter 30 type=asynInt32, name=MOTOR_STATUS_HAS_ENCODER, value is undefined
Parameter 31 type=asynInt32, name=MOTOR_STATUS_PROBLEM, value=1, status=0
Parameter 32 type=asynInt32, name=MOTOR_STATUS_MOVING, value is undefined
Parameter 33 type=asynInt32, name=MOTOR_STATUS_GAIN_SUPPORT, value is undefined
Parameter 34 type=asynInt32, name=MOTOR_STATUS_COMMS_ERROR, value is undefined
Parameter 35 type=asynInt32, name=MOTOR_STATUS_LOW_LIMIT, value is undefined
Parameter 36 type=asynInt32, name=MOTOR_STATUS_HOMED, value is undefined
Parameter 37 type=asynInt32, name=PROFILE_NUM_AXES, value is undefined
Parameter 38 type=asynInt32, name=PROFILE_NUM_POINTS, value is undefined
Parameter 39 type=asynInt32, name=PROFILE_CURRENT_POINT, value is undefined
Parameter 40 type=asynInt32, name=PROFILE_NUM_PULSES, value is undefined
Parameter 41 type=asynInt32, name=PROFILE_START_PULSES, value is undefined
Parameter 42 type=asynInt32, name=PROFILE_END_PULSES, value is undefined
Parameter 43 type=asynInt32, name=PROFILE_ACTUAL_PULSES, value is undefined
Parameter 44 type=asynInt32, name=PROFILE_NUM_READBACKS, value is undefined
Parameter 45 type=asynInt32, name=PROFILE_TIME_MODE, value is undefined
Parameter 46 type=asynFloat64, name=PROFILE_FIXED_TIME, value is undefined
Parameter 47 type=asynFloat64Array, name=PROFILE_TIME_ARRAY, value is undefined
Parameter 48 type=asynFloat64, name=PROFILE_ACCELERATION, value is undefined
Parameter 49 type=asynInt32, name=PROFILE_MOVE_MODE, value is undefined
Parameter 50 type=asynInt32, name=PROFILE_BUILD, value is undefined
Parameter 51 type=asynInt32, name=PROFILE_BUILD_STATE, value is undefined
Parameter 52 type=asynInt32, name=PROFILE_BUILD_STATUS, value is undefined
Parameter 53 type=string, name=PROFILE_BUILD_MESSAGE, value is undefined
Parameter 54 type=asynInt32, name=PROFILE_EXECUTE, value is undefined
Parameter 55 type=asynInt32, name=PROFILE_EXECUTE_STATE, value is undefined
Parameter 56 type=asynInt32, name=PROFILE_EXECUTE_STATUS, value is undefined
Parameter 57 type=string, name=PROFILE_EXECUTE_MESSAGE, value is undefined
Parameter 58 type=asynInt32, name=PROFILE_ABORT, value is undefined
Parameter 59 type=asynInt32, name=PROFILE_READBACK, value is undefined
Parameter 60 type=asynInt32, name=PROFILE_READBACK_STATE, value is undefined
Parameter 61 type=asynInt32, name=PROFILE_READBACK_STATUS, value is undefined
Parameter 62 type=string, name=PROFILE_READBACK_MESSAGE, value is undefined
Parameter 63 type=asynInt32, name=PROFILE_USE_AXIS, value is undefined
Parameter 64 type=asynFloat64Array, name=PROFILE_POSITIONS, value is undefined
Parameter 65 type=asynFloat64Array, name=PROFILE_READBACKS, value is undefined
Parameter 66 type=asynFloat64Array, name=PROFILE_FOLLOWING_ERRORS, value is undefined
Parameter 67 type=asynFloat64, name=PROFILE_MOTOR_RESOLUTION, value is undefined
Parameter 68 type=asynInt32, name=PROFILE_MOTOR_DIRECTION, value is undefined
Parameter 69 type=asynFloat64, name=PROFILE_MOTOR_OFFSET, value is undefined
Parameter list 2
Number of parameters is: 70
Parameter 0 type=asynFloat64, name=MOTOR_MOVE_REL, value is undefined
Parameter 1 type=asynFloat64, name=MOTOR_MOVE_ABS, value is undefined
Parameter 2 type=asynFloat64, name=MOTOR_MOVE_VEL, value is undefined
Parameter 3 type=asynFloat64, name=MOTOR_HOME, value is undefined
Parameter 4 type=asynInt32, name=MOTOR_STOP_AXIS, value is undefined
Parameter 5 type=asynFloat64, name=MOTOR_VELOCITY, value is undefined
Parameter 6 type=asynFloat64, name=MOTOR_VEL_BASE, value is undefined
Parameter 7 type=asynFloat64, name=MOTOR_ACCEL, value is undefined
Parameter 8 type=asynFloat64, name=MOTOR_POSITION, value is undefined
Parameter 9 type=asynFloat64, name=MOTOR_ENCODER_POSITION, value is undefined
Parameter 10 type=asynInt32, name=MOTOR_DEFER_MOVES, value is undefined
Parameter 11 type=asynInt32, name=MOTOR_MOVE_HOME, value is undefined
Parameter 12 type=asynFloat64, name=MOTOR_RESOLUTION, value is undefined
Parameter 13 type=asynFloat64, name=MOTOR_ENCODER_RATIO, value=-inf, status=0
Parameter 14 type=asynFloat64, name=MOTOR_PGAIN, value is undefined
Parameter 15 type=asynFloat64, name=MOTOR_IGAIN, value is undefined
Parameter 16 type=asynFloat64, name=MOTOR_DGAIN, value is undefined
Parameter 17 type=asynFloat64, name=MOTOR_HIGH_LIMIT, value=-0.000000, status=0
Parameter 18 type=asynFloat64, name=MOTOR_LOW_LIMIT, value=-16000.000000, status=0
Parameter 19 type=asynInt32, name=MOTOR_CLOSED_LOOP, value is undefined
Parameter 20 type=asynInt32, name=MOTOR_STATUS, value=512, status=0
Parameter 21 type=asynInt32, name=MOTOR_UPDATE_STATUS, value is undefined
Parameter 22 type=asynInt32, name=MOTOR_STATUS_DIRECTION, value is undefined
Parameter 23 type=asynInt32, name=MOTOR_STATUS_DONE, value is undefined
Parameter 24 type=asynInt32, name=MOTOR_STATUS_HIGH_LIMIT, value is undefined
Parameter 25 type=asynInt32, name=MOTOR_STATUS_AT_HOME, value is undefined
Parameter 26 type=asynInt32, name=MOTOR_STATUS_SLIP, value is undefined
Parameter 27 type=asynInt32, name=MOTOR_STATUS_POWERED, value is undefined
Parameter 28 type=asynInt32, name=MOTOR_STATUS_FOLLOWING_ERROR, value is undefined
Parameter 29 type=asynInt32, name=MOTOR_STATUS_HOME, value is undefined
Parameter 30 type=asynInt32, name=MOTOR_STATUS_HAS_ENCODER, value is undefined
Parameter 31 type=asynInt32, name=MOTOR_STATUS_PROBLEM, value=1, status=0
Parameter 32 type=asynInt32, name=MOTOR_STATUS_MOVING, value is undefined
Parameter 33 type=asynInt32, name=MOTOR_STATUS_GAIN_SUPPORT, value is undefined
Parameter 34 type=asynInt32, name=MOTOR_STATUS_COMMS_ERROR, value is undefined
Parameter 35 type=asynInt32, name=MOTOR_STATUS_LOW_LIMIT, value is undefined
Parameter 36 type=asynInt32, name=MOTOR_STATUS_HOMED, value is undefined
Parameter 37 type=asynInt32, name=PROFILE_NUM_AXES, value is undefined
Parameter 38 type=asynInt32, name=PROFILE_NUM_POINTS, value is undefined
Parameter 39 type=asynInt32, name=PROFILE_CURRENT_POINT, value is undefined
Parameter 40 type=asynInt32, name=PROFILE_NUM_PULSES, value is undefined
Parameter 41 type=asynInt32, name=PROFILE_START_PULSES, value is undefined
Parameter 42 type=asynInt32, name=PROFILE_END_PULSES, value is undefined
Parameter 43 type=asynInt32, name=PROFILE_ACTUAL_PULSES, value is undefined
Parameter 44 type=asynInt32, name=PROFILE_NUM_READBACKS, value is undefined
Parameter 45 type=asynInt32, name=PROFILE_TIME_MODE, value is undefined
Parameter 46 type=asynFloat64, name=PROFILE_FIXED_TIME, value is undefined
Parameter 47 type=asynFloat64Array, name=PROFILE_TIME_ARRAY, value is undefined
Parameter 48 type=asynFloat64, name=PROFILE_ACCELERATION, value is undefined
Parameter 49 type=asynInt32, name=PROFILE_MOVE_MODE, value is undefined
Parameter 50 type=asynInt32, name=PROFILE_BUILD, value is undefined
Parameter 51 type=asynInt32, name=PROFILE_BUILD_STATE, value is undefined
Parameter 52 type=asynInt32, name=PROFILE_BUILD_STATUS, value is undefined
Parameter 53 type=string, name=PROFILE_BUILD_MESSAGE, value is undefined
Parameter 54 type=asynInt32, name=PROFILE_EXECUTE, value is undefined
Parameter 55 type=asynInt32, name=PROFILE_EXECUTE_STATE, value is undefined
Parameter 56 type=asynInt32, name=PROFILE_EXECUTE_STATUS, value is undefined
Parameter 57 type=string, name=PROFILE_EXECUTE_MESSAGE, value is undefined
Parameter 58 type=asynInt32, name=PROFILE_ABORT, value is undefined
Parameter 59 type=asynInt32, name=PROFILE_READBACK, value is undefined
Parameter 60 type=asynInt32, name=PROFILE_READBACK_STATE, value is undefined
Parameter 61 type=asynInt32, name=PROFILE_READBACK_STATUS, value is undefined
Parameter 62 type=string, name=PROFILE_READBACK_MESSAGE, value is undefined
Parameter 63 type=asynInt32, name=PROFILE_USE_AXIS, value is undefined
Parameter 64 type=asynFloat64Array, name=PROFILE_POSITIONS, value is undefined
Parameter 65 type=asynFloat64Array, name=PROFILE_READBACKS, value is undefined
Parameter 66 type=asynFloat64Array, name=PROFILE_FOLLOWING_ERRORS, value is undefined
Parameter 67 type=asynFloat64, name=PROFILE_MOTOR_RESOLUTION, value is undefined
Parameter 68 type=asynInt32, name=PROFILE_MOTOR_DIRECTION, value is undefined
Parameter 69 type=asynFloat64, name=PROFILE_MOTOR_OFFSET, value is undefined
Parameter list 3
Number of parameters is: 70
Parameter 0 type=asynFloat64, name=MOTOR_MOVE_REL, value is undefined
Parameter 1 type=asynFloat64, name=MOTOR_MOVE_ABS, value is undefined
Parameter 2 type=asynFloat64, name=MOTOR_MOVE_VEL, value is undefined
Parameter 3 type=asynFloat64, name=MOTOR_HOME, value is undefined
Parameter 4 type=asynInt32, name=MOTOR_STOP_AXIS, value is undefined
Parameter 5 type=asynFloat64, name=MOTOR_VELOCITY, value is undefined
Parameter 6 type=asynFloat64, name=MOTOR_VEL_BASE, value is undefined
Parameter 7 type=asynFloat64, name=MOTOR_ACCEL, value is undefined
Parameter 8 type=asynFloat64, name=MOTOR_POSITION, value is undefined
Parameter 9 type=asynFloat64, name=MOTOR_ENCODER_POSITION, value is undefined
Parameter 10 type=asynInt32, name=MOTOR_DEFER_MOVES, value is undefined
Parameter 11 type=asynInt32, name=MOTOR_MOVE_HOME, value is undefined
Parameter 12 type=asynFloat64, name=MOTOR_RESOLUTION, value is undefined
Parameter 13 type=asynFloat64, name=MOTOR_ENCODER_RATIO, value=-inf, status=0
Parameter 14 type=asynFloat64, name=MOTOR_PGAIN, value is undefined
Parameter 15 type=asynFloat64, name=MOTOR_IGAIN, value is undefined
Parameter 16 type=asynFloat64, name=MOTOR_DGAIN, value is undefined
Parameter 17 type=asynFloat64, name=MOTOR_HIGH_LIMIT, value=-0.000000, status=0
Parameter 18 type=asynFloat64, name=MOTOR_LOW_LIMIT, value=-16000.000000, status=0
Parameter 19 type=asynInt32, name=MOTOR_CLOSED_LOOP, value is undefined
Parameter 20 type=asynInt32, name=MOTOR_STATUS, value=512, status=0
Parameter 21 type=asynInt32, name=MOTOR_UPDATE_STATUS, value is undefined
Parameter 22 type=asynInt32, name=MOTOR_STATUS_DIRECTION, value is undefined
Parameter 23 type=asynInt32, name=MOTOR_STATUS_DONE, value is undefined
Parameter 24 type=asynInt32, name=MOTOR_STATUS_HIGH_LIMIT, value is undefined
Parameter 25 type=asynInt32, name=MOTOR_STATUS_AT_HOME, value is undefined
Parameter 26 type=asynInt32, name=MOTOR_STATUS_SLIP, value is undefined
Parameter 27 type=asynInt32, name=MOTOR_STATUS_POWERED, value is undefined
Parameter 28 type=asynInt32, name=MOTOR_STATUS_FOLLOWING_ERROR, value is undefined
Parameter 29 type=asynInt32, name=MOTOR_STATUS_HOME, value is undefined
Parameter 30 type=asynInt32, name=MOTOR_STATUS_HAS_ENCODER, value is undefined
Parameter 31 type=asynInt32, name=MOTOR_STATUS_PROBLEM, value=1, status=0
Parameter 32 type=asynInt32, name=MOTOR_STATUS_MOVING, value is undefined
Parameter 33 type=asynInt32, name=MOTOR_STATUS_GAIN_SUPPORT, value is undefined
Parameter 34 type=asynInt32, name=MOTOR_STATUS_COMMS_ERROR, value is undefined
Parameter 35 type=asynInt32, name=MOTOR_STATUS_LOW_LIMIT, value is undefined
Parameter 36 type=asynInt32, name=MOTOR_STATUS_HOMED, value is undefined
Parameter 37 type=asynInt32, name=PROFILE_NUM_AXES, value is undefined
Parameter 38 type=asynInt32, name=PROFILE_NUM_POINTS, value is undefined
Parameter 39 type=asynInt32, name=PROFILE_CURRENT_POINT, value is undefined
Parameter 40 type=asynInt32, name=PROFILE_NUM_PULSES, value is undefined
Parameter 41 type=asynInt32, name=PROFILE_START_PULSES, value is undefined
Parameter 42 type=asynInt32, name=PROFILE_END_PULSES, value is undefined
Parameter 43 type=asynInt32, name=PROFILE_ACTUAL_PULSES, value is undefined
Parameter 44 type=asynInt32, name=PROFILE_NUM_READBACKS, value is undefined
Parameter 45 type=asynInt32, name=PROFILE_TIME_MODE, value is undefined
Parameter 46 type=asynFloat64, name=PROFILE_FIXED_TIME, value is undefined
Parameter 47 type=asynFloat64Array, name=PROFILE_TIME_ARRAY, value is undefined
Parameter 48 type=asynFloat64, name=PROFILE_ACCELERATION, value is undefined
Parameter 49 type=asynInt32, name=PROFILE_MOVE_MODE, value is undefined
Parameter 50 type=asynInt32, name=PROFILE_BUILD, value is undefined
Parameter 51 type=asynInt32, name=PROFILE_BUILD_STATE, value is undefined
Parameter 52 type=asynInt32, name=PROFILE_BUILD_STATUS, value is undefined
Parameter 53 type=string, name=PROFILE_BUILD_MESSAGE, value is undefined
Parameter 54 type=asynInt32, name=PROFILE_EXECUTE, value is undefined
Parameter 55 type=asynInt32, name=PROFILE_EXECUTE_STATE, value is undefined
Parameter 56 type=asynInt32, name=PROFILE_EXECUTE_STATUS, value is undefined
Parameter 57 type=string, name=PROFILE_EXECUTE_MESSAGE, value is undefined
Parameter 58 type=asynInt32, name=PROFILE_ABORT, value is undefined
Parameter 59 type=asynInt32, name=PROFILE_READBACK, value is undefined
Parameter 60 type=asynInt32, name=PROFILE_READBACK_STATE, value is undefined
Parameter 61 type=asynInt32, name=PROFILE_READBACK_STATUS, value is undefined
Parameter 62 type=string, name=PROFILE_READBACK_MESSAGE, value is undefined
Parameter 63 type=asynInt32, name=PROFILE_USE_AXIS, value is undefined
Parameter 64 type=asynFloat64Array, name=PROFILE_POSITIONS, value is undefined
Parameter 65 type=asynFloat64Array, name=PROFILE_READBACKS, value is undefined
Parameter 66 type=asynFloat64Array, name=PROFILE_FOLLOWING_ERRORS, value is undefined
Parameter 67 type=asynFloat64, name=PROFILE_MOTOR_RESOLUTION, value is undefined
Parameter 68 type=asynInt32, name=PROFILE_MOTOR_DIRECTION, value is undefined
Parameter 69 type=asynFloat64, name=PROFILE_MOTOR_OFFSET, value is undefined
    genericPointer callback client address=0x7f98f1868bf0, addr=0, reason=20, userPvt=0x22edf90
    genericPointer callback client address=0x7f98f1868bf0, addr=1, reason=20, userPvt=0x22ee860
    genericPointer callback client address=0x7f98f1868bf0, addr=2, reason=20, userPvt=0x22ef2d0
    genericPointer callback client address=0x7f98f1868bf0, addr=3, reason=20, userPvt=0x22efe80





And the other bit:

epics> dbpr Enge:m1 10
ACCL: 0.2           ACKS: MAJOR         ACKT: YES           ADEL: 0
ALST: 0             ASG:                ASP: (nil)          ATHM: 0
BACC: 0.2           BDST: 0             BKPT: 00            BVEL: 1
CARD: 0             CBAK: 0x1b400a0     CDIR: 0             CNEN: Disable
DCOF: 0             DESC: Bottom        DHLM: 16            DIFF: 0
DINP:CONSTANT       DIR: Pos            DISA: 0             DISP: 0
DISS: NO_ALARM      DISV: 1             DLLM: 0             DLY: 0
DMOV: 1             DOL:CONSTANT        DPVT: 0x1b400d0     DRBV: 0.121
DSET: 0x7fb41c84c5a0                    DTYP: asynMotor     DVAL: 0.121
EGU: mm             ERES: -1.0e-03      EVNT:               FLNK:CONSTANT 0
FOF: 0              FOFF: Variable      FRAC: 1             HHSV: NO_ALARM
HIGH: 0             HIHI: 0             HLM: 16             HLS: 0
HLSV: NO_ALARM      HOMF: 0             HOMR: 0             HOPR: 0
HSV: NO_ALARM       HVEL: 0.1           ICOF: 0             INIT:
JAR: 10             JOGF: 0             JOGR: 0             JVEL: 2
LCNT: 0             LDVL: 0.121         LLM: 0              LLS: 0
LLSV: NO_ALARM      LOCK: NO            LOLO: 0             LOPR: 0
LOW: 0              LRLV: 0             LRVL: -121          LSET: 0x1b3ce40
LSPG: Go            LSV: NO_ALARM       LVAL: 0.121         LVIO: 0
MDEL: 0             MIP: 0              MISS: 0
MLIS: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
MLOK: 50 f1 b3 01 00 00 00 00           MLST: 0             MMAP: 0
MOVN: 0             MRES: -1.0e-03      MSTA: 512           NAME: Enge:m1
NMAP: 0             NSEV: NO_ALARM      NSTA: NO_ALARM      NTM: YES
NTMF: 2             OFF: 0              OMSL: supervisory
OUT:INST_IO @asyn(MCB4B1,0)             PACT: 0             PCOF: 0
PHAS: 0             PINI: NO            POST:               PP: 0
PPN: (nil)          PPNR: (nil)         PREC: 3             PREM:
PRIO: LOW           PROC: 0             PUTF: 0             RBV: 0.121
RCNT: 0             RDBD: 1.0e-03       RDBL:CONSTANT       RDES: 0x1afae10
RDIF: 0             REP: 0              RHLS: 0             RINP:CONSTANT
RLLS: 0             RLNK:CONSTANT       RLV: 0              RMOD: Default
RMP: -121           RPRO: 0             RRBV: -121          RRES: 0
RSET: 0x7fb41c84c3c0                    RTRY: 10            RVAL: -121
RVEL: 0             S: 10               SBAK: 5             SBAS: 0.5
SCAN: Passive       SDIS:DB_LINK Enge:m1_able.VAL NPP NMS   SET: Use
SEVR: MAJOR         SMAX: 0             SPMG: Go            SPVT: (nil)
SREV: 200           SSET: 0             STAT: STATE         STOO:CONSTANT
STOP: 0             STUP: OFF           SUSE: 0             SYNC: 0
TDIR: 0             TIME: 2017-02-09 12:35:39.985633712     TPRO: 0
TSE: 0              TSEL:CONSTANT       TWF: 0              TWR: 0
TWV: 0.1            UDF: 0              UDFS: INVALID       UEIP: No
UREV: -0.2          URIP: No            VAL: 0.121          VBAS: 0.1
VELO: 2             VERS: 6.9           VMAX: 0             VOF: 0



The motor substitutions are mostly unchanged except for the IOC name:

file "$(TOP)/db/asyn_motor.db"
{
pattern
{P,    N,   M,         DTYP,     PORT, ADDR,  DESC,     EGU,   DIR,   VELO,  VBAS, ACCL, BDST, BVEL, BACC,    MRES, PREC,   DHLM, DLLM, INIT}
{Enge:, 1, "m$(N)", "asynMotor",  MCB4B1,  0, "Bottom",   mm,   Pos,    2.0,   0.1,  .2,    0,    1,   .2,    -.001,    3,   16,    0,    ""}
{Enge:, 2, "m$(N)", "asynMotor",  MCB4B1,  1, "Top",      mm,   Pos,    2.0,   0.1,  .2,    0,    1,   .2,    -.001,    3,   16,    0,    ""}
{Enge:, 3, "m$(N)", "asynMotor",  MCB4B1,  2, "Inboard",  mm,   Pos,    2.0,   0.1,  .2,    0,    1,   .2,    -.001,    3,   16,    0,    ""}
{Enge:, 4, "m$(N)", "asynMotor",  MCB4B1,  3, "Outboard", mm,   Pos,    2.0,   0.1,  .2,    0,    1,   .2,    -.001,    3,   16,    0,    ""}
}

-Caleb


On Thu, Feb 9, 2017 at 12:22 PM, Mark Rivers <[email protected]<mailto:[email protected]>> wrote:
Hi Caleb,

I understand one point of confusion.  The motor/motorApp/AcsSrc contains files for 2 different drivers:

These files are for the old model 1 driver.
-rw-rw-r-- 1 epics domain users   669 Oct 16  2015 drvMCB4B.h
-rw-rw-r-- 1 epics domain users  9427 Oct 16  2015 devMCB4B.cc
-rw-r--r-- 1 epics domain users 16068 Jan 21 18:27 drvMCB4B.cc

These files are for the new model 3 driver.
-rw-rw-r-- 1 epics domain users  1611 Oct 16  2015 MCB4BDriver.h
-rw-rw-r-- 1 epics domain users 11797 Oct 16  2015 MCB4BDriver.cpp

Your startup script contains these 2 commands:

MCB4BCreateController("MCB4B1", "L0", 4, 100, 5000)
MCB4BSetup(1, 10)
MCB4BConfig(0, "L0")

The first command is OK, that configures the new model 3 controller with 4 axes.

The next 2 commands should be removed from your startup script, they are for the old model 1 driver.

> epics> asynReport 10 L0

That is not the output I wanted to see,  That is a report on the underlying drvAsynSerial port, not the MCB4B motor controller port.  Please send the output of this command:

asynReport 10 MCB4B1

Also send the output of

dbpr Enge:m1 10

and the contents of motor.substitutions.mcb4b

Mark

________________________________
From: Caleb Marshall [[email protected]<mailto:[email protected]>]
Sent: Thursday, February 09, 2017 8:55 AM
To: Mark Rivers
Cc: [email protected]<mailto:[email protected]>
Subject: Re: MCB-4B Motor WriteInt32 Errors

Here is the ioc boot:

#!../../bin/linux-x86_64/WithAsyn
#errlogInit(5000)
< envPaths
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocWithAsyn")
epicsEnvSet("TOP","/home/caleb/engemotor")
epicsEnvSet("SUPPORT","/home/caleb/epics/synApps/support")
epicsEnvSet("ASYN","/home/caleb/epics/synApps/support/asyn-4-26")
epicsEnvSet("SNCSEQ","/home/caleb/epics/synApps/support/seq-2-2-1")
epicsEnvSet("BUSY","/home/caleb/epics/synApps/support/busy-1-6-1")
epicsEnvSet("EPICS_BASE","/home/caleb/epics/base")
epicsEnvSet("IPAC","/home/caleb/epics/synApps/support/ipac-2-13")
epicsEnvSet("MOTOR","/home/caleb/engemotor")
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in this build from CARS
dbLoadDatabase("../../dbd/WithAsyn.dbd")
dbLoadDatabase("../../dbd/devAcsMotor.dbd")
WithAsyn_registerRecordDeviceDriver(pdbbase)
drvAsynSerialPortConfigure("L0", "/dev/ttyUSB0",0,0,0)
asynOctetSetInputEos("L0",0,"\r")
asynOctetSetOutputEos("L0",0,"\r")
asynSetOption("L0",0,"baud","9600")
asynSetOption("L0",0,"bits","8")
asynSetOption("L0",0,"parity","none")
asynSetOption("L0",0,"stop","1")
asynSetOption("L0",0,"clocal","Y")
asynSetOption("L0",0,"crtscts","N")
# asynSetTraceIOMask("L0", 0, 0x2)
# asynSetTraceMask("L0", 0, 0x9)
### Motors
dbLoadTemplate "motor.substitutions.mcb4b"
dbLoadRecords("/home/caleb/epics/synApps/support/asyn-4-26/db/asynRecord.db","P=Enge:,R=L0,PORT=L0,ADDR=0,OMAX=100,IMAX=100")
#Our Control System
MCB4BCreateController("MCB4B1", "L0", 4, 100, 5000)
MCB4BSetup(1, 10)
MCB4BConfig(0, "L0")
iocInit
Starting iocInit
############################################################################
## EPICS R3.15.2 $Date: Thu 2015-05-14 14:09:28 +0200$
## EPICS Base built Sep 11 2015
############################################################################

iocRun: All initialization complete
# This IOC does not use save/restore, so set values of some PVs
dbpf("Enge:m1.TWV", "0.1")
DBR_DOUBLE:         0.1
dbpf("Enge:m2.RTRY", "0")
DBR_SHORT:          0         0x0
dbpf("Enge:m2.TWV", "0.1")
DBR_DOUBLE:         0.1
dbpf("Enge:m3.RTRY", "0")
DBR_SHORT:          0         0x0
dbpf("Enge:m3.TWV", "0.1")
DBR_DOUBLE:         0.1
dbpf("Enge:m4.RTRY", "0")
DBR_SHORT:          0         0x0
dbpf("Enge:m4.TWV", "0.1")
DBR_DOUBLE:         0.1


And here is the command output:




epics> asynReport 10 L0
L0 multiDevice:No canBlock:Yes autoConnect:Yes
    enabled:Yes connected:Yes numberConnects 1
    nDevices 0 nQueued 0 blocked:No
    asynManagerLock:No synchronousLock:Yes
    exceptionActive:No exceptionUsers 2 exceptionNotifys 0
    traceMask:0x1 traceIOMask:0x0 traceInfoMask:0x1
    interposeInterfaceList
        asynOctet pinterface 0x7f3a55f83560 drvPvt 0x1e8dde0
    interfaceList
        asynCommon pinterface 0x7f3a55f807d0 drvPvt 0x1e8ae70
        asynOption pinterface 0x7f3a55f807f0 drvPvt 0x1e8ae70
        asynOctet pinterface 0x7f3a55f82d00 drvPvt 0x1e8ae70
Serial line /dev/ttyUSB0: Connected
                    fd: 4
    Characters written: 585
       Characters read: 195




-Caleb
















On Wed, Feb 8, 2017 at 12:38 PM, Mark Rivers <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> wrote:
Please send the following:

- Complete output when the IOC boots and runs for 10 seconds or so after iocInit.

- Output of the command
  asynReport 10 myPort
where myPort is the name you assigned to the motor controller port you created.

Mark

Sent from my iPhone

> On Feb 8, 2017, at 7:28 AM, Caleb Marshall <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> wrote:
>
> Hello all,
>
> I have been trying to develop a stepper motor control system using the Base release R3.15.2 and SynApps_5_8. I have followed the documentation in the motor record to setup the IOC for the MCB-4B controller board. Using the IO traces I can tell that communication with the board is happening (there is a constant polling of position and responses from the board, etc.), but whenever I try to change a value for a motion field I get the following:
>
> 2017/02/08 10:53:40.203 devMotorAsyn::asynCallback: Enge:m1 pasyn{Float64,Int32}->write returned
> 2017/02/08 10:53:40.203 asynMotorController:writeInt32 error, status=3 axis=0, function=4, value=0
> 2017/02/08 10:53:40.203 devMotorAsyn::asynCallback: Enge:m1 pasyn{Float64,Int32}->write returned
>
> And the move command is never sent. I can update fields that do not require communication with the board however.
>
> Any ideas what could be going wrong?
>
> -Caleb Marshall
> NCSU/TUNL
>





References:
MCB-4B Motor WriteInt32 Errors Caleb Marshall
Re: MCB-4B Motor WriteInt32 Errors Mark Rivers
Re: MCB-4B Motor WriteInt32 Errors Caleb Marshall
RE: MCB-4B Motor WriteInt32 Errors Mark Rivers
Re: MCB-4B Motor WriteInt32 Errors Caleb Marshall

Navigate by Date:
Prev: RE: How to support a new stepper motor controller? Mark Rivers
Next: Re: [epics-modules/asyn] Throw exception if we can't register interfaces (#43) Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: MCB-4B Motor WriteInt32 Errors Caleb Marshall
Next: Re: [epics-modules/asyn] Throw exception if we can't register interfaces (#43) Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·