V2EX whc2001
 whc2001 最近的时间轴更新
whc2001

whc2001

V2EX 第 176874 号会员,加入于 2016-06-11 13:27:25 +08:00
whc2001 最近回复了
2021-05-28 22:43:44 +08:00
回复了 mrco 创建的主题 问与答 RS485 电表如何连接 MODBUS 网关呢?
问题已解决,总结一下防止后面有人踩坑:Modbus 网关为透明传输可以忽略,主要问题出现在 mbpoll 和电表交互过程中对协议和标准的理解上:

1. Modbus 的读取长度通常以单字( Word )为单位,1 个单字为 2 个字节,读取长度要注意和说明书中的匹配( mbpoll 和说明书均以单字作为单位)。

2. Modbus 的地址起始值要注意,比如 mbpoll 的地址是从 1 开始,说明书是从 0 开始,会导致偏移。

3. 读出数据解释时要注意大小端,mbpoll 默认是小端序解析,电表经过试验存储格式为大端序。
2021-05-28 18:17:42 +08:00
回复了 mrco 创建的主题 问与答 RS485 电表如何连接 MODBUS 网关呢?
@mrco V2EX 好像也不支持私信,我直接发你 Base64 解码 2 次吧:TXpFeU16UXhPREl4TVE9PQ==,备注写 V2EX
2021-05-28 04:55:45 +08:00
回复了 mrco 创建的主题 问与答 RS485 电表如何连接 MODBUS 网关呢?
@whc2001 淦,刚发现 V2EX 不支持 Markdown,请忽略文中奇奇怪怪的符号

以及发出去才发现忘了提一点,DL/T 645 协议中要求一个数据包开始之前发 0 - 4 个 0xFE,然后才是正式数据开始,所以前面的那 4 个 0xFE 是不参与校验码计算的。
2021-05-28 04:49:54 +08:00
回复了 mrco 创建的主题 问与答 RS485 电表如何连接 MODBUS 网关呢?
最近也在折腾类似的玩意(用的德力西 DTSU6606 ),不过没试过 RTU 转 TCP,稍微看了一下说明书,感觉有如下几个地方可以排查一下,首先放一段说明书原文:

> DL/T 645-2007 协议切换到 ModBus-RTU 通讯协议的数据帧如下:FE FE FE FE 68 xx xx xx xx xx xx 68 14 0E 33 33 35 3D 35 33 33 33 33 33 33 33 33 33 CS 16
>
> 注意:xx xx xx xx xx xx 为表通讯地址; CS 为校验码.
>
> 仪表默认出厂参数:波特率 2400bps ( DDSU666-E/D/F 波特率为 9600bps ),偶校验。1 停止位,协议 DL/T645-2007,表号为标签表号,共 12 位(十进制)。

- 说明书中提到这台表支持 Modbus RTU 和 DL/T 645 两种软件协议,同时默认是 DL/T 645 协议(见说明书第 9 页)。说明书给出了从 DL/T 645 切换到 Modbus RTU 的对应指令:

此处涉及到 DL/T 645 协议,6 个字节的“表通讯地址”实质上是电表 SN 序列号的 BCD 表示(两个字符一组,倒着写),通常印在表的前面板上,小端在前。例如表号为 No.123456789098,则通讯地址为 0x98 0x90 0x78 0x56 0x34 0x12 。

而根据 DL/T 645 协议,校验码的计算方法为求校验码之前所有字节的和,长度为 1 字节溢出丢弃(例如数据为 0x12 0x34 0x56 0x78 0x9A,校验码 0x12 + 0x34 + 0x56 + 0x78 + 0x9A = 0x01AE 取最低字节即为 0xAE 。

为了排除干扰,建议此处暂时忽略 Modbus 网关,使用 USB 转 RS485 设备和串口终端程序直接与电表进行进行通信。

- 发送切换到 Modbus 的指令之后,需要验证是否成功切换,此处可以手动构建并发送一个 Modbus RTU 数据包。参考 **说明书第 10 页的表格** ,可以看到表内实现的所有保持寄存器的地址。

此处使用“A 相电压”寄存器进行测试,阅读表格可知其地址为 0x2000,类型为 float,长度为 2 字节。根据 Modbus RTU 协议构造一个请求数据包:

`01 03 20 00 00 02 CF CB`

0x01: 从机地址,默认应该为 0x01,不行的话自己遍历一下

0x03: 指令“读保持寄存器”

0x0020: 从地址 0x2000 开始读(小端在前)

0x0002: 从起始地址连续读 2 字节(大端在前)

0xCFCB: Modbus RTU 使用的 CRC-32 校验,可以使用 [这个网站]([Online Modbus RTU Parser & Modbus TCP Parser (rapidscada.net)]( https://rapidscada.net/modbus/ModbusParser.aspx) 进行验证,如果不正确会自动提示并算出正确的校验值。

一切正常则发送之后应会收到应答,应答内容粘贴进上面的网站可以看到数据解析。

- 确定电表本身 Modbus RTU 通讯正常之后就可以上网关了,个人没用过 Modbus TCP 和 mbpoll,感觉应该是要在网关的配置中把 Modbus TCP (网关端口 502 对外开放的服务器)的寄存器映射到 Modbus RTU (网关连接的电表) 的寄存器?
2017-11-09 16:37:49 +08:00
回复了 mimzy 创建的主题 分享发现 Staggering Beauty,奇葩一样的网站……
其实除了上面那个音乐之外还有一个
http://www.staggeringbeauty.com/texture.mp3
背景图是
http://www.staggeringbeauty.com/assets/bg.gif
红灯是电源灯,插电就常亮;绿灯是活动灯,有操作时闪烁;另外三个灯是网络指示。网络灯亮说明网络正常, ACT 灯偶尔闪烁说明系统应该正在运行,如果视频输出和远程都不行的话只能重新刷系统了
关于     帮助文档     自助推广系统   &nsp; 博客     API     FAQ     Solana     5283 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 13ms UTC 05:46 PVG 13:46 LAX 22:46 JFK 01:46
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86