使用 Edge IO 和 Node-RED 管理机器状态和部件数
  • 04 Nov 2023
  • 2 阅读时间
  • 贡献者

使用 Edge IO 和 Node-RED 管理机器状态和部件数


文章摘要

使用 Edge IO 和 Node-RED 管理机器状态和零件数

了解如何在 Edge IO 中使用机器可见性 Node-RED 流程

本文介绍了将断裂梁传感器和电流传感器连接到 Edge IO 的工作流程,以便在 Tulip 中管理状态和零件计数。这利用了可导入客户边缘设备的 Tulip Node-RED 库流程。

本文结束时,您将在 Node-RED 中掌握以下流程,将数据从连接的传感器发送到 Tulip 中的机器。

您需要完成以下步骤:

  1. 硬件设置:为边缘 IO 布线
  2. 机器设置:在 Tulip 中创建机器
  3. Node-RED 设置:从 Tulip 库导入、编辑和部署 Node-RED 流程

您需要

  • 您的 Tulip 账户中注册的 Edge IO

  • 电流传感器:CR3111-3000 或其他类似的电流互感器

    • 一个大小合适的电流互感器负载电阻,如果使用 CR3111-3000,建议使用 100 欧姆(有关大小,请参阅硬件设置)
    • 断路器
    • 3.5 毫米平头螺丝刀

1.硬件设置 - 为边缘 IO 布线

此工作流程假定您将使用电流互感器和连接到 Edge IO 的断路器。

**计算负载电阻的大小:**如果使用 CR3111-3000,建议使用 100 欧姆的电阻器。如果使用不同的电流夹钳,可以根据有效匝数比(T_e) 和最大测量电流(I_max) 计算出允许的最大电阻器尺寸 (R_burden),如下所示:R_burden = 3.12 * T_e / I_max。电阻可以小于允许的最大电阻尺寸,但这会降低传感器的分辨率。

按如下方式将电流夹钳 (CR3111-3000) 和断路器连接到 Edge IO:

  • 电流夹钳

    • 测量通过电源线进入机器的交流电流
    • 如图所示,在电流夹钳的两根导线之间连接电阻器
    • 将一根导线连接至差分 ADC [+] 端子,另一根导线连接至差分 ADC [-] 端子
    • 断开光束
    • 捕捉部件创建
    • 将棕色导线(+24V)连接到 SAR ADC 的 +24V 端子上
    • 将蓝线(gnd)连接至数字输入组的接地端子
    • 将黑线(out)连接至数字输入组的引脚 1

此外,确保已为设备供电,并将以太网电缆插入 WAN 端口,将设备连接到网络。

2.机器设置 - 在郁金香中创建机器

要将断桥和电流传感器的数据发送到 Tulip,首先要使用 Tulip API 作为数据源设置机器。请参阅《如何使用机器属性 API》一文中的 "设置新机器"部分,了解更多详情。

在本示例中,我们创建了一个具有两个属性的机器:

  1. 电流(浮点)- 表示传感器返回的电流。
  2. 部件计数(int)--来自断梁的信号,表示完成一个部件。

您需要记录下属性 机器值,并将其传递到 Node-RED 流程中。

如果您计划使用当前传感器改变机器状态等方面,或根据传感器输出执行任何计数,您还可以设置机器类型以分配给机器。如果对此感兴趣,请参阅如何设置机器类型

3.Node-RED 设置

在连接到断裂梁和电流传感器的 Edge IO 上打开 Edge Device Portal。使用以下凭证启动 Node-RED 编辑器:

  • 用户名: admin
  • 密码: Edge IO 密码

在此处查看更多信息,以开始在 Edge IO 上使用 Node-RED。

3a.导入库流程

要导入库流程,请按照我们的导入郁金香 Node-RED 流程文档中的步骤操作。要导入的流程是machine_visibility.json,导入后将在编辑器中创建带电流夹钳和横梁选项卡的 "机器可见性"。

3b.流程概述

此流程由两个独立的工作流组成:

工件计数器

第一条路径是通过断梁传感器监控零件计数。该流程由四个功能节点组成:

  1. 监控引脚

    • 目的:通过启用引脚属性定义边缘 IO 上要监控的 GPIO 引脚。
    • 针脚向上的过滤器
    • 目的: 从信息有效载荷中,确定是否需要对引脚上调进行过滤:从报文有效载荷中确定受监控引脚上的事件是否为真。
    • 递增部件计数
    • 目的:增加引脚事件为真时的流量变量部件数。
    • 郁金香机器属性:部件计数
    • 目的: 通过 API 向 Tulip 发送有效载荷(partCount)。

监控有效值电流

第二条路径是监控连接到 ADC(模数转换器)输入端的电流传感器。该流程由六个功能节点组成。

  1. ADC 差分读数

    • 目的:将模拟配置文件分配给 ADC 输入。
    • 过滤 1/5 读数
    • 目的: 提取每五次(5 秒)的测量值并传递给 Tulip。
    • 传递信息
    • 目的: 重置每五次读数的计数:将每五条信息的读数计数重置为零。
    • 删除信息并递增
    • 目的: 对所有其他读数进行递增:对于所有其他读数,读数计数递增 1。
    • CR-3111 缩放
    • 用途: 根据制造商的规格对传感器测量值进行缩放。
    • 郁金香机器属性:有效值电流
    • 目的: 通过 API 向 Tulip 发送有效载荷(partCount)。

