模块配置

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

提示

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

MQTT

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

应用配置

字段说明
client-idMQTT通信的客户端id,必填。(默认为节点名)
upload-topic订阅数据上报的主题,必填。
format上报数据的json格式选择,选填,有values模式和tags模式,默认为values模式
cache-mem-size通信失败时内存消息缓存大小(MB)限制,必填。范围在[0, 1024], 默认 0。 须不大于cache-disk-size
cache-disk-size通信失败时磁盘消息缓存大小(MB)限制,必填。范围在[0, 10240], 默认 0。设为非零值时, cache-mem-size也须为非零值。
hostMQTT Broker 主机,必填。
portMQTT Broker 端口号,必填。
username连接到 Broker 时使用的用户名,选填。
password连接到 Broker 时使用的密码,选填。
ssl是否启用 mqtt ssl,选填,默认 false
caca文件,只在ssl值为true时启用,这种情况下为必填。
certcert文件,只在ssl值为true时启用,选填。
keykey文件,只在ssl值为true时启用,选填。
keypasskey文件密码,只有在ssl值为true时启用,选填。

Modbus

Modbus 协议包括三种协议:Modbus TCP、Modbus RTU 和 Modbus RTU over TCP。三种协议除了设备配置方式不一致外,支持的数据类型及地址格式都一致。

Modbus TCP / 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
timeout向设备发送请求超时时间

Modbus RTU 设备配置

字段说明
device使用串口设备,例如“/dev/ttyUSB0”
stop停止位,默认值是 1
parity校验位,默认值是 2,代表偶校验
baud波特率,默认值是 9600
data数据位,默认值是 8
timeout向设备发送请求超时时间

支持的数据类型

  • 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

提示

一些设备文件会使用功能码和寄存器地址来描述指令,因为寄存器地址编号是从 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提供登录用户认证的证书
key私钥文件,用于提供签名和加密传输

认证方式:

  • anonymos,需要 OPCUA 服务端开启匿名登录;
  • username-password,需要 OPCUA 服务端已经创建好具备访问权限的 username,Neuron 自动会匹配 OPCUA 服务端的安全设置并尝试登录;
  • cert-key + anonymos,需要 OPCUA 服务端开启合适的安全设置并设置证书,并且开启匿名登录
  • cert-key + username-password,需要 OPCUA 服务端已经创建好具备访问权限的username,并开启合适的安全设置并设置证书;

证书设置

OPCUA可通过用户自签名证书登录到 OPC-UA 服务器,certificate 和 key 必须满足以下条件:

  • CERTIFICATE 和 KEYFILE 必须同时设置
  • Certificate 必须以X.509v3标准生成
  • Certficate 的SAN字段必须包含URI:urn:xxx.xxx.xxx,“xxx”部分为自定义部分
  • Certificate 文件和 Key 文件必须使用DER格式编码

证书文件可以提前导入到目标服务器中并设置为信任,也可以由 neuron 设置后自动提交再由服务端设置为信任。注:老版本的 kepware 或者 IGS 可能需要手动导入证书。

证书生成步骤(Windows/Linux/Mac):

  1. openssl req -config localhost.cnf -new -nodes -x509 -sha256 -newkey rsa:2048 -keyout localhost.key -days 365 -subj "/C=DE/O=neuron/CN=NeuronClient@localhost" -out localhost.crt
  2. openssl x509 -in localhost.crt -outform der -out client_cert.der
  3. openssl rsa -inform PEM -in localhost.key -outform DER -out client_key.der
  4. rm localhost.crt
  5. rm localhost.key

-config指定的 *.cnf 文件可以使用 openssl 的模版文件模块配置 - 图1 (opens new window) 进行修改,需包含如下配置节:

  1. [ v3_req ]
  2. # Extensions to add to a certificate request
  3. basicConstraints = CA:FALSE
  4. keyUsage = nonRepudiation, digitalSignature, keyEncipherment
  5. subjectAltName = @alt_names
  6. [ alt_names ]
  7. URI.1 = urn:xxx.xxx.xxx
  8. DNS.1 = localhost
  9. #DNS.2 = localhost
  10. IP.1 = 127.0.0.1
  11. #IP.2 = 0.0.0.0

