《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于CANbus和SNMP的起重力矩監(jiān)控系統(tǒng)
基于CANbus和SNMP的起重力矩監(jiān)控系統(tǒng)
摘要: 在工程機械的控制系統(tǒng)中,,計算機技術(shù),、網(wǎng)絡(luò)通訊技術(shù)的應(yīng)用日趨廣泛,。CAN 總線由于其數(shù)據(jù)傳輸高可靠性和高實時性的特點,,已經(jīng)成為工業(yè)現(xiàn)場數(shù)據(jù)傳輸方式的事實標準之一,,現(xiàn)已被廣泛應(yīng)用于汽車,、工業(yè)控制,、智能樓宇,、煤礦設(shè)備等各個行業(yè)的數(shù)據(jù)通訊,。CAN 總線采用短幀報文結(jié)構(gòu),,實時性好,并具有完善的數(shù)據(jù)校驗,、錯誤處理以及檢錯機制,,此外CAN 總線節(jié)點在嚴重錯誤下會自動脫離總線,對總線通訊沒有影響[1],。
Abstract:
Key words :
 

1 概述

 

在工程機械的控制系統(tǒng)中,,計算機技術(shù)、網(wǎng)絡(luò)通訊技術(shù)的應(yīng)用日趨廣泛,。CAN 總線由于其數(shù)據(jù)傳輸高可靠性和高實時性的特點,,已經(jīng)成為工業(yè)現(xiàn)場數(shù)據(jù)傳輸方式的事實標準之一,現(xiàn)已被廣泛應(yīng)用于汽車,、工業(yè)控制,、智能樓宇、煤礦設(shè)備等各個行業(yè)的數(shù)據(jù)通訊,。CAN 總線采用短幀報文結(jié)構(gòu),,實時性好,并具有完善的數(shù)據(jù)校驗,、錯誤處理以及檢錯機制,,此外CAN 總線節(jié)點在嚴重錯誤下會自動脫離總線,對總線通訊沒有影響[1],。CAN 總線網(wǎng)絡(luò)中,,數(shù)據(jù)收發(fā)、硬件檢錯均由CAN 控制器硬件完成,,大大增強了CAN 總線網(wǎng)絡(luò)的抗電磁干擾能力,,因此非常適用于對實時性、安全性要求十分嚴格的機械控制網(wǎng)絡(luò)。

 

SNMP 作為TCP/IP 協(xié)議族的一個子協(xié)議,,是IEITF 研究小組提出的網(wǎng)絡(luò)管理解決方案之一,,它作為一種簡潔而流行的網(wǎng)絡(luò)管理協(xié)議在工業(yè)界獲得了廣泛的應(yīng)用。SNMP 網(wǎng)絡(luò)管理模型中的重要組成部分包括:網(wǎng)絡(luò)管理協(xié)議,、管理端(Manager),、代理(Agent )和管理信息庫(MIB)。其管理的基本思想是,,通過管理端與代理之間的相互合作,,以分布方式執(zhí)行網(wǎng)絡(luò)管理活動[2]。管理端負責管理網(wǎng)絡(luò)中各種資源和設(shè)備,,采用輪詢(polling )或手動方式向遠程的代理發(fā)送Get(讀?。┖?/span>Set(設(shè)置)請求命令,以獲取信息或?qū)嵤┛刂?。代理駐留在設(shè)備上,,負責設(shè)備的實際管理和控制,響應(yīng)和執(zhí)行管理端的管理命令,,并且返回應(yīng)答信息,。MIB 存放被管對象資源的所有信息,管理端通過代理來讀取和設(shè)置MIB 文件中的變量值,,以實現(xiàn)對被管理設(shè)備的監(jiān)控,。每個網(wǎng)絡(luò)設(shè)備上的MIB 又由代理負責維護。SNMP 最大的優(yōu)點是協(xié)議簡潔,,可擴展性強,,只要將新的MIB 裝載在管理軟件上就可以實現(xiàn)對新的終端的控制與訪問。

 