还有四个可选节点,默认情况下是禁用的,但可以启用,以便由 Node-RED 决定机器状态。请注意,也可以在 Tulip 中使用机器触发器来执行相同的逻辑。

  1. 电流是否 > 100mA?

    • 目的: 检查电流值是否大于 100 mA。
    • 状态 = ON
    • 目的: 如果电流大于 100 mA,则将有效载荷设置为 ON。
    • 状态 = 关闭
    • 用途: 如果电流小于或等于 100 mA,则将有效载荷设置为 OFF。
    • 郁金香机器属性:状态
    • 目的: 通过 API 向 Tulip 发送有效载荷(状态)。

3c.编辑流程

要完成此流程的设置,需要Tulip 机器属性的设备信息**:部件计数Tulip 机器属性的设备信息:RMS 电流**节点的设备信息必须与之前设置的机器的属性 字段和机器字段一起包含。

根据使用的传感器,还可以编辑CR-3111 缩放节点,以反映电流互感器的匝数比。

3d.部署流程

建立了 Node-RED 流程并添加了必要的参数后,您就可以部署您的流程,并开始查看从断裂光束和电流传感器输出到 Tulip 的数据。

选择 Node-RED 编辑器右侧的调试信息选项,就能看到来自 Tulip API 的响应和相应的状态代码。

要获取有关状态代码的更多信息,请浏览你的 Tulip 实例中的 API 文档(即.tulip.co/apidocs)。具体来说,请参阅POST /attributes/report端点文档。

现在,您也可以通过导航到机器的配置选项卡,在 Tulip 中查看数据。

Node-RED 流程的技术细节

下面是随machine_visibility.json文件导入的节点及其默认配置参数的详细摘要。

部件计数器

  1. 监控引脚

    • 目的:通过启用引脚属性定义边缘 IO 上要监控的 GPIO 引脚。

    • 节点类型:数字输入

    • 默认属性:

      • 运行模式 -持续
      • 刷新率 -1 秒
      • 启用引脚 -1
      • 引脚向上的过滤器
    • 目的:从报文有效载荷中确定受监控引脚上的事件是否为真。

    • 节点类型:开关

    • 默认属性:

      • 属性 -msg.payload
      • 规则 -为真
      • 递增部件计数
    • 目的: 在引脚事件为 true 时增加流量变量部件数。

    • 节点类型:更改

    • 默认属性:

      • 规则:

        • flow.partCount设置为表达式$flowContext('partCount') + 1
        • msg.payload设置为flow.partCount
        • 郁金香机器属性:部件计数
    • 目的: 通过 API 向 Tulip 发送有效负载(partCount)。

    • 节点类型:机器属性

    • 默认属性:

      • 设备信息* -{"attributeId":"", "machineId":""}
      • 属性源 -msg.payload

监控有效值电流

  1. 差分 ADC 读数

    • 目的: 为 ADC 输入分配模拟配置文件。

    • 节点类型:高速模拟

    • 默认属性:

      • 模拟配置 - 差分 ADCRMS @ 1kHZ

        • 选择 ADC 配置 - 差分ADC
        • 启用输出 -RMS
        • 缓冲区大小 -1000
        • 采样频率(赫兹) -1000+ 数据类型 -有效值+ 输出模式 -连续+ 刷新率(秒) -1
        • 过滤 1/5 读数
    • 目的: 提取每五次(5 秒)的测量值传递给郁金香。

    • 节点类型:开关

    • 默认属性:

      • 属性 -flow.numReadings

      • 规则:

        • == 4
        • 否则
        • 传递信息
    • 目的将每第五条信息的读数计数重置为零。

    • 节点类型:更改

    • 默认属性:

      • 规则:

        • flow.numReadings设置为0
        • 删除信息并递增
    • 目的:对于所有其他读数,读数计数递增 1。

    • 节点类型:更改

    • 默认属性:

      • 规则:

        • flow.numReadings设置为表达式$flowContext('numReadings') + 1
        • CR-3111 缩放
    • 用途: 根据制造商的规格对传感器测量值进行缩放。

    • 节点类型:子流程模板

    • 默认属性:

      • 属性 -数据
      • 刻度* -3000
      • 偏移 -0
      • 郁金香机器属性:有效值电流
    • 目的: 通过 API 向 Tulip 发送有效载荷(partCount)。

    • 节点类型:机器属性

    • 默认属性:

      • 设备信息* -{"attributeId":"", "machineId":""}
      • 属性源 -msg.data[0]

计算机器状态的子流程

  1. 电流是否 > 100mA?

    • 目的: 检查电流值是否大于 100 mA。

    • 节点类型:开关

    • 默认属性:

      • 属性 -msg.data[0]

      • 规则: > 0.1

        • > 0.1
        • 否则
        • 状态 = ON
    • 目的: 如果电流大于 100 mA,则将有效载荷设置为 ON。

    • 节点类型:更改

    • 默认属性:

      • 规则:

        • msg.payload设置为ON
        • 状态 = 关闭
    • 目的: 如果电流小于或等于 100 mA,则将有效载荷设置为 OFF。

    • 节点类型:更改

    • 默认属性:

      • 规则:

        • msg.payload设置为OFF
        • 郁金香机器属性:状态
    • 目的: 通过 API 向郁金香发送有效载荷(状态)。

    • 节点类型:机器属性

    • 默认属性:

      • 设备信息* -{"attributeId":"", "machineId":""}
      • 属性源 -msg.payload

* 必须更新参数,流程才能正常运行。应根据制造商的建议修改当前传感器的刻度值。

进一步阅读


找到您想要的了吗?

您还可以前往community.tulip.co发布您的问题,或查看其他人是否遇到过类似问题!


本文对您有帮助吗?