0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在LabVIEW中创建Actor Framework的同步消息

华穗科技 来源:华穗科技 作者:华穗科技 2022-11-04 10:33 次阅读

ActorFrame系列教程的第三期来啦,如果还没有看过前面两期或者遗忘往期知识点,请点击以下超链接查看往期教程。

本文教程:

LabVIEW中创建Actor Framework的同步消息

一、为什么要用到同步回复消息?

从前两期对操作者框架的了解,可以发现,消息都是单向的,没有回复。发送方不知道这个消息发送后,实际会产生怎么样的结果。

但是有些情况下,发送方希望消息发送后,能获得一定的反馈。

举个例子:

A:B,请你告诉我寄存器16的值是多少?

B:A,22。

要实现这个对话过程,使用普通的消息就必须创建两个消息。首先A通过消息1询问B,接着B通过消息2回答A。增加了程序的复杂度。而使用Reply Msg就可以实现带回复的消息。 二、 如何创建Reply Msg? 首先,第一次使用Reply Msg时,继承关系中是没有Reply Msg的,因为默认Reply Msg不包含在Actor Framework.lvlib中的,需要手动添加。 于依赖关系的vi.lib库中右键添加文件。

3d43ad5e-5be7-11ed-a3b6-dac502259ad0.png

选择添加ActorFramework中的Reply Msg的vi库。 Reply Msg的vi库的位置为:LabVIEW安装位置>vi.lib>ActorFramework>ReplyMsg

3d5de264-5be7-11ed-a3b6-dac502259ad0.png

3d822ef8-5be7-11ed-a3b6-dac502259ad0.png

1. 创建Actor

创建一个Actor,并创建一个静态方法,命名为Read Register Value.vi;

添加该方法的内容为:输出一个寄存器值Register Value。

3da00ca2-5be7-11ed-a3b6-dac502259ad0.png

2. 创建消息

为Read Register Value.vi创建消息。

3. 修改消息的继承关系

修改Read Register Value.vi的消息类的继承关系为Reply Msg.lvclass;

3db234b8-5be7-11ed-a3b6-dac502259ad0.png

4. 修改发生消息

‍打开Send Read Register Value.vi,修改程序框图中Enqueuer.vi为Send Message and Wait forResponse.vi;创建输入控件timeout in ms(-1),显示控件Reply 和timedout?,并配置好接线板;

位置:程序框图 → Data Communication → ActorFramework → Advanced → Send Message and Wait for Response.vi。

程序框图如下图所示:‍

3dd11a4a-5be7-11ed-a3b6-dac502259ad0.png

5. 重写DOCore

重写并修改Read Register Value Msg.lvclass的Do Core.vi方法。调用Read Register Value.vi并将其Register Value的输出端连接至Reply。

3e1ad072-5be7-11ed-a3b6-dac502259ad0.png

6. 删除原本消息中的Do.vi

删除原本消息中Read Register Value Msg.lvclass的Do.vi方法。

7. 验证同步回复消息

创建Laucher.vi,调用Send Read RegisterValue.vi消息,并将Reply连接于弹窗上。

3e52dd3c-5be7-11ed-a3b6-dac502259ad0.png

可以看到,调用消息时弹出弹窗并显示返回值。读取寄存器的消息vi中Send Message And Wait For Response函数发挥了作用,将Register Value以Reply的形式返回给了调用处。

以同步回复消息的方式可以便捷地将被调用方的参数或结果值以返回值的方式发送给调用方,就不用通过两个消息来进行一发一收啦。

以上就是如何在LabVIEW中为ActorFramework创建同步回复消息的方法,如果想要进一步了解抽象的类和对象是如何通过ActorFramework来实现的话,敬请期待接下来关于ActorFramework的一系列技术分享。 下一期我们将分享基于Actor Framework的MVC设计实现。 对Actor Framework感兴趣的工程师们,欢迎持续关注、留言和点赞,也可以私信小编各位的技术困惑和技术需求,以获取参加免费线下培训和技术交流的机会哦。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119975
  • LabVIEW
    +关注

    关注

    1962

    文章

    3652

    浏览量

    322291
  • 华穗科技
    +关注

    关注

    1

    文章

    11

    浏览量

    76

原文标题:教程 | ActorFramework的同步消息