-days可以根据需要设置数值。

证书转换

可以通过以下步骤和命令将 PEM 证书以及私钥转换为 DER 格式

  1. 将包括”——-BEGIN CERTIFICATE——-“和”——-END CERTIFICATE——-“的所有内容保存为1.crt;
  2. 将包括”——-BEGIN PRIVATE KEY——-“和”——-END PRIVATE KEY——-“的所有内容保存为1.key;
  3. 执行如下命令:
  1. openssl x509 -in 1.crt -outform der -out cert.der
  2. openssl rsa -inform PEM -in 1.key -outform DER -out key.der

支持的数据类型

  • INT8(用于表示 SBYTE 类型)
  • INT16
  • INT32
  • INT64
  • UINT8(用于表示 BYTE 类型)
  • UINT16
  • UINT32(同时用于表示 DATETIME 类型)
  • UINT64
  • FLOAT
  • DOUBLE
  • BOOL
  • STRING

地址格式

IX!NODEID

IX 名字空间索引。

NODEID 节点 ID,可以设置为数字形式或者字符串形式。

例子:

地址数据类型说明
0!2258UINT32使用数字类型的 NODEID,获取 OPCUA 服务器的时间戳;NS 为0,NODEID 为2258
2!Device1.Module1.Tag1INT8使用字符串类型的 NODEID,获取类型为 SBYTE 的数据点;NS 为2,NODEID 为 Device1.Module1.Tag1

可以使用 UaExpert 软件协助查看所需点位的名字空间和节点 ID 信息。

提示

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

Neuron 设置的数据类型必须与 OPCUA 数据类型相匹配。

Siemens S7 ISOTCP

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

设备配置

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

提示

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

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

支持的数据类型

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

地址格式

AREA ADDRESS[.BIT][.LEN]

AREA ADDRESS

区域数据类型属性备注S7-200 smart
Iint16/uint16/bit输入输入I、E
Oint16/uint16/bit读/写输出输出Q、A
Fint16/uint16/bit读/写标志标志内存M
Tint16/uint16读/写计时器计时器T
Cint16/uint16读/写计数器计数器C
DBint16/uint16/bit/int32/uint32/float/double/string读/写全局数据块变量内存V,全局数据块1

例子:

地址数据类型说明
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
EM10W100floatEM10 区域,地址为 100

.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 位
EM10W100.0bitEM10 区域,地址为 100,第 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 QnA3E

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

设备配置

字段说明
host远程 PLC 的 IP 地址
port远程 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
  • UINT8
  • INT8

地址格式

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

设备配置

ParameterDescription
hostKNXnet/IP设备ip, 默认224.0.23.12
portKNXnet/IP设备端口, 默认3671

注意如果使用多拨地址224.0.23.12进行配置,通常要求设备与Neuron部署在同一网段中。

由于KNXnet/IP协议的工作原理,如果使用虚拟化技术如虚拟机或docker部署Neuron,KNX插件可能 无法正常工作。如果是在Linux主机中使用docker镜像部署Neuron,那么需要使用docker选项--net=host。 在其他情况下,推荐您使用二进制安装包部署Neuron。

支持的数据类型

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

地址格式

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

例子:

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

  • GROUP_ADDRESS,INDIVIDUAL_ADDRESS

表示一个KNX设备地址及其所属的组地址。进行读操作时,KNX插件发送GroupValueRead 隧道请求,在收到匹配设备地址的GroupValueResp报文时更新点位数据。 进行写操作时, KNX插件发送一个GroupValueWrite隧道请求报文。

例子:

0/0/1,1.1.1 代表 KNX 组地址 0/0/1下的设备地址 1.1.1

  • GROUP_ADDRESS,INDIVIDUAL_ADDRESS,BIT

