LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Shared Variables in RT-loop

I have an application that needs to run in "real time". I have implemented the code on a cRIO 9064 and compiled a startup.rtexe which is deployed to the cRIO.

 

According to the course "Embedded control and monitoring" and also papers on ni.com the best way to communicate with the RT-loop deterministically is to use single process SV's with RT FIFO enabled. This is how I have implemented communication with the RT-loop but I have too much jitter. So i run a vi-analyzer of the RT-vi. The analyzer gives this result:

-----------------------------------

'cRIO v1.lvlib:read Shared Variables.vi' resides in a timed loop and contains the following unbounded functions and VIs:

(1) cRIO v1.lvlib:read Shared Variables.vi » Shared Variable
(2) cRIO v1.lvlib:read Shared Variables.vi » Shared Variable

Timed structures that contain unbounded code are susceptible to high levels of jitter.

-----------------------------------

 

Doesn't this contradict the course and papers? Could this be the reason of the jitter? CPU is about 70% on both cores. 

 

The cRIO is kind of old and slow, but CN Rood is not able to deliver new systems (9054's) before November due to component shortages.

 

Any help would be appreciated!

0 Kudos
Message 1 of 2
(865 Views)

Hi Theta,

 


@ThetaMa wrote:

I have an application that needs to run in "real time". I have implemented the code on a cRIO 9064 and compiled a startup.rtexe which is deployed to the cRIO.

 

According to the course "Embedded control and monitoring" and also papers on ni.com the best way to communicate with the RT-loop deterministically is to use single process SV's with RT FIFO enabled. This is how I have implemented communication with the RT-loop but I have too much jitter.

 

CPU is about 70% on both cores.


So there is a RTEXE running on your cRIO. And there are some SVs inside this RTEXE, maybe used within a TimedLoop.

Is this correct?

Which kind of communication do you intend? Do you want to have communication between several loops inside the RTEXE or communication between RTEXE and your HOST computer?

Mind to share some code (examples)?

 

Running the CPU on 70% is not a good sign for a Realtime target, I tend to keep CPU usage below 50% with my cRIO906x targets…

(They might not be the most recent ones, but I would not consider them "slow". Ever worked with cRIO907x? :))

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 2
(862 Views)