Beckhoff CANopen & CAN Bus: Frequently Asked Questions & Answers

 1.1. What are the CANopen Master Stations?

FC5101, FC5102 (Industrial PCs with PCI slots)
FC5151 (Industrial PC with mini-PCI slot)
FC5121, FC5122 (Industrial PCs with PCIe slots)
CXxxxx-M510 (Embedded Controllers)
EL6751 (Note: While listed, EL6751 is primarily associated with EtherCAT bus, not directly as a CANopen Master)

 

1.2. What are the CANopen Slave Stations?

FC5101, FC5102 (Industrial PCs with PCI slots)
FC5151 (Industrial PC with mini-PCI slot)
FC5121, FC5122 (Industrial PCs with PCIe slots)
CXxxxx-B510 (Embedded Controllers)
EL6751-0010 (Note: While listed, EL6751-0010 is primarily associated with EtherCAT bus, but can potentially interface with CANopen systems)
BX5100, BC5150 (IP20 PLCs)
N/A (For IP67 PLCs, specific CANopen-compatible models may exist but are not directly listed here)
BK5150 (IP20 Coupler)
IL230x-B510, IL230x-B518, IPxxxx-B510, IPxxxx-B518 (IP65/67 Couplers)

 

 

1.3. What are the CANopen Accessories?

ZS1052-3000 (5-pin Open Connector)
ZB5100 (2-core Cable)
ZS1052-2600 (Y-type Connector)
ZS1052-1610 (Terminating Resistor, Attached to T-type Connector or x318)
ZS1052-0610 (Male Straight Connector)
ZS1052-0620 (Female Straight Connector)
ZK1052-6200-xxxx (Female Straight Connector with Cable)
ZK1052-6100-xxxx (Male Straight Connector with Cable)

 

1.4. What are the CANOPEN interface connector models for the BK5151 and EL6751 modules?

ZS1052-3000

 

1.5. How can I disable the HeartBeat function of a CANopen Slave Station?

CANopen utilizes two methods, LifeGuard and HeartBeat, to detect communication interruptions between the Master and Slave stations.

For most of our CANopen Slave stations, only the HeartBeat function is employed. However, if the option to disable the HeartBeat function is not available, we can achieve the same effect by setting the Guard Time to 0, thereby disabling the HeartBeat functionality.

 

 

 

 

1.6. How can two EL6751 modules communicate via CAN 2.0 when they are both configured as CANOPEN Master Stations?

As both EL6751 modules are set up as CANOPEN Master Stations, communication between them using conventional methods is not feasible.

 

1.7. How does an EL6751 CANopen Master Station communicate with standard CAN devices

The El6751 is a CANopen module from Beckhoff that can function as both a Master and a Slave. However, in certain applications, customers require communication with standard CAN devices (such as custom-built CAN 2.0A/2.0B devices). Typically, this is achieved by emulating the standard CAN devices as CANopen Slaves, with information exchanged primarily through predefined PDO (Process Data Object) messages. Nevertheless, this approach can be inflexible due to the inability to freely modify CAN IDs. The EL6751, on the other hand, not only fully supports the Master-Slave functionality of CANopen but also seamlessly communicates with standard CAN 2.0A/B devices, offering powerful capabilities and exceptional flexibility in use.

 

1.8. How do I modify the baud rate of an EL6751?

The baud rate can be set by configuring the F800:02 SDO (Service Data Object) using the FB_EcCoeSdoReadEx function block.



1.9. BX SSB Interface & BK51x0 CANopen Interface Pin Definitions


1.10. Issue of Interference Vulnerability in Star Topology CAN Nodes

rgency message of 0x8n appears, indicating that the CAN warning limit has been exceeded.

Fault Troubleshooting: Based on the observed phenomenon, it was initially determined that the issue was related to interference. Upon examining the wiring, several issues were identified:

  1. The customer was unable to confirm the CAN network topology structure or verify if the terminating resistors were correctly configured. As different CAN (CANopen) nodes were located in separate enclosed compartments with limited space, it was initially difficult to trace the wiring. A preliminary assessment indicated the presence of a star topology structure.
  2. The CAN communication cables were not fully shielded, with multiple points of connection through terminal blocks, and grounding was suboptimal.
  3. Only CAN High and CAN Low were connected, while CAN Ground was not connected.
  4. The overall cabling was suboptimal, with power and signal cables routed too closely in some areas.

Solution: Addressing Point 1, the CAN network was rewired to correct it to a linear topology structure, and the terminating resistors were adjusted accordingly.

