dlt645 2007 java源码,DLT645 1997 协议解析

 2023-09-05 阅读 125 评论 0

摘要:源码下载 -> 提取码 QQ:505645074DLT645.zip工具源码规约解析DL/T645-07:数据帧格式:注意事项:(1)前导字节-一般在传输帧信息前,都要有0~4个FE不等,所以这里要注意,对于主站来说,直接发送4个FE作为前导字节即可。

源码下载  -> 提取码 QQ:505645074

DLT645.zip

工具

7940e8a3b19847c729eff69646d47ef5.png

源码

054d3478188cfd6220e2be0f4fddb533.png

规约解析

DL/T645-07:

数据帧格式:

c9c439edce7544221103eb27bd74c680.png

注意事项:

(1)前导字节-一般在传输帧信息前,都要有0~4个FE不等,所以这里要注意,对于主站来说,直接发送4个FE作为前导字节即可。而从站回复,就不一定了,根据厂家不同而不同,

我见过回复信息中,没有FE的,也有4个FE的,所以对于接受程序,一定要慎重。

(2)传输次序-所有的数据项都是先传低字节,再传高字节,这里的数据项,主要涉及到地址域和数据域,因为其他都是1个字节。

(3)差错控制-通信偶校验。

(4)数据与传输运算方式:主站加0x33,从站减0x33(为嘛这么定义,可能是考虑BCD码吧)

网上下载的测试工具

41ade85660b030db913d1eca9786273b.png

1615d0f0584aad0520483c0b995f7f35.png

源码工具.net开发

eb661be40e30af3a0de0b22718921d1a.png

调用代码

private void btnSend_Click(object sender, EventArgs e)

{

string outmsg = string.Empty;

string addr = txtAddr.Text.Trim();

string data = txtData.Text.Trim();

if (string.IsNullOrEmpty(addr))

{

AddMessage("电表地址不允许为空");

return;

}

if (string.IsNullOrEmpty(data))

{

AddMessage("数据标识不允许为空");

return;

}

MeterEntity entity = dlt.Read(addr, data);

AddMessage("send " + entity.Send);

if (!string.IsNullOrEmpty(entity.OutMsg))

{

AddMessage("执行出错,errmsg=" + entity.OutMsg);

}

else

{

AddMessage("recv " + entity.Recv);

AddMessage("analysis,Addr=" + entity.Addr + ",Control=" + entity.Control + ",Flg=" + entity.DataFlg + ",Data=" + entity.Data);

}

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/702.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息