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  <20202021  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  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Newport DL325
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: Igor Kriznar <Igor.Kriznar at partner.kit.edu>
Cc: tech-talk <tech-talk at aps.anl.gov>
Date: Tue, 7 Apr 2020 15:02:26 +0000
Hi Igor,


If you go to motorNewport/iocs and type "make" it will build a sample IOC.  Then go to iocs/newportIOC/iocBoot/iocNewport and edit one of the example st.cmd.* files and motors.substitutions.* files.  Then you should be able to test your driver.


Mark



________________________________
From: Igor Kriznar <Igor.Kriznar at partner.kit.edu>
Sent: Tuesday, April 7, 2020 9:48 AM
To: Mark Rivers
Subject: Re: Newport DL325

Hi Mark,

I did exactly what you suggested. Pretty trivial as you said.

In cpp file line 180 I have added some initialization. Although that
fields are used only in report method, so might be used as local
variables there.

In cpp file line 532, it seems that limits will never be 1.

I still need to test the code on my device.

Would you happen to have a sample IOC at hand, it would help me with
configuration?


Thanks for your help,

Best regards, Igor


On 01.04.20 14:35, Mark Rivers wrote:
>> I see some overlap in commands with CONEX controller
> (https://www.newport.com/mam/celum/celum_assets/resources/CONEX-CC_-_Command_Interface_Manual.pdf?1).
>
> That is not the correct manual for the CONEX to compare.  That describes the DLL interface.  You just want the ASCII command interface which is this manual: https://www.newport.com/mam/celum/celum_assets/resources/CONEX-CC_-_Controller_Documentation.pdf?1
>
>
>> For second, the command interface for DL controller
> (https://www.newport.com/mam/celum/celum_assets/resources/DL_Controller_-_Command_Interface_Manual.pdf?1)
>> has about 200 commands.
> I see only 64 commands, of which the driver needs to support only a small fraction.
>
> These are the command that are actually used in the CONEX driver that appear to be identical in the DL driver:
>
> Read controller version: "VE"
> Read stage type: "ID"
> Home: "OR"
> Move absolute: "PA"
> Acceleration: "AC"
> Velocity: "VA"
> Move relative: "PR"
> Move absolute: "PA"
> Stop: "ST"
> Reset controller: "RS"
> Read current position:  "TP"
> Read status: "TS"
> Software limits: "SL" and "SR"
> PID parameters: "KP", "KI", "KD"
> Closed loop: "MM"
>
>
> These are the commands that the CONEX driver uses that the DL does not support:
>
> Read encoder increment: "SU"
> Read interpolation factor: "IF"
> Read microsteps: "FRM"
> Read full step size: "FRS"
> Home type: "HT"
>
> However, those commands are all done within conditional statements depending on the controller type like this:
>
>    // Read the encoder increment (CC and AGP only)
>    if ((conexModel_ == ModelConexAGP) || (conexModel_ == ModelConexCC)) {
>      sprintf(pC_->outString_, "%dSU?", pC->controllerID_);
>      pC_->writeReadController();
>      encoderIncrement_ = atof(&pC_->inString_[3]);
>    } else {
>      encoderIncrement_ = 1.;
>    }
>
> I am now convinced that modifying the AG_CONEX.cpp driver to also support the DL controller is pretty trivial.
>
> The CONEX driver currently supports 3 models:
> typedef enum {
>    ModelConexAGP,
>    ModelConexCC,
>    ModelConexPP
> } ConexModel_t;
>
> All you need to do is add a ModelDL to the above list and change a few conditionals so that the driver never sends unsupported commands for the DL model.
>
> Mark
>
>
> ________________________________
> From: Igor Kriznar <Igor.Kriznar at partner.kit.edu>
> Sent: Wednesday, April 1, 2020 5:22 AM
> To: Mark Rivers
> Subject: Re: Newport DL325
>
> Hi Mark,
>
> thanks for the tip.
>
> my plan was to check, if motor record supports my device. And if not, to
> implement that few commands that will be actually used trough StreamDevice.
>
> For first, I have no experience with motor record development. For
> second, the command interface for DL controller
> (https://www.newport.com/mam/celum/celum_assets/resources/DL_Controller_-_Command_Interface_Manual.pdf?1)
> has about 200 commands.
>
> I see utility in having motor record, but I am not sure how much more
> effort the driver will it take in comparison to StreamDevice. I see some
> overlap in commands with CONEX controller
> (https://www.newport.com/mam/celum/celum_assets/resources/CONEX-CC_-_Command_Interface_Manual.pdf?1).
>
> If you have any advice on this, I would appreciate .
>
>
> Stay well,
>
> Igor
>
>
> On 31.03.20 20:01, Mark Rivers wrote:
>> Hi Igor,
>>
>> It looks like they are only supporting the DL Single-Axis Motion Controller for those stages.
>>
>> The User Manual documents the command syntax: https://www.newport.com/mam/celum/celum_assets/resources/DL_-_Controller_Users_Manual.pdf?1
>>
>> The command syntax is very similar to the Newport AG_CONEX controllers, for which there is an EPICS driver.
>>
>> https://github.com/epics-motor/motorNewport/blob/master/newportApp/src/AG_CONEX.cpp
>>
>> You may be able to use the AG_CONEX driver, or you may have to write a new driver starting with that one but modifying the commands and syntax a bit.
>>
>> Mark
>>
>>
>> ________________________________
>> From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Igor Kriznar via Tech-talk <tech-talk at aps.anl.gov>
>> Sent: Tuesday, March 31, 2020 8:27 AM
>> To: tech-talk at aps.anl.gov
>> Subject: Newport DL325
>>
>> Hi,
>>
>> is motor record working with Newport DL325 (a Delay Line Stage) with DL
>> Controller?
>>
>> Thanks!
>>
>> Best regards, Igor
>>

Replies:
Re: Newport DL325 Igor Kriznar via Tech-talk
ThorLabs BBD201 Igor Kriznar via Tech-talk
References:
Newport DL325 Igor Kriznar via Tech-talk
Re: Newport DL325 Mark Rivers via Tech-talk
Re: Newport DL325 Mark Rivers via Tech-talk

Navigate by Date:
Prev: RE: StreamDevice, prevent records from getting "stuck" Mark Rivers via Tech-talk
Next: Cross compiling for non-$EPICS_HOST_ARCH targets R Nussbaumer 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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Newport DL325 Mark Rivers via Tech-talk
Next: Re: Newport DL325 Igor Kriznar 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  <20202021  2022  2023  2024 
ANJ, 09 Apr 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·