John,
Yes, you should be able to send the "DriveBrakeOff(1)" as a string to the ExecuteCommand waveform record. It might also be possible to configure the controller to autmoatically disengage the brake before moving and reapply the brake after moving.
Enabling/Disabling the motor is done using the motor record's CNEN field, which is labeled "Torque" on the motorx_all screen.
Homing is done using the HOMF/HOMR fields of the motor record, which are also on the motorx_all screen. The Automation1 driver ignores the "forwards" argument, so both HOMF and HOMR behave the same.
Redefining the current controller position is done by putting the motor record in set mode writing a "1" the SET field, writing the desired position to the motor record's DVAL field, then returning the motor record to "Use" mode by writing "0" to the SET field.
The Automation1 example IOC uses MRES values of 3e-7, but PREC values of 3, making it look like MRES and ERES are zero:
https://urldefense.us/v3/__https://github.com/epics-motor/motorAutomation1/blob/ccc00c4bead628fc0439c4e70d57e7b6d94d7ea6/iocs/automation1IOC/iocBoot/iocAutomation1/motor.substitutions.automation1*L6-L9__;Iw!!G_uCfscf7eWS!ebDgmhyAdsloiuDsIElYhS-Di9vAXGd_3Ae9j5wz0O6SSs1wQ6hqH3ukYtIwz6-5TmPs_A654Ag77QbESsh9FQA$
Increasing the PREC to 7 and reloading the motor screen should show non-zero MRES and ERES values.
I usually set both the MRES and ERES to the inverse of the CountsPerUnit parameter for axes with single encoders:
https://urldefense.us/v3/__https://help.aerotech.com/automation1/Content/Parameters/CountsPerUnit.htm__;!!G_uCfscf7eWS!ebDgmhyAdsloiuDsIElYhS-Di9vAXGd_3Ae9j5wz0O6SSs1wQ6hqH3ukYtIwz6-5TmPs_A654Ag77QbEWBUFgG0$
I don't know if that strategy works for dual-encoder axes.
Kevin
________________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of John Dobbins via Tech-talk <tech-talk at aps.anl.gov>
Sent: Thursday, December 5, 2024 2:53 PM
To: tech-talk at aps.anl.gov
Cc: Eric J. Edwards
Subject: Aerotech Automation1 motor questions
All,
We have a new device which includes a single axis Aerotech Automation1 motor.
I have downloaded and built
https://urldefense.us/v3/__https://github.com/epics-motor/motorAutomation1__;!!G_uCfscf7eWS!ebDgmhyAdsloiuDsIElYhS-Di9vAXGd_3Ae9j5wz0O6SSs1wQ6hqH3ukYtIwz6-5TmPs_A654Ag77QbEVrl0NqQ$ <https://urldefense.us/v3/__https://github.com/epics-motor/motorAutomation1__;!!G_uCfscf7eWS!cdttgJOviIitNkwi96xADsWtnQJvj-FMihXOIzIx4m5KEvbfwJT6_H6oLl-QKp1AZ7TPS44Sp33ch0CdDGoGTd-LkUXOZ_k$>
(Alma 9, base-7.0.6, motor - current master, Automation1 - master from October )
The IOC starts up but as there is little documentation I don't know what to expect.
Ultimately, we will be controlling this motor from SPEC (from Certified Scientific Software). We will need to
Enable/Disable Motor
Brake On/Off
Home
Put new positions
When the IOC starts up I find it reports a position. I can command a move. Zero position seems to agree with the Automation1 software reported zero position but when I command a move the change in raw isn't what I expect. I should mention - I am told this set-up combines two encodes to achieve higher resolution. I need to find out more about this.
Note in the motor record: MRES and ERES both = 0. Changing them seemed to have no effect.
RMP always equals REP and change reasonable except for the scale factor.
I see that there exists the record:
record(waveform, "$(P)ExecuteCommand")
{
field(DESC, "Execute an AeroScript command")
field(DTYP, "asynOctetWrite")
field(FTVL, "CHAR")
field(NELM, "256")
field(INP, "@asyn($(PORT),0,$(TIMEOUT=4))AUTOMATION1_C_EXECUTE_COMMAND")
}
Can I, for example send the Aeroscript command "DriveBrakeOff(1)" as a string to that record?
Any help appreciated.
Thanks,
- References:
- Aerotech Automation1 motor questions John Dobbins via Tech-talk
- Navigate by Date:
- Prev:
Re: medm edit mode SIGSEGV core dump Ubuntu 24.04. Soliday, Robert T. via Tech-talk
- Next:
IOC for Tektronix DAQ6510? Jeffrey Gamsby 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>
2025
- Navigate by Thread:
- Prev:
Aerotech Automation1 motor questions John Dobbins via Tech-talk
- Next:
StreamDevice waveform record reports CALC error John Dobbins 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>
2025
|