Skip to content

应用和设备说明

本节主要介绍了北向应用和南向设备的参数配置,南向设备的点位信息配置规范。

WARNING

uint16 对应 word 类型。uint32 对应 dword 类型。

MQTT

Neuron 从设备采集到的数据可以通过 MQTT 应用程序传输到 MQTT Broker 中,用户也可以通过 MQTT 应用程序向 Neuron 发送指令。

应用配置

字段说明
client-idMQTT 客户端 ID,必填
upload-topic订阅数据上报的通道,可选填,如果不填写则数据会在neuron/{client-id}/upload下上报
format上报数据的json格式选择,必填,有values模式和tags模式,默认为values模式
ssl是否启用 mqtt ssl,默认 false
hostMQTT Broker 主机,必填
portMQTT Broker 端口号,必填
username连接到 Broker 时使用的用户名,可选填
password连接到 Broker 时使用的密码,可选填
caca文件,只在ssl值为true时启用,这种情况下为必填
certcert文件,只在ssl值为true时启用,可选填
keykey文件,只在ssl值为true时启用,可选填
keypasskey文件密码,只有在ssl值为true时启用,可选填

常见错误码

错误码说明
4005MQTT客户端创建失败,一般由系统原因导致
4007与Broker连接失败,可能的原因包括连接参数配置错误或网络异常(通常是暂时的)
4010订阅Topic失败,通常发生在连接成功之前,连接成功后会自动重新订阅
4013解除订阅Topic失败
4014Publish失败,通常由于连接异常导致,目前的实现中失败数据会被丢弃
4015Publish被暂停,由于用户主动停止Plugin触发
4016Publish数据超过缓冲区长度,通常不会发生

Modbus TCP

Modbus 协议包括三种协议:Modbus TCP、Modbus RTU 和 Modbus RTU over TCP。

设备配置

字段说明
connection mode驱动程序连接到设备的方式,默认为 client,即把 Neuron 作为客户端使用
host当 Neuron 作为客户端使用时,host 指远程设备的 IP。当 Neuron 作为服务端使用时,host 指 Neuron 在本地使用的 IP,默认可填写 0.0.0.0
port当 Neuron 作为客户端使用时,post 指远程设备的 TCP 端口。当 Neuron 作为服务端使用时,host 指 Neuron 在本地使用的 TCP 端口,默认为 502

支持的数据类型

  • INT16
  • INT32
  • UINT16
  • UINT32
  • FLOAT
  • BIT
  • STRING

地址格式

