I have inherited a large project which has had some issues with field deployments. We outlined a few resolutions and the first was to move the shared variable engine from the Windows PC to the cRIO. This is standard stuff and typical to all the distributed projects I have done over the years. However this project uses DCAF to write data to the shared memory. The bulk of the code is a compiled C project but there is a RT portion which launches DCAF and when the connection to the SVE happens it starts the C executable.
All I did was import the shared variable libraries and deploy them. However when I boot the controller I get the following error:
021-02-08T17:00:57.573+00:00 NI-cRIO-9030-01E017D7 DCAF::Module::Scan Engine: Error code 65700 occurred during engine initialization preventing execution.
2021-02-08T17:00:57.573+00:00 NI-cRIO-9030-01E017D7 Error details:
2021-02-08T17:00:57.573+00:00 NI-cRIO-9030-01E017D7 Error 65700 occurred at Property Node in Scan Engine runtime.lvclass:populate_index.vi:4840001->Scan Engine runtime.lvclass:init.vi->TBM module execution interface.lvclass:init wrapper.vi->Standard Engine Runtime.lvclass:Initialize Module.vi->Standard Engine Runtime.lvclass:Initialize From Config.vi->Standard Engine Runtime.lvclass:Initialize.vi->DCAF Execution Service.lvlib:DCAF Execution Service.vi->cRIO Main.vi
2021-02-08T17:00:57.573+00:00 NI-cRIO-9030-01E017D7 Possible reason(s):
2021-02-08T17:00:57.573+00:00 NI-cRIO-9030-01E017D7 CompactRIO: Unable to communicate with the module. Reinsert the module and check connections.
It appears that the scan engine isn't running. It looks like they have used hybrid mode, so just another layer of compexity. Personaly I have never used hybrid or scan mode. I have always just used FPGA interface because when I started with cRIO/RIO, that was all there was.
Solved! Go to Solution.
I re-deployed my pcfg file again with the target in Configuration Mode and seemed to have progressed past this error and now I am getting this:
021-02-08T20:14:42.551+00:00 NI-cRIO-9030-01E017D7 DCAF::Engine::Standard Engine Runtime.lvclass: Started
2021-02-08T20:20:43.969+00:00 NI-cRIO-9030-01E017D7 DCAF::Module::Scan Engine: Error code -66205 occurred during engine initialization preventing execution.
2021-02-08T20:20:43.969+00:00 NI-cRIO-9030-01E017D7 Error details:
2021-02-08T20:20:43.969+00:00 NI-cRIO-9030-01E017D7 Error -66205 occurred at Open Variable Connection in Scan Engine runtime.lvclass:init.vi->TBM module execution interface.lvclass:init wrapper.vi->Standard Engine Runtime.lvclass:Initialize Module.vi->Standard Engine Runtime.lvclass:Initialize From Config.vi->Standard Engine Runtime.lvclass:Initialize.vi->DCAF Execution Service.lvlib:DCAF Execution Service.vi->cRIO Main.vi
2021-02-08T20:20:43.969+00:00 NI-cRIO-9030-01E017D7 Possible reason(s):
2021-02-08T20:20:43.969+00:00 NI-cRIO-9030-01E017D7 LabVIEW: The variable object was not found.
2021-02-08T20:20:43.969+00:00 NI-cRIO-9030-01E017D7 Requested URL: ni.var.io://localhost/Mod3/AO0
Even though that module appears in my project I can't see it form the distributed manager. I removed it from the project and now it can't discover that module (or module 4). Hmmmmmm......
If your application is running with Hybrid mode, in order for scan engine to run the FPGA code needs to be running.
The DCAF module itself is just using the Variable API to query the modules.
For Troubleshooting first I would rule hardware issues.
In a new project add the cRIO, configure the module in Scan engine and try the code I just showed you. If this work that means the module is working and scan engine should be able to work.
The next would be hybrid mode Issues.
In your application project run the FPGA component, and run the Code to test the variable. If this is not working something might be misconfigured in the FPGA and you might need to recompile it making sure the modules are being set in the right state.
If all this work it might be a DCAF configuration Issue and the FPGA code might not be deployed. Make sure that the configuration is set correctly , that you are including and launching the FPGA code.
Turns out it was a bad 9870 serial module in slot 4 that was also taking out the AO module in slot three. When I took the 9870 out of the system I could get it see module 3. I replaced the bad module and everything booted up as expected. It is so rare that I see bad NI hardware that I almost never think to consider it.