LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Communication error in multiEthercat system

Hello all

 

I have a system, which hardware consists of NI cRIO 9025 and four NI 9144 expansion chassis, which are connected in serial by Ethernet. If communication error exists between items( between controller and expansion chassis or between two expansion chassis ) our software returns error but doesn't give information where exactly communication error exists. How I can know where exactly communication error exists?

 

Ara

0 Kudos
Message 1 of 8
(3,387 Views)

Hello erevan,

 

You should be able to see which chassis has dropped off the network using Measurement and Automation Explorer or using your project explorer. Alternately you could identify the chassis that has dropped communication by identifying which C-series modules are no longer available (if you want a programmatic way to get that information).

 

 

Colden
0 Kudos
Message 2 of 8
(3,364 Views)

Hello Colden R

 

Thanks for your response. I implement you answear( identyfing which C series modules are no longer avaiable) programmatically, but there were some issues.Then I run RT.vi(LabView version 2011) which is attached in this post and disconnect second Expansion chassis Ethernet cable then all error nodes which are connected to module's channels shared variables return error 2147137802. So in that case then ethernet cable between controller and expansion chassis or between two expansion chassis disrupted I cant know between which devices(controller and expansion chassis or between two expansion chassis) exactly ethernet cable has disrupted or disconnected. When I have spoke about communication error I assume that Ethernet cable is disconnected. As I say there were 4 Expansion Chassis in our system. There were 2 DI modules on the first and second expansion chassis and a DI module in third and fourth devices.

 

Can you help?

 

Regards
Ara  

0 Kudos
Message 3 of 8
(3,348 Views)

Hello erevan,

 

In this example you're talking about, do all the DIO outputs return errors, or just the ones from Device 2, Device 3, and Device 4?

Colden
0 Kudos
Message 4 of 8
(3,339 Views)

Hello Colden R

 

All nodes return 2147137802 Warning, so it's impossible to know which EtherCAT has disconnected. I just have run code and disconnect Ethernet cables between EtherCAT devices in sequence. I have done some screenshots(which are attached below), which show that in all cases all error nodes return Warning 2147137802.

 

 

0 Kudos
Message 5 of 8
(3,327 Views)

Hello erevan,

 

That code is just a warning message, so you should still be getting data out of your indicators on device one. So what you can do here is essentially send a heartbeat to each device. 

 

In order to implement a heartbeat, you could have two boolean user defined variables on each 9144. Call one "heartbeat request" and the other "heartbeat acknowledge". Then put FPGA code on each 9144 that just writes the value of "heartbeat request" to "heartbeat acknowledge". Then on the host, just write a value to "heartbeat request" and see if that value gets mirrored in the "heartbeat acknowledge" variable. If it does, then you have a connection to that 9144. If not, then the 9144 is disconnected or powered off.

 

Alternately, you could do this with a single variable on each 9144, if you use something like an integer (host sets the value to one, FPGA responds by setting the value to two when it sees the value change to one). 

Colden
0 Kudos
Message 6 of 8
(3,322 Views)

Hello Colden R

 

Thanks for your answear.

We read data from EtherCats by Scan Engine. Can we run FPGA code on EtherCats at the same time with Scan Engine?

0 Kudos
Message 7 of 8
(3,312 Views)

Yes, you can put FPGA code on the 9144 even when using scan mode.

Colden
0 Kudos
Message 8 of 8
(3,309 Views)