DL/T645規(guī)約是針對電表通信而制定的通信協(xié)議,主要有兩個版本,分別是DL/T645-1997和DL/T645-2007,2007版是要替代97版的通信協(xié)議的,但是目前很多廠家的電表是支持這兩種通信協(xié)議的,目前新表主流還是07版的,下面就解析這種通信協(xié)議:
DL/T645-07:
注意事項(xiàng):
(1)前導(dǎo)字節(jié)-一般在傳輸幀信息前,都要有0~4個FE不等,所以這里要注意,對于主站來說,直接發(fā)送4個FE作為前導(dǎo)字節(jié)即可。而從站回復(fù),就不一定了,根據(jù)廠家不同而不同,有沒有FE的,也有4個FE的。
(2)傳輸次序-所有的數(shù)據(jù)項(xiàng)都是先傳低字節(jié),再傳高字節(jié),這里的數(shù)據(jù)項(xiàng),主要涉及到地址域和數(shù)據(jù)域,因?yàn)槠渌际?個字節(jié)。
(3)差錯控制-通信偶校驗(yàn)。
(4)數(shù)據(jù)與傳輸運(yùn)算方式:主站加0x33,從站減0x33。
電表的數(shù)據(jù)參數(shù)有很多,而我們經(jīng)常使用的就兩種,讀表地址和讀當(dāng)前正向有功總電量(耗電量)
1、讀表地址
雖然電表出廠的地址已經(jīng)在標(biāo)牌上了,8位數(shù),而且,他們都是 BCD碼,不是十進(jìn)制。
這個表的出廠地址為:8866126775,雖然在協(xié)議里,表是6個字節(jié),補(bǔ)0即可。
但是有些表是被改過地址的,為了讀準(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算是讀表地址專用地址,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ù)域長度為4
33 33 34 33-這里真實(shí)的含義應(yīng)該是想讀 00 00 01 00,因?yàn)榧恿?x33 ,而
所以,傳輸次序-低在前,高在后,然后再加0x33,就是33 33 34 33了。
返回數(shù)據(jù):68 75 67 12 66 88 00 68 91 08 33 33 34 33 A4 56 79 38 F5 16
注意,這里面沒有前導(dǎo)字節(jié)FE,并不代表所有的電表廠家都沒有,而且還是不固定的,所以一定小心寫程序,因?yàn)椴煌瑥S家電表回的前導(dǎo)字節(jié)個數(shù)不一樣。
其中:75 67 12 66 88 00 是表地址,傳輸次序是低在前,高在后,而且是十六進(jìn)制。
91-為從返回命令
08-共8個字節(jié)
33 33 34 33-數(shù)據(jù)塊,可以理解成寄存器地址。
A4 56 79 38-具體數(shù)據(jù),分析時,應(yīng)減33,所以為:
A4-33=71
56-33=23
79-33=46
38-33=5
實(shí)際的電表數(shù)為:54623.71度