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

Subject: RE: Animatics SmartMotor setup
From: Mark Rivers via Tech-talk <tech-talk@aps.anl.gov>
To: 'Torsten Bögershausen' <torsten.bogershausen@esss.se>, Mark Davis <davism50@msu.edu>, "Davis, Mark" <mark_a_davis@comcast.net>, "Tech-talk@aps.anl.gov" <Tech-talk@aps.anl.gov>
Date: Tue, 18 Jun 2019 14:19:25 +0000
> Unless I am wrong, we need a model 3 driver (to be written), when a controller connected through a Moxa is used.

No, that's not true.  The low-level communication is done using asynOctet with a normal asyn port.  So it will work fine with a Moxa.  It is the upper level communication between device support and the driver that uses asyn in Model 2 and 3, but does not use asyn in Model 1.

Mark


-----Original Message-----
From: Torsten Bögershausen <torsten.bogershausen@esss.se> 
Sent: Tuesday, June 18, 2019 9:17 AM
To: Mark Rivers <rivers@cars.uchicago.edu>; Mark Davis <davism50@msu.edu>; Davis, Mark <mark_a_davis@comcast.net>; Tech-talk@aps.anl.gov
Subject: Re: Animatics SmartMotor setup

(Re-adding tech-talk)

Hej Mark & Mark,

that doesn't seem to be good news -
The model 1 driver will not work with a Moxa at all.

Unless I am wrong, we need a model 3 driver (to be written), when a controller connected through a Moxa is used.

/Torsten



On 18/06/19 16:04, Mark Rivers wrote:
> Hi Mark,
> 
> What Torsten says is true for Model 2 and Model 3 motor drivers.  However the SmartMotorSrc driver is an old Model 1 driver, so the driver is not derived from asynPortDriver and it only has the single asyn port to the underlying drvAsynIPPort.
> 
> The OUT field syntax for Model 1 drivers is:
> 
>          field(OUT,"#C$(C) S$(S) @")
> 
> where $(C) is the card number, and $(S) is the signal number.  So for 
> the first axis on the first controller it would be
> 
>       field(OUT,  "#C0 S0 @")
> 
> Mark
> 
> -----Original Message-----
> From: tech-talk-bounces@aps.anl.gov <tech-talk-bounces@aps.anl.gov> On 
> Behalf Of Torsten Bögershausen via Tech-talk
> Sent: Tuesday, June 18, 2019 6:45 AM
> To: Mark Davis <davism50@msu.edu>; Davis, Mark 
> <mark_a_davis@comcast.net>; tech-talk@aps.anl.gov
> Subject: Re: Animatics SmartMotor setup
> 
> Hej Mark,
> 
> you need 2 asyn ports, one for the motorRecord to talk to your "Animatics SmartMotor" asynMotorDriver.
> 
> The second one to let the "Animatics SmartMotor" asynMotorDriver talk to the real hardware.
> We call them "MCU1" and "MC_CPU1", better suggestions are welcome.
> 
> 
> A simplified setup is here:
> 
> ## The db file:
> record(motor,"$(PREFIX)$(MOTOR_NAME)")
> {
> 	field(DESC,"$(DESC)")
> 	field(DTYP,"asynMotor")
> 	field(OUT,"@asyn($(MOTOR_PORT),$(AXIS_NO))")
> }
> 
> ##st.cmd
> epicsEnvSet("ASYN_PORT",     "MC_CPU1")
> epicsEnvSet("MOTOR_NAME",    "IOC:m1")
> epicsEnvSet("MOTOR_PORT",    "MCU1")
> epicsEnvSet("AXIS_NO",       "1")
> 
> 
> drvAsynIPPortConfigure("$(ASYN_PORT)","$(IPADDR):$(IPPORT)",0,0,0)
> EthercatMCCreateController("$(MOTOR_PORT)", "$(ASYN_PORT)", 
> "$(NUMAXES)", "200", "1000")
> 
> EthercatMCCreateAxis("$(MOTOR_PORT)", "$(AXIS_NO)",)
> 
> I hope that hopes a little bit.
> /Torsten
> 
> 
> 
> On 18/06/19 13:11, Davis, Mark via Tech-talk wrote:
>>
>> Can anyone provide an example of how to setup and use an Animatics SmartMotor?
>>
>>   From what I could figure out looking at the code, I expect it is 
>> something along these lines:
>>
>> # For a connection via a Moxa Ethernet-to-serial adapter:
>> drvAsynIPPortConfigure("TapeStation", "192.168.137.99:4001")
>>
>> # SmartMotorSetup(maxCtlrCount, pollRate) SmartMotorSetup(1, 5)
>>
>> # SmartMotorConfig(cardNum, "asynPortName") SmartMotorConfig(0,
>> "TapeStation")
>>
>>
>> And then the motor record would look something like this:
>>
>> record(motor, "MyMotor")
>> {
>>     field(DTYP, "SmartMotor")
>>     field(OUT,  "@0 TapeStation ????")
>>     ...
>> }
>>
>>
>> Is that even close?  The one I am most unsure of is what to use for 
>> the OUT value in the motor record.
>>
>> Mark Davis
>> NSCL/FRIB
>>

References:
Animatics SmartMotor setup Davis, Mark via Tech-talk
Re: Animatics SmartMotor setup Torsten Bögershausen via Tech-talk
Re: Animatics SmartMotor setup Torsten Bögershausen via Tech-talk

Navigate by Date:
Prev: Re: Animatics SmartMotor setup Torsten Bögershausen via Tech-talk
Next: RE: StreamDevice: termination in binary communication 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  <20192020 
Navigate by Thread:
Prev: Re: Animatics SmartMotor setup Torsten Bögershausen via Tech-talk
Next: Re: Animatics SmartMotor setup Davis, Mark 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  <20192020 
ANJ, 18 Jun 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·