LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

SIT only running a maximum of 64 dlls

Hi,

 

I've got a problem where I'm trying to use multiple unique instances of a dll compiled in Matlab using SIT. 

 

SIT is called in a loop and each iteration of the loop has to call a unique instance of a specific dll.  I need to use a unique instance of the dll as the dll has internal states that need to be persistent across iterations.  I have a master dll which I copy using LabVIEW.  The loop runs 100 times, so 100 unique instances of the same dll should be loaded into memory.

 

It seems there is an upper limit of 64 dlls that can be loaded, the remainder output error 14104 as they fail to load, despite being present on the path.

 

I've included an example vi which creates a user defined number of instances of a dll, the example simply sums input 1 and 2 together (thus has no internal states, however my more complex dlls do).  Beyond the 64th dll the output from the dll is zero and the error is generated from the Take Model Time Step vi.

 

Is there any way to get around this and run more than 64 dlls simultaneously?

 

Thanks.

 

Neil

 

 

Neil
Certified Labview Developer
0 Kudos
Message 1 of 2
(2,108 Views)

Hi Neil

 

Thanks for posting.

I've not found anything refering to a 64 DLL instance limit using SIT in the documentation, however I have been able to repoduce the issue here on my computer.

There's definitley some issue in which any DLLs over 64 are loaded into memory but the reference/pointer is lost so it can't be addressed or closed without closing LabVIEW.

Do you think there's a different approach to opening to many instances which would work? I don't think more than 64 seperate models can be loaded.

 

Kind Regards

 

 

 

Chris | Applications Engineer NIUK
0 Kudos
Message 2 of 2
(2,076 Views)