NI VeriStand Add-Ons Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

NI VeriStand Add-on: Reflective Ethernet Custom Device

The Reflective Ethernet Custom Device enables VeriStand to do asynchronous single-point IO with one or more Windows, VxWorks and PharLap controllers(s) on an Ethernet network.

 

A custom device is installed on both targets and using two TCP connections sends data back and forth between the Inputs and Outputs on the machines.

 

Reflective Ethernet.jpg

In this case the Controller machine at IP: 172.16.18.237 will transmit the data from the "dummy" tag to the Windows machine with IP: 172.16.18.233.

The communication works in both ways and uses the custom device name and channel name as a key(s) for finding the right service and channel for its connection and data transfer.

 

Note that transferring data using TCP over Ethernet can give no hard limits on the real-time timing and jitter. So for your timing/jitter critical applications, consider using Reflective Memory networks.

 

The Custom Device is free for evaluation, academia and nonprofit purposes. Download link below:


VeriStand Reflective Ethernet Custom Device

 

Br,

 

/Roger

 

Edit 1: Solved some deployment issues and corrected in the description

Edit 2: Added a VS2014 Installer

Edit 3: Removed source code, demo is binary only. For commercial licensing and updates, see contact information

Edit 4: Added a link to the NI store

Comments
HaoZhouNIDSM
Member
Member
on

Hi, Good example.

We are using this to demo a distributed HIL system(7 PXI stations, 300K USD) to a customer.

Everything if perfect in the office, but in our customer site, everything crashes,.

We use RM, XNET, RS232 and reflective ethernet, if reflective ethernet custom device added, all crashed(XNET,RM,RS232 communications), once this custom device deleted, everything is fine.

We still at the site of customer, are you aware of anything like this?

-------------------------------------------------------------------------
Hao Zhou | District Sales Manager | Hubei, China
User002
Not applicable
on

I have tested this custom device on Windows and VxWorks (c/sbRIO) targets.

Since you are using PXI, it's PharLap OS, it could be something unexpected there?

Have you tried to only run the RE custom device (remove every other custom device) at the customer site?

Could the problems that you experience be related to some networking issues at the customer's site, since it works in the office?

Are you using the same hardware in the office? Do you get an error message or does it just a heavy crash (reboot)?

I have experienced some weird networking issues with NI RT hardware. sbRIO controllers crashing when running over WLAN.

In any case it should not crash, which is pretty odd behaviour?

Interesting application, may I ask in what industry?

Since you already use RM, why the need for RE?

Br,

/Roger

HaoZhouNIDSM
Member
Member
on

Roger:

Thanks for your repley.

1) We run only the RE, but it does not work, evertime you change a input, input is pulled to 0 immediately.

2) We set up everything in our system office where RE is okay, but we we move to our local office and to our customer, RE misbehave, we use different host, but it is the same.

3) I am not sure if network will affect that, we use hub in the system, so the networking condition should be the same, but if RE deleted, everything works fine.

4) Hardware is the same, no error message, just all RE ,XNET, RM cannot exchange datas.

5) Industry is a ship distributed HIL system

6) RM is for the data sharing for the model, RE is for the distributed HIL sytem multiple host message exchange. Customer requires that.

We are at the edge of pushing customer for the final configuration and purchase, but obviously this time demostration does not work out the way we expected.

We will set up a demo next month for the customer again in our office.

-------------------------------------------------------------------------
Hao Zhou | District Sales Manager | Hubei, China
User002
Not applicable
on

It sounds like there could be some networking issue?

Have you tried Gigabit Ethernet with enterprise grade switches and not hubs?

Br,

/Roger

Seiya_Tu
Member
Member
on

I cannot compile the code for LabVIEW 2012, do we have 2012 Version, please?

User002
Not applicable
on

Hi Seiya, have you tried building it with VS2012 installed on your machine?

VS2012 also installs required libraries in the LV vi.lib folder, libraries that are required for building the device in LV2012?

Anyhow, I have updated the custom device with a VS2012/LV2012 installer.

Br,

/Roger

twa
Member
Member
on

