写点什么

MyEMS 开源能源管理系统 ModbusTCP 协议配置说明

  • 2025-06-17
    黑龙江
  • 本文字数:982 字

    阅读完需:约 3 分钟

MyEMS开源能源管理系统ModbusTCP协议配置说明

本文介绍:在 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 位)时,该选项有效

否则,它将被忽略。

用户头像

还未添加个人签名 2020-11-09 加入

还未添加个人简介

评论

发布
暂无评论
MyEMS开源能源管理系统ModbusTCP协议配置说明_开源_开源能源管理系统_InfoQ写作社区