VeriStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Simulation model which call functions in an other dll...

I have a C simulation model that I implement like NI Model Framework template (NI_VStand_Model_Framework_Guide.pdf ). If I use this simple model I can deploy on my PXI. But I must call functions which are in an other dll. When I call functions in other DLL I can't deploy because Veristand specify that the model is not compatible.

 


NI VeriStand: The specified compiled model is not compatible with NI VeriStand.
=========================
NI VeriStand: NI VeriStand Engine.lvlib:VeriStand Engine Wrapper (RT).vi >> NI VeriStand Engine.lvlib:VeriStand Engine.vi >> NI VeriStand Engine.lvlib:VeriStand Engine State Machine.vi >> Model Execution.lvlib:Initialize Model Loop Data.vi >> SIT Model API.lvlib:Initialize Model.vi >> SIT Model API.lvlib:Load Model DLL.vi
<append>=========================
NI VeriStand: Failed to load c:\ni-rt\NIVeriStand\Models\LD1_T1.dll

 

If I use DLL Checker there is no bad import.  How to add a simulation model in veristand which call function in an other DLL?

0 Kudos
Message 1 of 5
(6,055 Views)

Hello Stefany,

 

I think this link might help you: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000YGE7CAO&l=en-US

 

"

11. Create your simulation model.

  1. Expand Controller»Simulation Models»Models on the System Explorer window.
  2. Select Add Simulation Model located at the top of the System Explorer window. Here you add the DLL you created in LabWindows/CVI.
  3. In the General tab of Add Simulation Model window, select a name for your DLL in the Name section and browse to the DLL you created in the previous section."

 

Kind regards.

 

0 Kudos
Message 2 of 5
(6,020 Views)

Thank you for your answer.

I know how to import a dll in veristand. My Dll  is LD1_T1. I can import it in Veristand without error. But this DLL depends of an other dll (addition.dll) as you can see in the print screen.

10-9-2014 4-18-55 PM.jpg

 

When I try to deploy to my PXI I have an error message of compatibility. 

 

NI VeriStand: The specified compiled model is not compatible with NI VeriStand.
=========================
NI VeriStand: NI VeriStand Engine.lvlib:VeriStand Engine Wrapper (RT).vi >> NI VeriStand Engine.lvlib:VeriStand Engine.vi >> NI VeriStand Engine.lvlib:VeriStand Engine State Machine.vi >> Model Execution.lvlib:Initialize Model Loop Data.vi >> SIT Model API.lvlib:Initialize Model.vi >> SIT Model API.lvlib:Load Model DLL.vi
<append>=========================
NI VeriStand: Failed to load c:\ni-rt\NIVeriStand\Models\LD1_T1.dll

 

For LD1_T1.dll I have use NI Model Framework template (NI_VStand_Model_Framework_Guide.pdf ).

If I check my Dll with dll checker it's ok but I can't deploy. 

10-9-2014 4-27-12 PM.jpg

 

Please somebody have an idee to deploy my model ?

 

0 Kudos
Message 3 of 5
(6,016 Views)

Hello again,

 

I have found the same message in another record: "DLL is good but uses some stubbed imports". The client also developped with C code .

 

The personn in charge contacted the VeriStand advanced support team. They told him " that building a wrapper in whichever environment you prefer "(eg: in LabVIEW)" and building a VeriStand compatible DLL from that would be the best (and without access to the source code, perhaps the only) way to go."

 

The person who reported this issue didn't try this solution so we can't be sure.

 

Kind regards.

 

 

0 Kudos
Message 4 of 5
(6,014 Views)

Hello,

 

If I understand well, your model DLL is calling code in another DLL. I think that the model subsystem from VeriStand is not able to know of that dependency and so It deploys only the top DLL. I guess you have to manually install the sub-DLL(s) using FTP somewhere in the DLL search path of your target (maybe in /ni-rt/system). Assuming your sub-DLL(s) are compilant with DLLChecker.

 

Best Regards

0 Kudos
Message 5 of 5
(6,009 Views)