LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to solve: Mdsplus VIs loaded with errors on cRIO 9045

I am working on a control system with cRIO. The control VI has a part to do Mdsplus. I always get an error message when running the project with some mdsplus VI always loaded with errors. Please see the attached screen shot for a test project just including Mdsplus part. 

wisc_3-1582577626618.png

 

 

The test VI is simple. The block diagram is attached:

wisc_2-1582577499551.png

 

 

The PC is running windows 10 64 bit, LabView 2019 32 bit. Mdsplus version is Mdsplus_7.50_1. It was once working without a problem, until one day I turned off cRIO to install another NI-9482 and restarted cRIO. The problem came out. The error message can be for any Mdsplus VI, eg. Mdsclose.vi, Mdsconnect.vi, etc. Sometimes I also got an error message saying 'failed to load MdsLib.dll to the target', but sometimes this error disappears. The error of loading Mdsplus VI is always there. Does anyone have an ideal of this and know how to solve the problem? Thank you very much!

0 Kudos
Message 1 of 6
(999 Views)

More problem: I restarted the cRIO and ran the same project.  The error message of 'failed to load shared library MdsLib.dll' came out again. Please see the attached the screen shot. Don't know why it disappeared before I restarted the cRIO. Any ideals? Thank you.

wisc_0-1582582512271.png

 

0 Kudos
Message 2 of 6
(972 Views)

Are you trying to deploy a dll to the cRIO?

 

My understanding is that dll are "dynamic link libraries" for Windows.

 

That means you aren't going to be able to run it on a cRIO which does not run a Windows OS.  The cRIO-9045 runs Linux real-time from the documentation I found.

 

No wonder a dll fails to load.

0 Kudos
Message 3 of 6
(950 Views)

That never can have worked with the dll on your controller. You need an mdsplus version compiled for Linux and not just any Linux but specifically x64 compilation. From that compilation you should get a bunch of .so files and you have to copy them to the controller. After that you also need to run ldconfig. Ldconfig will scan the well known directories for shared libraries and add them to the ldchache file which rthe shared library loader will use to find the shared library.

 

Last but not least youwill need to go into every VI and make sure that it references the shared library with the right name (unless the VI library uses the option to define the library path as parameter to the Call Library Node).

 

I haven’t really looked at MDSplus so don't know how they do it. Last time I checked on their git repository about another problem here on the forum the comments looked like there was someone busy who knew enough about LabVIEW to be dangerous but not enough to know how dangerous they could be 😀.

Rolf Kalbermatter
Averna BV
0 Kudos
Message 4 of 6
(942 Views)

That never can have worked with the dll on your controller. You need an mdsplus version compiled for Linux and not just any Linux but specifically x64 compilation. From that compilation you should get a bunch of .so files and you have to copy them to the controller. After that you also need to run ldconfig. Ldconfig will scan the well known directories for shared libraries and add them to the ldchache file which rthe shared library loader will use to find the shared library.

 

Last but not least youwill need to go into every VI and make sure that it references the shared library with the right name (unless the VI library uses the option to define the library path as parameter to the Call Library Node).

 

I haven’t really looked at MDSplus so don't know how they do it. Last time I checked on their git repository about another problem here on the forum the comments looked like there was someone busy who knew enough about LabVIEW to be dangerous but not enough to know how dangerous they could be 😀.

 

The best option would be if they had created an package that lets you install the library from within NI-Max.

Rolf Kalbermatter
Averna BV
0 Kudos
Message 5 of 6
(940 Views)

Ah, this makes more sense. No wonder I keep getting these error messages. It did work one time. Maybe something magically happened?!

 

To make it work with Linux/cRIO sounds more complicated than I expected. For now I think I will just try to separate the Mdsplus from other real-time control programs. Thank you so much both for the very useful information. 

0 Kudos
Message 6 of 6
(913 Views)