The operating parameters of the controller can be observed real time at the run tab of the Roborun+ Utility. This is a great tool for monitoring the motor performance, but it has some limitations. The relatively low logging frequency of the chart might lead to some important events going unnoticed. These can be:
Momentary Undervoltage - Overvoltage errors
Momentary active amp limiting that degrades motor performance
Short duration current – feedback spikes
Momentary digital inputs activation due to electrical noise
Other transient events
Thankfully the Roborun+ Utility give the ability to get logs with sampling frequency up to 1 KHz. This can be achieved in two ways:
With stream command, at firmware version 2.0 or later
By scripting, at all firmware versions
Parameters that can be logged
All the supported controller parameters can be found at the Roboteq Controller User Manual. The most common parameters used for debugging can be found at the following categories:
Controller Status:
FF: Controller fault flags. Reports all the fault conditions of the controller like undervoltage, overvoltage, short circuit, overheat etc.
FM: Runtime Status Flags. The status of the controller can be: Amp limiting active, limit switch triggered, Safety stop active, motor is stalled, etc.
FS: Status flags like analog mode, pulse mode, script is running, motor sensor tuning mode, etc.
Operating Parameters:
M: The given motor command
RMP or TR: The actual set point by following the acceleration/deceleration ramp
F: The measured feedback
P: The supplied power
A: The motor current. This is RMS average current of three motor phases
PHA: The instant phase current
MA: The FOC torque and Flux amps
IO values:
DI: Digital input state
DO: Digital output state
AI: Analog input voltage
ASI: Sin/Cos or SSI sensor input
HS: Hall status
V: Battery, controller and 5 volt output voltage
T: Controller temperature
Using Stream
The advantage of using stream is that it does not interfere with the script execution and the script does not need to be modified.
The stream command has the following syntax:
# c_/?Par1 cc_?Par2 cc_Par3 cc_# t
Where Par1, Par2, Par3… is the command name, cc is the channel and t is the logging time in ms.
For example, the following stream can be used to record the Motor command, motor current and motor power for both controller channels:
# c_/?M 1_?M 2_?P 1_?P 2_A 1_?A 2_# 1
The # 1 is the logging period and its units are ms. Various logging periods can be used. Please have in mind that if the logging data exceed 10000, then the logging values will start being overwritten. That means that by using a logging period of 1ms the data will start to being overwritten after 10 sec. That is why it is very important to stop the logging execution as soon as the error has been captured.
How to capture the logs with stream
Go at console tab and paste the stream command on a command box
Click the Clear Log button to clear the console
Click the send button
Drive the motor to reproduce the problem. If there is not an alternative device to send the motor commands, these can be sent trough another command box. Have a look at the Roboteq Controllers User Manual to find how to issue a serial commands. The watchdog timer needs to be disabled otherwise the motor command will be zero once the timer expires
Click Stop and save logs as soon as the problem has been reproduced.
The log is a text file that can be simply pasted into excel. Since the parameters are separated with tabs, they will nicely fall into separate columns. From there it is easy to create graphs and perform analysis.