If your model controller includes a CANbus port, you can implement the following methods of data exchange:
UniCAN
DataCOM
This enables a PLC in the CANbus network to exchange data with up to
60 other networked PLCs.
CANbus
ISC (Inter-Slave Connection)
Data is broadcast over the CANbus network via system operands, where
each unit can read information from up to 8
other PLCs in the network, including M90/91 PLCs that support CANbus.
CANopen
Supports data communication with remote devices according to the CANopen
standard.
CANbus,
Layer 2
Enables Vision controllers to send and receive data with remote devices
that support CANbus protocol.
You can access a PLC
within a network by using one of the PLCs as a 'bridge'.
Accessing a Networked PLC via PC
'Simultaneous
Modes' Enhanced
Vision only
You can run the following modes simultaneously if
you select the relevant option in the COM Init function:
CANopen + UniCAN
CANopen + CANbus,
Layer 2
Note that CANopen COB ID numbers are 11-bit. If your CANbus Layer
2 application uses 11-bit identifiers, make sure that the ID/identifiers
are unique. If a message arrives through the bus marked with the
same number, CANbus Layer 2 will scan the message but CANopen
will not.
CANopen + J1939
CANopen & Servo
Note that CANopen + Servo cannot
run along with Unitronics UniCAN.
This means that you cannot use EX-RC1 or EXF-RC15 I/O expansion
modules in an application that includes Servo.
In addition, note that all OS version that support servo are released
with a version number that ends in an odd numeral. You must use
such an OS in order to run Servo application
Note ♦ |
Information Mode offers a CANbus 'sniffer' to enable you to monitor communication flow. |
How to assign a unique Unit ID number to each networked controller
CANbus ID numbers range from 1 to 63. The ID number is contained in SI 8. You can assign an ID number by:
Entering a value into SI 8 via Information Mode.
Storing a value into SI 8 as shown below, either by storing a constant number or by linking a register value.

Linking a register value allows you to enable an end-user to enter an Unit ID number via the HMI panel. You can create a Display for this purpose as shown below.

Note ♦ |
The default ID # is 1. |
♦ |
UniCAN ID # range is from 1-60. |
How to initialize the CANbus port
You must initialize the CANbus ports of all controllers in the network to the desired CANbus mode, by using a COM Port Init FB as shown below.

Note ♦ |
The baud rates of all controllers in the network must be set to the same rate. Baud rate is limited by cable length, as described in the CANbus Specifications section below. |
♦ |
The COM Init FB used to initialize the CANbus port should be included in the Main Routine of the Ladder application. |
Power Requirements: 24VDC ( ±4%), 40mA max. per unit |
|
Galvanic Isolation between CANbus and controller: Yes |
|
Baud rate |
Max. Network Cable Length: |
1 Mbit/s |
25 m |
500 Kbit/s |
100 m |
250 Kbit/s |
250 m |
125 Kbit/s |
500 m |
100 Kbit/s |
500 m |
50 Kbit/s |
1000 m |
20 Kbit/s |
1000 m |
Note ♦ |
Cable lengths over 500 meters require an additional power supply. |
Wiring Considerations |
|
Use twisted-pair cable. DeviceNet® thick shielded twisted pair cable is recommended. |
|
Network terminators: These are supplied with the controller. Place terminators at each end of the CANbus network. Resistance must be set to 1%, 121Ω, 1/4W. |
|
Connect the ground signal to the earth at only one point, near the power supply. |
|
The network power supply need not be at the end of the network. |
|
Maximum number of controllers in a network: 63. |
|

