Patrick, Matt, Kiwamu, Vern We tried testing some code changes for the rotation stage. They didn't seem to work, so I reverted the change to the Laser Power library and went through the GUI to start afresh (copy new code from target directory, compile, run, etc.). Now everytime I do this I get a divide by zero error. (see attached). Did someone change the code in PLC1 that introduced a divide by zero error, and not run it until we tried to now? Or did I somehow do this?
Seem to be fixed by recompiling PLC1. I've burtrestored PLC1, PLC2 and PLC3 to 6:10 this morning (local time).
Here are two examples of locklosses when powering up from the last 24 hours. The first one shows the rotation stage moving in a jerky way, this was an example of a time when the velocity was changed before the request was made, but is worse than the normal "moving in the wrong direction" problem. You can see that the accelerometers on the PSL all have glitches when the rotation stage angle encoder records a change in angle.
In the second example the rotation stage velocity moves smoothly, and the power changes smoothly, but we have a lockloss which could be ASC related.
One thing to remember is that TwinCAT will try to reuse its previously stored values of variables, when you log in with a slightly modified code. Generally, this is a good thing, but it can fail with an internal variable restored to a value which leads to a divide by zero error. You need to login and use the Reset (clear all variables except the persistant ones), or Reset All (clear all variables). In the later case, you definitely need a SDF/burt restore.
I had tried logging in with the PLC and resetting the variables.