LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview RT - 1124 execution error with VI on Crio-9045 target

Solved!
Go to solution

hi all,

 

it's a long time that i use Labview but it's my first post.

 

so, i have an execution error when I run my VI "Telnet Launcher.vi". (I known TELNET, it's obsolete and unsecure but it's my choice).

 

this VI it's execute on cRio target. 

 

the error code is 1124.

Guybast49000_0-1712907615893.png

 

in order to take look, see a capture of code.

Guybast49000_1-1712907730361.png

This VIs not come from NI.

I was forced to copy the VI manualy in the Crio because they are not deploy or not in the right path.

 

Guybast49000_2-1712908134233.png

 

I provide the library on attach piece.

 

if anyone can help me I will be grateful. 

0 Kudos
Message 1 of 10
(634 Views)

Error 1124 indicates that the VI was compiled for a different OS, most likely Windows. To use it in cRIO, you need to recompile the entire .lvlib for Linux. To do that, you might have full access to the VI, which means the VIs must not be password-protected or have the block diagram removed. 

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 2 of 10
(606 Views)

Thx ZYOng,

 

I already make a compilation from Labview RT 2023. no change.

 

How to do specifically for LINUX ?

 

I'm afraid that this error code is may be too gerenic.

0 Kudos
Message 3 of 10
(578 Views)

What is you use a vi constant reference to the vi you are trying to run? 

you can use a property node to get the path for the vi, and LabVIEW will compile and transfer the vi to your target, as it knows what vi you will call. 

0 Kudos
Message 4 of 10
(559 Views)

The way to compile VIs (and deploy them to a RIO target) is by adding them to a target compatible to the RIO target hardware you want to use inside a LabVIEW project. LabVIEW then knows how to create the according compiled code for that target and also lets you deploy those VIs to the target. Just copying a VI from your PC to the target does NOT create the necessary binary code for that target. The VI on your PC was of course last opened in a Windows compatible target, the "My Computer" target. And it contains either no binary code at all (if separate compiled code from source file is enabled) or the binary code to run on your Intel x86 CPU and Windows OS on your PC. But to run on the cRIO-9045 it needs to be compiled for Intel x64 and NI Linux. Trying to do that outside of a LabVIEW project is at best cumbersome, but for most users an exercise in futility

 

Since you only like to attach pictures to your posts it is relatively difficult for people to understand what is wrong with what you are doing and you get accordingly vague or even unhelpful answers. 

Rolf Kalbermatter
My Blog
0 Kudos
Message 5 of 10
(547 Views)

thx Rolfk,

 

one olution I found it's to make a distributed file of Arcale Telnet.lvlilb RT on target et deploy it.

 

it works.

 

But now I have some ttrouble with the fact to call dynamicaly the VI Telner Server.

 

this one closed in the same time of the VI's caller instead of run continuously.

 

I vérify out of the target and his works but not on. what is the porblem ?

0 Kudos
Message 6 of 10
(538 Views)

Why does it have to be dynamic?

Why can't you simply write an application that contains anything and deploy that to the target? Dynamic calling of VIs on a RT target only makes deployment of the application more complex.

 

What does this mean?


I vérify out of the target and his works but not on. what is the porblem ?


It sounds to me like: It works, but it doesn't!

Rolf Kalbermatter
My Blog
0 Kudos
Message 7 of 10
(533 Views)

Can you just do it like this? Then your required VI is automatically included and you do not have to worry about getting the right path.

 

cordm_0-1713272930839.png

(This is taken from examples\Application Control\VI Server\Asynchronous Call By Reference\Benchmarking Asynchronous Calls.vi)

0 Kudos
Message 8 of 10
(529 Views)

this VI is only a small part of the main application.

the main application was realised ten years ago and i need to update with new labview and Crio.

 

the answer to "It sounds to me like: It works, but it doesn't!" 

 

is that out of the RT target, when I run the called VI, he waits a connection and doesn't close before to get it instead that Caller was already close.

 

on the RT target, the called VI close when the caller close. not due to an error.

 

0 Kudos
Message 9 of 10
(518 Views)
Solution
Accepted by Guybast49000

I found the solution, the VI caller need to be call too by a main VI who don't close.

in this case, the VI caller can close and the caller continu to run.

0 Kudos
Message 10 of 10
(496 Views)