Hi Matthew,
Thank you so much for the information. It ends up the problem was associated with the pseudo motor PV’s I am using to control the motion of all three axis’s of the nanocube. That being said, I really appreciate the feedback and will keep this scenario in mind in case I run into additional problems.
Regards,
Tonia Batten
Hi,
It’s possible for a motor to move back to the previous position at IOC init, if using autosave, even if the current position is non-zero. This can happen if you use autosave and restore the positions after IOC init using the set_pass1_restoreFile function.
For example:
1) Move the motor to position A
2) Shutdown the IOC
3) Move the motor to position B (using some other software)
4) Start the IOC
5) Autosave restores position A after IOC init
6) Motor moves back to position A
The way to get around this (potentially dangerous) behaviour, is to use set_pass0_restoreFile instead. This will restore the position before IOC init, and the motor record device support will handle the logic that Mark described.
I’m not sure if this is the problem you’re seeing though. If it isn’t, a detailed asyn trace would help, and a copy of the IOC startup file.
Cheers,
Matt
Are you using the EPICS autosave module to save your motor positions? If so, then when you restart EPICS it should restore the previous position automatically. The motor record actually does the following logic:
- If the controller position at EPICS startup is non-zero it uses the controller position
- If the controller position at EPICS startup is 0 it uses the autosaved position
What is causing the motor to move at the end of initialization? That does not normally happen.
Mark
Good Afternoon,
I am new to EPICS and am working on creating a motor controller for the PI E517 motor. I am using EPICS R3.14.12 and Motor 6.5 I have got the device communicating and am able to perform the necessary commands but have run into a problem with initialization. The problem is that when I restart my EPICS application I might be in the middle of a scan and therefore I don’t want the motor to change its current position (ideally I don’t want to have to move the motor to the same position). At the moment when I restart the application the motor is returning to a zero position. I suspect that I am not initializing the DVAL field correctly in the MOTOR record, but have not been able to confirm as the motor is moved as soon as the initialization is complete and before I can monitor. Any feedback or direction would be greatly appreciated.
Regards,
Tonia Batten, P.Eng
Control System Analyst
Canadian Light Source
44 Innovation Blvd.
Saskatoon, SK S7N 2V3
Tel: 306-657-3865
Email: [email protected]
--
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom