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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Animatics SmartMotor setup |
From: | "Davis, Mark via Tech-talk" <[email protected]> |
To: | Torsten Bögershausen <[email protected]>, "[email protected]" <[email protected]> |
Date: | Tue, 18 Jun 2019 11:29:54 -0400 |
Hi Torsten,Actually, that is all rather confusing. I think maybe you are thinking of a very different motor and controller.
Let me back up a little and give some more specifics that might help clarify things:
Here is what we are using:* An Animatics SmartMotor model SM3416D-PLS (a combination motor+controller). The interface to the controller is a serial RS-232 connection. * A single port Moxa Serial/Ethernet convertor connected to the serial port on the motor/controller.
* Version 6.9 of the motor module * The driver in the SmartMotorSrc subdirectory of the motor moduleAlthough the driver in the SmartMotorSrc directory uses an asyn port to communicate with the controller, it appears to be a Model I driver (it uses the motor_dset interface) so I don't believe there is any need for a 2nd asyn port.
The only mention I can find for the EthercatMCCreateXxx functions is a TechTalk message about a NewFocus 874x Picomotor Controller Driver.
As near as I can tell so far my example is correct. I just don't know what the driver is expecting for the contents of the OUT field in the motor record.
Mark On 6/18/2019 7:44 AM, Torsten Bögershausen wrote:
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