DLT645 1997 协议解析
dlt645.zip
工具
源码
规约解析
dl/t645-07:
数据帧格式:
注意事项:
(1)前导字节-一般在传输帧信息前,都要有0~4个fe不等,所以这里要注意,对于主站来说,直接发送4个fe作为前导字节即可。而从站回复,就不一定了,根据厂家不同而不同,
我见过回复信息中,没有fe的,也有4个fe的,所以对于接受程序,一定要慎重。
(2)传输次序-所有的数据项都是先传低字节,再传高字节,这里的数据项,主要涉及到地址域和数据域,因为其他都是1个字节。
(3)差错控制-通信偶校验。
(4)数据与传输运算方式:主站加0x33,从站减0x33(为嘛这么定义,可能是考虑bcd码吧)
网上下载的测试工具
源码工具.net开发
调用代码
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);
}
}
上一篇: php中计算程序运行时间的类代码_PHP