DTU 连接示例

本文将以使用 Modbus RTU 协议的设备通过有人云 DTU 透传模块连接到 Neuron 为例,介绍如何将串口数据转换为网络数据。连接示意图如下图所示。

neuron-dtu

提示

Modbus RTU 虽转为网络传输,但仍然是 Modbus RTU 报文格式。若 DTU 将 Modbus RTU 转为 Modbus TCP,此时需要使用 Modbus TCP 驱动模块。

DTU 支持数据的双向转换,支持将 RS232、RS485、RS422 等常见的串口数据与 TCP/IP 数据进行相互转换,并通过无线通信网络进行传输。DTU 一般采用的通信方式有 2/3/4G、NB-IoT、LoRaWAN、WIFI 等。

DTU 主要配置项

dtu-config

配置项说明
工作方式一般 DTU 都支持 TCP、UDP 以客户端或服务端方式进行连接。以及以 Modbus TCP 标准协议传输数据,或是 None(透传)数据
服务器地址DTU 作为客户端时,填写 Neuron Modbus 绑定的地址。
本地/远程端口DTU 作为客户端时,填写 Neuron Modbus 绑定的端口,DTU 作为服务端时,为 DTU 的端口。

提示

DTU 一般都支持串口心跳包,或者是使能网络心跳包,以及注册包,这些特性在标准 Modbus 协议中都无法使用,Neuron 目前还无法兼容处理这些特性,使用 Neuron 连接 DTU 时,注意关闭相关选项。

什么是 client/server 模式?

Client/Server 又称客户/伺服器模式,简称 C/S 模式,是一种网络通讯架构,用以将通讯建立连接的双方以客户端(Clent)与服务器(Server)的身份区分开来。

在 TCP 协议中,客户端属于请求的发起者,主动给服务器发送连接请求,服务端被动等待来自客户端的请求。

Client 和 Server 建立连接的工作流程如下图所示。

client_server

如何连接作为 Client 的 Neuron?

本节主要介绍 Neuron 作为 Client,DTU 作为 Server 时,Neuron 与 DTU 的相关配置。

Neuron 作为 Client,主动向 DTU 发起连接请求,用户需要保证 Neuron -> DTU 的网络连通性。

配置 DTU Server

首先,需要配置 DTU 与串口连接的参数,其次,需要配置 DTU 与 Neuron 建立连接的 Socket 参数,如下图所示。 tcp-server

  • 工作方式,TCP Server,Modbus TCP;
  • 填写未被使用的本地端口,无需填写远程端口;
  • 下面参数作为可选项。

提示

当 DTU 的工作方式为 Modbus TCP 时,因为 DTU 将 Modbus RTU 串口协议转换为 Modbus TCP 协议,所以,应使用 Neuron 中的 Modbus TCP 驱动。

当 DTU 的工作方式为透传模式时,此时应当使用 Neuron 中的 Modbus RTU 驱动。

查看 DTU IP

在配置 Neuron 南向驱动时需要作为 Server 端的 DTU 的 IP,如下图所示。 dtu-ip-config

配置 Neuron 南向驱动 Client

在南向驱动管理中建立插件为 modbus-tcp-client 的节点,并进行驱动配置,如下图所示。 neuron-client-config

  • 连接模式选择 client;
  • Host 填写 DTU 的 IP 地址;
  • Port 填写 DTU 配置的端口;

如何连接作为 Server 的 Neuron?

本节主要介绍 Neuron 作为 Server,DTU 作为 Client 时, Neuron 与 DTU 的相关配置。

DTU 作为 Client,主动向 Neuron 发起连接请求,用户需要保证 DTU -> Neuron 的网络连通性。这种连接方式通常可用于以下场景中,在某些 DTU 使用 4G 上网时,因为 Neuron 无法主动连接到 DTU,所以,Neuron 只能选择 Server 模式,由 DTU 主动连接到 Neuron。

配置 DTU Client

首先,需要配置 DTU 与串口连接的参数,其次,需要配置 DTU 与 Neuron 建立连接的 Socket 参数,如下图所示。 tcp-client

  • 远程服务器地址,填写作为 Server 端运行 Neuron 的 IP 地址;
  • 本地端口,默认不填写;
  • 远程端口,由于 每个 TCP Server 端口都会在客户端指定的端口上监听传入的 TCP 流量,因此,需要用户自定一个未被占用的端口,用以客户端与服务端之间进行握手建立连接。

提示

可在 Server 端的终端执行以下指令,确定监听端口是否被占用。

  1. # 确认端口是否占用
  2. $ netstat -anp |grep <port>

配置 Neuron 南向驱动 Server

在南向驱动管理中建立插件为 modbus-tcp-server 的节点,并进行驱动配置,如下图所示。 neuron-server-config

  • 连接模式选择 server;
  • Host,填写 0.0.0.0;
  • Port,填写监听端口;

补充说明

当 Neuron 与 DTU 不在同一局域网内时,可以将 Neuron 运行环境的局域网 IP 及端口映射到公网,并将 Neuron 作为 Server 端,DTU 作为 Client 端,配置方式同上文所述。