Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

CANOpen-Message with NI-USB-847x

Hi,

i trying to build up a communication between LabVIEW and a Festo-Tool. The Festo-Tool accept only CANOpen-Message-Protokoll. I've got only the NI-USB-8472. I need to send only 2 commands: "go in Operational-Mode" and "open or close a valve". Not more. Some people say that's possible with my hardware. But how? Please give me a feedback and/or an example. Thanx!


Hallo,

ich versuche eine Kommunikation zwischen  LabVIEW und einer Festo-Ventil-Insel aufzubauen. Leider nutzt Festo das CANOpen-Protokoll und ich habe nur die NI-USB-8472 - Box. Ich muß nur zwei Befehle senden: "gehe in Operational Mode" und "öffne oder schliesse ein Ventil". Mehr nicht! Einige meinten das ginge auch mit dieser Hardware, aber wie? Kann mir jemand ein Beispiel geben? Danke!


Jens G.
0 Kudos
Message 1 of 6
(8,400 Views)
NI sells a CANopen library but according to this comparison table, it is not supported by your device.

Although I have developped several CAN applications, I have never used CANopen. Therefore I don't know if your application may be coded without this library. Sorry to not be able to give you a better answer but I would at least mention above information.
0 Kudos
Message 2 of 6
(8,390 Views)

It should be easy to write and read these three commands. The problem is you need to calculate the correct COB ID (Basic CANopen ID + NodeID -1) and you need the Index and Sub Index Values for the Object Dictionary for your Festo Device. Then you could use the basic Frame API Examples like "Transmit  and Receive same Port".

The USB device cannot handle object, therefore you have to use the Network interface Object.

See the attached example for a basic solution.

DirkW

0 Kudos
Message 3 of 6
(8,370 Views)
Thanx,

It works! Simply CANopen-Messages over USB-8472! It works!

Thank you again.

Jens G.
Message 4 of 6
(8,344 Views)

Hello there,

 

I am new to CAN, and I am trying to implement another Festo tool (an AC motor controller) which accepts CANopen protocol. I have a USB-8473 to communicate with the controller by using Labview program. I downloaded two SDO (read only) and PDO (read and write) examples available on the following link from the NI website.

http://zone.ni.com/devzone/cda/epd/p/id/5873

 

The problem is I can just use the SDO example to read some parameters from the controller, and I do not know how I can implant the PDO example to change controller’s parameter. This code use T-PDO (Index: 0x1800 and 0x1801) to read and write data. But I do not know how I can first insert a data and then transfer it to a specific object like “controlword” (Index: 0x6040 sub:0x00) in order to enable the controller.

 

I hope you can help me.

TIA,

 

Roozbeh

0 Kudos
Message 5 of 6
(7,468 Views)

Hello all,

 

I am looking for some help. We recently got a oriental motor with a canOpen interface. I have used canOpen in the past and had great success with it (With the canopen toolkit) we are not so luck this time round. I have attached the code I have used (Thanks to DirkW and all for the posts) and I can get the SDOs first try but the PDOs are proving very hard. I have read up on the CanOpen and think its my code rather than the hardware can I please ask some one to review and see if the Code is used correctly to read the 2066h motor position index via PDOs. It works off the bat from the SDOs but not so well with the PDOs I have checked the basics like the RX and TX CodIDs (180h + node id and 200h + node id as per the manual) and still no success.

 

I have attached the code and inside is the VI called Oriental PDO read position.vi and the Manual the vendor supplied.

 

Cheers In advance

 

Rob

0 Kudos
Message 6 of 6
(5,739 Views)