与上相同,但为读取比特位数少于8的uint8类型数据时使用,如KNX data point类型B2B1U3等。 其中BIT表示数据比特位数。

例子:

0/0/1,1.1.1,2 代表 KNX 组地址 0/0/1下的设备地址 1.1.1,数据为两个比特。

BACnet/IP

设备配置

字段说明
hostBACnet 设备的 IP
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

DL/T645-2007

dlt645 驱动支持串口和 TCP 连接。

设备配置

serival

字段说明
timeout向设备发送请求超时时间
interval读指令时间间隔,单位为 ms
device使用串口设备,例如,/dev/ttyUSB0
stop停止位,默认值是 1
parity校验位,默认值是 2,代表偶校验
baud波特率,默认值是 9600
data数据位,默认值是 8

TCP

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

支持的数据类型

  • UIN8
  • UINT16
  • UINT32
  • UIN64

地址格式

mail_address#DI3-DI2-DI1-DI0

  • mail_address 代表电表的通信地址。
  • DI3-DI2-DI1-DI0 代表的是数据标识,所有点位只支持读属性,且用十六进制表示。

例如,123456789012#02-01-01-00,代表通信地址为 123456789012 的电表设备的 A 相电压的值。

提示

支持一个节点配置多个通信地址的点位,即单串口的多设备连接。

具体的数据标识对应的数据项名称请参考 DL/T645-2007 行业标准的数据编码表格。

  • 数据长度为 1,数据类型选择 UINT8;
  • 数据长度为 2,数据类型选择 UINT16;
  • 数据长度为 3 或 4,数据类型选择 UINT32;
  • 数据长度为 5 或 6 或 7 或 8,数据类型选择 UINT64;
  • 根据数据格式设置 Decimal 的值,例如数据格式为 XXX.X,则 Decimal 设置为 0.1;
DI3DI2DI1DI0说明数据类型Decimal 值举例
0000 ~ 0A00 ~ 3F00 ~ 0CDI3= 00,代表电能量
DI0,代表结算日
UINT640.0100-00-00-00 代表(当前)组合有功总电能
00-00-00-01 代表(上 1 结算日)组合有功总电能
0080~86
15~1E
94~9A
29~32
A8~AE
3D~46
BC~C2
0000 ~ 0CDI3 = 00,代表电能量
DI0,代表结算日
UINT640.0100-80-00-00 代表(当前)关联总电能
00-80-00-01 代表(上 1 结算日)关联总电能
00-15-00-01 代表(上 1 结算日)A 相正向有功电能
00-15-00-01 代表(上 2 结算日)A 相正向有功电能
00-29-00-02 代表(上 2 结算日)B 相正向有功电能
0201 ~ 0901 ~ 0300DI3= 02,代表变量UINT16
UINT32
0.1
0.01
0.001
0.0001
02-01-01-00 代表 A 相电压
02-02-01-00 代表 A 相电流
020A ~ 0B01 ~ 0301 ~15DI2= 0A,代表电压谐波含量
DI2 = 0B,代表电流谐波含量
DI1 ,代表A,B,C 相
DI~0~,代表第几次谐波含量
UINT160.0102-0A-01-01 代表 A 相电压 1 次谐波含量
02-0A-02-02 代表 B 相电压 2 次谐波含量
02-0B-01-01 代表 A 相电流 1 次谐波含量
02-0B-02-02 代表 B 相电流 2 次谐波含量
02800001 ~ 0ADI3= 02,代表变量UINT160.0102-80-00-01 代表零线电流
02-80-00-02 代表电网频率
040001 ~ 0E01 ~ 0CDI3= 04,代表参变量UINT8
UINT16
UINT32
UINT64
0
0.1
0.001
0.0001
04-00-01-01 代表日期及时间
04-00-01-03 代表最大需量周期
04-00-04-01 代表通信地址
04-00-05-01 代表电表运行状态字 1
0600 ~ 060000 ~ 02DI3= 06,代表负荷记录UINT8
UINT64
006-00-00-00 代表最早记录块
06-06-00-00 代表第 6 类负荷最早记录块

