摘 要:本系統(tǒng)以HOLLiAS LM系列小型PLC為核心,采用自由口通信技術(shù),對(duì)多臺(tái)激光測(cè)距傳感器進(jìn)行監(jiān)控,實(shí)現(xiàn)了激光測(cè)距系統(tǒng)的數(shù)據(jù)采集與處理。
關(guān)鍵詞:PLC,激光測(cè)距傳感器,自由口通信
隨著激光技術(shù)的發(fā)展,激光測(cè)距傳感器在檢測(cè)領(lǐng)域得到了越來(lái)越多的應(yīng)用。本文所研究的基于HOLLiAS LM系列PLC的激光測(cè)距系統(tǒng),對(duì)多臺(tái)激光測(cè)距傳感器所采集到的數(shù)據(jù)進(jìn)行處理,并將數(shù)據(jù)傳送給上位機(jī),實(shí)現(xiàn)了對(duì)多臺(tái)激光測(cè)距傳感器的監(jiān)控。
1、激光測(cè)距傳感器的基本原理
激光測(cè)距傳感器的基本原理是,通過(guò)測(cè)量激光往返于被測(cè)目標(biāo)之間所需的時(shí)間,來(lái)確定被測(cè)目標(biāo)之間的距離。激光測(cè)距傳感器的原理和結(jié)構(gòu)都很簡(jiǎn)單,是長(zhǎng)距離檢測(cè)最有效的手段。
激光測(cè)距傳感器工作時(shí),首先由激光二極管對(duì)被測(cè)目標(biāo)發(fā)射激光脈沖。經(jīng)被測(cè)目標(biāo)反射后,激光向各方向散射。部分散射的激光返回到傳感器的接收器,被光學(xué)系統(tǒng)接收后,成像到雪崩光電二極管上。雪崩光電二極管是一種內(nèi)部具有放大功能的光學(xué)傳感器,能夠檢測(cè)極其微弱的光信號(hào)。記錄并處理激光脈沖從發(fā)射到返回所經(jīng)歷的時(shí)間,即可得到被測(cè)目標(biāo)的距離。
2、PLC控制系統(tǒng)硬件設(shè)計(jì)
基于HOLLiAS LM系列PLC的激光測(cè)距系統(tǒng)的功能結(jié)構(gòu)圖如圖1所示。系統(tǒng)通過(guò)PLC的自由口通信,接收多臺(tái)激光測(cè)距傳感器發(fā)送過(guò)來(lái)的數(shù)據(jù),根據(jù)傳感器提供的數(shù)據(jù)格式解析數(shù)據(jù)包,計(jì)算出測(cè)量的距離。系統(tǒng)的功能還包括顯示測(cè)量距離、在非正常情況下報(bào)警、與上位機(jī)進(jìn)行數(shù)據(jù)交換等。
PLC的CPU模塊選用HOLLiAS LM系列的LM3108模塊,其性能價(jià)格比很高,廣泛應(yīng)用于工業(yè)控制的各個(gè)領(lǐng)域。LM3108模塊的標(biāo)準(zhǔn)配置包括兩個(gè)串行通信接口PORT0和PORT1,其中PORT0為RS485接口,PORT1為RS232接口。采用RS232接口建立PLC與上位機(jī)的通信,實(shí)現(xiàn)PLC程序的下裝和監(jiān)控。采用RS485接口建立PLC與現(xiàn)場(chǎng)儀表的通信。
[align=center]
圖1 激光測(cè)距系統(tǒng)的功能結(jié)構(gòu)圖 [/align]
3. PLC控制系統(tǒng)軟件設(shè)計(jì)
PLC采用自由口通信方式接收激光測(cè)距傳感器的數(shù)據(jù),用%MB400~%MB411的12個(gè)字節(jié)作為通信接收寄存器,存放自由口通信方式下所接收的數(shù)據(jù)。所謂自由口通信,是指用戶可以通過(guò)設(shè)置通信模式來(lái)改變通信接口的參數(shù),以適應(yīng)不同的通信協(xié)議。在PLC程序中設(shè)定的激光測(cè)距傳感器的通信參數(shù)如表1所示。PLC控制程序采用和利時(shí)公司的編程軟件PowerPro完成,下面詳細(xì)介紹數(shù)據(jù)解析程序。其它應(yīng)用程序從略。
[align=center]
表1 激光測(cè)距傳感器的通信參數(shù)[/align]
3.1 數(shù)據(jù)解析程序的變量定義
PROGRAM PLC_PRG
VAR
SetRS485: Set_COMM2_PRMT; (* RS485自由口通信參數(shù)設(shè)置 *)
SetRS485Q: BOOL; (* RS485自由口通信參數(shù)設(shè)置標(biāo)志 *)
Receive: COMM2_RECEIVE; (* RS485自由口通信數(shù)據(jù)接收 *)
ReceiveQ: BOOL; (* RS485自由口通信數(shù)據(jù)接收標(biāo)志 *)
ReceivedData: STRING; (* 存儲(chǔ)ASCII碼數(shù)據(jù)的字符串 *)
Position1: INT; (* 起始字符的位置 *)
Position2: INT; (* 結(jié)束字符的位置 *)
ReceivedData_STRING: STRING; (* ASCII碼形式的數(shù)據(jù) *)
ReceivedData_DWORD: DWORD; (* 十六進(jìn)制形式的數(shù)據(jù) *)
END_VAR
3.2 數(shù)據(jù)解析程序的梯形圖
3.3 數(shù)據(jù)解析程序分析
PLC從激光測(cè)距傳感器接收到的數(shù)據(jù)是ASCII碼形式,所以需要將ACSII碼轉(zhuǎn)換成PLC能夠操作的十六進(jìn)制數(shù)。
首先在存儲(chǔ)ASCII碼數(shù)據(jù)的字符串ReceivedData中找到數(shù)據(jù)的起始字符“+”,并將其位置存儲(chǔ)在變量Position1中。然后再找到數(shù)據(jù)的結(jié)束字符“$R”,并將其位置存儲(chǔ)在變量Position2中。將位置Position2與位置Position1之間的字符取出,存入變量ReceivedData_STRING中,此即為數(shù)據(jù)的ASCII碼形式。最后將該ASCII碼形式的數(shù)據(jù)ReceivedData_STRING轉(zhuǎn)換位十六進(jìn)制形式的數(shù)據(jù)ReceivedData_DWORD,即完成了數(shù)據(jù)的解析。
4 . 結(jié)論
采用和利時(shí)HOLLiAS LM系列PLC作為激光測(cè)距系統(tǒng)的控制核心,可以方便地與激光測(cè)距傳感器進(jìn)行通信。實(shí)踐證明,該方案結(jié)構(gòu)簡(jiǎn)單,運(yùn)行過(guò)程穩(wěn)定可靠,實(shí)現(xiàn)了激光測(cè)距系統(tǒng)的數(shù)據(jù)采集與處理。