10-08-2025 05:03 AM
Hi,
I have a cDAQ-9189 with an Ni-9860 and I am trying to communicate with a LXM28AU10M3X to control a BCH2LH1033CA6C motor.
The motor controller uses the CANopen protocol so I am implementing a basic CANopen interface in Labview using the XNAT/CAN library.
I am able to send and read messages, change the operational state, set the target speed of the motor .
However, I am not able to changed the mode of operation of the motor.
According to what a can read, my startup procedure seems correct.
Is there any specific procedure to the change the mode of operation in CANopen ?
Thanks
10-08-2025 06:05 AM - edited 10-08-2025 06:05 AM
Hi Moldavid,
@Moldavid wrote:
According to what a can read, my startup procedure seems correct.
Is there any specific procedure to the change the mode of operation in CANopen ?
Usually the procedure is described in the motor driver manual.
And usually all CANopen motor drivers follow the very same CiA402 profile…
While you can blindly send one SDO command after the other to configure/start your motor drive it still is recommend to actually read AND react on SDO responses!
The manual should describe a specific routine to let the motor turn, from getting the driver started up to getting into operational mode.
I remember having to set the driver output stage(s) into active mode was one of the steps included. When I was working with CANopen drives I needed to set the controlword 0x6040 several times with a different amount of activated bits…
What exactly do you understand by the term "change mode of operation"?
10-08-2025 06:35 AM
Thanks for your answer.
I am trying to follow CiA402 profile:
- pre-operational mode
- then 0x6040 to Ready to switch on, Switch on
- configurations
- operational mode
- then Enable operation => after that I expected the motor to run
I read answer after each step and can verify with 0x6041 -> It works like I expected.
I know a better implementation of CANopen specification can be made with added reaction on responses. For the moment, I just want it functional.
By "mode of operation" I mean 0x6060 witch I got a positive answer from the motor controller (Data 60 60 60 00 00 00 00 00)
But the reading of "Modes of Operation Display" by 0x6061 always give my 0 and so I am not able to run the motor.
From my understading when I changed value of 0x6060 to 3, I expected to read 3 with 0x6061.
Best regards
10-08-2025 06:42 AM
Hi Moldavid,
@Moldavid wrote:
By "mode of operation" I mean 0x6060 witch I got a positive answer from the motor controller (Data 60 60 60 00 00 00 00 00)
But the reading of "Modes of Operation Display" by 0x6061 always give my 0 and so I am not able to run the motor.
From my understading when I changed value of 0x6060 to 3, I expected to read 3 with 0x6061.
There are several checks/prerequisites in motor drivers before the motor starts to turn. There are current/voltage/torque/speed/acceleration limits, that may interact with each other. Again: read the (whole) manual.
Often there are (software) tools from motor driver manufacturer that do the initialization in the most simple way: you can use a CAN monitor device/tool to watch/record the messages of such a tool and learn from it. Such tools often also indicate configuration errors/problems so you know where to read the manual (again)…