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: Wed, 1 Apr 2020 12:35:45 +0000
> 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
>

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

Navigate by Date:
Prev: Re: getting streamDevice exception handler replyTimeout to write to a record [SEC=UNCLASSIFIED] Mark Rivers via Tech-talk
Next: NTNDArray array filter does not work on value Marty Kraimer 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 Mark Rivers 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, 07 Apr 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·