Sparkplug_B

Neuron 从设备采集到的数据可以通过Sparkplug_B协议从边缘端传输到Sparkplug_B应用中,用户也可以从应用程序向 Neuron 发送数据修改指令。Sparkplug_B是运行再MQTT之上的应用型协议,所以在Neuron中的设置与MQTT驱动相似。

应用配置

字段说明
client-idMQTT 客户端 ID,连接的唯一标识,必填
group-idSparkplug_B 协议中的最顶层逻辑分组,可以代表工厂或车间等实体,必填
node-idSparkplug_B 协议中的边缘节点唯一标识,必填
ssl是否启用 mqtt ssl,默认 false
hostMQTT Broker 主机,必填
portMQTT Broker 端口号,必填
username连接到 Broker 时使用的用户名,可选填
password连接到 Broker 时使用的密码,可选填
caca 文件,只在 ssl 值为 true 时启用,这种情况下为必填
certcert 文件,只在 ssl 值为 true 时启用,可选填
keykey 文件,只在 ssl 值为 true 时启用,可选填
keypasskey 文件密码,只有在 ssl 值为 true 时启用,可选填

非 A11

设备设置

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

支持的数据类型

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

地址格式

COMMAND ! OFFSET[.LEN]

Example:

地址数据类型说明
1!10.20string指令1,偏移10,字符串长度20
12!1uint16/int16指令12,偏移1
20!32uint32/int32/float指令20,偏移32

ADS

通过ads插件可以连接Beckhoff ADS/AMS设备.

设备设置

字段说明
host远程设备IP.
port远程设备TCP端口(默认48898).
src-ams-net-id运行neuron的设备的AMSNetId.
src-ads-port运行neuron的设备的AMSPort.
dst-ams-net-id目标PLC的AMSNetId.
dst-ads-port目标PLC的AMSPort.

请注意,为了让neuron能与PLC正常通信,需要在目标TC runtime (PLC) 中添加和设置对应的 ADS路由.

支持的数据类型

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

地址格式

INDEX_GROUP,INDEX_OFFSET

INDEX_GROUPINDEX_OFFSET可以分别独立使用十进制或十六进制指定.

示例:

地址数据类型说明
0x4040,0x7d01cboolindex_group 0x4040, index_offset 0x7d01c
16448,51029uint8index_group 0x4040, index_offset 0x7d01d
0x4040,512896.5stringindex_group 0x4040, index_offset 0x7d380, 字符串长度为5

OPC DA

Neuron 可通过外部辅助程序 neuopc.exe 间接访问运行于 Windows 操作系统的 OPCDA 服务器。neuopc 通过将 DA 协议转换为 UA 协议,再通过 Neuron已有的 opcua driver 进行数据获取,DA 的所有可访问点位都被映射至 UA 的”命名空间2”当中,点位的 ID 则与 DA 保持一致。

设备配置

neuopc 的组件包可以前往 neuopc 的项目页面模块配置 - 图2 (opens new window)下载(neuopc是GPL协议下的开源项目)。安装以及远程连接的系统配置参考 neuopc 运行环境设置

模块配置 - 图3

neuopc配置

字段说明
DA Host需要连接目标主机标识,可以是目标 IP 或者 Hostname,本机可以不设置
DA ServerDA 服务器的名称,如”Matrikon.OPC.Simulation.1”,填写 DA Host 之后可以点击下拉按钮尝试获取 Server 列表
UA PortUA 服务器的监听端口设置,默认 48401
UA UserUA 服务器的授权访问用户名,默认 admin
UA PasswordUA 服务器的访问密码,默认 123456

