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);

            }

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM