Motion Scope Improvement Suggestions
The scope is a really useful tool. I can think of some ways that it could be improved though.
- Traces
- Add more “standard” traces.
- Currently, actual/target pos/vel/acc already exist. Those are great.
- (Adding custom ones gets tedious very quickly, especially if you change network topology or have to do it on several machines.)
- “Standard” EtherCAT things would be great to see.
- Status Word (states)
- Not ready to switch on
- Switch on disabled
- Ready to switch on
- Switched on
- Operation enabled
- Quick stop active
- Fault reaction active
- Fault
- Control Word (commands)
- Shutdown
- Disable Voltage
- Disable Operation
- Enable Operation
- Fault Reset
- Status Word (states)
- Any PDO datum that would show up in RapidSetup would be cool to see as a standard trace in the scope.
- Add a user buffer by index.
- Axis/MultiAxis enable state
- Create some way for a RapidCode client to create its own “standard” traces that would be available in the scope. This way, if I was using some firmware memory in a specific way, I could make that available (to me) as a trace that survived network topology changes.
- Currently, actual/target pos/vel/acc already exist. Those are great.
- Make a more robust way to export the configuration (without the data) that could be imported on another machine.
- Allow more than 31 traces.
- (This was the thing that finally forced me to work around the scope.)
- Add more “standard” traces.
- Visualization
- Auto scale is kind of cool, but if there are very many traces, it becomes difficult to compare magnitudes.
- (I didn’t spend a lot of time trying to do this. I just found it unhelpful that I can’t trust the rendered magnitude on the graph between two or more series.)
- It would be great if there were a way to examine multiple traces at once.
- Right now, there’s not a nice way to “shift” a graph up or down so that I can look at, say, the commanded velocity of two different axes or commanded position and velocity of a single axis.
- I can imagine being able to shift a series up or down or having the plots broken up into multiple graphs that share the x-axis.
- There’s not a way to “hide” a series for which you have data (to declutter the visualization).
- It would be cool if there were a nice way to format the y-axis values. I frequently see vaules with floating-point approximation noise at the end (e.g. “84277.900000000008731”).
- Printing
- I would expect just the visualition or that and whatever plotting parameters exist.
- The current “printout” looks like a screenshot of the scope window, including window controls and some of the pixels behind the outside of the window (if Windows Aero—whatever Windows’ semi-transparent shadow is called—is enabled).
- I would expect just the visualition or that and whatever plotting parameters exist.
- Documentation
- It’s possible that some of the things I’d like to be able to do with the scope are possible, but the options in the GUI are
not intuitive (to me), and I can’t find very helpful documentation.
- It’s possible that some of the things I’d like to be able to do with the scope are possible, but the options in the GUI are
- Auto scale is kind of cool, but if there are very many traces, it becomes difficult to compare magnitudes.
- Usability
- Allow exporting (and importing?) data as CSV or something more portable that the custom
.pan
format.- Exporting from the app right now does use something like TAB format, but I haven’t gotten importing to work reliably. (e.g. I exported and then imported the same file and got “X-axis data not in ascending order.”)
- Add more trigger conditions.
- Axis enable/disable.
- Allow some sort of numerical comparison with the value at an address. (Right now, there’s only EQ and “changed.”)
- Allow using any “standard” or user-defined trace (by name) rather than having to copy in the underlying firmware address.
- Rather than have a hard limit on the number of samples you can save, add a mode that streams the data directly to a file.
- This will allow much longer runs without affecting running processes.
- Have some means of configuring the scope programmatically, whether that’s creating a human-readable text file or providing some sort of automation API.
- Allow exporting (and importing?) data as CSV or something more portable that the custom
Notes: These are not all of equal value (to me). I organized them by topic.