本文介绍:在MyEMS管理界面中添加Modbus TCP数据源和数据点
注意:如果您修改了Modbus TCP数据源和点,请重新启动此服务:
systemctl restart myems-modbus-tcp.service
输入数据源协议:
modbus-tcp
数据源连接示例:
{"host":"10.9.67.99","port":502,"interval_in_seconds":60]}
数据点地址示例:
{"slave_id":1, "function_code":3, "offset":0, "number_of_registers":2, "format":"<f", "byte_swap":true}
数据点地址参数说明
slave_id(从设备地址)
从设备地址ID
function_code(功能码)
01 (0x01) Read Coils 02 (0x02) Read Discrete Inputs 03 (0x03) Read Holding Registers 04 (0x04) Read Input Registers 23 (0x17) Read/Write Multiple registers
offset(寄存器地址)
请求PDU中指定的起始寄存器地址
number_of_registers(寄存器个数)
请求PDU中指定的寄存器数量
format(格式)
使用python3库结构体格式化字节。
Python字节对象用于保存表示C结构的数据。
也可以作为格式字符串(下面解释)来描述C结构中的数据布局。
可选的第一个格式字符表示字节顺序、大小和对齐方式:
@: native order, size & alignment (default)
=: native order, std. size & alignment
<: little-endian, std. size & alignment
>: big-endian, std. size & alignment
!: same as >
其余字符表示参数的类型,必须完全匹配;
这些可以以十进制重复计数开头:
x: pad byte (no data); c:char; b:signed byte; B:unsigned byte;
?: _Bool (requires C99; if not available, char is used instead)
h:short; H:unsigned short; i:int; I:unsigned int;
l:long; L:unsigned long; f:float; d:double.
特殊情况(前面的十进制计数表示长度):
s:string (array of char); p: pascal string (with count byte).
特殊情况(仅以原生格式提供):
n:ssize_t; N:size_t;
P:an integer type that is wide enough to hold a pointer.
Special case (not in native mode unless 'long long' in platform C):
q:long long; Q:unsigned long long
格式之间的空白将被忽略。
byte_swap(字节翻转)
布尔值表示是否交换相邻字节。
交换32位(4字节)或64位(8字节)的相邻字节。
这不适用于小端和大端的交换,请使用format。
当number_of_registers为以太2(32位)或4(64位)时,该选项有效
否则,它将被忽略。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。