凌控導讀:
由于變頻器具有優(yōu)良的控制特性以及其高效節(jié)能的特點,使得變頻器近幾年在各個領域被廣泛的采用。在某些場合,需要用一臺工控機靈活地控制多臺變頻器,以達到控制交流電機的目的Win9X 在油田輸油控制系統(tǒng)中,多臺變頻器的控制問題成為關鍵,按照以往的控制方法,需要使用PLC或者控制電路板來控制變頻器Win9X 然而使用這種方法造價高、系統(tǒng)復雜、布線量大、故障率高,因此亟需一種結構簡單、造價低廉、可靠性高的系統(tǒng)來實現(xiàn)多臺變頻器的控制.
1、引言
由于變頻器具有優(yōu)良的控制特性以及其高效節(jié)能的特點,使得變頻器近幾年在各個領域被廣泛的采用三菱變頻器 在某些場合,需要用一臺工控機靈活地控制多臺變頻器,以達到控制交流電機的目的三菱變頻器 在油田輸油控制系統(tǒng)中,多臺變頻器的控制問題成為關鍵,按照以往的控制方法,需要使用PLC或者控制電路板來控制變頻器三菱變頻器 然而使用這種方法造價高、系統(tǒng)復雜、布線量大、故障率高,因此亟需一種結構簡單、造價低廉、可靠性高的系統(tǒng)來實現(xiàn)多臺變頻器的控制控制
針對這一需要,一些公司(如日本三菱、德國西門子、日本東芝等)推出了帶有RS-485通信接口的變頻器,使用戶能方便靈活地選擇變頻器的強大功能,設計各自的工業(yè)控制系統(tǒng)控制 因此,我們可以充分利用廠商提供的工業(yè)總線接口,使控制系統(tǒng)布線簡潔,穩(wěn)定可靠控制
目前,我們在利用工業(yè)總線接口開發(fā)用戶程序時,大部分都是基于DOS環(huán)境下的,隨著Windows操作系統(tǒng)的普及使得DOS單任務系統(tǒng)固有的缺陷顯得日益突出,人們越來越希望能在Windows的環(huán)境下進行工業(yè)控制。
在Windows 9X下開發(fā)工控軟件,不僅可以實現(xiàn)多任務操作,充分利用硬件資源,而且可以利用Windows 9X下豐富的開發(fā)工具,方便地生成各種菜單及友好的圖形界面,軟件產(chǎn)品質量高且開發(fā)周期短。但在Windows 9X環(huán)境下,系統(tǒng)完全接管了各種硬件資源,不允許用戶直接對系統(tǒng)硬件進行控制。如何在Windows 9X/NT環(huán)境下開發(fā)微機的底層資源,已成為當今工控業(yè)的一個值得探討的課題。
本文以三菱FR-A500變頻器的串行通信為例,利用Visual Basic 6.0的ActiveX控件—Microsoft Communication控件,通過對變頻器串行通信協(xié)議的分析,解決了Windows 9X環(huán)境下與多個變頻器的串行通信, 成功地實現(xiàn)了用單臺工控PC機對多臺交流異步電機的靈活控制,從而在Windows9X環(huán)境下如何實現(xiàn)串行通信的問題上作了有益的嘗試。
2 、油田輸油控制系統(tǒng)的簡介
由于多臺變頻器的控制技術是油田輸油控制系統(tǒng)中的關鍵,所以有必要簡單介紹一下本控制系統(tǒng)的概況。
油田輸油控制系統(tǒng)主要有以下幾部分構成,圖1所示:
1. 中央控制器,主要一臺工控計算機及其通信模塊構成,它主要負責發(fā)送控制指令及控制參數(shù),并根據(jù)現(xiàn)場返回的工況數(shù)據(jù)調整控制參數(shù);
2. 監(jiān)控信號和管道反饋信號由RS—485總線連接到中央控制器;
3. 泵站1~n主要油泵、變頻器、通信適配器、管道傳感器等構成;
控制系統(tǒng)的通信原理
根據(jù)油田輸油控制系統(tǒng)的要求,我們給出了通信原理框圖(圖2),這里只重點突出工控PC機與變頻器RS—485的接口部分。RS—485的驅動器可帶32個接收器,在波特率為100Kbit/s時,通信距離可達到1200m; 通信距離為15m時,波特率可達10Mbit/s。在工業(yè)現(xiàn)場,RS-485是應用較多的一種通信方式。
圖2 中工控PC機通過RS-232C—RS-485轉換器與多個變頻器相連接,最多可達到32臺。每個變頻器被賦予各自的地址碼用以識別身份,這樣,上位機便能通過RS-485通信線,對掛在上面的所有變頻器進行控制操作。
變頻器的串行口通信協(xié)議分析
通過對油田輸油控制系統(tǒng)的結構設計,以及對三菱FR-A500變頻器原理及通信方式的研究,我們發(fā)現(xiàn)三菱FR-A500變頻器的通信方式為異步半雙工RS—485協(xié)議;波特率19200bit/s,9600bit/s,4800bit/s 可選;ASCII 7或8位數(shù)據(jù)位可選;1位奇偶校驗可選;1或2位停止位可選。其通信協(xié)議的數(shù)據(jù)格式有十種,分別為: A,A’,B,C,D,E,E’,F(xiàn),G,H;
下面以格式A為例簡要說明一下變頻器通信協(xié)議:
格式A的功能是變頻器運行頻率、運行參數(shù)的寫入和復位變頻器,其結構如下:
*1 ENQ——表示控制代碼,它有以下幾種:(括號內為ASCII碼) STX (H02) 正文數(shù)據(jù)開始;ETX (H03) 正文數(shù)據(jù)結束;ENQ (H05) 通信請求; ACK (H06) 應答無數(shù)據(jù)錯誤;LF (H0A) 換行;CR (H0D) 回車; NAK (H15) 應答發(fā)現(xiàn)數(shù)據(jù)錯誤;
*2變頻器站號——可用十六進制數(shù)在H00和H1F(站號0 至31 )間設定;
*3指令代碼——由計算機發(fā)給變頻器,指明程序要求(如:監(jiān)視、運行等);
*4等待時間——規(guī)定變頻器收到從計算機來的數(shù)據(jù)和傳輸應答數(shù)據(jù)之間的等待時間。根據(jù)計算機的響應時間在0和150ms之間設定,最小設定單位10ms。
*5數(shù)據(jù)——表示計算機與變頻器之間傳輸?shù)臄?shù)據(jù),如:頻率、參數(shù)等;
*6總合校驗——由被校驗的ASCII碼數(shù)據(jù)的總和(二進制)的最低一個字節(jié)表示的2個ASCII數(shù)字(十六進制)。
*7表示CR(回車)、LF(換行)代碼。
與格式A相對應的數(shù)據(jù)格式有C和D;若用戶程序通信請求以格式A發(fā)送到變頻器的數(shù)據(jù)被變頻器接受,則變頻器以格式C形式的數(shù)據(jù)返回給計算機;若變頻器發(fā)現(xiàn)計算機發(fā)送的數(shù)據(jù)有誤,則變頻器以格式D形式的數(shù)據(jù)返回給計算機。
數(shù)據(jù)格式C和D分別如下:
其他的數(shù)據(jù)格式的功能如下:格式A’ 用于運行指令的寫入,其對應的應答數(shù)據(jù)格式為格式C和格式D;格式 B用于監(jiān)視變頻器的運行參數(shù)(頻率、電壓、電流、轉速)及讀出變頻器的系統(tǒng)參數(shù),其對應的應答數(shù)據(jù)格式為E、E’、F、G、H。
一般情況下,變頻器通過操作面板(PU)來設置變頻器參數(shù),一旦參數(shù)設定好了,就不能改變,這樣很難通過現(xiàn)場信號進行實時的控制。通過以上對變頻器通信協(xié)議的分析,考慮用軟件來實現(xiàn)工控機與變頻器的串行通信,利用軟件可以靈活的實現(xiàn)系統(tǒng)所需的各種功能而不必改動現(xiàn)場的硬件電路,而且RS-485通信線最多能同時控制32臺變頻器,同時,各變頻器的運行狀態(tài)也能實時地回送給上位機。
5 控制系統(tǒng)通信控制軟件設計
5.1串口通信程序設計方法
基于對系統(tǒng)結構和變頻器串口通信協(xié)議的分析,必須對工控計算機的串行口進行編程。在DOS的操作系統(tǒng)下,計算機所有的硬件對編程人員是透明的,因此比較容易進行內存管理和硬件中斷管理,所以程序的響應速度快。但是,DOS是單任務操作系統(tǒng),對硬件資源浪費嚴重,并且在進行圖形界面編程時其難度和任務量都遠遠超過了對硬件部分的編程。因此我們采用Windows 9X操作系統(tǒng)和基于此平臺的開發(fā)軟件來編寫控制系統(tǒng)軟件。
在Windows 9X環(huán)境下,操作系統(tǒng)完全接管了各種硬件資源, 不允許用戶程序直接讀寫硬件端口和進行中斷管理。所以早期的程序員只能通過數(shù)目眾多的API函數(shù)來控制端口,使用起來很不方便。
本系統(tǒng)利用VB6.0下提供了一個ActiveX控件(Microsoft Communication控件, 簡稱MSComm 控件)來實現(xiàn)串行口的通信設計。通過在應用程序中嵌入MSComm控件的方式,進行計算機串口的通信管理,下面簡要介紹一下MSComm控件的功能:
MSComm 6.0控件可以實現(xiàn)數(shù)據(jù)緩沖區(qū)的管理,Input (從緩沖區(qū)讀取接收數(shù)據(jù))的數(shù)據(jù)類型為Variant,從緩沖區(qū)讀取數(shù)據(jù)的格式為字符串格式(Text)或二進制格式(Binary)。
MSComm控件提供的具體功能如表1:
其中串口號(CommPort)設置為1、2 … n等表示COM1、COM2 … COMn。參數(shù)設置(Settings)的格式為“BBBB,P,D,S”,BBBB表示波特率,P表示奇偶校驗(N:無校驗,E:偶校驗,O:奇校驗),D表示字節(jié)有效位數(shù),S表示停止位數(shù)。串口狀態(tài)(PortOpen)為BOOL變量,TRUE表示打開串口,F(xiàn)ALSE表示關閉串口。InputMode使程序能方便地選擇從緩沖區(qū)讀取數(shù)據(jù)的格式,設置為0時,為字符串格式(Text),設置為1時,為二進制格式(Binary)。InputLen設置或返回的是用Input從緩沖區(qū)讀字符串時每次讀出的字符個數(shù),這個性質對于讀出數(shù)據(jù)塊中定長數(shù)據(jù)串非常有用。
InBufferCount和OutBufferCount用于串口的查詢方式。對于較復雜的通信任務,可通過Com9Xvent處理串口的事件,當相應事件或串口錯誤事件發(fā)生時,系統(tǒng)會激活OnComm事件,在OnComm中添加用戶的處理代碼,則可實現(xiàn)類似DOS中斷的串口處理程序。
5.2變頻器串口通信軟件結構
為了用該控件控制一個串口進行通信操作,還必須在應用程序中插入該控件。為此,將MSComm控件插入到程序的某個對話框,并為這個控件對象命名為MSComm1,則程序中對串口的各種操作都可通過對象MSComm1來實現(xiàn)。
下面是串口控制子程序的流程圖:
6 結束語
本文利用Win9X下的ActiveX控件和三菱變頻器RS-485的串行通信功能,成功實現(xiàn)了在Win9X環(huán)境下單臺IPC機對多臺三菱變頻器的控制,并能實時檢測各變頻器的運行狀態(tài)。整個控制系統(tǒng)靈活方便,具有很大的實用性。本文在Win9X下多臺變頻器控制的設計方案及軟件實現(xiàn)為此類問題的解決作了很好的嘗試與探索。與DOS方式的控制相比,具有開發(fā)周期短、充分利用硬件資源、軟件界面美觀等優(yōu)點。但由于Win9X是多任務分時操作系統(tǒng),所以該系統(tǒng)不能做到強實時控制,這是今后有待改進的地方。