起重力矩限制系統(tǒng)是起重機械運行中重要的安全保障裝置,,其核心在于對規(guī)定動作執(zhí)行的精確度,,這不僅有賴于傳感器和執(zhí)行器的精度,還有賴于數(shù)據(jù)采集信號和命令的執(zhí)行速度,。比如起落桿的左右轉(zhuǎn)動角度信號,,通過數(shù)據(jù)采集模塊將信號標準化,主控工控機接收到該信號后和預(yù)先設(shè)定的參數(shù)做比較,,并根據(jù)偏差指揮左轉(zhuǎn)或右轉(zhuǎn)開關(guān)動作,,并最終到位。傳統(tǒng)的起重力矩控制系統(tǒng)采用基于RS485 的信號傳輸,,其通訊波特率僅為57.6Kbps ,,系統(tǒng)穩(wěn)定性差,電動機和其他大功率設(shè)備常常影響系統(tǒng)的正常運行,。而采用CAN 總線傳輸信號則不僅提高系統(tǒng)的抗電磁干擾能力,,而且可使通訊波特率大大提高,。基于SNMP 協(xié)議的遠程通信,,傳輸距離不受限制,這相對于其他工業(yè)控制總線有不可比擬的優(yōu)勢,。本文提出的方案結(jié)合應(yīng)用CAN 總線和SNMP 協(xié)議的優(yōu)點,,構(gòu)建遠程起重力矩監(jiān)控系統(tǒng),現(xiàn)場數(shù)據(jù)傳輸速率可高達500Kbps ,,并具有硬件自動校驗和錯誤自動重發(fā)功能,。該方案可以保障可靠、實時的數(shù)據(jù)傳輸和命令執(zhí)行,,保障起重機械的安全運行,。

2 系統(tǒng)硬件結(jié)構(gòu)與特點

 

在起重機工作現(xiàn)場,通過CAN 總線實現(xiàn)對各傳感器信號的采集以及對輸出裝置的控制,,具有抗干擾能力強,、可靠性高、實時響應(yīng)性好,,線纜少易敷設(shè),、成本低等優(yōu)點。現(xiàn)場工控機與遠程監(jiān)控計算機之間的通信采用Internet 作為媒介,,使用基于SNMP 協(xié)議的遠程傳輸,,進一步拓展了CAN 總線的優(yōu)勢。

 

現(xiàn)場起重機工作的角度,、長度,、壓力等信號由各類傳感器采集,輸入iCAN 數(shù)據(jù)采集模塊,,經(jīng)過CAN 總線傳給現(xiàn)場工控機,,并存儲在駐留工控機內(nèi)的MIB 文件中,供運行在遠程監(jiān)控計算機中的管理端軟件查詢調(diào)用,。同時,,各開關(guān)的狀態(tài)變量也存儲在該MIB 文件中,根據(jù)管理端發(fā)來的設(shè)置值變更成新值,,再經(jīng)由現(xiàn)場CAN 總線網(wǎng)絡(luò)傳遞給輸出控制模塊以控制各開關(guān)的狀態(tài),,達到起重力矩遠程監(jiān)控的目的。系統(tǒng)結(jié)構(gòu)如圖1 所示,。

 

 

 

 

其中,,iCAN-4017 AI 功能模塊具有8 路模擬量輸入通道,符合CAN2.0B 協(xié)議規(guī)范,,用于采集傳感器的輸入信號,,將輸入信號經(jīng)多路開關(guān),、AD 轉(zhuǎn)換后經(jīng)光耦隔離模塊,通過CAN 總線通訊將輸入的模擬量信號傳送給現(xiàn)場工控機[3],。iCAN-2404 繼電器功能模塊有4 路具有自保持功能的繼電器輸出通道,,它在工作時,工控機通過CAN 總線將輸出的繼電器控制數(shù)據(jù)傳送給該模塊,,模塊通過光電隔離后輸出驅(qū)動繼電器,,實現(xiàn)對上升、下降,、左轉(zhuǎn),、右轉(zhuǎn)開關(guān)的控制。

3 系統(tǒng)軟件工作原理及實現(xiàn)

