LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Transmitting Commands or Queries over TCP from PC TO cRIO RT Host

Hi All,

 

I've been digging through NI KBs and forums for awhile now and I feel like I just have to reach out for ideas/help.

I'm working on a LabVIEW project (somewhat inherited) that operates independently on a cRIO device. For normal operations, the system is standalone-- it has a physical display, buttons, and I/O. However, we would like to add the ability to remotely control the system, as you would control a power supply or DMM over USB/COM -- just not over Serial.

A TCP Send/Receive structure is already set up in the project, including the various commands expected and what to respond when received. This was originally intended to communicate with an external VI on a connected PC, but now we'd like to remove that VI being a requirement. Ideally, a user could just pull up, say, PuTTY, open a connection to the cRIO, and send the same commands (and receive the same responses) the external VI would normally do.

 

I've found that this conversion may not be that simple. First, no real solid connection can be established with PuTTY, and then (say via Raw) commands just go nowhere with "Software caused connection abort". Then, nearly all support related to TCP connections appears to be about connecting a device to be controlled by LV. [I need the exact opposite]. I've seen a couple of custom Putty or SSH libraries pop up, but they appear to do the same thing - or they require a license, and I'd like to make sure that is the only route I can take to accomplish this. Many roads regarding this topic lead to Archived SSH, RAW, and TELNET Tools, but again, I'm trying to query the VI using these tools, not use these tools within the VI to query something else.

 

I'm mainly looking for help to:

  • A way to intercept / issue the same commands on a PC via direct Ethernet and generic tools (PuTTY, etc.)
  • An alternative that can format these commands for something that is able to do the same
  • Generally maintain the structure that is there, avoiding complete reconstruction of master and sub VIs

 

This is part of a large lvproj so I can't include everything, but I've attached images of these VIs:

  1. TCP Server
  2. Send Message Parser (set to simple Get Version command)
  3. Receive Message Parser (set to simple Get Version command)
  4. TCPIP Loop DataRx from older VI <-> VI tool
  5. TCPIP Loop DataTx from older VI <-> VI tool

Note: I can't necessarily comment on the "Whys" of everything in the VIs-- similar to the reasons why these have to be images.

 

Thank you for any help or ideas,

 

Kevin

~= Never point at High Voltage =~
0 Kudos
Message 1 of 2
(91 Views)

Partially bumping this topic, but by spilling some ideas that could hopefully spark someone else:

  • Does anyone have an example of querying / commanding information from a VI (on another machine) via TCP and/or using PuTTY? 
  • Since it is easy to SSH into the RT Linux shell, is it possible for the VI to read/write information to the shell, or a file in the shell filesystem, and a remote client can access that? Possibly live with some sort of port forwarding setup?
  • This is all very similar to the operation/needs of a 'remote front panel', except a web-based application cannot be easily accessed via simple command interface. <The goal being that others can use the target/tool in their setup, however they want - like a remotely controlled PSU>
~= Never point at High Voltage =~
0 Kudos
Message 2 of 2
(24 Views)