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

1 概述

 

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

 

SNMP 作為TCP/IP 協(xié)議族的一個(gè)子協(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ò)管理活動(dòng)[2]。管理端負(fù)責(zé)管理網(wǎng)絡(luò)中各種資源和設(shè)備,采用輪詢(polling )或手動(dòng)方式向遠(yuǎn)程的代理發(fā)送Get(讀?。┖?/span>Set(設(shè)置)請(qǐng)求命令,以獲取信息或?qū)嵤┛刂啤4眈v留在設(shè)備上,負(fù)責(zé)設(shè)備的實(shí)際管理和控制,響應(yīng)和執(zhí)行管理端的管理命令,并且返回應(yīng)答信息。MIB 存放被管對(duì)象資源的所有信息,管理端通過代理來讀取和設(shè)置MIB 文件中的變量值,以實(shí)現(xiàn)對(duì)被管理設(shè)備的監(jiān)控。每個(gè)網(wǎng)絡(luò)設(shè)備上的MIB 又由代理負(fù)責(zé)維護(hù)。SNMP 最大的優(yōu)點(diǎn)是協(xié)議簡潔,可擴(kuò)展性強(qiáng),只要將新的MIB 裝載在管理軟件上就可以實(shí)現(xiàn)對(duì)新的終端的控制與訪問。

 

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

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

 

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

 

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

 

 

 

 

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

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

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

 

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

 

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

 

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

 

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

 

 

 

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

1Get 操作

 

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

2Set 操作

 

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

 

3.3 MIB 的編寫

 

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

 

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

 

 

MIB 變量名

 

含義

 

類型

 

DegreeValue

 

角度的實(shí)際值

 

 Integer

 

LengthValue

 

長度的實(shí)際值

 

 Integer

 

PressureValue

 

壓力的實(shí)際值

 

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

 

VC++.NET 開發(fā)平臺(tái)下利用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)的管理端程序運(yùn)行在遠(yuǎn)程監(jiān)控計(jì)算機(jī)上,與工作現(xiàn)場工控機(jī)上駐留的代理之間進(jìn)行遠(yuǎn)程數(shù)據(jù)通信,主要完成Get Set 操作兩項(xiàng)任務(wù)。

 

5 結(jié)論

 

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

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