1.11. The Slave Diagnostic Page of EL6751CanOpen Displays SDO-Upload-Error 0x1000 or 0x1018

 

Problem Description:

 The Slave Diagnostic Page of EL6751CanOpen is indicating an SDO-Upload-Error with error codes 0x1000 or 0x1018, as detailed in the image below:






Error Cause:
The CanOpen Slave is not a standard slave. During the startup process, if the data corresponding to the addresses 0x1000 (Slave Type) and 0x1018 (Vendor Information) are not transmitted to the Master, the Master will detect a data mismatch and report an error.

Resolution:
For the SDO-Upload-Error 0x1000, it is necessary to navigate to the Advanced interface of the CAN Node tab for the Slave and tick the "Disable Upload Object 0x1000" option.

 



For the SDO-Upload-Error 0x1018, it is necessary to modify the vendor data in the "Check, if none zero" section of the CAN Node tab for the Slave to all zeros. This will prevent the system from checking if the vendor ID matches.


The above is merely a temporary solution. To prevent such issues from recurring, it is necessary to modify the Slave to transmit the required data and ensure it matches the description file.

The preset values for these two data points are defined in the description file. Therefore, if the Slave cannot be modified, theoretically, modifying the contents of the description file to set these values to 0 could be a workaround.

Note: The data corresponding to the address 0x1000 represents the type of the Slave

Taking this issue as an example, the Slave Type defined in the description file is 0x420192 (Expected value mentioned in the error message, as defined in the description file).

The lower 16 bits (0-15) correspond to 0x0192, which represents the Slave Type. Specifically, 0x192 in hexadecimal equals 402 in decimal, indicating that this is an axis utilizing the 402 protocol.

The upper 16 bits (16-31) correspond to 0x42, which are additional data.

These two values are also reflected in the CAN Node tab. It has not been tried whether modifying these values to 0 would similarly resolve the error.


1.12. When implementing CanOPEN Node communication, are there any limitations on the data length for each TxPDO (Transmit Process Data Object) and RxPDO (Receive Process Data Object)?

Yesthere are 8 bytes

1.13. What is the reason for this? (Node 1 requires at least one PDO with data to be defined, all these boxes will be disabled until that condition is met.)


Answer: PDOs have not been configured, and the PDOs for the Slave need to be configured based on the actual situation of the Slave.

To configure under Device EL6751, right-click here to first scan for the Slave.


After generally loading the Slave's EDS file, scanning for the Slave will automatically add it, eliminating the need for manual intervention. If the Slave is not detected, please confirm that the RUN light on the EL6751 is constantly lit. Additionally, check if there are any duplicate node IDs between the third-party Slave node and the EL6751. When wiring, be sure to include the terminal resistor.

1.14. How should one operate to export an array over a CAN bus? To transmit the entire array to other controllers via the bus, the entire array needs to be associated with an external variable in a single operation.

In the PLC, declare the array and then bind it to the DATA section, and that's it.



1.15. After the CAN communication Slave is powered off and then back on, Slave 1 and 2 report the faults shown in the image below, and they cannot automatically reset. Is it possible to modify settings or add a program to enable automatic reset?

A reset can be achieved by restarting the CX5020 or performing an online Reset, and the modules are all in an OP (Operational) normal state. (EL6751, IOF_DeviceReset)




Answer

 https://infosys.beckhoff.com/content/1033/tcplclibiofunctions/11843117067.html?id=9145107276519971642 Netid for controller’s netid.



The Function Block Manual for this function block in TwinCAT 3.

https://infosys.beckhoff.com/content/1033/tcplclib_tc2_iofunctions/59085835.html?id=1048048840999409173

 

device id



1.16. CAN Communication Alert: "A COB Id Greater than 0x7FF or enabled extended frame" allows communication but no data can be monitored. How can this issue be resolved?

The alert message is shown as follows: 



Answer:
This is an alarm prompt indicating that the set COB ID exceeds 0x7FF, therefore it needs to be configured in MDP mode.


1.17. During CAN communication, when a new data is received, does the RxCounter in the inputs increment by 1 each time? If I send a message once, how many times will the RxCounter increment by 1?

 

Answer:
If a message is sent, it should be the TXCounter that increments by 1.

Question:
If I only send a message once, and there's an RxCounter+1 in the inputs, but after sending it once, no more messages are sent, will the RxCounter still increment by 1? Will the Inputs still fetch data from the bus?

Answer:
The RxCounter increments by 1 when a message is received.