新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Win9X平臺下通過RS485通信實現多臺三菱變頻器控制

        Win9X平臺下通過RS485通信實現多臺三菱變頻器控制

        作者: 時間:2016-12-21 來源:網絡 收藏

        數據格式C和D分別如下:

        *1 ACK*2變頻器站*7

        *1 ACK*2變頻器站*5錯誤代碼*7

        其他的數據格式的功能如下:格式A’ 用于運行指令的寫入,其對應的應答數據格式為格式C和格式D;格式 B用于監視變頻器的運行參數(頻率、電壓、電流、轉速)及讀出變頻器的系統參數,其對應的應答數據格式為E、E’、F、G、H。

        一般情況下,變頻器通過操作面板(PU)來設置變頻器參數,一旦參數設定好了,就不能改變,這樣很難通過現場信號進行實時的控制。通過以上對變頻器通信協議的分析,考慮用軟件來實現工控機與變頻器的串行通信,利用軟件可以靈活的實現系統所需的各種功能而不必改動現場的硬件電路,而且RS-485通信線最多能同時控制32臺變頻器,同時,各變頻器的運行狀態也能實時地回送給上位機。

        5 控制系統通信控制軟件設計

        5.1串口通信程序設計方法

        基于對系統結構和變頻器串口通信協議的分析,必須對工控計算機的串行口進行編程。在DOS的操作系統下,計算機所有的硬件對編程人員是透明的,因此比較容易進行內存管理和硬件中斷管理,所以程序的響應速度快。但是,DOS是單任務操作系統,對硬件資源浪費嚴重,并且在進行圖形界面編程時其難度和任務量都遠遠超過了對硬件部分的編程。因此我們采用Windows 9X操作系統和基于此平臺的開發軟件來編寫控制系統軟件。

        在Windows 9X環境下,操作系統完全接管了各種硬件資源, 不允許用戶程序直接讀寫硬件端口和進行中斷管理。所以早期的程序員只能通過數目眾多的API函數來控制端口,使用起來很不方便。

        本系統利用VB6.0下提供了一個ActiveX控件(Microsoft Communication控件, 簡稱MSComm 控件)來實現串行口的通信設計。通過在應用程序中嵌入MSComm控件的方式,進行計算機串口的通信管理,下面簡要介紹一下MSComm控件的功能:

        MSComm 6.0控件可以實現數據緩沖區的管理,Input (從緩沖區讀取接收數據)的數據類型為Variant,從緩沖區讀取數據的格式為字符串格式(Text)或二進制格式(Binary)。

        MSComm控件提供的具體功能如表1:

        屬性/事件功能類型
        CommPort設置串口號Integer
        Settings設置串口通信參數String
        PortOpen設置或返回通信口的狀態BOOL
        InputMode設置從緩沖區讀取數據的格式Integer
        Input從接收緩沖區讀取數據Variant
        Output向發送緩沖區寫入數據Variant
        InBufferSize接收緩沖區的大小Integer
        InpbfferCount接收緩沖區的字節數Integer
        OutbufferSize接收緩沖區的大小Integer
        InpbfferCount接收緩沖區的字節數Integer
        inputLen設置或返回input每次讀出的字節數Integer
        Commevent串口事件Integer

        其中串口號(CommPort)設置為1、2 … n等表示COM1、COM2 … COMn。參數設置(Settings)的格式為“BBBB,P,D,S”,BBBB表示波特率,P表示奇偶校驗(N:無校驗,E:偶校驗,O:奇校驗),D表示字節有效位數,S表示停止位數。串口狀態(PortOpen)為BOOL變量,TRUE表示打開串口,FALSE表示關閉串口。InputMode使程序能方便地選擇從緩沖區讀取數據的格式,設置為0時,為字符串格式(Text),設置為1時,為二進制格式(Binary)。InputLen設置或返回的是用Input從緩沖區讀字符串時每次讀出的字符個數,這個性質對于讀出數據塊中定長數據串非常有用。

        InBufferCount和OutBufferCount用于串口的查詢方式。對于較復雜的通信任務,可通過Com9Xvent處理串口的事件,當相應事件或串口錯誤事件發生時,系統會激活OnComm事件,在OnComm中添加用戶的處理代碼,則可實現類似DOS中斷的串口處理程序。

        5.2變頻器串口通信軟件結構

        為了用該控件控制一個串口進行通信操作,還必須在應用程序中插入該控件。為此,將MSComm控件插入到程序的某個對話框,并為這個控件對象命名為MSComm1,則程序中對串口的各種操作都可通過對象MSComm1來實現。

        下面是串口控制子程序的流程圖:

        6 結束語

        本文利用Win9X下的ActiveX控件和三菱變頻器RS-485的串行通信功能,成功實現了在Win9X環境下單臺IPC機對多臺三菱變頻器的控制,并能實時檢測各變頻器的運行狀態。整個控制系統靈活方便,具有很大的實用性。本文在Win9X下多臺變頻器控制的設計方案及軟件實現為此類問題的解決作了很好的嘗試與探索。與DOS方式的控制相比,具有開發周期短、充分利用硬件資源、軟件界面美觀等優點。但由于Win9X是多任務分時操作系統,所以該系統不能做到強實時控制,這是今后有待改進的地方。


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 仁化县| 泌阳县| 读书| 陈巴尔虎旗| 马尔康县| 谷城县| 乌什县| 开平市| 独山县| 抚宁县| 金华市| 桓台县| 宣汉县| 平乐县| 丘北县| 鄯善县| 工布江达县| 铜山县| 阳信县| 兴业县| 赤水市| 颍上县| 阜新市| 图木舒克市| 南汇区| 浦江县| 张北县| 玉林市| 通州市| 昌宁县| 龙海市| 百色市| 塔河县| 天全县| 博野县| 鸡西市| 县级市| 台东市| 高碑店市| 新邵县| 开封市|