『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 9d$F6

[求助] 求助 modbus tcp 模块,配置报错,按官方示例也不行

[复制链接]

0

主题

12

帖子

1187

积分

金牌会员

Rank: 6Rank: 6

积分
1187
金钱
1175
HASS币
0
发表于 4 天前 | 显示全部楼层
暗夜 发表于 2024-12-15 14:12
怎样单独开一个MODBUS文件

在configuration.yaml文件中加入modbus: !include modbus.yaml
新建一个modbus.yaml文件配置,这样方便管理,和在configuration.yaml文件中写是一样的效果
回复

使用道具 举报

1

主题

72

帖子

472

积分

中级会员

Rank: 3Rank: 3

积分
472
金钱
400
HASS币
0
发表于 4 天前 | 显示全部楼层
9d$F6 发表于 2024-7-19 12:15
收到,感谢,还有个疑问就是这个地址address: 0x2000 这个是modbus 02功能区地址零?我的设备modscan 读 ...

Modbus地址表示方式有两种:PLC地址、协议地址
协议地址
协议地址的编号从0开始,一般用16进制格式表示只标识地址,不标识数据类型,0x2000/2000H/8192都是指相同的含义
使用协议地址时,一般需要告诉使用地址的软件,这个地址里面是什么数据类型
注意:线圈输出、离散量输入、输入寄存器、保持寄存器这四种不同的数据类型分别编址modbus协议是通过功能码区分操作的分区
PLC地址               
        5位十进制数表示,使用0/1/3/4开头,用于区分读写的数据类型,地址编号从1开始
Modbus 寄存器分区及功能码定义
数据类型(功能分区)
PLC地址
数据类型
读取功能码
单个写功能码
批量写功能码
线圈输出(0x)
00001~09999
布尔量
1
5
15
离散量输入(1x)
10001~19999
布尔量
2
不可写
不可写
输入寄存器(3x)
30001~39999
16bit整数
4
不可写
不可写
保持寄存器(4x)
40001~49999
16bit整数
3
6
16
由于保持寄存器可读可写非常灵活,很多Modbus设备甚至仅有保持寄存器,并且使用保持寄存器保存布尔量和不可写入的数据,如果软件没有要求声明数据类型,通常默认是保持寄存器

以你的问题为例,0x2000 就是个协议地址,换成PLC地址是48193,数据类型是保持寄存器或者输入寄存器(具体看从机设备实现,主机这里没有声明应该是调用了默认设置,就看双方的实现是否一致了)


回复

使用道具 举报

1

主题

7

帖子

52

积分

注册会员

Rank: 2

积分
52
金钱
45
HASS币
0
发表于 前天 18:01 | 显示全部楼层
Txx 发表于 2024-12-18 10:29
在configuration.yaml文件中加入modbus: !include modbus.yaml
新建一个modbus.yaml文件配置,这样方便管 ...

收到 我试一下  但我用的是tcp转的rtu读取
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-22 19:05 , Processed in 0.048458 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表