使用消息在系统和应用程序之间发送命令、状态更新或数据(如JSON)。消息以网络队列的方式运行,使用的是发布/订阅模式。

使用的对象

可在LabVIEW、LabVIEW NXG Web模块、G Web开发软件的数据通信选板上找到SystemLink 消息和配置API。
备注 该范例使用G Web开发软件的消息和配置 API。可在LabVIEW中使用相同的代码在系统间发送消息。

操作步骤

  1. 在VI中创建下列程序框图以订阅并读取消息。

    根据您的具体编程目标自定义灰色部分的内容。

    1打开配置启动与SystemLink服务器的连接。
    2“打开”节点创建与服务器的消息会话,从而允许订阅消息队列。
    3“订阅”节点将端点(例如Web应用程序)注册到特定主题。
    备注 主题的订阅方从订阅一刻起开始接收发布到该主题的每条消息。其无法接收或访问在此之前发送的消息。
    4“读取”节点返回队列中的消息。
    如果队列中没有消息,则将同步阻止调用,阻止时间最长为指定的超时时间或Web服务器定义的最大超时时间(以较小者为准)。如果超时毫秒输入端未连线,则“读取”节点的默认超时时间为100毫秒。本例中,超时时间设置为2000毫秒。
    备注

    NI Web服务器的最大超时时间为10秒。可编辑NI Web服务器的超时。

    如要调整NI Web服务器的超时时间,请编辑服务器的配置文件。详细信息见配置NI Web服务器。

    使用“读取”节点时可配合使用“从JSON还原”节点,以便更容易地解析来自Web浏览器的消息。

    使用While循环继续读取消息,直至满足条件。本例中,节点持续读取消息,直至出现错误。

  2. 在VI中创建下列程序框图以发布消息。

    根据您的具体编程目标自定义灰色部分的内容。

    1打开配置启动与SystemLink服务器的连接。
    2“打开”节点创建与服务器的消息会话,从而允许将消息发布到消息队列。
    3“发布”节点将消息写入主题。如果发布了多个消息,则订阅方按照接收的顺序读取消息。

    使用“发布”节点时可配合使用“平化至JSON”节点,以便将LabVIEW数据类型转换为字符串(消息支持的唯一数据类型),同时便于在LabVIEW及其他支持JSON的语言中读取消息时与数据轻松交互。

    使用条件结构设置发布的时间条件。本例中,“发布”节点持续写入消息,直至前面板上的“发布”开关切换到OFF位置。

    使用While循环继续发布Tag,直至满足条件。本例中,“发布”节点持续写入消息,直至出现错误。

    4“关闭”节点终止与服务器的消息会话。
    5“关闭配置”节点使所有指向已创建对象的打开引用失效,从而清除与配置关联的连接。

故障分析

如果遇到错误,请尝试以下问题排除方法:
  • 调用“读取”节点之前先调用“订阅”节点。必须先订阅主题,然后程序才能读取消息。
  • 确保在运行代码之前已订阅了正确的主题。
    备注 主题区分大小写。