SLAVE!ADDRESS[.BIT][#ENDIAN][.LEN[H][L][D][E]]

SLAVE

必填,指从机地址或者是站点号。

ADDRESS

必填,指寄存器地址。Modbus 协议有四个区域,每个区域最大有 65536 个寄存器,每个区域的地址范围如下表所示。需要注意的是实际应用中一般不需要 65536 这么大的存储区,一般 PLC 厂家普遍采用 10000 以内的地址范围,请注意根据设备的区域及功能码,正确填写点位地址。

区域地址范围属性寄存器大小功能码数据类型
coil(线圈)000001 ~ 065536读/写1bit0x01,0x05,0x0fbit
input(离散量输入)100001 ~ 1655361bit0x02bit
input register(输入寄存器)300001 ~ 36553616bit0x04bit,int16,uint16,int32,uint32,float,string
hold register(保持寄存器)400001 ~ 465536读/写16bit0x03,0x06,0x10bit,int16,uint16,int32,uint32,float,string

WARNING

一些设备文件会使用功能码和寄存器地址来描述指令,因为寄存器地址编号是从 0 开始的,所以每个区域的寄存器地址范围为 0 ~ 65535。首先,根据功能码确定地址的最高位数,并在寄存器地址上加1,作为 Neuron 的使用地址。

例如,功能码是 0x03,寄存器地址是 0,Neuron 使用的地址是 400001。功能码是 0x02,寄存器地址是 5,Neuron 使用的地址是 100006。

.BIT

选填,一个寄存器地址的某一位,例如:

地址数据类型说明
1!300004.0bit指站号为1,离散量输入区域,地址为 300004,第 0 位
1!400010.4bit指站号为1,保持寄存器区域,地址为 400010,第 4 位
2!400001.15bit指站号为2,保持寄存器区域,地址为 400001,第 15 位

#ENDIAN

选填,字节顺序,适用于 int16/uint16/int32/uint32/float 数据类型,详细说明见下表。

符号字节顺序支持的数据类型备注
#B2,1int16/uint16
#L1,2int16/uint16不填,默认字节顺序
#LL1,2,3,4int32/uint32/float不填,默认字节顺序
#LB2,1,4,3int32/uint32/float
#BB3,4,1,2int32/uint32/float
#BL4,3,2,1int32/uint32/float

例如

地址数据类型说明
1!300004int16指站号为 1,离散量输入区域,地址为 300004,字节顺序为 #L
1!300004#Bint16指站号为 1,离散量输入区域,地址为 300004,字节顺序为 #B
1!300004#Luint16指站号为 1,离散量输入区域,地址为 300004,字节顺序为 #L
1!400004int16指站号为 1,保持寄存器区域,地址为 400004,字节顺序为 #L
1!400004#Lint16指站号为 1,保持寄存器区域,地址为 400004,字节顺序为 #L
1!400004#Buint16指站号为 1,保持寄存器区域,地址为 400004,字节顺序为 #B
1!300004int32指站号为 1,离散量输入区域,地址为 300004,字节顺序为 #LL
1!300004#BBuint32指站号为 1,离散量输入区域,地址为 300004,字节顺序为 #BB
1!300004#LBuint32指站号为 1,离散量输入区域,地址为 300004,字节顺序为 #LB
1!300004#BLfloat指站号为 1,离散量输入区域,地址为 300004,字节顺序为 #BL
1!300004#LLint32指站号为 1,离散量输入区域,地址为 300004,字节顺序为 #LL
1!400004int32指站号为 1,保持寄存器区域,地址为 400004,字节顺序为 #LL
1!400004#LBuint32指站号为 1,保持寄存器区域,地址为 400004,字节顺序为 #LB
1!400004#BBuint32指站号为 1,保持寄存器区域,地址为 400004,字节顺序为 #BB
1!400004#LLint32指站号为 1,保持寄存器区域,地址为 400004,字节顺序为 #LL
1!400004#BLfloat指站号为 1,保持寄存器区域,地址为 400004,字节顺序为 #BL

.LEN[H][L][D][E]

当数据类型为 string 类型时,.LEN 是必填项,表示字符串需要占用的字节长度,每个寄存器中包含HLDE 四种存储方式,如下列表格所示。

符号说明
H一个寄存器存储两个字节,高字节在前低字节在后
L一个寄存器存储两个字节,低字节在前高字节在后
D一个寄存器存储一个字节,且存储在低字节
E一个寄存器存储一个字节,且存储在高字节

例如

地址数据类型说明
1!300001.10String指站号为1,离散量输入区域,地址为 300001,字符长度为 10,字节顺序为 L,即占用的地址为 300001 ~ 300005
1!300001.10HString指站号为1,离散量输入区域,地址为 300001,字符长度为 10,字节顺序为 H,即占用的地址为 300001 ~ 300005
1!300001.10LString指站号为1,离散量输入区域,地址为 300001,字符长度为 10,字节顺序为 L,即占用的地址为 300001 ~ 300005
1!400001.10String指站号为1,保持寄存器区域,地址为 400001,字符长度为 10,字节顺序为 L,即占用的地址为 400001 ~ 400005
1!400001.10HString指站号为1,保持寄存器区域,地址为 400001,字符长度为 10,字节顺序为 H,即占用的地址为 400001 ~ 400005
1!400001.10LString指站号为1,保持寄存器区域,地址为 400001,字符长度为 10,字节顺序为 L,即占用的地址为 400001 ~ 400005
1!400001.10DString指站号为1,保持寄存器区域,地址为 400001,字符长度为 10,字节顺序为 D,即占用的地址为 400001 ~ 400010
1!400001.10EString指站号为1,保持寄存器区域,地址为 400001,字符长度为 10,字节顺序为 E,即占用的地址为 400001 ~ 400010

OPC UA

设备配置

字段说明
endpoint url远程访问 PLC 的地址,默认值是opc.tcp://127.0.0.1:4840/
username连接到 PLC 时,使用的用户名
password连接到 PLC 时,使用的密码
cert-file提供登录用户认证的证书
key-file私钥文件,用于提供签名和加密传输

支持的数据类型

  • INT8
  • INT16
  • INT32
  • INT64
  • UINT8
  • UINT16
  • UINT32
  • UINT64
  • FLOAT
  • DOUBLE
  • BOOL
  • STRING

地址格式

IX!NODEID

IX 命名空间索引。

NODEID 节点 ID。

例如:

  • 2!Device1.Module1.Tag1 指命名空间索引为2,节点 ID 为 Device1.Module1.Tag1。

WARNING

关于命名空间索引和节点 ID 的解释,请参考 OPC UA 标准。

Siemens S7 ISOTCP

s7comm 插件用于带有网络端口的西门子PLC,如,s7-200/300/400/1200/1500。

设备配置

字段说明
host远程 PLC 的 IP
ip远程 PLC 的端口,默认为 102
rackPLC 机架号,默认为 0
slotPLC 插槽号,默认为 1

WARNING

当使用S7COMM插件访问S7 1200/1500 PLC时,你需要使用西门子软件(TIA16)对PLC进行一些设置。( 详细设置请参考 PLC 设置 )

  • 优化块访问必须被关闭。
  • 访问级别必须是完全连接机制必须允许 GET/PUT。

支持的数据类型

  • INT16
  • UINT16
  • INT32
  • UINT32
  • FLOAT
  • DOUBLE
  • BIT
  • STRING

地址格式

AREA ADDRESS[.BIT][.LEN]

AREA ADDRESS

区域数据类型属性备注
Iint16/uint16/bit输入
Oint16/uint16/bit读/写输出
Fint16/uint16/bit读/写标志
Tint16/uint16/bit读/写计时器
Cint16/uint16/bit读/写计数器
DBint16/uint16/bit/int32/uint32/float/double/string读/写全局数据块

例如

地址数据类型说明
I0int16I 区域,地址为 0
I1uint16I 区域,地址为 1
O2int16O 区域,地址为 2
O3uint16O 区域,地址为 3
F4int16F 区域,地址为 4
F5int16F 区域,地址为 5
T6int16T 区域,地址为 6
T7int16T 区域,地址为 7
C8uint16C 区域,地址为 8
C9uint16C 区域,地址为 9
DB10.DBW10int1610 数据块中,起始数据字为 10
DB12.DBW10uint1612 数据块中,起始数据字为 10
DB10.DBW10float10 数据块中,起始数据字为 10
DB11.DBW10double11 数据块中,起始数据字为 10

.BIT

选填,指某一地址的某一位。

例如

地址数据类型说明
I0.0bitI 区域,地址为0,第 0 位
I0.1bitI 区域,地址为0,第 1 位
O1.0bitO 区域,地址为1,第 0 位
O1.2bitO 区域,地址为1,第 2 位
F2.1bitF 区域,地址为2,第 1 位
F2.2bitF 区域,地址为2,第 2 位
T3.3bitT 区域,地址为3,第 3 位
T3.4bitT 区域,地址为3,第 4 位
C4.5bitC 区域,地址为4,第 5 位
C4.6bitC 区域,地址为4,第 6 位
DB1.DBW10.1bit1 数据块中,起始数据字为 10,第 0 位
DB2.DBW1.15bit2 数据块中,起始数据字为 1,第 15 位

.LEN

当数据类型为 string 类型时,是必填项,表示字符串长度。

例如

地址数据类型说明
DB1.DBW12.20string1 数据块中,起始数据字为 12,字符串长度为 20

OMRON FINS on TCP

fins插件用于带有网口的欧姆龙 PLC,如 CP2E。

设备配置

字段说明
host远程 PLC 的 ID
port远程 PLC 的端口,默认为 9600 |

支持的数据类型

  • UINT8
  • INT8
  • INT16
  • UINT16
  • INT32
  • UINT32
  • FLOAT
  • DOUBLE
  • BIT
  • STRING

地址格式

AREA ADDRESS[.BIT][.LEN[H][L]]

AREA ADDRESS

区域数据类型属性备注
CIO除 uint8/int8 外的所有类型读/写CIO 区
A除 uint8/int8 外的所有类型辅助区
W除 uint8/int8 外的所有类型读/写工作区
H除 uint8/int8 外的所有类型读/写保持区
D除 uint8/int8 外的所有类型读/写数据存储区
P除 uint8/int8 外的所有类型,但 bit 只支持读读/写PVs
Fint8/uint8完成标志
EM除 uint8/int8 外的所有类型读/写扩展内存

例如

地址数据类型说明
F0uint8F 区域,地址为 0
F1int8F 区域,地址为 1
CIO1int16CIO 区域,地址为 1
CIO2uint16CIO 区域,地址为 2
A2int32A 区域,地址为 2
A4uint32A 区域,地址为 4
W5floatW 区域,地址为 5
W10floatW 区域,地址为 10
H20doubleH 区域,地址为 20
H30uint32H 区域,地址为 30
D10int32D 区域,地址为 10
D20floatD 区域,地址为 20
EM10floatEM 区域,地址为 10

.BIT

选填,指某一地址的某一位。

例如

地址数据类型说明
CIO0.0bitCIO 区域,地址为 0,第 0 位
CIO1.2bitCIO 区域,地址为 1,第 2 位
A2.1bitA 区域,地址为 2,第 1 位
A2.3bitA 区域,地址为 2,第 3 位
W3.4bitW 区域,地址为 3,第 4 位
W3.0bitW 区域,地址为 3,第 0 位
H4.15bitH 区域,地址为 4,第 15 位
H4.10bitH 区域,地址为 4,第 10 位
D5.2bitD 区域,地址为 5,第 2 位
D5.3bitD 区域,地址为 5,第 3 位
EM10.0bitEM 区域,地址为 10,第 0 位

.LEN[H][L]

当数据类型是 string 类型时,是必填项,.LEN 表示字符串长度,包含 HL 两种字节顺序,不填默认是 H 字节顺序。

例如

地址数据类型说明
CIO0.20stringCIO 区域,地址为 0,字符串长度 20 个字节,字节顺序为 L
CIO1.20HstringCIO 区域,地址为 1,字符串长度 20 个字节,字节顺序为 H
A2.10LstringA 区域,地址为 2,字符串长度 10 个字节,字节顺序为 L
A2.30stringA 区域,地址为 2,字符串长度 30 个字节,字节顺序为 L
W3.40HstringW 区域,地址为 3,字符串长度 40 个字节,字节顺序为 H
W3.10stringW 区域,地址为 3,字符串长度 10 个字节,字节顺序为 L
H4.15LstringH 区域,地址为 4,字符串长度 15 个字节,字节顺序为 L
H4.10stringH 区域,地址为 4,字符串长度 10 个字节,字节顺序为 L
D5.20HstringD 区域,地址为 5,字符串长度 20 个字节,字节顺序为 H
D5.30stringD 区域,地址为 5,字符串长度 30 个字节,字节顺序为 L
EM10.10stringEM 区域,地址为 10,字符串长度 10 个字节,字节顺序为 L

Mitsubishi MELSEC-Q E71

qna3e 插件用于通过以太网访问三菱的QnA兼容PLC,包括Q系列(MC)、iQ-F系列(SLMP)和iQ-L系列。

设备配置

字段说明
host远程 PLC 的 ID
ip远程 PLC 的端口号,默认为 2000

支持的数据类型

  • INT16
  • UINT16
  • INT32
  • UINT32
  • FLOAT
  • DOUBLE
  • BIT
  • STRING

地址格式

AREA ADDRESS[.BIT][.LEN[H][L]]

AREA ADDRESS

区域数据类型属性备注
Xbit读/写输入继电器 (Q/iQ-F)
DXbit读/写(Q/iQ-F)
Ybit读/写输出继电器 (Q/iQ-F)
DYbit读/写(Q/iQ-F)
Bbit读/写链接继电器 (Q/iQ-F)
SBbit读/写链接专用继电器
Mbit读/写内部继电器 (Q/iQ-F)
SMbit读/写特殊寄存器 (Q/iQ-F)
Lbit读/写锁存器 (Q/iQ-F)
Fbit读/写信号器 (Q/iQ-F)
Vbit读/写边缘继电器 (Q/iQ-F)
Sbit读/写(Q/iQ-F)
TSbit读/写定时器触点 (Q/iQ-F)
TCbit读/写定时器线圈 (Q/iQ-F)
SSbit读/写(Q/iQ-F)
STSbit读/写保持定时器触点 (Q/iQ-F)
SCbit读/写(Q/iQ-F)
CSbit读/写计数器触点 (Q/iQ-F)
CCbit读/写计数器线圈 (Q/iQ-F)
TN所有类型读/写定时器当前值 (Q/iQ-F)
STN所有类型读/写保持定时器 (Q/iQ-F)
SN所有类型读/写(Q/iQ-F)
CN所有类型读/写计数器当前值 (Q/iQ-F)
D所有类型读/写数据寄存器 (Q/iQ-F)
DSH--
DSL--
SD所有类型读/写专用寄存器Specical register (Q/iQ-F)
W所有类型读/写链接寄存器 (Q/iQ-F)
WSH--
WSL--
SW所有类型读/写链接专用寄存器 (Q/iQ-F)
R所有类型读/写文件寄存器 (Q/iQ-F)
ZR所有类型读/写文件寄存器 File register (Q/iQ-F)
RSH--
ZRSH--
RSL--
ZRSL--
Z所有类型读/写索引寄存器 Index register (Q/iQ-F)

例如

地址数据类型说明
X0bitX 区域,地址为 0
X1bitX 区域,地址为 1
Y0bitY 区域,地址为 0
Y1bitY 区域,地址为 1
D100int16D 区域,地址为 100
D1000uint16D 区域,地址为 1000
D200uint32D 区域,地址为 200
D10floatD 区域,地址为 10
D20doubleD 区域,地址为 20

.BIT

只可用于非bit类型区域,表示读取指定地址的指定二进制位,二进制位索引区间为[0, 15]。

地址数据类型说明
D20.0bitD 区域,地址为 20,第 0 位
D20.2bitD 区域,地址为 20,第 2 位

.LEN[H][L]

当数据类型是 string 类型时,.LEN 表示的是字符串长度;可以选填 HL 表示两种字节顺序,默认的是 H 的字节顺序。 例如

地址数据类型说明
D1002.16LstringD 区域,地址为 1002,字符串长度为 16,字节顺序为 L
D1003.16stringD 区域,地址为 1003,字符串长度为 16,字节顺序为 H

IEC 60870-5-104

设备配置

字段说明
host设备 IP
port设备端口号,默认为 2404
ca公共地址
interval站点问询时间间隔

支持的数据类型

  • UINT16
  • INT16
  • FLOAT
  • BIT

地址格式

IOA

IEC 60870-5-104 类型 ID数据类型
M_ME_NB_1、M_ME_TE_1uint16/int16
M_ME_NC_1、M_ME_TF_1float
M_SP_NA_1、M_SP_TB_1bit
M_ME_NA_1、M_ME_TD_1、M_ME_ND_1uint16/int16

KNXnet/IP

支持的数据类型

  • BIT
  • BOOL
  • INT8
  • UINT8
  • INT16
  • UINT16
  • FLOAT

地址格式

两种地址格式:

  • GROUP_ADDRESS

代表 KNX 组地址,只能在 Neuron 中写入,属于该组的 KNX 设备将对发送到该组的消息做出响应。

例如

0/0/1 是一个 KNX 组地址,只在 Neuron 中写入,属于 0/0/1 组的 KNX 设备将对发送到 0/0/1 组的消息做出响应。

  • GROUP_ADDRESS,INDIVIDUAL_ADDRESS

代表 KNX 组下的设备地址,只能在 Neuron 中读取。

例如

0/0/1,1.1.1 代表 KNX 组地址 0/0/1下的设备地址 1.1.1,并且在 Neuron 中只读。

BACnet/IP

设备配置

字段说明
hostBACnet 设备的 ID
portBACnet 设备的端口号,默认为 47808

支持的数据类型

  • FLOAT
  • BIT

地址格式

AREA ADDRESS

区域地址范围属性数据类型备注
AI0 - 0x3ffffffloat模拟输入
AO0 - 0x3fffff读/写float模拟输出
AV0 - 0x3fffff读/写float模拟量
BI0 - 0x3fffffbit二进制输入
BO0 - 0x3fffff读/写bit二进制输出
BV0 - 0x3fffff读/写bit二进制值
MSI0 - 0x3fffffbit多状态输入
MSO0 - 0x3fffff读/写bit多状态输出
MSV0 - 0x3fffff读/写bit多状态值

例如

地址数据属性说明
AI0floatAI 区域,地址为 0
AI1floatAI 区域,地址为 1
BO10floatBO 区域,地址为 10
BO20floatBO 区域,地址为 20
AV30floatAV 区域,地址为 30
BI0bitBI 区域,地址为 0
BI1bitBI 区域,地址为 1
BV3bitBV 区域,地址为 3
MSI10bitMAI 区域,地址为 10
MSI20bitMSI 区域,地址为 20
MSI30bitMSI 区域,地址为 30