文章出处:【微信号:华穗科技,微信公众号:华穗科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    YOLOv6LabVIEW的推理部署(含源码)

    相关介绍文章,所以笔者实现YOLOv6 ONNX LabVIEW的部署推理后,决定和各位读者分享一下如何使用LabVIEW实现YOLO
    的头像 发表于 11-06 16:07 169次阅读
    YOLOv6<b class='flag-5'>在</b><b class='flag-5'>LabVIEW</b><b class='flag-5'>中</b>的推理部署(含源码)

    使用同步降压稳压器创建反相电源

    电子发烧友网站提供《使用同步降压稳压器创建反相电源.pdf》资料免费下载
    发表于 10-10 10:27 0次下载
    使用<b class='flag-5'>同步</b>降压稳压器<b class='flag-5'>创建</b>反相电源

    labview生成应用程序怎么包括userlist

    1. 准备工作 开始之前,确保你已经安装了LabVIEW,并且熟悉基本的LabVIEW编程概念。 2. 创建用户界面 2.1 设计界面 打开Lab
    的头像 发表于 09-04 17:28 357次阅读

    labview如何实现字符串换行

    1. 字符串换行的基本概念 LabVIEW,字符串换行通常指的是字符串插入换行符,使得字符串
    的头像 发表于 09-04 15:47 1239次阅读

    labview实现DBC界面加载配置

    labview实现DBC界面加载配置
    发表于 08-19 14:27 27次下载

    labview 创建mysql 表时 设置时间 怎么mysql是格式是date 而不是datetime?

    选择 时间日期 但是mysql是date而不是datetime类型 ,除了sql语句创建表 ,怎么能实现创建数据为datetime类
    发表于 02-04 09:46

    labview怎么获取图像数据

    LabVIEW获取图像数据主要有两种方法:采集实时图像和加载静态图像。 一、采集实时图像: 首先,需要安装合适的图像采集设备,如相机或者视频采集卡。可以通过USB、GigE或其他接口连接设备到
    的头像 发表于 01-04 09:48 2061次阅读

    labview mdi怎么实现

    、调整大小和关闭。 创建主窗口:首先,您需要创建一个主窗口来容纳多个文档窗口。LabVIEW,您可以使用一个Front Panel来作为
    的头像 发表于 01-02 16:12 1099次阅读

    labview运行后如何初始化

    LabVIEW是一款强大的图形化编程软件,在运行之前通常需要进行一些初始化操作。本文将详细介绍LabVIEW运行前的初始化过程,并提供了一些常用的初始化方法。 创建新项目:
    的头像 发表于 12-28 17:24 2472次阅读

    labview怎么查数组相同元素的个数

    要查找LabVIEW数组相同元素的个数,可以使用以下步骤: 创建一个包含要查找的数值的数组。这可以通过手动输入数组元素或从文件/其他数据源导入数组实现。 使用“For Loop”结
    的头像 发表于 12-28 16:42 3183次阅读

    labview采样点数怎么设置

    LabVIEW“项目”面板,选择“新建VI”。这将创建一个新的虚拟仪器(VI)。 “工具栏”
    的头像 发表于 12-28 11:06 2438次阅读

    LabVIEW SMO 的原理、用法和实际应用

    ) 实例同步运行并共享数据,从而能够实现高效的并行计算和更好的系统性能。本文中,我们将详细介绍 LabVIEW SMO 的原理、用法和实际应用。 首先,我们需要了解 LabVIEW
    的头像 发表于 12-27 16:47 2091次阅读

    labview怎么用键盘操控事件结构

    可以方便地通过键盘进行交互操作。本文中,我们将详细介绍LabVIEW中键盘操控事件结构的使用方法和注意事项,以帮助读者更好地应用这一功能。 首先,LabVIEW
    的头像 发表于 12-27 10:14 2639次阅读

    基于Actor Framework仿真线性编码器

    在学习LabView面向对象编程过程,相信大家也都接触到了Actor Framework。该框架于2010年NI Week首次公布,经过多年不断迭代更新,逐渐成为
    的头像 发表于 12-22 10:15 757次阅读
    基于<b class='flag-5'>Actor</b> <b class='flag-5'>Framework</b>仿真线性编码器

    如何在LabVIEW清晰加载图片呢?

    有开发者提出,使用LabVIEW开发图片加载显示程序时,为什么明明看着很清晰的图片,LabVIEW加载显示后就变得粗糙,线条不流畅。
    的头像 发表于 12-20 09:08 1612次阅读
    如何在<b class='flag-5'>LabVIEW</b><b class='flag-5'>中</b>清晰加载图片呢?