感谢回复。
485转TTL的模块有了。usb-ttl也有了。我摸索了几天,也摸索了一些东西出来。
说明书里那个切换通讯协议的数据帧是电表序列号倒过来写的。
比如序列号是210812062410,那个数据帧里的通讯地址就是10 24 06 12 08 21。
我现在遇到的问题是那个校验码不知道怎么计算。
虽然知道了大概的方法,就是将FE FE FE FE 后所有数字求和取后两位,但是我计算出来的发送给电表始终没有结果。
说明书有个pdf。这是第七页有关修改协议的说明。
仪表设置为 DL/T 645-2007 传输模式时,符合 DL/T 645-2007 通讯协议规约,抄读数据时注意:电能数据支持有功电能总;变量数据支持电压、电流、瞬时有功功率、瞬时无功功率、功率因数;支持通讯地址设置,详细请查阅 DL/T 645-2007 协议。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 3333 CS 16注意:xx xx xx xx xx xx 为表通讯地址;CS 为校验码. 仪表默认出厂参数:波特率 2400bps(DDSU666-E/D/F 波特率为 9600bps),偶校验。1 停止位,协议 DL/T645-2007,表号为标签表号,共 12 位(十进制)。可特殊定制 ModBus_RTU 协议,无校验位,2 个停止位,表号为标签表号后 2 位(十进制),波特率为 9600bps。仪表设置为 ModBus-RTU 传输模式时,ModBus-RTU 通讯协议在一根通讯线上采用主从应答方式的通讯连接方式。首先,主计算机的信号寻址到一台唯一地址的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机,即半双工的工作模式。该协议只允许在主机(PC,PLC 等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号
1.CS校验码计算是第一个帧起始符“68”到CS之前的各字节相加的后2位(16进制计算)。
2.地址要确认,高低位顺序,10进制还是16进制。如不确定可通过AA AA AA AA AA AA广播获取。
3.波特率、奇偶检验和停止位等也要确认。
之前你已经通过软件能正常读取数据,上面的地址等参数应该能获取了;具体规约信息可见一下连接:https://www.doc88.com/p-394989950685.html
网上找了个可以计算校验码的软件,你可以试试