系統(tǒng)的軟件主要分為兩部分,,其一是為了提取和設(shè)置CANbus 現(xiàn)場總線中的據(jù),,其二是基于SNMP 協(xié)議實現(xiàn)數(shù)據(jù)的遠程通信。

 

       3.1 提取和設(shè)置現(xiàn)場總線中的數(shù)據(jù)

 

              為了對傳感器數(shù)據(jù)進行處理,,實時獲取系統(tǒng)工作狀態(tài),,并對各執(zhí)行器進行相應(yīng)的控制,我們利用iCAN 模塊附帶的函數(shù)庫在VC++開發(fā)平臺下編寫了相應(yīng)的程序來通過各iCAN 模塊采集傳感器的信號,,控制各開關(guān)的狀態(tài),。iCAN 主站函數(shù)庫以動態(tài)鏈接庫(DLL)的形式提供,內(nèi)部封裝了iCAN 協(xié)議,,屏蔽訪問控制細節(jié),,提供對現(xiàn)場總線iCAN 網(wǎng)絡(luò)中設(shè)備訪問的接口[3]。通過調(diào)用此函數(shù)庫,,可以使PC-CAN 主站卡和iCAN 從站模塊進行通訊,,完成工控機與現(xiàn)場總線上各節(jié)點設(shè)備之間的信息交換。

 

    3.2      基于SNMP 協(xié)議的通信實現(xiàn)

 

為了基于SNMP 協(xié)議在遠程監(jiān)控計算機與現(xiàn)場工控機之間進行通信,,需要開發(fā)兩部分的程序,,即管理端程序和代理程序。管理端程序運行在遠程監(jiān)控計算機中,,代理程序駐留在與現(xiàn)場CAN 總線相連的工控機上,,代理中還包括管理信息庫MIBMIB 存儲被管理對象的信息,,包括角度,、壓力數(shù)據(jù),各開關(guān)的開閉狀態(tài)等,。管理端以輪詢方式向遠程的代理發(fā)送Get(讀?。┖?/span>Set(設(shè)置)請求命令,以獲取角度,、長度和壓力信息或?qū)嵤╅_關(guān)控制,。代理將根據(jù)請求的內(nèi)容從本地 MIB 中提取所需信息,,并以響應(yīng)報文方式將結(jié)果回送給管理端。具體地,,它一方面不斷地檢查本地的狀態(tài),,更新MIB 庫中的變量值;另一方面,,循環(huán)偵聽管理端的請求報文,,并作出相應(yīng)的響應(yīng),讀取或修改 MIB 中的變量值,,將結(jié)果返回給管理端。通信交互過程如圖2 所示[4] ,。

 

 

 

 2 管理端與代理的通信交互過程

1Get 操作

 

管理端向代理發(fā)送Get 請求,,要求返回壓力、角度等數(shù)據(jù),。代理接受請求后,,對PDU 進行解析處理,并調(diào)用相應(yīng)的子功能模塊,,從MIB 文件中讀出壓力,、角度長度等變量的值,,然后代理調(diào)用編碼模塊,,將這些數(shù)據(jù)打包成相應(yīng)的PDU 發(fā)送給管理端作為對Get 請求的響應(yīng)。管理端接收到相應(yīng)數(shù)據(jù)后,,將它們與預(yù)先設(shè)定的參考值作比較,,根據(jù)實際值與設(shè)定值之間的偏差,判斷起重力矩是否超過限制,,并據(jù)此發(fā)出相應(yīng)的開關(guān)控制命令,。

2Set 操作

 

Set 請求的原理與Get 類似,不過是將某一新的值寫給相應(yīng)的變量,,而不是讀,,從而實現(xiàn)對被管理設(shè)備的控制。在該系統(tǒng)中,,管理端向代理發(fā)送Set 請求,,以設(shè)置各開關(guān)的狀態(tài)變量。代理接受請求后,,向MIB 文件中寫入各開關(guān)變量的新值,,并通過現(xiàn)場的CAN 總線傳遞給輸出控制模塊來控制上升、下降,、左轉(zhuǎn),、右轉(zhuǎn)開關(guān)的動作,。

 

