zoukankan      html  css  js  c++  java
  • 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);

                }

            }

  • 相关阅读:
    java中的异常类
    Mysql--JDBC的基础
    eclipse使用断言
    idea中使用断言
    java的null
    array,集合(collection),集合(list)的区别
    命名管道FIFO
    标准库中的管道操作
    现代进程间的通信方式--管道
    广播编程之发送者
  • 原文地址:https://www.cnblogs.com/chen1880/p/11243135.html
Copyright © 2011-2022 走看看