步骤:

  1. 填写 DA Host,可以填写 IP 或 Hostname,不填写则默认为本机;
  2. 尝试点击 DA Server 的下拉按钮,可以尝试获取目标 Host 的 DA Server 列表,如果下拉为空则说明检测不到任何目标主机上的 DA Server;
  3. 点击 Connect 按钮,服务器连接成功后会显示当前 DA Server 的所有可获取的测点信息,状态栏会出现当前服务器的连接信息,如图示8;
  4. 设置 UA Port;
  5. 设置 UA User;
  6. 设置 UA Password;
  7. 点击 Run 按钮,UA 服务器启动后,所有列表中的测点都会被映射到 UA Server 的 NeuOPC 目录下,所有测点的 UA namespace 为2,此时 UA 的相关设置项目会变为不可设置状态;
  8. 通过鼠标双击 neuopc 测点列表的 Name 列可将对应的测点名称复制到剪贴板中,然后在 neuron 的 tag 表单中粘贴。

Neuron opcua 连接配置

字段说明
endpoint urlneuopc 的访问地址,默认是opc.tcp://127.0.0.1:48401/
usernameneuopc 的授权用户名
passwordneuopc 的访问密码

步骤:

  1. 在 neuron 南向设备管理中添加一个 opcua 设备;
  2. 在设备配置中修改 endpoint url 为 neuopc 的 UA Server 地址;
  3. 在设备配置中填写 Username,与 neuopc 中设置的一致;
  4. 在设备配置中填写 Password,与neuopc 中设置的一直;
  5. 无需填写 Cert 和 Key,直接提交设置表单。

支持的数据类型

  • INT8(用于表示 SBYTE 类型)
  • INT16
  • INT32
  • INT64
  • UINT8(用于表示 BYTE 类型)
  • UINT16
  • UINT32(同时用于表示 DATETIME 类型)
  • UINT64
  • FLOAT
  • DOUBLE
  • BOOL
  • STRING

地址格式

IX!NODEID

IX 名字空间索引,访问 neuopc 时,IX只能为2。

NODEID 节点 ID,与 DA 服务器中的字符串一致。

例子:

地址数据类型说明
2!Bucket Brigade.UInt2UINT16获取类型为 UINT16 的数据点;NS 为2,NODEID 为 Bucket Brigade.UInt2

CNC FANUC FOCAS

支持架构: amd64, arm/v7

设备设置

字段说明
host设备IP地址
port设备端口号
timeout连接超时时间

支持的数据类型

  • uint8
  • int8
  • uint16
  • int16
  • uint32
  • int32
  • uint64
  • int64
  • float
  • double
  • bit
  • string

CNC 数据

tag标识(地址)说明数据类型参数
actfactual feed rateint64/uint64-
absoluteabsolute position data of axisint64/uint64axis number(.n)
machinemachine position data of axisint64/uint64axis number(.n)
relativerelative position data of axisint64/uint64axis number(.n)
distancedistance to go of axisint64/uint64axis number(.n)
actsactual rotational speed of the spindleint64/uint64-
skipskipped position of axisint64/uint64axis number(.n)
srvdelayservo delay amount of axisint64/uint64axis number(.n)
accdecdlyacceleration/deceration delay amount of axisint64/uint64axis number(.n)
spcss_srpmconverted spindle speedint64/uint64-
spcss_sspmspecified surface speedint64/uint64-
spcss_smaxclamp of maxmum spindle speedint64/uint64-
movrlap_inputinput overlapped motion valueint64/uint64axis number(.n)
movrlap_outputoutput overlapped motion valueint64/uint64axis number(.n)
sploadload information of the serial spindleint32/uint32spindle number(.n)
spmaxrpmmaximum r.p.m ratio of serial spindleint32/uint32spindle number(.n)
spgeargear ratio of the serial spindleint32/uint32spindle number(.n)

CNC地址示例

地址说明
actf读取 actual feed rate
absolute.1读取第1个axis的absolute position
machine.3读取第3个axis的machine position
spload.1读取第1个spindle的load information
spmaxrpm.3读取第3个spindle的maximum r.p.m ratio

