LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Networking multiple deployments of like application architectures that use network shared variables

I am currently involved in the development of a project that has been implemented using LabVIEW 2015 RT/FPGA onboard a 9068 controller and a TPC HMI. We are experiencing pretty successful results in its current state, receiving good feedback from customers and other interested parties. These systems are deployed to a field environment, usually 1 or 2 systems (possibly more) and do their process control/monitoring jobs locally without knowledge of one another. The system does currently use 2 network shared variables, (FGVs for anything else local) one of which is for issuing UI-generated commands to the RT and the other for an overall system status for the UI / any other potential host to update its panel from. I have attached an image of the architecture, borrowed from the cRIO Developer's Guide, since it is more or less a good representation. For a while now, I have been wanting to add the ability to do 3 things, and wishfully 4:

 

1.) Build an application for customers to monitor each controller's data on a (Windows) tablet, read only

2.) Build an application for employees to control remotely on their assigned laptops (currently done, but it is only local and is merely the TPC application with different Appearance/display properties) 

3.)  Merge 2 or 3 data points from each system at the end of a job to form a cumulative value for a final report (currently I have to print the 2 tickets and manually combine)

4, wishfully) Be able to control one system from the screen of another.

 

One of my biggest hesitations is networking these installations together with them currently using shared variables. From what I understand of the PSP, it's not an option because this would cause a race condition between the two systems since they are configured as shared variable nodes and not programmatically identified by IP/machine ID. I often find myself thinking of workarounds that address the majority of the above wants, but they always seem like somewhat of a hack. For example, I am not currently using NIC 2 on the RIO of each installation, so I could just send TCP messages to a static IP address on an isolated network allocated to a (wireless) customer tablet and not involve any shared variables. I however still want to network both RIOs to allow the technician's laptop application to be able to control everything wirelessly, in addition to the synchronization of data on each RT target at the end of a timeframe. It just seems like an overall better idea to unify the network model and build a communication handler to distribute data to differently identified client types. 

 

This is where I'm unsure of the most suitable solution. The cRIO Developer's Guide makes mention of some Labview-proprietary (PSP/streams) and open-standard types (STM) of network communication methods, but this doesn't fully address the architectural issue of this task. Does anyone have any good recommendations for developing these (N:N?) models of communication with differing client types that could all interact on the same network? Any white paper references? 

 

Thank you; if I have been vague about anything please correct me. 

 

 

0 Kudos
Message 1 of 3
(2,576 Views)

Perhaps my topic was poorly written.

 

Cliffs: I need to build a communication handler without the use of shared variables to handle the networking of multiple project deployments and other client types that need the data. Any reference material or guidance would be a big step forward. 

0 Kudos
Message 2 of 3
(2,504 Views)

ftp://ftp.ni.com/pub/gdc/epd/dist_monitor_ref_guide.pdf

http://www.ni.com/example/31388/en/

 

 

0 Kudos
Message 3 of 3
(2,461 Views)