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  <20182019  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  <20182019 
<== Date ==> <== Thread ==>

Subject: How to work with motor record position counts larger than 2147483648?
From: "Sobhani, Bayan" <bsobhani@bnl.gov>
To: "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Mon, 22 Jan 2018 22:19:56 +0000

I am working on adapting the SmarAct MCS motor record driver for the MCS2, which seems to record its position in picometers unlike the MCS’s nanometers.

 

I have the following code in my polling function:

 

Int64_t val = getp(0); //Gets position of channel 0 positioner

printf(“%f\n”,(double) val); //prints -6000093133.000000

setDoubleParam(c_p_->motorEncoderPosition_,(double)val);

setDoubleParam(c_p_->motorPosition_,(double)val);

callParamCallbacks();

return asynSuccess;

 

But when I look at the motor record, the RRBV is shown as -2147483648. I looked at asynMotorController.cpp and saw the line:

 

createParam(motorEncoderPositionString,        asynParamFloat64,    &motorEncoderPosition_);

 

Shouldn’t this mean I can write 64-bit floating point values to motorEncoderPosition_ (i.e. larger than 2147483648)? How should I go about working with position counts larger than 2147483648?

 

Alex


Replies:
RE: How to work with motor record position counts larger than 2147483648? Mark Rivers

Navigate by Date:
Prev: RE: Seq-2.2.5 compilation on windows freddie.akeroyd
Next: RE: How to work with motor record position counts larger than 2147483648? Mark Rivers
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  <20182019 
Navigate by Thread:
Prev: Re: Seq-2.2.5 compilation on windows Vishnu Patel
Next: RE: How to work with motor record position counts larger than 2147483648? Mark Rivers
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  <20182019 
ANJ, 22 Jan 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·