A Recorder object provides a mechanism to collect and buffer any data (positions, velocities, etc) in the controller’s memory. After a recorder is configured and started, the controller copies the data (positions, velocities, etc) from the specified addresses to a local buffer every “N” samples. Later, the host can collect the data by polling or via interrupt-based events.
The controller supports up to 64 data recorders, which can each record data from up to a total of 32 addresses each sample. The buffers can be dynamically allocated. A larger data recorder buffer may be required for higher sample rates, slow host computers, when running via client/server, or when a large number of data fields are being recorded.
In case the data recording length is greater than the memory available to the recorder, the recorder can be configured to use a circular buffer and the host PC is only required to copy the recorded data to RAM faster than the recorder circular buffer rolls over. On most systems this is not an issue.
A recorder can be started or stopped from the host application or from the controller by configuring a data recorder trigger. When the trigger conditions are met, the controller will automatically start or stop a data recorder. This is very useful for logging relevant variables during the period preceding a fault or error. Normally, the recorder stops collecting data when the buffer is full. It can also be configured to continuously collect data, overwriting the previous data until it is commanded to stop. This is useful for trapping a recent history of controller data.