From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Actor Framework Sequencer

Hello,

My company is looking to move from traditional AMC to the actor framework. Before fully committing, I am exploring what reusable architectures around the actor framework already exist. Has anyone attempted to build a sequencer around the actor framework yet? If so, and it is public, could you point me to it? Or if you have done some thinking on this topic before, I'd greatly appreciate discussing this further.

The majority of our projects require a sequencer of some sort which controls when to query sensors, process data, trigger motor movements, etc. Some steps require that steps be run in parallel and some sequentially. We've built a basic framework around AMC, but want to extend a similar architecture across all projects moving forward and the actor framework seems like the right direction.

Thank you,

Lynn

0 Kudos
Message 1 of 6
(4,602 Views)

Hi

Within or CS++ priject, an AF based class library published under EUPL at https://github.com/HB-GSI/CSPP , my colleage developed the CS++MessageMaker,

https://github.com/DN-GSI/CSPP_MessageMaker,  which supports asynchrounous callback messages that take the public subVI return parameters and are send to the desired enqueuer, which can be the caller enquerer or any other enqueuer known by the caller actor.

I started the development of an Sequence-Editor. It is in an really very early stage, playing with the UI, Tree-Control and Drag& Drop, https://github.com/HB-GSI/CSPP_Seq. It will make use of the asynchronous return messages. The development of the sequencer engine has not been started.

Maybe this info gives you an idea or is at least the starting poiunt of a fruitfull discussion.

Holger

0 Kudos
Message 2 of 6
(4,182 Views)

Hello Holger,

Thank you for the response. Unfortunately I only have LabVIEW 2015. Is it possible for you to send me a copy in that version?

Thank you again,

Lynn

0 Kudos
Message 3 of 6
(4,182 Views)

Take a close look at the Messenger Library.  And work through some of the examples.

https://lavag.org/files/file/220-messenger-library/

Ben Yeske
0 Kudos
Message 4 of 6
(4,182 Views)

I'm engaged in a similar task, but I'm moving from a code base that made little use of queued message handlers. I think Elijah's Measurement Utility is the only thing I've seen built on AF that I might use, but I haven't had the time to grok it.

I've written two or three versions of an aggregator class, but haven't settled on which one to use. I need it to collect data from multiple instruments as nearly simultaneously as possible with the hardware I have. My instrument actor has an abstact message for reporting results. The calling actor's implementation includes a "key" which the instruments cannot alter. The key ensures that instrument responses are grouped correctly. The items are read from the aggregator when it indicates it has received the expected number of items.

In my initial implementation, the key was a cluster containing a time stamp, the expected number of items, and a number for ordering responses. I've since removed the expected number of items from the key, since it did not seem to be necessary. I've also written an aggregator which foregoes ordering--the key is just a time stamp--but I haven't decided to switch to it yet; I'll need to order the results some other way if I do. In an earlier version of the instruments, they returned their results as just an array of doubles, so I needed to keep order while aggregating them. Now I have them returning name-value pairs, so I can order them later. I'm just the only person working on this code and I still have lots of non-code duties.

0 Kudos
Message 5 of 6
(4,182 Views)

I prepared two downgrade zip-files, CS++MessageMaker and an example project containing the CS++Sequencer stuff (which is at the very beginning.)

The message created by the CS++MessageMaker will give the hint where we want to go.

Anybody else interested in the snapshot? Please contact me with your eMail and I will send the zip-files.

Holger

0 Kudos
Message 6 of 6
(4,182 Views)