I encountered a strange error when developing my measurement application on the CompactRIO platform. As I am unable to find any leads on the NI website, I have decided to post it here to ask for advice.
Hardware: cRIO-9067 with NI-9216, NI-9208, NI-9264
Software used: LabVIEW 2015 SP1, LabVIEW RT 2015 SP1, CompactRIO Driver 16.0, cRIO IO Engine (CIE) 2.1. The reference architecture idea came from the cRIO Temperature Controller Reference Application. Other software libraries used are attached in a separate screenshot ("Software Library Versions.jpg").
I am using the Current Value Table (CVT) reference architecture, together with the CompactRIO IO Engine (CIE) to scan from the various hardware channels. The channel information comes from a CSV format text file, from which the tags' information and I/O channel names are passed to the CIE and CVT VIs as part of initialization. The NI-9216 resides in the first slot of the cRIO-9067, the NI-9208 and NI-9264 are in the 2nd and 3rd slots respectively.
On my development computer, when I ran the RT VI, LabVIEW prompted me with a message that the scan engine settings configured in the project are different from that currently deployed on the cRIO (please see the attached screenshot "Deploying Scan Engine.jpg"). I clicked "Apply" to deploy the project's settings, the CIE and CVT are able to initialize without any error and the RT VI runs normally after that.
Subsequently, I copied the code to the deployment computer. This also has a full copy of LabVIEW Professional Development System installed, along with the same software libraries listed in "Background" above. When I run the RT VI, the same prompt appears, but when I clicked "Apply" to deploy the scan engine settings, the RT VI throws an error 537204. The details revealed that the issue actually came from the NI-9216 module (Mod1\RTDX where X is the channel number) with a suberror 537202. Going deeper into the VI that generated the error (CIE Init.vi), it appears that the error was generated as the NI-9216 channels were deemed to be missing by a subVI (please see attached screenshot "CIE Tag Search subVI.jpg").
What have been tried so far
The following have been tried but the problem still persisted:
Unfortunately, I could not find other resources pertaining to this error on the NI website.
One observation I had, was that my development PC runs Windows 7, and the deployment computer runs Windows 10. My initial feeling is that the CIE library may have some kind of issue on Windows 10, but this seems to be rather unlikely. I do not have a spare Windows 7 / Windows 10 machine to test out my hypothesis though.
I have attached a sample code here for reference:
Thank you for reading through all this! If anyone has any ideas or advice, please feel free to comment.
Solved! Go to Solution.
no immediate help that i can provide, but a question i have:
do you only have one cRIO or two seperate ones?
(my thought was, that you might have named some of the "data channels" in one and not the other)
Thanks for the reply. I have two separate cRIOs. The data channels have been checked against the modules in both cRIOs, and there is no problem on that end.
I managed to communicate this issue with the local NI technical support team, and after some ideas from them, I did a little exploring and found the source of the problem. In the CIE Init VI, the variable engine code responsible for I/O channel detection did not detect the NI-9216 (please see IO Variable Container.jpg). E.g. if NI-9216 is Mod1, and there are two other modules Mod2 and Mod3, then the Descendants indicator only contains Mod2 and Mod3.
Interestingly, when I put this piece of code into a separate subVI, and made it run before CIE Init VI, then the NI-9216 will be detected. I am not sure why this does not happen on my Windows 7 development computer, but I guess I will look at the problem in detail when time permits. For now, I am using this workaround to get things running on the project.