Best approach to program a PLC using dbc file? (CAN communication)

389 views Asked by At

This is probably not the right forum to ask this, but I need to program a Phoenix Contact PLC in Structured Text. The PLC should communicate with a motor that uses CANOpen protocol. The only resource I have is the dbc file. I'm kinda lost about where to start. If you have some suggestions/recommendations I would appreciate it.

1

There are 1 answers

0
Matthieu On

Implementing a CANopen stack can be very time consuming and complex but make a node working with your soft can be easy depending on the slave you have to control.

A good tip would be first to connect the motor to CAN viewer like PCAN View or whatever depending on hardware you have.

First step is to send the start message at adress 0x000 DLC:2, Data 01 00 to start all slave or 01 motor node id to start only the motor. This will force the motor to start in operational mode and you will be able to see if it send something or not.

You should probably see a heartbeat message with ID: 700+node id and maybe some PDO with a the current speed, temperature or whatever (the motor documentation should help you better understand what the motor send and wait).

In this case in your soft you would have to implement the start message sending if no heartbeat or heartbeat value different than 0x05 (means operational), the PDO read if there is one and a PDO control command which give to the motor the speed needed (you should find the message in the motor documentation)

There might be some other needs like SDO parametrization but worth to try with these few steps before

Please let me know I can help you