LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

No SDO Communication Using CAN over EtherCAT (CoE) with 3rd Party Slave

Dear all

 

We are trying to establish an EtherCAT communication between a cRIO 9024 as EtherCAT master with a 3rd party frequency comverter (bmaxx 4432) as EtherCAT slave. CanOPEN over EtherCAT is industry standard.

 

The slave device has a CAN in Automation (CiA) configuration 402, i.e. motion and drives. Thus it has a well configured address range, input/output parameters and the like. The frequency converter remains in INIT mode and waits for a PDO definition, sent via an SDO communication. 

 

In LabView, adding an EtherCAT master in the cRIO system works fine. Adding targets and devices on the configured EtherCAT master also works fine after we imported an XML description of our third party EtherCAT slave. LabView detects the slave type and the version correctly. Thus, there must already be a rudimentary EtherCAT communication working between LabView and our 3rd party slave.

 

The problem is that we cannot establish a first SDO communication.

 

Every description I found was about using CANopen on a CAN bus hardware (e.g. NI 9861) plugged into the cRIO. Descriptions concerning EtherCAT are usually concerning an NI cRIO 9144 extension as slave, which is not what we have.

 

The NI CANopen library seems to definitely require the NI 9861.

Is this correct?

 

1)

Either it should be possible to define a kind of virtual CAN port based on the EtherCAT port, on which we can write to and read from with the NI CANopen library. This would be the preferred solution so we can use the CANopen VIs.

Is there a way to do this?

 

2)

Otherwise, there should be a possibility to establish a more basic SDO/PDO communication directly based on the EtherCAT interface.

Are there any NMT/SDO/PDO VIs available to do the programming?

Is there a manual document which would describe how to start the first communication setup via EtherCAT (CoE)?

 

 

My sincere thanks for any advice you can give.

 

Many cheers

 

 Markus

0 Kudos
Message 1 of 13
(8,197 Views)

Hi Markus,

 

The LabVIEW master driver brings examples for LabVIEW showing how to read SDOs using the programmatic API. There is a function available for SDO Write as well and if you know what SDO Index and Sub Index that should be possible by using the ECAT master driver.

 

DirkW

0 Kudos
Message 2 of 13
(8,193 Views)

Hi Markus,

 

We are about to purchase a cRIO controller and a bmaxx (BM4445) drive from Baumuller. We will need to control the speed at high speed 700Hz. Baumuller advised that this update rate is possible through EtherCAT. We will also be reading torque, speed and temperature from the drive through EtherCAT. However I am worried about the communication problem you have experienced.

From your experience, do you think the combination of CRIO and bmaxx drive is a good solution? What advantages and disadvatages do you see?

 

Thanks,

Farid

0 Kudos
Message 3 of 13
(8,111 Views)

I think there was no concern about communication problems. The customer had just not found the correct way to use CANopen over EtherCAT CoE with labVIEW. as I wrote earlier there are examples for doing CoE.

700 Hz should not be a problem with a 9024/25 cRIO controller.

 

DirkW

0 Kudos
Message 4 of 13
(8,097 Views)

Dear Farid

 

By now, I solved our communication problem between cRIO and the BM4432. 

 

First it was a hardware compatibility problem between the BM4432 controller and an older version of the ECT card. Once this was solved, the LabView program was sorted out.

 

The EtherCAT communication in LabView is with a drive controller is marketing stuff. It only works out of the box for the AKD drive. NI is using this for marketing. The AKD driver is hard coded in LabView. For all other drives you need to write the communication by hand via shared variables. But once this is done, it works OK.

 

Please take a look at the AxisInterface example and adapt it to your needs:

https://decibel.ni.com/content/docs/DOC-11191

 

I also installed LV SoftMotion. Not sure if this was necessary to get the EtherCAT communication going.

 

EtherCAT cycle time can be set to 1ms so your scan rate of 700 Hz should be all right.

0 Kudos
Message 5 of 13
(8,081 Views)

Dear Markus,

 

I'm also trying to buld a CoE connection from my crio 9074 to bmaxx 4432.

 

Could you post your LV-project/VIs or mail them to me? I'm quite new to bus communication and quite stuck on how to start.

--
Regards

criomaxx
0 Kudos
Message 6 of 13
(7,857 Views)

Dear all,

 

I'm trying to establish a connection between a cRIO9068 and a BM 3300 via CoE.

 

I already had a hard time establishing a normal EtherCAT-connection.

 

Finally I could set the Scan engine to active, and I was able to get from "ini" and  "pre operational" into "Safe operational" and "operational".

 

As I can see, you had similar problems as I do.

 

When I add my cRIO to my project (with the EterCAT-master)  I can look for the slave device, and add it to my project.

Within this slave device, I can add two mods, as seen in the attachment.

 

These slots should include all the parameters, the drive provides, but actually I only end up with some "position mode" -parameters, I think those are the SDO's.

If I add these to a VI, the cRIO scan engine switches to configuration mode, but can't switch back to active mode.

 

Actually, the Baumüller slave device should be able to provide multiple parameters for read and write.

I can see them, wehn I go to "online device state" in the rightklick menu of the slave device (Parameter.png), but there's no way I can actually use them.

 

I can't add these "slots" on every computer.

On some computers it's possible, on some it isn't.

 

Thanks for any advice, you can give.

 

Yours sincerely

 

Karl

Download All
0 Kudos
Message 7 of 13
(7,188 Views)

AnerdgyuserK,

 

Because the thread you are responding to is about 3 years old now and seemed to reach its own conclusion I would recommend creating a new post that focuses just on your issue.

 

I was also wondering if you were following the directions in the link below.

 

http://digital.ni.com/public.nsf/allkb/FDA1318A8909D02C862574510060DB62

 

It mentioned that you will need to locate the EtherCAT XML Device Description File for your third-party slave.  I did not see mention of this in your post, but is this something that you did?

Matt J | National Instruments | CLA
0 Kudos
Message 8 of 13
(7,138 Views)
I'm still following. 😉
--
Regards

criomaxx
0 Kudos
Message 9 of 13
(7,126 Views)

Finally I found a solution:

 

in the link, point 7 is very important:
You must restart LabVIEW to use the newly imported device profile.

When I look for other helps for EtherCAT-connections, they don't explicitly say, you have to restart  leabview...

My coworker found a solution for the SDO's
we needed to edit the xML-files.

 

 

0 Kudos
Message 10 of 13
(7,124 Views)