DL/T645規(guī)約是針對(duì)電表通信而制定的通信協(xié)議,主要有兩個(gè)版本,分別是DL/T645-1997和DL/T645-2007,2007版是要替代97版的通信協(xié)議的,但是目前很多廠(chǎng)家的電表是支持這兩種通信協(xié)議的,目前新表主流還是07版的,下面就解析這種通信協(xié)議:

DL/T645-07:

注意事項(xiàng):
(1)前導(dǎo)字節(jié)-一般在傳輸幀信息前,都要有0~4個(gè)FE不等,所以這里要注意,對(duì)于主站來(lái)說(shuō),直接發(fā)送4個(gè)FE作為前導(dǎo)字節(jié)即可。而從站回復(fù),就不一定了,根據(jù)廠(chǎng)家不同而不同,有沒(méi)有FE的,也有4個(gè)FE的。
(2)傳輸次序-所有的數(shù)據(jù)項(xiàng)都是先傳低字節(jié),再傳高字節(jié),這里的數(shù)據(jù)項(xiàng),主要涉及到地址域和數(shù)據(jù)域,因?yàn)槠渌际?個(gè)字節(jié)。
(3)差錯(cuò)控制-通信偶校驗(yàn)。
(4)數(shù)據(jù)與傳輸運(yùn)算方式:主站加0x33,從站減0x33。

電表的數(shù)據(jù)參數(shù)有很多,而我們經(jīng)常使用的就兩種,讀表地址和讀當(dāng)前正向有功總電量(耗電量)

1、讀表地址
   雖然電表出廠(chǎng)的地址已經(jīng)在標(biāo)牌上了,8位數(shù),而且,他們都是 BCD碼,不是十進(jìn)制。


這個(gè)表的出廠(chǎng)地址為:8866126775,雖然在協(xié)議里,表是6個(gè)字節(jié),補(bǔ)0即可。
但是有些表是被改過(guò)地址的,為了讀準(zhǔn)確的地址,讀表地址命令為:
FE FE FE 68 AA AA AA AA AA AA 68 13 00 DF 16
其中FE 為前導(dǎo)地址,AA AA AA AA AA AA算是讀表地址專(zhuān)用地址,13控制碼,根據(jù)協(xié)議,就是讀地址控制碼,DF為校驗(yàn),16是結(jié)尾。

2、讀當(dāng)前正向有功總電量
命令:FE FE FE FE 68 75 67 12 66 88 00 68 11 04 33 33 34 33 C6 16
其中: 75 67 12 66 88 00 是表地址,傳輸次序是低在前,高在后,而且是十六進(jìn)制。
11-控制碼(讀數(shù)據(jù)命令)。


04-數(shù)據(jù)域長(zhǎng)度為4
33 33 34 33-這里真實(shí)的含義應(yīng)該是想讀 00 00 01 00,因?yàn)榧恿?x33 ,而


         所以,傳輸次序-低在前,高在后,然后再加0x33,就是33 33 34 33了。
返回?cái)?shù)據(jù):68 75 67 12 66 88 00 68 91 08 33 33 34 33 A4 56 79 38 F5 16 
   注意,這里面沒(méi)有前導(dǎo)字節(jié)FE,并不代表所有的電表廠(chǎng)家都沒(méi)有,而且還是不固定的,所以一定小心寫(xiě)程序,因?yàn)椴煌瑥S(chǎng)家電表回的前導(dǎo)字節(jié)個(gè)數(shù)不一樣。
其中:75 67 12 66 88 00 是表地址,傳輸次序是低在前,高在后,而且是十六進(jìn)制。
91-為從返回命令
08-共8個(gè)字節(jié)
33 33 34 33-數(shù)據(jù)塊,可以理解成寄存器地址。
A4 56 79 38-具體數(shù)據(jù),分析時(shí),應(yīng)減33,所以為:
A4-33=71
56-33=23
79-33=46
38-33=5
實(shí)際的電表數(shù)為:54623.71度