基于數(shù)字傾角傳感器的線路電子檢測(cè)尺工作原理及硬件設(shè)計(jì)
線路道岔電子檢測(cè)尺的使用
在使用線路道岔電子檢測(cè)尺進(jìn)行測(cè)量時(shí),線路道岔電子檢測(cè)尺的左端緊挨著鋼軌的一側(cè),另一端用螺旋器移動(dòng)中心軸使之接觸鋼軌另一側(cè),按下鍵盤上的確認(rèn)鍵后,該系統(tǒng)便會(huì)很精確地將需要的數(shù)據(jù)測(cè)量出來。測(cè)量完成后按下保存鍵便可保存該點(diǎn)的數(shù)據(jù)。通過RS232與PC機(jī)連接后可獲取所測(cè)量點(diǎn)的所有信息。
抗震動(dòng)、防沖擊的結(jié)構(gòu)設(shè)計(jì)
由于線路道岔電子檢測(cè)尺輕巧便攜,因此也很容易產(chǎn)生碰撞、跌落。為了讓系統(tǒng)可靠地工作,應(yīng)避免震動(dòng)、沖擊直接作用到傳感元件上,因此在設(shè)計(jì)結(jié)構(gòu)上采取了金屬盒裝的結(jié)構(gòu)。將控制裝置緊固安裝在金屬盒內(nèi),僅留外部接口、液晶顯示屏和鍵盤在金屬盒外,避免內(nèi)部元件直接受外部沖擊、碰撞,提高了器件抗沖擊能力。
系統(tǒng)的編程
采用Silicon Laboratories IDE集成編輯、編譯、仿真、下載軟件包,用C語言進(jìn)行軟件編寫。系統(tǒng)通電后,首先要對(duì)單片機(jī)進(jìn)行初始化,包括單片機(jī)的I/O端口和交叉開關(guān)、定時(shí)器的初始化、兩個(gè)串行通訊口的初始化,液晶顯示器的初試化等。整個(gè)程序由器件初始化程序、液晶顯示器的初試化程序、串行口中斷程序、外部中斷0處理程序、顯示程序、鍵盤掃描處理程序、軌距和水平計(jì)算程序程序、萬年歷時(shí)鐘芯片DS1302讀寫程序、EEPROM AT24C512讀寫程序等組成。
部分源代碼程序如下:
位移測(cè)量傳感器過零信號(hào)中斷入口程序
void Init0_ISR() interrupt 0 // 外部中斷0,邊沿觸發(fā)
{
uchar distance_flag; //位移測(cè)量傳感器運(yùn)動(dòng)方向標(biāo)志保存字
SFRPAGE=0x01;
TMR3H=0; //過零點(diǎn),復(fù)位計(jì)數(shù)器為零.
TMR3L=0;
P05=1;
distance_flag=P0;
distance_flag=distance_flag0x20; //位移測(cè)量傳感器B信號(hào)腳
if(distance_flag==0)
{
distance_positive_flag=0;//位移測(cè)量傳感器運(yùn)動(dòng)方向標(biāo)志位為0表示負(fù)方向運(yùn)動(dòng)
}
else
{
distance_positive_flag=1; //位移測(cè)量傳感器運(yùn)動(dòng)方向標(biāo)志位為1表示正方向運(yùn)動(dòng)
}
}
向數(shù)字傾角(角度)傳感器發(fā)送命令子程序
void sendserial(unsigned char *senddata,unsigned char len2)
{
uchar i;
ES0=0; //禁止中斷 for(i=0;i
{
SFRPAGE=0x00;
SBUF0=*(senddata+i); //將數(shù)據(jù)送出
while(TI0==0); //發(fā)送標(biāo)志位是否產(chǎn)生
TI0=0;
}
ES0=1; //允許中斷
}
結(jié)語
線路道岔電子檢測(cè)尺從方案的調(diào)研、論證和選取及電路的設(shè)計(jì)、軟件的控制等各個(gè)環(huán)節(jié),都充分考慮外界環(huán)境的各種可能的情況,對(duì)鋼軌軌距、水平度實(shí)現(xiàn)了高精確數(shù)字化測(cè)量,可以起到提前排除因軌道變化引起的行車安全隱患。該裝置的準(zhǔn)確性和高速測(cè)量提高了鐵路的安全性,并降低了員工的勞動(dòng)強(qiáng)度。
評(píng)論