From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Wireless Sensor Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

WSN 9791, 3202 error handling

Solved!
Go to solution

I have setup a 9791with 3202 and attached a 250ohm resistor to measure a 4-20mA signal at AI0 of the 3202. I am continously measing the input voltage and I am also checking battery voltage, link quality, external power and error messages with simple error handling. Everything seems to work fine. Now I disconnect power from the 3202 and remove the batteries. Surprisingly the input voltage at AI0 remains its value, the battery voltages remains the same, it show that external power is present and the error handling shows no error. After 3 minutes MAX will indicate that the signal has been lost. The VI shows that the external power has been disconnected. All other values remain the same

 

I am using LabVIEW 2009FDS and I do not have Pioneer or any other additional software.I have updated the firmware of the 9791 and 3202 to the latest revision.

 

How can I show in my VI that the signal has been lost? MAX seems to be able to do it, but only after 3 minutes.Why does the error handling never show anything? Why does the link quality remain the same when signal is lost?

 

Thanks

0 Kudos
Message 1 of 9
(8,398 Views)

Hi wv,

 

It is expected that it will take 3 minutes for MAX to show the signal as lost (Why Doesn't MAX Indicate "Signal Lost" When I Disconnect My WSN Node?)

 

It is also expected that the variables will retain their old values.  The variables are hosted on the gateway, not the nodes.  So when the node is disconnected, it simply means that the variables are not being updated anymore.

 

You can add a timestamp to these variables in your project (right-click on the IOV and select Properties).  Then you can right-click the shared variable in your VI and display the Timestamp as a terminal.  By checking this timestamp you can monitor whether your data is stale or not.

 

Have a great day,

 

Chris V

Applications Engineer
National Instruments
0 Kudos
Message 2 of 9
(8,385 Views)

I am not very impressed by this. I have always been with any NI hardware that I have purchased in the past. I am not sure why there is an error in/out, it does not do anything. The time server as an indicator if the data is old or not would be great IF I had access to a time server. This application will be setup where I have only power and no internet available. Even if I did it would not work because I have to turn off any other network connection to make it work. I have treid the Meinberg time server. It worked once and now I get 12/31/1903 again. As a minimum I would think that the Link Quality would go to 0 and not retain its value. This seems like a firmware issue that NI should fix asap.  This seems not reliable for a stand alone executable.I should be able to select time server or OS system clock. I realize OS system clock may not be very accurate but at least it is something to use for time stamp. NI should also fix that in a future firmware rev. At this time I am leaning towards dumping the NI-WSN and look for something else. I guess I could buy the additional software like RT/pioneer that might allow me to do what I want but the added cost will not be appreciated by my boss. For that money I might be able to purchase something else.Smiley Sad

0 Kudos
Message 3 of 9
(8,374 Views)
Solution
Accepted by wv

Hi wv,

 

I'm sorry that you are not satisfied with the features of the WSN hardware.

 

You do not actually need an accurate system time to check whether your data is stale.  All you will need to do is check the time relative to the last time stamp you read.  In that case, it really matters very little whether the internal clock is 1903 or 2011.  You are really just checking to see if the data has updated in say the last 3 minutes.

 

As far as the link quality goes, it too is a shared variable and so susceptible to the same phenomena as the other values from the nodes.

 

Have a great day,

 

Chris V

Applications Engineer
National Instruments
0 Kudos
Message 4 of 9
(8,364 Views)

Hi Chris,

 

THanks for our comments. I appreciate it.

 

I proceeded as you suggested and built a relative time check. It works great this way.

 

Thanks!

0 Kudos
Message 5 of 9
(8,351 Views)

Hello wv,

 

Thanks for your post. I wanted to see if I could add a bit more information about why WSN I/O Variables are designed the way they are. We have customers that have very large sample intervals, I.E hours, days, weeks. We didn't want to add an abritary time-out and have aditional processing to handle this so the time stamp was added for users to use to corolate time. There is a way that you can add your own time out however. You can right click on your variable and add a "timeout". This will allow you as a user to set a time out and a boolean output will go true if a new value has not been updated in this time. 

 

wsn.jpg

 

This should give you 2 optioins, checking the time stamp of the variable or using the timeout feature of the I/O Variable

 

Let us know if there is anything else we can do.

 

Thanks!

 

Corby

WSN R & D PSE

0 Kudos
Message 6 of 9
(8,341 Views)

Corby,

 

Thanks for your comment.

 

I had tried the time out, but it would for some reason time out before what I specified it to be. Now the relative time stamp is reliable enough for me to detect loss of signal, so I am good to go.Smiley Happy

 

Thanks

0 Kudos
Message 7 of 9
(8,335 Views)

I was running into these same issues and discovered the timeout option. I'm reading from 300+ nodes digital input in CNC machines about every 2 seconds. Anytime I get an event change on the DIO0, I insert data into a database. The problem was that I'd lose communication to nodes and want to put a "machine not running" event in the database and do this after a 5 minute timeout. Well I have 7 while loops looping at 2000ms and 36 I/O variables in each loop. My current problem is when I set a constant or local variable to the timeout on each I/O variable now my while loop slows down to the 5 minute timeout. I want to keep looping at 2 seconds (2000ms).

0 Kudos
Message 8 of 9
(7,289 Views)

Hi Ryan, 

For the best amount of visibility for your post, I would try creating a new thread. Since this current thread is marked as having a solution, its visibility will be lower because a lot of people sort be answered/unanswered and your question would fall into the answered category. Creating a new thread would help with visibility and allowing others to try and help you with your issue!

Douglas Choisnet
0 Kudos
Message 9 of 9
(7,278 Views)