【摘要】介紹了西門子 MM440 變頻器的 RS485 通信協(xié)議,利用 VC++6.0 中的 ActiveX 控件MSComm 實現(xiàn)了 windows下計算機與變頻器的串行通信控制。設(shè)計了一套全自動閉環(huán)控制系統(tǒng),可方便有效的通過變頻器調(diào)節(jié)
離心機的運轉(zhuǎn),發(fā)揮
離心機的功效,達到清除有害固相,回收加重材料的目的。
關(guān)鍵詞:計算機控制系統(tǒng); USS 協(xié)議; VC++;MM440 變頻器;離心機
中圖分類號:TH16 文獻標(biāo)識碼:A
在油田部門,使用變頻器去控制交流電動機的轉(zhuǎn)速、轉(zhuǎn)向,變得越來越廣泛[1 ̄2]。為了實現(xiàn)集中控制,常需要用一臺工控機或微機去控制多臺變頻器。針對這一需要各變頻器生產(chǎn)廠家推出了帶有RS-485 通信接口的變頻器,其中西門子公司生產(chǎn)的新一代多功能的 Micro-Master440 變頻器(簡稱 MM440 變頻器),因其采用高性能的矢量控制技術(shù),提供低速、高轉(zhuǎn)矩輸出和良好的動態(tài)特性,同時又具備超強的過載能力,而得到了廣泛應(yīng)用。
因此,重點闡述了要實現(xiàn)一臺計算機對多臺 MM440 變頻器[3]實現(xiàn)矢量控制,應(yīng)如何設(shè)置 MM440 變頻器,以及如何利用VC++的 MSComm控件實現(xiàn)對 MM440 變頻器集中控制,從而達到有效控制離心機的轉(zhuǎn)速,滿足油田的實際工況。
?。?nbsp;系統(tǒng)組成
為了滿足油田部門的實際工況,采取將計算機、變頻器、RS-232/485 轉(zhuǎn)換器,有效的結(jié)合的方法,來達到高效控制離心機的主輔電機,從而改變離心機的轉(zhuǎn)速。如圖1所示,計算機通過從RS-232串口取電、并能自動識別和控制數(shù)據(jù)傳輸方向的 RS-232/485轉(zhuǎn)換器,與多個 MM440 變頻器相連(最多達到 32 臺)。為了達到區(qū)分各個變頻器的目的,每個變頻器采用不同的地址碼。因此,可以清楚的發(fā)現(xiàn),這套控制系統(tǒng)可以實現(xiàn)計算機對16臺離心機的同時控制,方便有效的進行遠程計算機控制,發(fā)揮離心機最佳功用,滿足油田需要,更好的達到固相控制系統(tǒng)的完善。
2 MM440 變頻器的串行接口協(xié)議(USS)
西門子 MM440 變頻器可采用兩種串行接口:RS-232 或 RS-485。采用 RS- 232 接口時,需另選配件。當(dāng)采用 RS- 485 接口,波特率為 9600bps 時,通信距離可達 1200m,最高波特率可為115200bps,但此時通信距離大約只有 15m。
2.1 USS 報文的結(jié)構(gòu)
主站(計算機)和從站(MM440 變頻器)的報文格式如下:
各字母代表的含義:
STX:STX區(qū)表示一條信息的開始,固定為 02H。
LGE:LGE 區(qū)是一個字節(jié),指明這一條信息中后跟的字節(jié)數(shù)目。采用哪種報文長度由 MM440 變頻器的參數(shù) P2012 和 P2013來定義 PKW和 PZD的長度。一般采用固定長度 4 個字(8 個字節(jié))的 PKW區(qū)和 2 個字(4 個字節(jié))的 PZD 區(qū),再加上一個字節(jié)的 ADR 區(qū)和一個字節(jié)的 BCC 區(qū),這樣 LGE=1+8+4+1=14,即LGE 值為 0EH。
ADR:ADR 區(qū)是一個字節(jié),是每個變頻器的地址,值范圍為0 ̄31(bits:0 ̄4), 位為 1 時為廣播發(fā)送。 bit5PKW:PKW區(qū)是 8 個字節(jié),用于寫或讀變頻器參數(shù)的值。PZD:PZD區(qū)是 4 個字節(jié),用于控制或監(jiān)測變頻器的運行。
BCC: BCC區(qū)是長度為一個字節(jié)的校驗和,用于檢查該信息是否有效。它是 BCC前面所有字節(jié)“異或”運算的結(jié)果。
2.2 PKW 區(qū)
PKE:為一個 16 位的字,用來控制變頻器運行參數(shù)的設(shè)置。
bit 位:15- 12 11 10- 0
對于 Micromaster,控制位為 0001 時,讀變頻器的參數(shù);控制位為 0010 時,寫參數(shù)到變頻器的 RAM或 EEPROM。Bit1 未用,置為 0。變頻器的具體參數(shù)值可參照說明書。
IND:為一個16位的字,用于參數(shù)號的擴展和參數(shù)號的下標(biāo)。
2.3 PZD 區(qū)
主站到從站的PZD的格式如下:
從站到主站的 PZD的格式如下:
STW:為一個 16 位的控制字,用來控制變頻器的運行的動作。
HSW:為一個 16 位的字,用來表示變頻器的輸出頻率。
ZSW:為一個 16 位的字,是變頻器的狀態(tài)字,用來指示變頻器當(dāng)前的運行狀態(tài)。
HIW:為一個 16 位的字,表示變頻器的輸出頻率,其定義與HSW一樣。
變頻器接收控制的通信協(xié)議如下:
同時,變頻器發(fā)送狀態(tài)數(shù)據(jù),通信協(xié)議如下:
其中,主站到從站和從站到主站的報文格式主要區(qū)別在于PZD部分,因此接收還是發(fā)送信息見 PZD。
3 VC++6.0 下對變頻器進行串行通信控制
在 Windows 環(huán)境下,操作系統(tǒng)完全接管了各種硬件資源,不允許用戶直接控制串行口的中斷管理。以往程序員只能通過數(shù)目眾多的 API 函數(shù)來控制串口。VC++6.0 下提供了 MSComm控件。用戶可以在自己的應(yīng)用程序嵌入 MSComm 控件,利用它可以方便地進行計算機串口的通信管理。
3.1 MSComm 控件的實現(xiàn)過程
實現(xiàn)步驟如下:在當(dāng)前的 Workspace 插入 MSComm控件。Project 菜單→Add to Project→Components and Controls→Registered ActiveX Controls→選擇 Components:Microsoft Com-munications Control,version 6.0 插入當(dāng)前的 Workspace 中。結(jié)果添加了類 CMSComm(及相應(yīng)文件:mscomm.h 和 mscomm.cpp)
在軟件上,采用 Visual C++來編制程序。程序中使用串行口控件(Microsoft Communication Control6.0),通過一個簡單的對話框程序,便實現(xiàn)了對變頻器的遠程控制。程序流程圖,如圖 2所示。
3.2 初始化實現(xiàn)過程
在對話框初始化函數(shù) OnlnitDialog()中對串行口的一些參
數(shù)進行初始化的代碼。
通過編制程序,實現(xiàn)了對變頻器的啟動、運行、停止及運行時間的控制。因此,對變頻器的直接控制,間接的實現(xiàn)了對離心機的運轉(zhuǎn)的操作,這樣我們可以通過對離心機中的鉆井液與離心機性能的變化,達到對離心機轉(zhuǎn)速的合理操作,解決我們的實際需要。
4 結(jié)論
利用 VC++6.0 下的 ActiveX 控件和 MMV 變頻器 RS485 的串行通信功能,實現(xiàn)了在 Windows 環(huán)境下用計算機控制變頻器的任務(wù),并能實時檢測各變頻器的運行狀態(tài)。整個控制系統(tǒng)靈活方便,具有很大的實用性。在油田部門中,可以方便的根據(jù)離心機中鉆井液性能的變化,通過此套閉環(huán)控制系統(tǒng),有效的發(fā)揮離心機的功效,清除有害固相,回收加重材料,具有廣闊的應(yīng)用前景。