I have a project with two identical RT targets (sbrio) involved, on which identical
software on both RT and FPGA level should run. Communication between RT targets and
host computer is done via shared network variables. Is there an efficient method
to handle this, compared to having two sets of software + variables (one for each
RT target) in the LV project? The disadvantage is clearly the double work for
code updates etc. I found the RAD utility while searching for solutions. But what
about the two sets of variables which need to be available for access by the host
computer program? Side question: Will settings on the target machine, which are not
related to LV, be overwritten during the replication?
Any suggestions are appreciated.
An interesting question. Normally, a Real-Time LabVIEW Project has a "My Computer" (or "Host") section and a "Remote Target" section, with the latter usually configured for the actual Target to which the software will be deployed. I vaguely recall trying to programmatically Deploy the RT Code to my Target (I forget how I "found" the Target, possibly via an RT-Ping or else because I knew its IP), but gave it up as too complex and error-prone compared to telling the Project Manager to simply "Deploy".
On the other hand, the Project Manager doesn't contain code -- it is only a "Roadmap" to where the code is saved on disk. So even in my single-target RT Project, I have a section of Code that is Common to both the Host and Remote parts of the Project. I maintain this in a single folder (called "Common") that appears in both Project windows, and it works fine.
So you should be able to have two Target sections in Project and have them "point" to the same "Target" set of folders on disk. When you deploy "Remote 1", those routines will be sent to the first Remote, and when you deploy the same routines to "Remote 2", they will be sent to the second Remote. You'll need to know which Target your Host is addressing (they'll have different IPs, of course). Depending on how you communicate between Host and Remote (I used Network Streams), you'll be able to send messages to a designated Remote, and would Receive messages from the Remote you designate. How you keep things straight at the Host end is a Design Question for you to consider (you could save in an Array of 2 elements, Remote 1 and Remote 2, for example).