Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Deploying an actor to a RT target

I have an existing messaging library that is not an AF component that I recently extended to use an AF actor internally. Essentially I am using the actor to run the actual network messaging in subtask rather that inline. The actor handles the network connection and reconnects if necessary. It is a separate task so that the mainline code is not impacted by communication delays if there are network issues. Anyway, all works fine in the IDE on a Windows machine. Everything is working like a charm. The problem I have is deploying this to a RT target. I get random error messages saying that xyz.vi loaded with errors and the deploy effectively fails. This library that I modified worked fine on the RT target prior to my recent changes of adding the actor. The code changes are pretty isolated so I am reasonably sure it is the presence of the AF code  that is causing the problem. Interestingly if I run the individual VIs in the offending vi they will run, with an execution error which is expected, but don't have any loading issues. After doing this I can get the code to load however it does not work. I suspect that I am missing some AF components in the build and deploy step.

 

What do I need to include when deploying AF on a RT target? What pieces am I missing that are causing the load error and the failed execution? I assume I a missing some VIs which are loaded dynamically but what are they? Any input would be appreciated.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
0 Kudos
Message 1 of 7
(3,017 Views)

Not sure if this is related but I have some very similar sounding code that I build into an RT-exe and deploy together with a bunch of PPLs to cRIO.

 

When I deploy it, frequently on the first attempt it fails at the very end. Repeating the deploy step always works. The only times it deploys the first time that I can identify are when the cRIO is basically not running, FPGA not loaded, etc.

 

Are you building an exe or did you mean the run in IDE type of thing by Deploy?

Sorry if this isn't a very helpful response.


GCentral
0 Kudos
Message 2 of 7
(3,011 Views)

@cbutcher wrote:

Not sure if this is related but I have some very similar sounding code that I build into an RT-exe and deploy together with a bunch of PPLs to cRIO.

 

When I deploy it, frequently on the first attempt it fails at the very end. Repeating the deploy step always works. The only times it deploys the first time that I can identify are when the cRIO is basically not running, FPGA not loaded, etc.

 

Are you building an exe or did you mean the run in IDE type of thing by Deploy?

Sorry if this isn't a very helpful response.


Ultimately I want to build as an exe and deploy it to run headless. I'm playing with running through the IDE right now just to make sure everything is working. Eventually I will be packaging things up as PPLs but I haven't gotten to that point quite yet. THat will be happening very shortly.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
0 Kudos
Message 3 of 7
(3,005 Views)

I'm now even less sure that your problem has anything to do with my weird behaviour, but I'll take a look at running my code on cRIO without an exe tomorrow and see if I can trip any odd new errors.

 

The PPLs might constrain this a bit though, reducing the chance things are left out. I'm also using a slightly modified ActorFramework library to remove the AF_Debug because it forced a cyclic dependency when I wanted to put some message classes separately (specifically Time-Delayed Send Message).


GCentral
0 Kudos
Message 4 of 7
(3,000 Views)

I actually wrote my own version of the timed message. It is an actor itself which allows me to start and stop the timer as needed. In addition, it is auto-correcting so it adjusts for drift. The last feature is that you can set it to synchronize the timeouts with the clock. For example, you can set a five second timeout that will always fire at h:m:00, h:m:05, h:m:10 etc. The timers can be synchronized to the second, minute or hour.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
0 Kudos
Message 5 of 7
(2,995 Views)

This post is interesting because I see a similar error when deploying to cRIO's all the time (I'm referring to deploying in dev environment, not building the rtexe). It's almost always near the end of the deploy process I'll get a message that a particular file was broken or couldn't load. Opening that specific file reveals zero issues. Run arrow is solid and it executes (of course if it's a class method it will have an execution error as Mark pointed out). My system is heavily AF based. It's no one vi that always fails. Sometimes it's Actor Core.vi, sometime Pre Launch Init.vi, sometime a custom method I created. 

 

It's hard to nail down an exact sequence of events that leads up to the issue. Often the first deployment will work but then when I stop, make changes, and try to re-run this issue will manifest itself. Sometimes closing out of the project and reopening it and redeploying works, but often I have to both close out the project and restart the cRIO. This issue is very repeatable but so is the fix. I haven't had time to really dig into why this might happen, but since this post is here I'll throw my experiences into the ring.

0 Kudos
Message 6 of 7
(2,989 Views)

I also occasionally see this error ehn I am deploying a project to the RT target. If it happens I just go through the old, faithful restart things until it works. I start with the project, then LV and then the PC I am working on.

 

I put it down to some kind of weird miscommunication with the RT that needs reinitialising before it will allow me to continue. Its pretty infrequent and seemingly random, so I never thought to complain before!

CLA - Kudos is how we show our appreciation for comments that helped us!
0 Kudos
Message 7 of 7
(2,965 Views)