3.3 MIB 的編寫

 

MIB 是有關(guān)被管理目標對象的數(shù)據(jù)庫,其數(shù)據(jù)結(jié)構(gòu)呈樹形,。本系統(tǒng)中的MIB 文件存儲了現(xiàn)場傳感器采集的各種信號以及開關(guān)的狀態(tài),,通過讀取和設(shè)置這些MIB 對象的值,管理端完成監(jiān)測和控制,。MIB 文件編寫中最關(guān)鍵的一點是確定要定義的變量,。在該系統(tǒng)的MIB 設(shè)計中定義的變量如表1 所示。

 

1 遠程起重力矩監(jiān)控系統(tǒng)MIB 變量表

 

 

MIB 變量名

 

含義

 

類型

 

DegreeValue

 

角度的實際值

 

 Integer

 

LengthValue

 

長度的實際值

 

 Integer

 

PressureValue

 

壓力的實際值

 

 Integer

 

UpSwitch

 

上升開關(guān)狀態(tài)

 

 Integer

 

DownSwitch

 

下降開關(guān)狀態(tài)

 

 Integer

 

LeftSwitch

 

左轉(zhuǎn)開關(guān)狀態(tài)

 

 Integer

 

RightSwitch

 

右轉(zhuǎn)開關(guān)狀態(tài)

 

 Integer

 

 

 

3.4 代理與管理端程序的開發(fā)

 

采用AdventNet Agent Toolkit C Edition 工具包來開發(fā)代理程序,,該工具包提供了一個廣泛而完整的開發(fā)環(huán)境,,并帶有代理信息定義編輯器、編譯器等一系列代理開發(fā)工具及測試工具,,降低了代理開發(fā)的復(fù)雜性,。所開發(fā)的代理僅占用極小的空間,卻具有較高的性能,,而且代理的擴展幾乎不會影響到應(yīng)用和設(shè)備的性能,。在編寫好MIB 文件后,依據(jù)Agent Toolkit C Edition 工具的開發(fā)流程編寫代理程序,,其主要功能是對MIB 文件進行管理,,并實現(xiàn)對網(wǎng)絡(luò)端口的偵聽,SNMP 數(shù)據(jù)報的解碼及編碼,,對管理端的請求進行處理,,以及對硬件的管理。

 

VC++.NET 開發(fā)平臺下利用NET-SNMP 開發(fā)包來編寫管理端程序,。NET-SNMP 開發(fā)包是目前最為流行的基于C++SNMP 協(xié)議開發(fā)包之一,,開發(fā)包中的SNMP 協(xié)議模塊為用戶使用SNMP 協(xié)議來構(gòu)建網(wǎng)絡(luò)管理應(yīng)用層軟件提供了良好的協(xié)議通訊的基礎(chǔ),它提供了一系列的API 函數(shù)可供開發(fā)者使用,。本系統(tǒng)的管理端程序運行在遠程監(jiān)控計算機上,,與工作現(xiàn)場工控機上駐留的代理之間進行遠程數(shù)據(jù)通信,主要完成Get Set 操作兩項任務(wù),。

 

5 結(jié)論

 

CAN 總線因其自身的諸多優(yōu)點適合于對實時性,、可靠性、安全性要求十分嚴格的機械控制網(wǎng)絡(luò),。SNMP 協(xié)議簡潔,,可擴展性強,基于SNMP 協(xié)議的網(wǎng)絡(luò)傳輸以Internet 作為媒介,,傳輸距離不受限制,,可進一步拓展CAN 總線的優(yōu)勢。本文的創(chuàng)新點在于,,結(jié)合這兩種技術(shù)的優(yōu)點,,實現(xiàn)了基于CAN 總線和SNMP 協(xié)議的起重力矩遠程監(jiān)控系統(tǒng),,該方案可以保障可靠、實時的遠程數(shù)據(jù)傳輸和命令執(zhí)行,,確保起重機械的安全運行,。項目經(jīng)濟效益達20 萬元。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。