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
<2020>
2021
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
<2020>
2021
2022
2023
2024
|