04-21-2023 01:10 PM
Hello,
I have an .EXE which deploys a .rtexe to cRIOs, that part works fine.
However, whenever a cRIO upgrades to a new LabVIEW version, you must add it to a project, add the FPGA, and then change the chassis to FPGA mode.
Additionally, I have to change the C series cards to FPGA mode when they first are purchased.
I would like to automate this process.
Solved! Go to Solution.
04-22-2023 03:54 AM - edited 04-22-2023 03:57 AM
The comissioning of multiple cRIO with a set baseline is best done by using an image. Install one cRIO as you want, make an image of it and restore that image to all others. This can be done from NI Max or through the use of the NI System Control API. And if you want to spend extra money on it in exchange for ease of use you could use NI System Link. This among other things offers you a way to manage all your NI systems across the network.
There is however no documented way to change a chassis from Scan Mode to FPGA mode or back through an API call. We tried that and got even NI support involved but we did not get a solution for that.
04-24-2023 10:11 AM
I have to deploy to a cRIO-9040, a cRIO-9034, and a cRIO-9048.
If I make an image of the 9040, would it work for the other two? Or do I have to create 3 images?
04-24-2023 10:24 AM
04-24-2023 10:35 AM
Does the system image also update the firmware or must I do that seperately?
04-24-2023 12:16 PM
@Gryffin wrote:
Does the system image also update the firmware or must I do that seperately?
Not sure about the Get/Set System Image of the NI System Configuration API, but I am sure that Replication and Deployment Utility also updates the firmware (.lvbitx). I think you need to create a separate image for different model of cRIO.
04-24-2023 01:21 PM
For the 904x you can set the mode programmatically, there is an example for it. See also here https://forums.ni.com/t5/Real-Time-Measurement-and/Chassis-Programming-Mode-Where-is-setting-stored/...
04-24-2023 01:28 PM - edited 04-24-2023 01:36 PM
The term firmware is a little unspecific in this case. There is the actual controller firmware, which is basically the bootloader (BIOS/UEFI in PC speak) and the possible FPGA bitfile. Both can be considered firmware in that sense but the bootloader is NI provided (basically U-Boot, an embedded Linux bootloader similar to grub) while the FPGA lvbitx is provided by the user.
I'm not sure the image actually replaces the U-Boot loader at all. That loader is basically needed to install the image, so if the image would replace the U-Boot loader too, that would be almost a Münchhausen feat.
Good find about the 904x feature support. I forgot about that. When we looked at that, the customer was considering using 904x but had dozen of 903x deployed already. So that did not help. In the meantime the 904x are actually cheaper than the 903x for quite some time already, so the customer in question would only order the newer 904x chassis anymore. Might have to revisit that section of our project.
04-26-2023 11:07 AM
So for the 9034, there is no way to programmatically change it to FPGA mode?
04-26-2023 11:27 AM
I have decided to make System Images of the various models of cRIO to install the necessary software and I have made a utility to automatically update the firmware (U-Boot Loader, not .lvbitx, I dynamically deploy those) to the latest version.
I am having issues with the "Create System Image File.vi".
To even run this VI, you must run it on an external PC and the cRIO must be in Install Mode.
Then, you must specify a path (on the cRIO) to save the image to.
However, I cannot seem to specify a path on the cRIO which allows the creation of the ZIP file.
You must specify the file path from Windows, thus, I cannot specify a path like "/tmp/sysImage.zip", I can only enter a path in the Windows format like: "C:\sysImage.zip".
Can someone please give me an example of a path (Destination File) to give this VI which allows me to save the image?