CANopen Communication
FC5101 and FC5102
42
Version: 2.0
If the node does not answer the SDO upload telegram, then the SDO protocol is interrupted after a timeout
(approx. 2 seconds) and then repeated after a waiting time (of approx. 1 second) until the node answers. In
this phase, the node is in state 0x02 (node not found).
If the vendor ID, the product code, the serial no. or the revision no. have been configured to values other
than zero on the CAN Node's tab, then the corresponding values are read and compared in the node's object
0x1018. The booting process is only continued if they are as expected.
3. Set SYNC Time
If synchronous PDOs have been configured, an attempt is now made to enter the given Sync Cycle Time
into object 0x1006 (SYNC interval). Because this object is optional, the boot up is still continued even if the
node acknowledges negatively - it is, however, necessary for the node to answer.
4. Set PDO Parameter
If the "Auto-download PDO parameters" checkbox on the CAN node's tab has been selected (which it is by
default) then the PDO parameters for all the configured PDOs are now written. These are the identifier and
the transmission type. The Inhibit Time and the Event Time are only written at this stage if they have been
configured to have values other than zero.
If a node answers an SDO download of the PDO parameters with an SDO abort protocol, then the
corresponding entry is then read (SDO upload) and compared with the value to be written. If they are in
agreement, the process continues. In this way it is possible for read-only PDO parameters to be tolerated,
provided they agree with the configured values.
The next step is only taken if the download, or the comparison with existing values, is successful. Otherwise
the process is aborted, and the node enters state 0x04 or 0x05, and the appropriate error message is
displayed in the dialog box.
5. Set Guarding/Heartbeat
If a value other than zero has been configured for the Guard Time, the appropriate parameters are now
written to the nodes. Because the heartbeat process generates less bus loading than guarding, an attempt is
first made to start this form of node monitoring on the CANopen nodes.
Heartbeat:
The guard time is entered as the producer heartbeat time (0x1017) and the product of (guard
time x life time factor) is entered as the consumer heartbeat time (0x1016). The FC510x card then transmits
cyclically its heartbeat telegram with the smallest configured guard time (the guard times can be set
individually for each node). If the node refuses the entry of the consumer heartbeat time, then it is assumed
that the node does not support monitoring of the master - this is tolerated. If entry of the producer heartbeat
time also fails, then the guarding protocol is configured.
Guarding
: If the node does not support the heartbeat, then the guarding parameters (guard time, 0x100C
and life time factor, 0x100D) are entered.
If this attempt also fails, then the start-up process is aborted, and the node enters state 0x04, with an
appropriate error message being sent to the dialog box.
6. Download User Parameter
The objects added manually on the SDO tab are now transmitted to the node by SDO download. Once
again, if the SDO is interrupted the value is fed back and checked for agreement, so that read-only
parameters can be tolerated. The process only continues if successful, and otherwise is aborted.
7. Start Node
After all the parameters have successfully been downloaded, the node is switched into the operational state
by means of an individual Start_Remote_Node telegram. RxPDOs are first sent to the nodes about 1 s after
this start telegram, and the guarding or heartbeat protocol begins. Node monitoring by heartbeat does not
start until the node's producer heartbeat telegram has been received for the first time.
Because CANopen does not provide explicit confirmation of the start process, it is only possible to evaluate
the first arrival of the transmit PDOs. Until all the configured TxPDOs have arrived, the state of the node
remains set to 0x17 (expected TxPDO is missing).