Title
How to Monitor and Change a CANopen Slave Status from STOP to OPERATIONAL Using Application Logic.
Question
The goal of this FAQ is to explain how to monitor and transition a CanOpen slave device from STOP to OPERATIONAL mode using the application logic.
Answer
1. Issue
The goal of this FAQ is to monitor the status of a CANopen slave device and, if it is in STOP mode, change its state to OPERATIONAL mode using the application logic.
2. Product Line
Hardware: BMECXM0100 (CANopen Master)
Relevant objects: Slave DDT object HEALTH
NMT commands and Write_SDO EF functionality are used for state control.
3. Environment
- Operating System: Windows 11
- Software: EcoStruxure Control Expert (or equivalent), supporting CANopen communication
- Communication: CANopen protocol with NMT state machine and SDO commands
4. Resolution
- Monitoring Slave Status:
The status of each slave is available in its DDT under the object named "HEALTH".
- Health Parameter:
The table below describes the meaning of each value for the HEALTH parameter:
Example: If the Health byte equals 6, the slave is in Operational mode.
- Changing the Slave State:
If a CANopen slave connected to a BMECXM0100 master is in STOP mode, you can send an NMT=H05 command to force it into Operational mode.
Below is a diagram of the NMT State Machine and the list of available NMT commands:
This NMT command can be send by the application logic, using a WRITE_SDO communication EF.
- How to Use WRITE_SDO:
Here's a detailed explanation:
-
-
- SUBINDEX: Address of the target slave (e.g.,
@3 in this example) - NODE: Must contain 127 (represents the sending device, the CXM)
- INDEX: Must contain the NMT command encoding 16#1F82.
- DATA_IN: Must contain the NMT command value, e.g., H05 for Operational mode
- In the application, the variable SDO_DATA_TO_WRITE is a 49-byte unlocated array.
-
Here is an excerpt from an animation table that sends command 05 to move the slave into in Operational mode:
- SUBINDEX: Address of the target slave (e.g.,
- The EF is triggered when the input
start_single_CMD = 1. - Note: Entering 16#04 will put the slave into STOP mode.
-
- Attached are:
-
- The section for using the Write_SDO EF to control a slave.
- The section for enabling the Write_SDO query.
5. FAQ Applicable Conditions (Optional)
This procedure applies to BMECXM0100 masters controlling CANopen slaves. It remains valid until firmware updates introduce alternative methods for state control.