應(yīng)用方案:
一、傳送帶上箱子寬度的激光測距傳感器的解決方案
現(xiàn)代工業(yè)上傳送帶是隨處可見的,傳送帶大大方便了自動化生產(chǎn),也大大的節(jié)約了人力資源,但是在工業(yè)生產(chǎn)中我們經(jīng)常需要知道傳送帶上箱子的寬度,用人工進行測量顯然與自動化相違背,我們可以使用激光測距傳感器進行測量,使用兩個激光傳感器,在傳送帶的兩側(cè)面對面安裝,因為尺寸變化的箱子落到傳送帶上的位置是不固定的。這樣,每個傳感器都測量出自己與箱子的距離,設(shè)一個距離為L1,一個距離為L2,此信息送給PLC,PLC將兩個傳感器間總的距離減去L1和L2,從而可計算出箱子的寬度
二、激光測距傳感器控制方案
本方案組成:
1:傳感器部分,其功能為采集有效數(shù)據(jù)?蔀榭蛻粲喿,增加其他傳感器的數(shù)據(jù)采集(如溫度、濕度、
壓力等)
2:同時數(shù)據(jù)采集器,采集多路傳感器數(shù)據(jù)(目前最大支持 4 路,如有特殊需求,可以訂做),而且具有存
儲功能,保證數(shù)據(jù)無丟失
3:數(shù)據(jù)傳輸部分,本方案采用了 GPRS 數(shù)據(jù)傳輸方式,本方式傳輸數(shù)據(jù)穩(wěn)定,不受距離限制,但速度比
較慢?蛻艨筛鶕(jù)實際要求來更換傳輸方式,如有線方式,點對點無線方式等。
本方案工作流程:
1:數(shù)據(jù)采集器,實時讀取服務(wù)器狀態(tài)(或由服務(wù)器直接發(fā)送命令給采集器,具體由數(shù)據(jù)傳輸方式而定),
根據(jù)服務(wù)器狀態(tài)指示進行連續(xù)測量和停止。
2:數(shù)據(jù)采集期間,數(shù)據(jù)只是存儲到內(nèi)部存儲器,不對數(shù)據(jù)進行傳輸。以免數(shù)據(jù)丟失。
3:當(dāng)讀取到停止?fàn)顟B(tài)時,停止傳感器工作,同時開始數(shù)據(jù)傳輸,直到數(shù)據(jù)傳輸完畢,重新進入待機狀態(tài)。
本方案特點:
1:無數(shù)據(jù)丟失現(xiàn)像,保證數(shù)據(jù)的完整性
2:如采用無線傳輸方式,則結(jié)構(gòu)簡單,安裝便。而且多路傳感器共用一個無線模塊,可降低成本,減少數(shù)
據(jù)傳輸時間。
3:如采用有線傳輸方式,則大大減少了所需布線的數(shù)量,減少了工作量,降低了成本
三、基于PLC控制器的激光測距系統(tǒng)
隨著激光技術(shù)的發(fā)展,激光測距傳感器在檢測領(lǐng)域得到了越來越多的應(yīng)用。本文所說的基于PLC的激光測距系統(tǒng),對多臺激光測距傳感器所采集到的數(shù)據(jù)進行處理,并將數(shù)據(jù)傳送給上位機,實現(xiàn)了對多臺激光測距傳感器的監(jiān)控。
PLC控制系統(tǒng)硬件設(shè)計
基于小型一體化PLC的激光測距系統(tǒng)的功能結(jié)構(gòu)圖如圖1所示。系統(tǒng)通過PLC的自由口通信,接收多臺激光測距傳感器發(fā)送過來的數(shù)據(jù),根據(jù)傳感器提供的數(shù)據(jù)格式解析數(shù)據(jù)包,計算出測量的距離。系統(tǒng)的功能還包括顯示測量距離、在非正常情況下報警、與上位機進行數(shù)據(jù)交換等。
PLC的CPU模塊選用HOLLiAS-LEC G3系列的LM3108模塊,其性能價格比很高,廣泛應(yīng)用于工業(yè)控制的各個領(lǐng)域。LM3108模塊的標(biāo)準(zhǔn)配置包括兩個串行通信接口PORT0和 PORT1,其中PORT0為RS485接口,PORT1為RS232接口。采用RS232接口建立PLC與上位機的通信,實現(xiàn)PLC程序的下裝和監(jiān)控。采用RS485接口建立PLC與現(xiàn)場儀表的通信。
PLC控制系統(tǒng)軟件設(shè)計
PLC采用自由口通信方式接收激光測距傳感器的數(shù)據(jù),用%MB400~%MB411的12個字節(jié)作為通信接收寄存器,存放自由口通信方式下所接收的 數(shù)據(jù)。所謂自由口通信,是指用戶可以通過設(shè)置通信模式來改變通信接口的參數(shù),以適應(yīng)不同的通信協(xié)議。在PLC程序中設(shè)定的激光測距傳感器的通信參數(shù)如表1 所示。 PLC控制程序采用和利時公司的編程軟件PowerPro完成,下面詳細(xì)介紹數(shù)據(jù)解析程序。其它應(yīng)用程序從略
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; (* 存儲ASCII碼數(shù)據(jù)的字符串 *)
Position1: INT; (* 起始字符的位置 *)
Position2: INT; (* 結(jié)束字符的位置 *)
ReceivedData_STRING: STRING; (* ASCII碼形式的數(shù)據(jù) *)
ReceivedData_DWORD: DWORD; (* 十六進制形式的數(shù)據(jù) *)
END_VAR
PLC從激光測距傳感器接收到的數(shù)據(jù)是ASCII碼形式,所以需要將ACSII碼轉(zhuǎn)換成PLC能夠操作的十六進制數(shù)。
首先在存儲ASCII碼數(shù)據(jù)的字符串ReceivedData中找到數(shù)據(jù)的起始字符“+”,并將其位置存儲在變量Position1中。然后再找到 數(shù)據(jù)的結(jié)束字符“$R”,并將其位置存儲在變量Position2中。將位置Position2與位置Position1之間的字符取出,存入變量 ReceivedData_STRING中,此即為數(shù)據(jù)的ASCII碼形式。最后將該ASCII碼形式的數(shù)據(jù)ReceivedData_STRING轉(zhuǎn)換 位十六進制形式的數(shù)據(jù)ReceivedData_DWORD,即完成了數(shù)據(jù)
|