W
Hi,
For a project that will start within a few months, we will be re-implementing the motion control of an astronomical telescope. Currently the control system is based on transputers, but we want to replace them by a modern, industrial controller. The encoders we'd like to keep, but the motor controllers can be replaced. I think the position control loop will have to be implemented on a PLC (or similar) because we have a large number of redundant Heidenhain encoders per axis which all need to be read simultaneously.
A particularity of this motion control problem is that we need to include a large number of complex calculations into the position control loop (e.g. coordinate transformations, effects of atmospheric refraction, etc.). To simplify this we want to use a standard package of C code which is used by many major observatories in the world. I have not obtained this C code yet, but I expect this to be a few hundred kilobyte large. I don't know how to estimate the CPU and memory requirements for the main calculations, but I've seen them running on a normal PC (say 2 GHz) at a rate of a few 100 times per second. It is however not necessary to run the calculations at each cycle of the position loop: if the calculations are run once or twice per second, the position loop can simply interpolate between the results and run much faster.
Hence my question: what are your thoughts on how to implement this control system? What are the possibilities to run C code on a PLC?
What I know so far:
- B & R PLCs can be programmed in C
- a solution would be to add an industrial PC and let it calculate the trajectory, while sending set points to the PLC. But I'm not very fond of distributing the control system on a PC + PLC.
- I've read about PLCs with co-processors, but can't find anything useful
- we're also seriously looking for a National Instruments PXI solution (which can easily embed C code into LabVIEW)... but we have our doubts about long-term robustness and availability of these "semi-industrial" solutions.
Any thoughts would be very welcome!
Thanks.
Wim
For a project that will start within a few months, we will be re-implementing the motion control of an astronomical telescope. Currently the control system is based on transputers, but we want to replace them by a modern, industrial controller. The encoders we'd like to keep, but the motor controllers can be replaced. I think the position control loop will have to be implemented on a PLC (or similar) because we have a large number of redundant Heidenhain encoders per axis which all need to be read simultaneously.
A particularity of this motion control problem is that we need to include a large number of complex calculations into the position control loop (e.g. coordinate transformations, effects of atmospheric refraction, etc.). To simplify this we want to use a standard package of C code which is used by many major observatories in the world. I have not obtained this C code yet, but I expect this to be a few hundred kilobyte large. I don't know how to estimate the CPU and memory requirements for the main calculations, but I've seen them running on a normal PC (say 2 GHz) at a rate of a few 100 times per second. It is however not necessary to run the calculations at each cycle of the position loop: if the calculations are run once or twice per second, the position loop can simply interpolate between the results and run much faster.
Hence my question: what are your thoughts on how to implement this control system? What are the possibilities to run C code on a PLC?
What I know so far:
- B & R PLCs can be programmed in C
- a solution would be to add an industrial PC and let it calculate the trajectory, while sending set points to the PLC. But I'm not very fond of distributing the control system on a PC + PLC.
- I've read about PLCs with co-processors, but can't find anything useful
- we're also seriously looking for a National Instruments PXI solution (which can easily embed C code into LabVIEW)... but we have our doubts about long-term robustness and availability of these "semi-industrial" solutions.
Any thoughts would be very welcome!
Thanks.
Wim