lmy8812 发表于 2018-3-4 13:46:45

网络继电器--Modbus

本帖最后由 lmy8812 于 2018-12-4 11:23 编辑

计划把家里20多路照明全部都用远程+本地双控,Sonoff可以实现但是布线太麻烦,ESP8266+继电器模块也可以实现不过需要编译。因此节后从某宝淘了网络继电器模块,支持Modbus协议,优点:弱电控制安全,布线相对简单(新装修)检修方便。
关于继电器
[*]首先要确定输入端可控继电器输出;
[*]其次要实现完美双控,需要继电器支持输入端反转,即本地开关接通-->远程控制断开之后本地开关切换成下一状态(断开)也能接通电路。(自复位开关据了解一般是点动开关,所以要找支持点动开关的相应板子)。
[*]还有一个问题,不确定是否都会有,我这块板子默认输入端输入信号到继电器响应会有几秒延迟,是因为默认允许交流输入,关了就能即时响应。我是直流输入,不知道交流输入会怎样。
[*]当然是不是导轨式的可能也会成为值得考虑的一个问题。

Modbus通信有两大类一类是Modbus RTU,使用485总线,可以用485转usb接入;一类是Modbus TCP用网线连接,configuration里配置如下:**** Hidden Message *****
开关配置超级简单:**** Hidden Message *****
这里简单说一下slave,Modbus RTU是主从通讯模式,485总线把主机(HA设备)和各从机(继电器板子)手拉手串联起来,每个从机都有唯一的从机地址(即slave)。这样虽然所有从机都能接到主机发送的通信,但只有指定从机才会处理相关指令。一般默认从机地址为1,可以用串口调试工具根据通讯协议修改地址。不建议使用官网上的register来配置开关,反正怎么设我都只能开不能关。
而Modbus TCP其实是星状结构,每个设备直接接入交换机,都有自己的ip地址,所以不存在slave的定义。问题来了,HA对Modbus这种古老实用的通讯方式不太关注,RTU可以通过设定不同的从机地址来接入多块设备,而TCP因为脚本太简单只能控制一个ip地址的设备但无法多块接入。解决办法可以参考网络继电器-接入HA(MQTT转socket协议)python脚本和8通道网络继电器接入HA支持状态反馈。


最后分享点小工具:**** Hidden Message *****



12.04
好吧其实发完这个帖子之后就发现了另一个致命问题,要实现设备状态即时同步,必须高频率扫描各设备状态,会影响其他信号的传输。
所以就放弃modbus了,直接在node-red里控制串口信号。



Leven 发表于 2018-3-4 15:07:24

进来学习一下

发表于 2018-3-4 15:38:27

厉害了楼主!

superjsf 发表于 2018-3-4 15:41:24

modbus,我弄了好久,一直沒辦法處理好,來學習了

dgmax 发表于 2018-3-4 15:50:07

学习学习~~~

dgmax 发表于 2018-3-4 15:54:56

这东西价格很好~~

saoye 发表于 2018-3-4 15:59:14


进来学习一下

wpl820213 发表于 2018-3-4 16:13:13

学习学习

lmy8812 发表于 2018-3-4 16:18:18

superjsf 发表于 2018-3-4 15:41
modbus,我弄了好久,一直沒辦法處理好,來學習了

如果你继电器是从1开始的,好像是有问题,modbus的历史遗留

u20074 发表于 2018-3-4 17:40:23

:) 來學習了,感謝!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 网络继电器--Modbus