LabVIEW Real-Time Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Kareem_W.

Modify Hardware Model in LabVIEW Project Without Having to Create a New One

Status: In Development

Currently, if you have hardware in a LabVIEW project (e.g. a cRIO controller, cRIO chassis, or R-Series PXI card), the only way that you can change this to another product is by adding a new one to the project and deleting the old one. It would be nice to be able to use a configuration window to change the model number of a piece of hardware to a different, but similar one. For example, if you have a 9072 in the project but wanted to change it to a 9073. Another example would be the ability to change, via menus, a PXI 7813R to a 7854R. Of course the user would have to update any code written to account for changes due to the new hardware. This is especially convenient when you are simulating and configuring test systems but aren't quite sure exactly what hardware you need. Currently, for each new piece of hardware (similar or not) you have to create a new device and copy all of the IO, VIs, libraries, etc. under the new device in the project.

Kareem W.
National Instruments
Web Product Manager
6 Comments
Thoric
Trusted Enthusiast

I came across this very requirement today, and it's not the first time. I would very much like to see an automated technique for updating the hardware definition in the LabVIEW Project. FOr me, it was upgrading an 9114 chassis to a 9116, which was a painstaking process of several hours. Time I'll never get back again which I'm pretty sure a wizard could do in a handful of seconds.

Thoric (CLA, CLED, CTD and LabVIEW Champion)


gregopher
Member

As a quick work-around for this issue, you can edit the project file using text editor since the LVPROJ file is just XML.  I was able to quickly change a cRIO target from a 9114 to a 9116 by editing the item tags. 

 

Each cRIO target has a property in the XML named "crio.type" under the , which is simply a string. If you are using the FPGA interface, then there is also an item under the chassis/FPGA Target for the target class.  I was successfully able to open the project after editing these tags, and the target was changed to the new target type. 

 

DISCLAIMER:  I did not attempt to compile an FPGA of build an executable after trying this method.  There may be other fields that are used for compiler configuration that also need to be changed.

 

 

<?xml version='1.0' encoding='UTF-8'?>
<Project Type="Project" LVVersion="11008008">
	<Item Name="My Computer" Type="My Computer">
		...My Computer properties...
	</Item>
	<Item Name="cRIO" Type="RT CompactRIO">
		...target properties...
		<Item Name="Chassis" Type="cRIO Chassis">
			...chassis properties...
			<Property Name="crio.Type" Type="Str">cRIO-9116</Property>  		<===== See here
			<Item Name="FPGA Target" Type="FPGA Target">
				...FPGA Target properties...
				<Property Name="Target Class" Type="Str">cRIO-9116</Property>	<===== and here
				...
			</Item>
		</Item>
		<Item Name="Dependencies" Type="Dependencies"/>
		<Item Name="Build Specifications" Type="Build"/>
	</Item>
</Project>

 

-Derek Roane
Deborah_B
Active Participant

Also check out this CompactRIO Migration Wizard community example!

Deborah Burke
NI Hardware and Drivers Product Manager
Certified LabVIEW Architect
Deborah_B
Active Participant
Status changed to: In Development
 
Deborah Burke
NI Hardware and Drivers Product Manager
Certified LabVIEW Architect
RnDMonkey
Active Participant

For my part, I needed to upgrade from a 9114 backplane to a 9116 backplane for the extra space. I text-edited the project file and just did a find-replace on all instances of "9114". I was able to recompile, showing the extra space, and download the bitfile to the FPGA target successfully. It looks like it works for this minor migration, at least.

____
Ryan R.
R&D
sth
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast

@Deborah_B,

Did this ever get past development and into release?  It really is a missing "feature".

LabVIEW ChampionLabVIEW Channel Wires