Welcome to Ars-Informatica  

 
 
 
 
 
 

If you want to build a ship don't herd people together to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea. (Antoine-Marie-Roger de Saint-Exupéry)

Synchronized, group polling


The main idea behind the synchronized communication mode is to provide motion oriented systems such as robots with "parallelized" inputs and outputs. To avoid jitter effects and ensure smooth movements it is necessary to get all inputs at the same moment in time and to apply all outputs at the same time.

In CANOPEN a synchronized communication method is implemented using a SYNC signal. The SYNC signal is a specific message without any data that is used only for synchronization purposes.

The default CAN-ID is 128 (80h). This number is chosen on a priority basis.

Consider the following figure:

In this example the sensor data (for example from encoders measuring the positioning of a moving robot arm) is synchronized. The sensors constantly read their input data and keep a current copy in the message transmit buffer. Upon reception of the SYNC message, all sensors stop updating the buffer and start transmitting the data. Although all messages are transmitted serially via CANOPEN, once the data arrives in the main processing unit all these inputs will be from the same moment in time, i.e. the time the SYNC signal was transmitted.

Since the SYNC signal is typically produced on a fixed time basis, this triggering mode can also be regarded as using a global timer for triggering instead of the event time local to each node.

The synchronization of outputs has the same facilities:

Once the processing unit has new values for the outputs or actuators it transmits the data serially via the network. The actuators receiving the messages keep the received data in their receive buffers without applying the data to their outputs. They wait for the next SYNC signal and only upon reception of the SYNC signal will they actually apply their outputs in parallel.

In a network running at 250kbps if all nodes transmit their data every 50 milliseconds then the worst-case time variance is 50 milliseconds. Instead if synchronization is used, the only delay in each individual node is the time it takes the node to process the receipt of the SYNC signal until either sending the TPDO (for sensors) or applying the data from the RPDO (for actuators). This time is highly dependent on the code quality and microcontroller used but it should be less than 100 microseconds.

In applications requiring very high-resolution synchronization signals typically an extra line is provided on the network in order to be able to send synchronization pulses directly (and not via the network).