PMC数据

标识说明类型权限
Amessage demandall读写
Ccounterall读写
Ddata tableall读写
Eextended relayall读写
Fsignal to CNC -> PMCall只读
Gsignal to PMC -> CNCall读写
Kkeep relayall读写
Minput signal from other deviceall读写
Noutput signal from other deviceall读写
Rinternal relayall读写
Tchangeable timerall读写
Xsignal to machine -> PMCall只读
Ysignal to PMC -> machineall读写

PMC点位示例

地址类型说明
A0uint8/int8/uint16/int16/uint32/int32/int64/uint64/float/doublePMC message demand 区域,地址0的数据
A0.1bitPMC message demand 区域,地址0的的字节,第1个bit位
A0.0bitPMC message demand 区域,地址0的字节,第0个bit位
A0.2stringPMC message demand 区域,地址0开始,长度为2的字符串
D0.2stringPMC data table 区域,地址0开始,长度为2的字符串
D0.7bitPMC data table 区域,地址0的字节,第7个bit位

Mitsubishi MELSEC A1E

a1e 插件用于通过以太网访问三菱的 A 系列、FX3U、FX3G、iQ-F 系列 PLC(iQ-F 需要特定固件版本支持)。

设备配置

字段说明
host远程 PLC 的 IP 地址
port远程 PLC 的端口号,默认为 2000

支持的数据类型

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

地址格式

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

AREA ADDRESS

区域数据类型属性备注
Xbit读/写输入继电器 (FX3/iQ-F)
Ybit读/写输出继电器 (FX3/iQ-F)
Mbit读/写内部继电器 (FX3/iQ-F)
Lbit读/写锁存器 (FX3)
Fbit读/写信号器 (FX3)
Bbit读/写链接继电器 (FX3)
SBbit读/写链接专用继电器(FX3/iQ-F)
Sbit读/写步继电器(FX3/iQ-F)
D所有类型读/写数据寄存器 (FX3/iQ-F)
W所有类型读/写链接寄存器 (FX3)
TSbit读/写定时器触点 (FX3/iQ-F)
TCbit读/写定时器线圈 (FX3)
TN所有类型读/写定时器当前值 (FX3/iQ-F)
STSbit读/写保持定时器触点 (FX3)
STCbit读/写保持定时器线圈(FX3)
STN所有类型读/写保持定时器 (FX3)
CSbit读/写计数器触点 (FX3/iQ-F)
CCbit读/写计数器线圈 (FX3)
CN所有类型读/写计数器当前值 (FX3/iQ-F)
LCSbit读/写长计数器触点(FX3/iQ-F)
LCCbit读/写长计数器线圈(FX3)
LCN所有类型读/写长计数器当前值(FX3/iQ-F)
SBbit读/写链接特殊继电器(FX3)
SW所有类型读/写链接专用寄存器 (FX3)
SMbit读/写特殊寄存器 (FX3/iQ-F)
SD所有类型读/写专用寄存器Specical register (FX3/iQ-F)
Z所有类型读/写索引寄存器 Index register (FX3)
LZ所有类型读/写长变址寄存器 (FX3)
DXbit读/写链接直接软元件 链接输入(FX3)
DYbit读/写链接直接软元件 链接输出(FX3)
R所有类型读/写文件寄存器 (FX3/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

EtherNet/IP(CIP)

此驱动主要用于支持EtherNet/IP协议的设备。

设备配置

字段说明
host设备IP地址
port设备端口,默认为44818
slotCPU槽号,默认为0

支持的数据类型

  • INT8
  • UINT8
  • INT16
  • UINT16
  • INT32
  • UINT32
  • INT64
  • UINT64
  • FLOAT
  • DOUBLE
  • BOOL
  • BIT
  • STRING
  • WORD
  • DWORD
  • LWORD

PLC数据地址

TAG NAME