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

1 概述

 

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

 

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

 

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

2 系統(tǒng)硬件結構與特點

 

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

 

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

 

 

 

 

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

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

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

 

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

 

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

 

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

 

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

 

 

 

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

1Get 操作

 

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

2Set 操作

 

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

 

3.3 MIB 的編寫

 

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

 

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

 

 

MIB 變量名

 

含義

 

類型

 

DegreeValue

 

角度的實際值

 

 Integer

 

LengthValue

 

長度的實際值

 

 Integer

 

PressureValue

 

壓力的實際值

 

 Integer

 

UpSwitch

 

上升開關狀態(tài)

 

 Integer

 

DownSwitch

 

下降開關狀態(tài)

 

 Integer

 

LeftSwitch

 

左轉開關狀態(tài)

 

 Integer

 

RightSwitch

 

右轉開關狀態(tài)

 

 Integer

 

 

 

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

 

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

 

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

 

5 結論

 

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。