一、概述
KC1000是金凱博專為蓄電池監(jiān)控領(lǐng)域開發(fā)的新產(chǎn)品。本系統(tǒng)具有測量高、測試速度快、運(yùn)行穩(wěn)定可靠、易于操作維護(hù)等優(yōu)點。本系統(tǒng)配置靈活、定制性強(qiáng),可廣泛適用于通訊、電力以及UPS后備蓄電池的監(jiān)控等各個方面。
二、系統(tǒng)介紹
一套KC1000電池監(jiān)控系統(tǒng)包含上位機(jī)管理軟件和多條K-BUS通信控制總線。每條K-BUS包含一個通訊轉(zhuǎn)換器(KC1000A)和不多于254個監(jiān)控探頭(KC1000B)。
系統(tǒng)連接
1—待測電池
2— KC1000B電池監(jiān)控探頭
3—KC1000A通訊轉(zhuǎn)換器
4—通訊總線
將KC1000B通過K-BUS通訊總線串行連接到通訊轉(zhuǎn)換器KC1000A上,再通過KC1000A的RS232或RS485與上位機(jī)相連。本系統(tǒng)不從電池取電,確保測量和電池的安全性。
2.2 通訊轉(zhuǎn)換器KC1000A
通訊轉(zhuǎn)換器KC1000A將K-BUS通訊信號轉(zhuǎn)換為上位機(jī)能夠識別的RS232或RS485,一個轉(zhuǎn)換器多可接入254個電池監(jiān)控探頭(KC1000B)。通訊轉(zhuǎn)換器KC1000A有自己的電源系統(tǒng),并且為總線上的所有測試探頭供電。
2.3 電池監(jiān)控探頭KC1000B
電池監(jiān)控探頭KC1000B實現(xiàn)對蓄電池電參數(shù)(電壓、內(nèi)阻)和外殼溫度的監(jiān)控測量,并通過K-BUS傳送到上位機(jī)。KC1000B工作于從狀態(tài),被動接受外部命令,并執(zhí)行相應(yīng)測量動作??筛鶕?jù)運(yùn)行指示燈的閃動頻率來判斷系統(tǒng)運(yùn)行狀態(tài)。
亮 | 滅 | 狀態(tài) |
2s | 2s | 沒有ID(燈閃很慢) |
0.5s | 0.5s | 正常運(yùn)行(燈閃速普通) |
0.2s | 0.2s | 電壓或者溫度不正常(燈閃非常頻繁,緊急狀態(tài)) |
2.3.1 KC1000B功能特點
■ KC1000B可同時監(jiān)控多種電池指標(biāo)包括電池電壓,電池內(nèi)阻和電池溫度(選配)
■ 具有外部通訊接口,可通過K-BUS通訊總線連接主控設(shè)備(本產(chǎn)品為從設(shè)備)
■ 多可將254個KC1000B接入同一K-BUS,每一個探頭具有ID號
■ KC1000B不從電池上取電保證測量度和系統(tǒng)安全性
注:KC1000B不分析測量數(shù)據(jù)。
2.3.2 KC1000B校準(zhǔn)
校準(zhǔn)的數(shù)據(jù)格式如下:
$$ + id + 類型(V/T/t/N) + 空格(1個) + 實際值 + #
所有參數(shù)校正都需要兩次,下面分別說明:
a>:電壓校正:$$ 001V1 8.0 #
$$ | 001 | V | 1 | 空格(1個) | 8.0 | # |
幀頭 | 模塊Id | 電壓(大寫) | 編號 |
| 實際電壓 | 結(jié)束符 |
b>:熱端溫度校正:$$255T2 1.620#
$$ | 255 | T | 2 | 空格(1個) | 1.620 | # |
幀頭 | 對網(wǎng)內(nèi)所有ID | 熱端溫度(大寫) | 編號 |
| 實際電壓(MV) | 結(jié)束符 |
c>:冷端溫度校正:$$255t2 30.1#
$$ | 255 | t | 2 | 空格(1個) | 30.1 | # |
幀頭 | 對網(wǎng)內(nèi)所有ID | 冷端溫度 | 編號 |
| 實際溫度(攝氏度) | 結(jié)束符 |
d>:內(nèi)阻校正:$$255N2 20#
$$ | 255 | N | 2 | 空格(1個) | 20 | # |
幀頭 | 對網(wǎng)內(nèi)所有ID | 內(nèi)阻 | 編號 |
| 實際內(nèi)阻(m歐) | 結(jié)束符 |
說明:
若校正的時候使用一對一的校正方式,則id必須為被校正模塊的ID號,每個模塊收到命令后,都會返回執(zhí)行結(jié)果,非255且不是自己id的校正數(shù)據(jù),模塊會附上自己的”id err!”字樣,否則返回”id OK!”,
若需要校正使用1對多,如網(wǎng)內(nèi)連接了200個模塊,同時接了10v電壓,校正電壓的時候,id請設(shè)置為255,校正所有模塊,模塊也會如上面一樣返回執(zhí)行結(jié)果。
校正格式如上表,對于每個參數(shù)校正,除了冷端溫度外,其他的都需要使用兩個實際值進(jìn)行校正,如電壓,次用8v,第二次用3v完整校正過程。其他T/N同樣方式。舉例如下:
電壓校正:
$$ 001V1 8.0 #
$$ 001V2 3.0 #
熱端溫度校正:
$$255T1 1.620#
$$255T2 0.6#
內(nèi)阻校正:
$$255T1 1#
$$255T2 250#
2.3.3 KC1000B指標(biāo)
項目 | 范圍 | (溫度系數(shù)0.015%/℃) |
電壓 | -2V~20V | 0.5% |
溫度 | -20℃~85℃ | ±2℃ |
內(nèi)阻 | 0.05m ~250mΩ | 測量重復(fù)性±2% |
三、K-BUS通訊協(xié)議
主從控制模式:所有電池監(jiān)控探頭(KC1000B)均為從機(jī),上位機(jī)可通過廣播、點播指令發(fā)送測量命令并讀取測量結(jié)果。
3.1請求幀格式
3.1.1命令結(jié)構(gòu)
每條命令由3字節(jié)組成
Byte 1 | Byte 2 | Byte 3 |
地址/ID號 | 指令 | 校驗和 |
注:a、首先傳送的是byte1;
b、校驗和是用3個字節(jié)連續(xù)異或產(chǎn)生的。
3.1.2命令各部分解釋
1)byte 1 : 地址/ID號
總線上多可以連接254個模塊,每個模塊都被指派總線地址/ID號。這個字節(jié)指定了命令的目的地址(目標(biāo)單元ID)。
各地址分配如下:
字節(jié)1值 | 意義 |
0x00 | 發(fā)送給單元#0的命令;所有單元出廠時的默認(rèn)ID均為0 |
0x01 … … 0xFE | 發(fā)送給單元#1的命令 … … 發(fā)送給單元#254的命令 |
0xFF | 發(fā)送給所有單元(廣播模式)的命令;僅適用于特定指令 |
2)字節(jié)2:指令
這個字節(jié)指定了對應(yīng)地址單元要執(zhí)行的操作。
基本指令集:
字節(jié)2值 | 意義 |
0x40 | 測量電壓并存儲測量值 |
0x41 | 測量溫度并存儲測量值 |
0x42 | 測量內(nèi)阻并存儲測量值 |
|
|
0x20 | 傳送存儲的電壓值 |
0x21 | 傳送存儲的溫度值 |
0x22 | 傳送存儲的內(nèi)阻值 |
|
|
0x60 | 測量并傳送電壓(+存儲) |
0x61 | 測量并傳送溫度(+存儲) |
0x62 | 測量并傳送阻抗(+存儲) |
|
|
0xA0 | 指派ID |
0xFF | 軟啟動 |
|
|
0x00 .. 0xFF | 其他動作或傳送數(shù)據(jù)
|
注:為簡單起見,上表中并不是所有指令,只是一些基本指令。
3)字節(jié)3:校驗和
對字節(jié)1和字節(jié)2進(jìn)行‘逐位異或’生成校驗和。模塊必須通過對數(shù)據(jù)包內(nèi)的前兩個字節(jié)逐位異或來確認(rèn)這種校驗字節(jié)的完整性。
3.1.3 提示
1)可以同時向總線上的所有KC1000A(ID=0xFF)發(fā)送測量電壓或溫度指令(0x40或0x41)。這樣很快就能分別從每個單元收集測量值。這種方式非常有效和有用,當(dāng)電池系統(tǒng)正在放電時,它可以‘快照’全部電池狀態(tài)。不能采用廣播模式發(fā)送測量阻抗指令(0x42)。此類帶整體ID的命令會被忽略。
2) 發(fā)送測量命令后不必立即發(fā)送傳送命令。KC1000A會存儲測量值直到收到傳送請求。
3) 對于電壓和溫度測量命令,正如KC1000A開展的測量本身一樣,在短時間(小于 10 ms)內(nèi)完成,因此任何新收到的測量命令都將被存儲起來,待上一命令一完成后執(zhí)行。
4)阻抗測量從收到指令開始算起需要6 s完成。在此期間,建議不要與總線上的任何單元通信。正在測量阻抗時,任何新收到的測量命令都會終止當(dāng)前正在進(jìn)行的事務(wù),執(zhí)行新命令。在對同一KC1000A單元兩次發(fā)送阻抗測試間隔必須大于10分鐘。此外,如果出現(xiàn)以下2種情況中的任何一種,應(yīng)該避免阻抗測量:電壓大于14.4V(高電壓范圍)或低于2.5V(低電壓范圍);溫度高于120°F(49°C)。實際上,每天阻抗測量已經(jīng)足夠,因為這種參數(shù)不會迅速改變,此外,阻抗測量會導(dǎo)致局部溫度升高(所以任何在測量阻抗后馬上進(jìn)行的溫度測量都沒有意義)。此外還建議不要在電池放電后48小時以內(nèi)開展任何阻抗測量,因為這樣得到的值不準(zhǔn)確。
3.2應(yīng)答幀
3.2.1 命令格式
模塊傳送的任何響應(yīng)均是4字節(jié)包,大端格式(MSB優(yōu)先):
字節(jié)1 | 字節(jié)2 | 字節(jié)3 | 字節(jié)4 |
地址/ID | 數(shù)據(jù)A(MSB) | 數(shù)據(jù)B(LSB) | 校驗和 |
3.2.2命令各部分解釋
1)字節(jié)1 :地址/ID
單元回答總是自身ID在前。
字節(jié)1值 意義
0x00
..
..
0xFE
來自單元#0的響應(yīng)(提示:所有單元出廠時的默認(rèn)ID均為0)
..
..
來自單元#254的響應(yīng)
2)字節(jié)2、3 :數(shù)據(jù)A、B
該響應(yīng)還包括對應(yīng)測量參數(shù)(V、T或Z)的純數(shù)據(jù)返回,或者發(fā)送給主控設(shè)備的信息。
數(shù)據(jù)A的第7位為標(biāo)志位,用它表示以下狀態(tài):
CLEAR:數(shù)據(jù)包包含測量信息
SET: 數(shù)據(jù)包包含狀態(tài)信息
注意:返回數(shù)據(jù)的格式為IEEE754無符號半浮點型,因為不請求負(fù)值。它包括:1個標(biāo)志位,4個指數(shù)位(Exp),11個尾數(shù)位(man)。
2個數(shù)據(jù)字節(jié)的15個位組合如下:
數(shù)據(jù)A(字節(jié)2)
數(shù)據(jù)B(字節(jié) 3) | bit 7(MSB) | 整體標(biāo)志 |
bit 6 | Exp #3(MSB) | |
bit 5 | Exp #2 | |
bit 4 | Exp #1 | |
bit 3 | Exp #0(LSB) | |
bit 2 bit 1 bit 0 | Man #10:2^(-1)(MSB) Man #9:2^(-2) Man #8:2^(-3) | |
bit 7(MSB) bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 | Man #7:2^(-4) Man #6:2^(-5) Man #5:2^(-6) Man #4:2^(-7) Man #3:2^(-8) Man #2:2^(-9) Man #1:2^(-10) Man #0:2^(-11)(LSB) |
數(shù)據(jù)解碼法
指數(shù)是一個整數(shù),范圍 = 0 - 15 (0000,1111)
尾數(shù)是一個二進(jìn)制小數(shù),范圍 = 0.0 - <1.0 (0....0,1....1)
Man #10為MSB,值為2^(-1)
…
Man #0為LSB,值為2^(-11)
當(dāng) 1 指數(shù)14 時:值=2^(Exp-7)*1.Man
當(dāng) 指數(shù) = 0 且尾數(shù) 0 時: 值=2^(Exp-6)*0.Man
當(dāng) 指數(shù) = 0 且尾數(shù) = 0 時: 值=0
當(dāng) 指數(shù) = 15 且尾數(shù) = 0 時: 值=“無窮”
當(dāng) 指數(shù) = 15 且尾數(shù) 0 時: 值=“NaN”(不是一個數(shù))
因此,小值是0,值是255,9375
模塊采用的測量單位為:
電壓值:伏(V)
溫度值:華氏度(F)
阻抗值:毫歐(mΩ)
下面列舉了一些解碼值:
參數(shù) | 數(shù)據(jù)A,數(shù)據(jù)B | 標(biāo)志,指數(shù),尾數(shù) | 值 |
電壓 | 0x55,0xA0 | 0 1010 10110100000 | 13.625 V |
電壓 | 0x41,0x00 | 0 1000 00100000000 | 2.25 V |
溫度 | 0x69,0xD0 | 0 1101 00111010000 | 78.5 °F |
阻抗 | 0x3C,0x80 | 0 0111 10000000000 | 1.5625 mO |
模塊單元傳送的“無窮”值表示溢出測量,“NaN”值表示非常不的測量——如溫度或電壓過高時測得的阻抗值、以及距離上次阻抗測量不到10分鐘測得的新阻抗值。
收到測量命令時,模塊單元不確認(rèn)該命令。
收到傳送命令時,模塊單元傳送存儲的后指定的測量值,這個值會一直保留,直到進(jìn)行同一參數(shù)的新測量。
收到測量傳送命令時,模塊單元進(jìn)行測量并傳送測量值。
當(dāng)響應(yīng)僅包括發(fā)送給控制器的狀態(tài)信息而不包含測量值時,數(shù)據(jù)格式總是2個字節(jié),以首字節(jié)的MSB位7為標(biāo)志,SET及任何未用位被清除為0。
3) 字節(jié)4:校驗和
對字節(jié)1、字節(jié)2 和字節(jié)3‘逐位異或’生成校驗和??刂破鞅仨毻ㄟ^對數(shù)據(jù)包內(nèi)的前3個字節(jié)逐位異或來確認(rèn)這種校驗字節(jié)的完整性。
3.2.3 示例
- SEND ID(發(fā)送ID):0xA0,0x00
提醒主控設(shè)備指派ID命令。表示該單元請求發(fā)送新ID。
- ID CHANGED(ID變更):0xC0, 0xID
主控設(shè)備聽從發(fā)送新ID的響應(yīng)。新ID必須包含于響應(yīng)內(nèi)。具體來說,在發(fā)送響應(yīng)前,ID不會從舊的變成新的。
- TRANSMIT twice(傳送2次):0x90, 0x00
如果單元確定它相繼接收到2次傳送命令(同一測量類型),它不返回同一值,而是返回一個帶標(biāo)志set的狀態(tài)值(0x90 0x00),以向主控設(shè)備表明已經(jīng)完成過傳送。
- “READY” announcement(“準(zhǔn)備就緒”宣告):0x80, 0xSW
成功啟動后,單元發(fā)出“READY(準(zhǔn)備就緒)”宣告。注意:此時,系統(tǒng)控制器必須為監(jiān)聽模式。這只是對總線的未經(jīng)請求的傳送,允許和要求單元這樣做。
其目的是向OCS發(fā)送確認(rèn)消息,表明單元已經(jīng)復(fù)位,以及在系統(tǒng)安裝階段,向OCS發(fā)送信號提醒總線上出現(xiàn)新單元。
發(fā)布準(zhǔn)備就緒宣告的條件(需要符合以下條件之一):
a, 保存在非易失性存儲器內(nèi)的ID注冊值為0表示該單元未使用過/未被指派過;
b, RESET標(biāo)志的狀態(tài)為有效表示OCS請求復(fù)位。一旦接收到復(fù)位命令,模塊單元就會在執(zhí)行軟復(fù)位之前做RESET(復(fù)位)標(biāo)志。完成READY(準(zhǔn)備就緒)宣告后,該標(biāo)志變成無效的;
c, READY(準(zhǔn)備就緒)宣告包括軟件版本號、SW,代碼如下:
bits <4..0> = SWMin4 .. SWMin0:revision minor part(Min)
bits <7..5> = SWMaj2 .. SWMaj0:revision major part(Maj)
那么軟件版本號為“Maj.Min”,例如:
0x2a = 表示 1.10;0x2b = 表示 1.11。
四、上位機(jī)使用說明
上位機(jī)軟件實現(xiàn)了整個系統(tǒng)的控制和測量結(jié)果分析功能。可實現(xiàn)對多條K-BUS總線的控制。上位機(jī)軟件支持通過RS232、RS485、LAN、GPRS等多種接口實現(xiàn)系統(tǒng)通信功能。具體功能請參閱上位機(jī)軟件使用手冊。




