絕緣監(jiān)測(cè)模塊
1 概要
QGDCG-UBC 系列產(chǎn)品是用于在線監(jiān)測(cè)直流浮地系統(tǒng)正負(fù)較對(duì)地絕緣電阻值的裝置,其基于不平衡電橋原理,避免了平衡電橋在正負(fù)較同時(shí)存在接地故障無(wú)法檢測(cè)的問(wèn)題,同時(shí),本系列產(chǎn)品能夠在直流電壓大幅度變化的情況下,準(zhǔn)測(cè)量電阻值,并且測(cè)量周期短,采用自適應(yīng)調(diào)節(jié)測(cè)量時(shí)間的方法,避免正負(fù)較對(duì)地電容的影響。本系列產(chǎn)品測(cè)量條件直流系統(tǒng)為 150-1000V,電阻范圍 1KΩ~30MΩ,同時(shí)還能檢測(cè)直流電壓值,用戶可以通過(guò) RS485 通訊來(lái)實(shí)現(xiàn)測(cè)量值的獲取。模塊工作后 5 秒后,用戶可以讀取穩(wěn)定絕緣電阻值。
2 功能介紹
2.1 接線端子
2.2 指示燈
運(yùn)行:心跳指示燈,供電后頻率 1s 亮滅一次,如果常亮或長(zhǎng)滅均不正常。
通訊:正確接收到主機(jī)發(fā)送的數(shù)據(jù)后,會(huì)閃爍一次。
測(cè)量:模塊正在測(cè)量當(dāng)前系統(tǒng)絕緣阻值時(shí)常亮,一般一個(gè)測(cè)量周期常亮 5s 左右。
2.3 RS485 通訊
用戶可以通過(guò) RS485 通訊端口發(fā)送數(shù)據(jù)幀來(lái)實(shí)現(xiàn):修改波特率,控制絕緣測(cè)量開(kāi)始停止,
讀取測(cè)量結(jié)果。每幀數(shù)據(jù)發(fā)送間隔推薦大于 100ms 以上。
默認(rèn)波特率 9600bps,無(wú)效驗(yàn),8 位數(shù)據(jù),1 位停止位。支持波特率 1200、2400、4800、
9600、14400、19200、38400,支持無(wú)效驗(yàn),奇校驗(yàn),偶校驗(yàn)。
其中波特率使用通訊協(xié)議修改,校驗(yàn)位使用撥碼開(kāi)關(guān)修改。
2.4 撥碼開(kāi)關(guān)
通訊地址 撥碼開(kāi)關(guān)用來(lái)配置通訊地址,如下:
推薦 A 槍地址:10, 推薦 B 槍地址:11, 推薦 C 槍地址:12, 推薦 D 槍地址:13, 需要其他特殊地址,可以定制修改程序!
奇偶校驗(yàn) 撥碼開(kāi)關(guān)用來(lái)配置通訊奇偶校驗(yàn)位,如下:
當(dāng)撥碼開(kāi)關(guān)配置為默認(rèn)值時(shí),則直接修改通訊速率為默認(rèn)值,默認(rèn)波特率 9600bps,無(wú)效驗(yàn),8 位數(shù)據(jù),1 位停止位,并保存參數(shù),修改為默認(rèn)值 3s 后,請(qǐng)撥回需要的參數(shù)配置,不推薦一直處于默認(rèn)撥碼位置。
3 尺寸與安裝方式
4 電氣參數(shù)
系統(tǒng)直流電壓范圍:150V~1000V(在此范圍內(nèi),監(jiān)測(cè)正負(fù)較對(duì)地阻抗)
供電: 9~28VDC,3W,推薦 12v 或 24v 供電。
絕緣電阻測(cè)量范圍:1KΩ~30MΩ
準(zhǔn)度:10KΩ~500KΩ范圍內(nèi)測(cè)量誤差<10%。
環(huán)境參數(shù):
存儲(chǔ)溫度………………………………-40℃~85℃
工作溫度………………………………-40℃~70℃
濕度……………………………………85%
檢測(cè)時(shí)間間隔:>=5 秒
通訊頻率:推薦大于 100ms
5 通訊協(xié)議
5.1 協(xié)議細(xì)則和示例
表 1 主機(jī)發(fā)送給本模塊數(shù)據(jù)指令說(shuō)明
表中各部分含義:
Addr:從機(jī)地址
Fun:功能碼 01:從從機(jī)讀取數(shù)據(jù) 02:向從機(jī)寫(xiě)數(shù)據(jù)
No_data hi:此字節(jié)不操作,一般寫(xiě)入 00H 即可,具體見(jiàn)實(shí)例
Reg_data:寫(xiě)入數(shù)據(jù)地址
data hi:寫(xiě)入數(shù)據(jù)高位
data lo:寫(xiě)入數(shù)據(jù)低位
CRC hi:循環(huán)冗余校驗(yàn)高位
CRC lo:循環(huán)冗余校驗(yàn)低位
表 2 開(kāi)啟絕緣監(jiān)測(cè)(主機(jī)發(fā)送,模塊無(wú)返回應(yīng)答)
Reg_data:02H
Datalo:20H(bit5=0:絕緣監(jiān)測(cè)控制位,接地開(kāi)關(guān)閉合,模塊開(kāi)始工作)
表 2 關(guān)閉絕緣監(jiān)測(cè)(主機(jī)發(fā)送,模塊無(wú)返回應(yīng)答)
Reg_data:02H
Datalo:00H(bit5=0:絕緣監(jiān)測(cè)控制位,接地開(kāi)關(guān)斷開(kāi),模塊停止工作)
表 3 修改波特率(主機(jī)發(fā)送,模塊無(wú)返回應(yīng)答)
Reg_data:01H
Datahi Datalo = 0X0341H(波特率為 1200 bps)
Datahi Datalo = 0X01A0H(波特率為 2400bps)
Datahi Datalo = 0X00d0H(波特率為 4800bps)
Datahi Datalo = 0X0068H(波特率為 9600bps)
Datahi Datalo = 0X0045H(波特率為 14400bps)
Datahi Datalo = 0X0034H(波特率為 19200bps)
Datahi Datalo = 0X001AH(波特率為 38400bps)
注:如果奇偶校驗(yàn)撥碼開(kāi)關(guān)配置為默認(rèn)位,則直接修改為波特率為 9600,并保存參數(shù)。
表 4.1 讀取絕緣監(jiān)測(cè)數(shù)據(jù)(主機(jī)發(fā)送)
注:表中綠色數(shù)據(jù)為固定命令數(shù)據(jù)。
表 4.2 讀取絕緣監(jiān)測(cè)數(shù)據(jù)(從機(jī)模塊應(yīng)答)
data1:0x01f4 0X01F4=500,即系統(tǒng)直流電壓為 500V。
data2:0XFFFF 0XFFFF=65535,即正較接地電阻為無(wú)窮大(單位 kΩ)。
data3:0X0032 0X0032=50,即負(fù)較接地電阻阻值 50kΩ(單位 kΩ)。
Fun : 0x30
其中 bit5: 絕緣監(jiān)測(cè)工作命令狀態(tài)位
0=停止絕緣監(jiān)測(cè)工作,1=開(kāi)啟絕緣監(jiān)測(cè)工作
其中 bit4: 絕緣監(jiān)測(cè)數(shù)據(jù)讀取狀態(tài)位
0=模塊絕緣監(jiān)測(cè)沒(méi)有完成, 不建議讀取接地電阻值
1=模塊絕緣監(jiān)測(cè)已經(jīng)完成, 可以讀取接地電阻值。
注:發(fā)送開(kāi)啟絕緣監(jiān)測(cè)指令后,循環(huán)讀取 bit4 位,如果該位=1, 則
說(shuō)明本次絕緣測(cè)量已經(jīng)完成,可以讀取測(cè)量結(jié)果。一般需要 5s 以上
時(shí)間后,該位被置 1。
其他位為備用位。
5.2 CRC 函數(shù)
const unsigned char CRCHi[256]=
{
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
};
const unsigned char CRCLo[256]=
{
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40
};
unsigned short chkcrc(unsigned char *pcData,unsigned char cDataLeng)
{
unsigned int iTemp=0;
unsigned char cCRCHi = 0xFF ;
unsigned char cCRCLo = 0xFF ;
unsigned char cIndex ;
while (cDataLeng--)
{
cIndex = cCRCHi ^ *pcData++ ;
cCRCHi = cCRCLo ^ CRCHi[cIndex] ;
cCRCLo = CRCLo[cIndex] ;
}
iTemp+=cCRCHi;
iTemp<<=8;
iTemp+=cCRCLo;
return (iTemp);
}




