npm 包 node-red-devbus-modbustcp 使用教程

阅读时长 8 分钟读完

在前端开发中,我们常常需要与设备进行通讯,以获取其状态或控制其行为。而 Modbus TCP 是一种常用的通讯协议,可以实现在网络上的设备间通讯。在 Node-RED 上,我们可以使用 node-red-contrib-modbus 和 node-red-contrib-modbus-flex 这两个节点,来实现 Modbus TCP 的读取与写入。但在使用中,我们发现这些节点无法满足我们的需求。

这时,我们可以使用另一个 npm 包:node-red-devbus-modbustcp。这个包对 Modbus TCP 的读取与写入进行了封装,使用起来更加便捷。本篇文章将详细介绍该包的使用方法。

安装

使用 npm 命令进行安装:

使用方法

读取 Modbus 寄存器

在 Node-RED 中,我们首先需要使用 modbus-flex-server 节点进行 TCP 服务端的搭建。在此基础上,我们可以使用 node-red-devbus-modbustcp 节点来读取 Modbus 寄存器的值。下面是一个示例代码:

-- -------------------- ---- -------
--
    ----- ------------------
    ------- ---------------------
    ---- ------------------
    ------- ------------------
    ----------- ------------------
    ------------- ----------------
    --------------- ----
    ------------- -----
    ------------------- -----------
    ------------- -----
    ---------------- -
        ------- ------------
        ------- ------
    --
    -------------- -----
    -------- --
--
-
    ----- -----------------
    ------- --------
    ---- ------------------
    ------- ---
    --------- -----
    ------------ -----
    ---------- ------
    ----------- ------
    ----------- ----------
    ------------- ------
    ------------ ---
    ------------- -------
    ---- ----
    ---- ----
    -------- --
--
-
    ----- ------------------
    ------- ---------
    ---- ------------------
    ------- ---
    -------- --
        ---- ---------
    ---
    --------- ---
    ---------- ---
    ------- ------
    ------------ ----
    -------- ---
    -------------- ------
    ---- ----
    ---- ----
    -------- -
        -------------------
    -
--
-
    ----- ------------------
    ------- --------------
    ---- ------------------
    ------- -------------
    -------- ---
    ----------------------- ------
    ------------------ ------
    ------------- ------
    --------- ---
    ----------- ------------------
    ------ ----
    ----------- ----
    ------- ----
    ----------- ----
    --------------- ------
    ----------------- ---
    --------- ------------------
    ------------ ------
    --------- ---
    ------------------ ------
    ----------------- ------
    ---- ----
    ---- ----
    -------- -
        ------------------
    -
--
-
    ----- ----------------
    ------- ------------------------
    ---- ------------------
    ------- ----------------
    ------------ ------------------
    -------- ----
    -------- ----
    ------- ----
    ----------- ----
    --------------- ------
    ----------------- ---
    ---- ----
    ---- ----
    -------- -
        ------------------
    -
--

我们需要先在 Node-RED 中使用 modbus-flex-server 节点来声明一个 TCP 服务端,使用 node-red-devbus-modbustcp 的数据读取节点时,需要将 modbus-flex-server 节点的编号填入 server-id 参数中,就可以读取 Modbus 寄存器的值。

写入 Modbus 寄存器

在 Node-RED 中,我们同样需要使用 modbus-flex-server 节点进行 TCP 服务端的搭建。在此基础上,我们可以使用 node-red-devbus-modbustcp 节点来写入 Modbus 寄存器的值。下面是一个示例代码:

-- -------------------- ---- -------
--
    ----- ------------------
    ------- ---------------------
    ---- ------------------
    ------- ------------------
    ----------- ------------------
    ------------- ----------------
    --------------- ----
    ------------- -----
    ------------------- -----------
    ------------- -----
    ---------------- -
        ------- ------------
        ------- ------
    --
    -------------- -----
    -------- --
--
-
    ----- ------------------
    ------- ---------
    ---- ------------------
    ------- ---
    -------- --
        ---- ---------
    ---
    --------- ---
    ---------- ---
    ------- ------
    ------------ ----
    -------- ---
    -------------- ---------
    ---- ----
    ---- ----
    -------- -
        -----------------
    -
--
-
    ----- ----------------
    ------- -------------------------
    ---- ------------------
    ------- -----------------
    ------------ ------------------
    -------- ----
    ------- ------
    ----------- -----------
    ------- ----------
    ---- ----
    ---- ----
    -------- --
--

我们需要先在 Node-RED 中使用 modbus-flex-server 节点来声明一个 TCP 服务端,使用 node-red-devbus-modbustcp 的数据写入节点时,需要将 modbus-flex-server 节点的编号填入 server-id 参数中,可以在 start 参数中指定起始地址,且可以选择写入的数据类型(int16/uint16/int32/float/字符串等)及寄存器类型(Holding/Register/Discrete/Input)。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057bf981e8991b448ebace

纠错
反馈