10-28-2010 09:39 AM
I am using NI PCI-8513/2 with the NI-CAN emulation layer and LabVIEW 8.5.1 to talk to a CANOpen device.
I have used LabVIEW for many years but am new to CANOpen.
I have quite quickly managed to work out how to get one PC talking to the device. However, for the real application I require multiple PCs (initially three) to read the data. It is not clear to me whether I can use NMT from one PC to get the device awake, and then use PDO from all three PCs to read the data?
Guidance would be much appreciated
11-11-2010 03:53 AM
Hi Mark,
With this communication based on CAN whilst all of the data is available on the network arbitration IDs are still used to address the individual PCs so I believe you will need to explicitly send the data to each PC to get the data across all three. The other option would be to have one PC acting as a data server making the data available through a network interface such as shared variables. This may be simpler to implement and also easier should you need to scale it up.
Regards,
11-11-2010 12:16 PM
You are correct. On a CAN network all nodes receive every message, so you can setup each PC's adapter to accept the device's PDO. There may also be some advantage to having all of the PC's send the NMT message to put the device into the operational state (not just a dedicated one), that way if one of the PC's is down it won't effect the operation of the others: there's no harm in sending the message even if the device is already in operational mode, it will just be ignored by the device.
Frank
Smart Electronics Corp.