Note ♦ |
Unitronics’ CANbus control network is run by a separate isolated power supply that is not part of the network power supply. |
The function of some operands depends on whether the CANbus network is defined as CANbus ISC, CANopen or UniCAN. The operand function changes according to the type selected in the COM Init function
To learn how to use these operands to communicate data, check the topic CANbus ISC, via Network Operands. |
||||
# |
Description |
Turns ON when: |
Turns OFF when: |
Reset by: |
SB 236 |
CANbus Network communication error |
|
Error is fixed. |
|
SB 237 |
CANbus Network disabled |
|
|
|
To learn how to use these operands to communicate data, check the topic CANbus ISC, via Network Operands. |
||||
# |
Description |
Turns ON when: |
Turns OFF when: |
Reset by: |
SB 200 |
CANbus Network operand |
|
|
|
SB 201 |
CANbus Network operand |
|
|
|
SB 202 |
CANbus Network operand |
|
|
|
SB 203 |
CANbus Network operand |
|
|
|
SB 204 |
CANbus Network operand |
|
|
|
SB 205 |
CANbus Network operand |
|
|
|
SB 206 |
CANbus Network operand |
|
|
|
SB 207 |
CANbus Network operand |
|
|
|
SB 208 |
CANbus Network operand |
|
|
|
SB 209 |
CANbus Network operand |
|
|
|
SB 210 |
CANbus Network operand |
|
|
|
SB 211 |
CANbus Network operand |
|
|
|
SB 212 |
CANbus Network operand |
|
|
|
SB 213 |
CANbus Network operand |
|
|
|
SB 214 |
CANbus Network operand |
|
|
|
SB 215 |
CANbus Network operand |
|
|
|
SB 237 |
CANbus Network disabled |
|
|
|
SB# |
Description |
Turned ON |
Turned Off |
Comments |
200 |
Broadcast bit |
When UniCAN broadcast MB is received whose status is ON. |
By user |
The user must initialize this SB |
201 |
High Priority Send Buffer Status |
When full |
When not full |
|
202 |
Low Priority Send Buffer Status |
When full |
When not full |
|
SB# |
Description |
Turns ON when: |
Turns OFF when: |
Reset by: |
SB 240 |
CANopen: Configuration downloaded |
The CANopen Configuration FB is downloaded to the PLC |
No CANopen Configuration is present |
PLC |
SB 241 |
CANopen: Configured |
CANopen Configuration was successful |
CANopen Configuration failed |
PLC |
SB 242 |
CANopen: SDO in Progress |
SDO is busy transferring data |
SDO is not in progress |
PLC |
SB 243 |
CANopen: SDO transfer failed |
SDO data transfer fails |
SDO transfer begins |
PLC |
CANbus, SIs 200-201, 236-237, 240-245
SI# |
Description |
Value |
Comments |
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 211 |
CANopen: Number of received messages |
Shows the number of received messages in the Receive buffer (except for SDOs) |
Maximum number of messages=128 |
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 212 |
CANopen: Number of Send PDO1 |
Shows the number of PDO1 messages currently in the PDO1 Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 213 |
CANopen: Number of Send PDO2 |
Shows the number of PDO2 messages currently in the PDO2 Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 214 |
CANopen: Number of Send PDO3 |
Shows the number of PDO3 messages currently in the PDO3 Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 215 |
CANopen: Number of Send PDO4 |
Shows the number of PDO4 messages currently in the PDO4 Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 216 |
CANopen: Number of Send RTR PDO1 |
Shows the number of RTR PDO1 messages currently in the PDO1 Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 217 |
CANopen: Number of Send RTR PDO2 |
Shows the number of RTR PDO2 messages currently in the PDO2 Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 218 |
CANopen: Number of Send RTR PDO3 |
Shows the number of RTR PDO3 messages currently in the PDO3 Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 219 |
CANopen: Number of Send RTR PDO4 |
Shows the number of RTR PDO4 messages currently in the PDO4 Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 220 |
CANopen: Number of Send SDOs |
Shows the number of SDO messages currently in the Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 221 |
CANopen: Number of Send NMTs |
Shows the number of NMT module control messages currently in the NMT Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 222 |
CANopen: Number of Send RTR NMTs |
Shows the number of RTR NMT messages currently in the Send buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 223 |
CANopen: Send Buffer full (per type) |
The bits in this register represent the different Send buffers (except for SDOs) |
Maximum number of messages per buffer=8 |
||||||||||||||||||||||||||||||||||||||||||||||||||
When a bit is ON, the corresponding buffer is full. High byte:| - | - | - | - | - | - | -| NMT mc | Low byte: | PDO | -| RCV NMT | RCV PDO4| RCV PDO3 | RCV PDO2 | RCV PDO1 | RCV Emergency | |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
SI 224 |
CANopen: Number of received SDO messages |
Shows the number of received SDOs currently in the Receive buffer |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
SI 225 |
CANopen: SDO status |
The status codes are given below. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
SI 200 |
CANbus Network operand |
|
||||||||||
SI 201 |
CANbus Network operand |
|
||||||||||
SI 236 |
CANbus Network communication error code |
|
||||||||||
SI 237 |
CANbus Network: failed unit ID |
|
||||||||||
SI 240 |
SIs 240-243 comprise a bitmap indicating which unit is in error. If, for example, the network includes unit ID numbers 8, 9 and 13, and PLC #9 cannot be accessed, then the ninth bit in SI240 will turn ON. When the error is fixed, the bit falls to OFF |
|||||||||||
SI 241 |
||||||||||||
SI 242 |
||||||||||||
SI 243 |
||||||||||||
SI# |
Description |
Comments |
200 |
When a UniCAN Broadcast message is received, SI 200 contains the ID number of the sending unit. |
The user must initialize these SIs |
201 |
When a UniCAN Broadcast message is received, SI 201 contains the value of the MI that is broadcast. |
|
202 |
Number of Send messages waiting in High Priority buffer |
Automatically updates |
203 |
Number of Send messages waiting in Low Priority buffer |
|
204 |
Number of Received messages waiting in buffer |
|
240 |
These provide a bitmap of controllers 1-60 in the UniCan network. |
When the controller receives a message, the appropriate bit turns ON. These bits are reset by the Answer Received function. |
241 |
||
242 |
||
243 |
# |
Description |
Value |
Comments |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDW 7 |
UniCAN, CANbus ISC Error |
If not 0, contact technical support |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CANopen: Number of failed Send attempts |
Number of times that data send failed |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDW 8 |
CANopen: Number of failed Sync attempts |
Number of times that send SYNC failed |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDW 56 |
UniCAN Send message counter |
Is initialized when CANbus Port Init runs, then increments at every UniCAN Send. |
Note that only messages sent from a UniCAN Send are counted |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CANopen: PDO Send Counter |
Byte structure: PDO4 | PDO3 | PDO2 | PDO1 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDW 57 |
UniCAN Receive message counter |
Is initialized when CANbus Port Init runs, then increments at every UniCAN Receive. |
Note that only messages received from a UniCAN Send are counted, not Broadcast messages or Check if Alive responses. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CANopen: NMT/SDO Send Counter |
High bits: NMT Low bits: SDO |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDW 29 |
CANopen: Bus is OFF Counter |
Number of times bus was OFF |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDW 33 |
CANopen: SDO Number of Bytes |
SDO upload: number of bytes received SDO download: number of bytes sent |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDW 34 |
CANopen: Abort Code in SDO Abort |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDW 36 |
CANopen: Bus OFF error |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Older Versions Issue: CANopen compatibility break
|
The CANopen System Operand addressing scheme changed as of VisiLogic version 7.00, OS 2.00 (Standard Division) OS 5.02 (Enhanced Division). You can choose to continue editing older applications using previous VisiLogic versions contained in the VisiLogic Version Swapper. Note that in this case the controller must use an older OS. However, if you choose to update the application and OS, note that you must change the system operands according to the following table.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
At compilation or download, VisiLogic may display this error: "Illegal CAN Communication Driver specification - see help"
This may be because the project contains:
CANopen, UniCAN, CAN Layer 2, or CANbus ISC operands; but the CANbus port is not initialized to the correct CANbus protocol type
More than one CANopen Configuration element
More than one CANbus port initialization