Network Management#
Network management controls which communication services a drive takes part in. It is independent of the CiA 402 state machine, which controls the power stage. A drive can sit in NMT Operational with its power stage switched off, and the two never interact.
States#
State |
SDO |
PDO |
Heartbeat |
EMCY |
|---|---|---|---|---|
Pre-operational |
yes |
no |
yes |
yes |
Operational |
yes |
yes |
yes |
yes |
Stopped |
no |
no |
yes |
yes |
In Stopped the drive ignores SDO requests entirely. It does not answer with an abort, so a master will see its own request time out.
Important
The MD firmware enters Operational directly after initialisation. It does not wait in Pre-operational for a start command, which is what CiA 301 describes and what most masters expect. A drive therefore starts producing TPDOs and acting on RPDOs as soon as it has booted.
NMT commands#
NMT commands are sent on COB-ID 0x000 with exactly two data bytes. Frames of any other length are discarded.
Byte |
Content |
|---|---|
0 |
Command specifier |
1 |
Target node ID, or 0 to address every node on the bus |
Command specifier |
Name |
Effect on the drive |
|---|---|---|
0x01 |
Start remote node |
Enter Operational |
0x02 |
Stop remote node |
Enter Stopped |
0x80 |
Enter pre-operational |
Enter Pre-operational |
0x81 |
Reset node |
Reboot the controller, equivalent to 0x2023:8 |
0x82 |
Reset communication |
Reinitialise the CAN peripheral, equivalent to 0x2023:13 |
Reset node reboots the whole controller, so unsaved object dictionary changes are lost. Reset communication restarts only the CAN interface and leaves the application running.
Heartbeat producer#
The drive transmits a one byte heartbeat on COB-ID 0x700 + node ID at the interval configured in 0x1017 Producer Heartbeat Time, in milliseconds. The default is 1000 ms. Writing 0 disables the heartbeat.
Heartbeat byte |
State |
|---|---|
0x04 |
Stopped |
0x05 |
Operational |
0x7F |
Pre-operational |
The firmware does not implement node guarding. Heartbeat is the only liveness mechanism.
Heartbeat consumer#
The drive can monitor one other node on the bus and treat its silence as a fault. Configure it through 0x1016:1 Consumer Heartbeat Time, a 32-bit value laid out as follows.
Bits |
Content |
|---|---|
0-15 |
Timeout in milliseconds |
16-23 |
Node ID of the node to watch |
24-31 |
Reserved, write 0 |
Monitoring is active only when both the node ID and the timeout are non-zero. Writing 0 to either field disables it.
When the monitored node goes quiet for longer than the timeout, the drive does all three of the following:
Sets the communication bit in the error register 0x1001.
Transmits an emergency message.
Commands its own quick stop, decelerating at the rate in 0x6085.
This is the recommended way to make a drive stop when the master crashes or a cable falls out. Point it at the node ID of your master and set the timeout to a few times the master’s own heartbeat period.
Note
The reaction fires once. After the communication error bit is set, further timeouts produce no new emergency message until the error is cleared with 0x2023:10.
SYNC#
The drive consumes SYNC frames on COB-ID 0x080. The identifier is reported by 0x1005 and is read-only. The drive never produces SYNC; a master or a dedicated SYNC producer must generate it.
Each SYNC increments an internal counter that drives synchronous PDO handling. SYNC frames are ignored unless the drive is in Operational. See PDO for how transmission types use this counter.