i'm trying to use this driver between a Host PC and cRIO 9024. I can send data from my controller(cRIO) but it is not working when I do the same thing sending from my Host PC. Do anyone any experience using it this way?

Regards

Torgeir

User002
Not applicable
on

Hi Torgeir, can you check the Windows Firewall settings and that your (Virtual) windows machine IP is correct in the VS project. You might have several (physical/virtual) network cards with different addresses and setups? For example, run "ipconfig /all" in your command prompt and check your network settings.

Try making a small program on the cRIO that will open a listening socket and connect it from your windows machine, see if you get it to work. If not, then you can start solve it from there.

The VS Custom Device implementation is very simple since it is a binary socket based communication protocol.

Br,

/Roger

twa
Member
Member
on

Hi Roger,

Thank you, for your answer. I have tried what you suggested. I tested with å simple server/client program and could send data from cRIO to my PC. I was using port 6340. What port is the Reflective Ethernet using? My  bee I have some port blocking and can try the port Reflective Ethernet port in my simple program.

Br,

/Torgeir

User002
Not applicable
on

Hi again Torgeir

My implementation uses a dynamically assigned listener port based on the service name. When you start the custom device, the Service name will be registred in Windows/RT VxWorks/PharLap and any attempt to connect that service will automatically connect to the automatically assigned port.

Connection1.JPG

The reason for doing this is that I want the operating system to decide what ports to use and not hard code a dedicated one and perhaps end up with port clashes between applications.

Br

Roger


twa
Member
Member
on

Hi Roger,

Thank you for taking time to enlighten me. I change the dynamic port allocating to a static version and enabled a TCP close that you have disabled, for some reason, and the driver started to send data from the host to the cRIO. I did not try if that also worked for the uposite direction. For the moment I happy because only wanted to tranfer values from the host to my cRIO.

Now I can start my vacation, with a great satisfaction and a knowing that I can finish my project.

Have nice summer and thank you.

Br.

/Torgeir

Pierrecollette2
Member
Member
on

I cannot compile the code for NI veristand 2014, do we have 2014 Version, please?

User002
Not applicable
on

I'm currently downloading VS2014 and let's see if I can help you with 2014 compatible version by tomorrow.

Br,

/Roger

Pierrecollette2
Member
Member
on

thanks

User002
Not applicable
on

You are welcome,

The files should be there now. Check out if it works for you.

Br,

/Roger

pascal.messier
Member
Member
on

Hi

I am trying to use this the driver to communicate between a cRIO 9149 and a PXI8100. I am able to transmit data from the PXI to the cRIO but is not working from crio to PXI.can you help me ?

Thanks

Pascal

User002
Not applicable
on

Hi Pascal,

Is there any firewall or packet filtering enabled between the devices?

The socket port for the device are dynamic, and it might fall into a range which gets blocked.

The LV source code is avaliable, you can perhaps modify it to use fixed ports, check out Torgeirs post a few messages above.

Also verify the network access on the target properties.

TargetProperties.JPG

I hope this helps?

Br,

Roger

Kongsberg
Member
Member
on

Hi Roger

I changed the put to a static one. I can see the packet transmit from the PXI to the cRio on that port, I am using Wireshark to capture the packet on the line.

I also find the PXI doesn't communicate with the rio, it communicate with my host PC. I thinks it is because the Ni 9149 is and ethernet expansion chassis.

But when I try the communicate from the crio (host PC) to the PXI, the program became very laggy, the workspace GUI is unusable. But I can see with wireshark that some packet are send from the host to the PXI. When I undeploy the program, some error of system definition deployement appear.

After that, I am unable to deploy again a program until I reboot the machine

Torgeir talked about a TCP close that he have activated, where is this block in the source file?

Thanks

Pascal

ReflexEthernet.PNGerror.PNG

AGCOJason
Member
Member
on

Does this support the newer Linux cRIO controllers?  I am doing a project that will probably utilize one of the newer 4 slot chassis/controller.

User002
Not applicable
on

Contact our sales representative Riki - See the contact information above.

gtx
Member
Member
on

Hi,

I tried to run this custom device on VeriStand 2017, but I obtained:

error.PNG

Is there any way to run it using 2017 versions?

Gregory

Contributors