ORCATM Series Smart Linear Motors implement serial communications through a subset of the Modbus RTU specification. Through the Modbus communication protocol, communication rates of up to 1 kHz on Windows and Linux, are possible. High-speed communication is beneficial for generating a smooth motion profile and for providing high-resolution data from the motor.
To obtain higher data throughput and lower data latency through a serial connection, the motor’s baud rate can be increased and interframe delays, or time between frames, can be decreased. The orcaSDK also offers asynchronous communication through command streaming. Command streaming provides the ability to send commands to the motor and read data simultaneously.
To enable command streaming, when working with Python or C++, following creation of the actuator object, and opening the serial port, call enable_stream() on your Actuator object. This method enables asynchronous command stream messages to your connected motor.
Following this, call Actuator : : run( ) at a regular interval, such as within a while loop. Actuator : : run( ) determines whether an active message needs to be resolved, and sends a new command stream message if an active message is not present.
Command streaming in C++
Command streaming in Python
If developing in Windows, Windows sets the latency timer of all COM ports to 16 ms, by default. The Modbus RTU protocol requires a lower latency. Prior to working with interfaces such as C++, MATLAB, LabVIEW, set the latency of the Modbus COM port to 1 ms.
Latency timer settings within Windows
Prior to configuring high-speed communication, the Modbus Rate on IrisControls will display a value of between 40 and 70 Hz. At this communication rate, between 40 and 70 messages are sent between the application and the motor each second.
To increase the motor’s communication rate, increase the baud rate; a higher baud rate correlates with a higher rate of communication. The interframe delay indicates the amount of time the motor will wait before a response is sent.
To set the motor to 1 Mbps and an interframe of zero use the following parameters in IrisControls, within the Modbus tab. After these parameters are set, click the Save Modbus Options tab.
Setting the Modbus tab parameters, within IrisControls, to increase communication speeds
To configure communication parameters in code, the baud rate and interframe delay parameters must match those set within IrisControls. These parameters are added within Actuator : : open_serial_port( ), as follows:
Enabling high-speed communication in C++
Enabling high-speed communication in Python
Contact Iris Dynamic’s support team here with any questions related to high-speed serial communications.