《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 數控變頻器的研究與實現

數控變頻器的研究與實現

2015-05-17
作者:曾文龍,李曉龍,胡慶生
來源:2014年微型機與應用第10期

  摘  要變頻器控制在工業自動化領域有著廣泛的應用,其主要目標是控制電機的運行狀態。根據目前控制系統的發展趨勢,使用Visual C++的MFC類編寫串口程序,以ModBus為通信協議,經RS-232轉RS-485電路,實現利用上位機對臺達變頻器VFD-M的所有參數進行設置,使對變頻器的實時控制成為現實,最終實現面向現場的自動化控制。

  關鍵詞: 變頻器;Visual C++;ModBus協議;串行通信

  傳統電機采用分立元件的模擬電路控制,但由于控制電路安裝難、功耗高、安全性低,以及交流電機無級調速的需求和傳統的直流調速技術的限制,工業領域中變頻器技術逐漸實用化并投入市場應用。變頻器具有過流、過壓、過載保護、可控調速、降低線路電壓波動、轉矩極限可調、停止方式可控、逆轉禁止、高效利用能源等眾多功能。此外,變頻器還集成分級加減速和經典PID等算法,使得復雜的調速控制簡單化。因此在自動化領域,特別是在機電一體化系統中,變頻器扮演者重要角色。

  一般變頻器具有兩種控制方式:控制面板控制方式和串行通信數據控制方式。控制面板控制方式利用變頻器自帶控制面板進行手動操控,一般應用于非自動控制場合。在自動化程度越來越高的工業生產現場以及機電一體化的數控設備中,人工操作基本是不可行的。為此,本文采用串行通信數據控制方式,設計了基于Visual C++的變頻器上位機控制系統,用來建立與變頻器之間的串行通信。該系統具有控制界面直觀、操作簡單、控制內容齊全等優點。通過RS-232/485串行通信方式直接控制變頻器,實現現場交流電機的自動化控制,進而實現“控制-檢測-調節-再控制”的閉環控制系統。這是一條可行、高效的技術路線。

  1 變頻器數字控制方式

  1.1 變頻器的數字控制的軟硬件基礎

  本文選用臺達VFD-M變頻器為控制對象,使用Visual C++的MFC類編寫串口程序,以ModBus為通信協議,經RS-232轉RS-485電路,最終實現利用上位機對臺達變頻器VFD-M的所有參數的設置,實現對變頻器的實時控制。根據變頻器的通信地址,操作人員可以在上位機上設置多臺變頻器的參數,以實現對變頻器運行的實時控制。其可視化界面美觀、實用,操作簡潔。

  1.2 變頻器命令代碼控制方式

  在眾多的通信協議中,由Modicon公司設計的ModBus通信協議已經成為一個通用工業標準,據此不同廠商生產的控制設備可以連成工業網絡,實現集中監控[1]。通過此協議,控制器之間、控制器與其他設備之間可以實現信息交換。使用該通信方式無需附加任何費用,是最為廉價、實用且開放的串行通信方式。本文以RS-485標準構建硬件橋梁,在其上使用ModBus通信協議實現計算機與變頻器通信,進而實施控制。在實際的應用中,只需按照變頻器規定的通信數據結構、控制字和協議格式發送數據即可實現計算機與變頻器的通信。以臺達變頻器VFD-M為例,采用ModBus ASCII通信協議的運轉、停止、正轉、反轉代碼指令分別為:“:010620000002-

  D7\r\n”、“:010620000001D8\r\n”、“:010620000010C9\r\n”、“:010620000020B9\r\n”。只要將這些控制代碼傳送給變頻器,即可令變頻器執行相應功能,控制電機運轉。

  2 Visual C++串行通信實現

  2.1 Visual C++與MFC簡介

  Visual C++是微軟公司推出的在Win32環境下運行的面向對象可視化集成編譯系統的開發程序。MFC是微軟生產的名為Microsoft Foundation Classes(微軟基礎類)的C++類集的縮寫形式,它提供面向對象框架,程序開發人員可以使用這一框架創建Windows應用程序,并且MFC按照C++類的層次形式結合在一起,幾個高層類提供一般功能,而低層類實現更具體的行為,每一個低層次類都是從高層類中派生出來的,因此繼承了高層類的行為[2]。

  MFC是一個微軟公司提供的類庫,以C++類的形式封裝了Windows的API,并且包含一個應用程序框架,以減少開發人員開發應用程序的工作量。其中MFC類中包含了大量窗口句柄封裝類、Windows自帶的控件和組件的封裝類。MFC類(或者其派生類)、組件的封裝類是MFC應用程序的總體結構。MFC 提供了MFC AppWizard 自動生成框架(用MFC編寫的程序絕大部分都能在Windows中完美運行)。

  實際上,MFC是微軟提供的用于在C++環境下編寫應用程序的一個框架和引擎。VC++是Windows下開發人員使用的專業C++ SDK(Standard Software Develop Kit,專業軟件開發平臺),MFC就是掛在其上的一個輔助軟件開發包。

  C++和VC++的區別在于C++是一種程序設計語言,是一種完全兼容C語言的軟件編制的通用規范;而VC++只是一個編譯器、開發工具,或者說是一種集成的應用程序開發平臺。

  2.2 Cserial類與ActiveX控件MSComm對比

  MSComm控件(Microsoft Communication Control)建立在ActiveX基礎之上,幾乎覆蓋了對串口編程接口的所有封裝,其最大的好處是技術本身的跨語言特性,即凡是支持ActiveX控件操作的程序設計語言均可使用,例如Visual C++、Visual Basic、Visual FoxPro等。.NET平臺語言也同樣支持ActiveX,因此,MSComm幾乎成了這些不能直接操作系統資源的語言平臺上可以進行串口通信的為數不多的方法之一。

  但是,在Visual C++中使用MSComm,要比在Visual Basic等語言環境中復雜得多。使用MSComm就要理解COM模型特殊的變量,COM并不是簡單的類封裝,而是要通過各種復雜的接口和數據轉換的過程,才能將對控件的操作轉化為最終對Windows API的調用。使用基于MSComm的串口通信程序,可能存在隨著通信數據量的加大,整個程序所占內存數量上升的情況,而主程序對此無能為力。除此之外,MSComm控件依賴于消息循環,在一般情況下需要有對話框作為宿主,這使得編寫一個使用串口的后臺服務幾乎成為不可能的事。

  Cserial類的優點在于它的開放性,即所有的功能均以源代碼提供,開發者不僅可以直接在工程中使用這些代碼,而且可以根據項目規劃將其編譯成靜態庫、動態庫,還可以在原有的基礎上進行改造[3]。因此本文使用Cserial 類控制串口。

  2.3 使用Cserial類控制串口

  Cserial一共有7個文件,作用如下:

  (1)Serial.cpp和Serial.h是基礎類包裝,定義并實現Cserial類。

  (2)SerialEx.h和SerialEx.cpp定義并實現繼承于Cserial類的CserialEx類,這個類為Windows的消息傳遞進行了特別的優化,適合于使用SDK編寫的圖形界面程序。

  (3)SerialMFC.h、SerialWnd.h和SerialWnd.cpp 3個文件實現了進一步的包裝,便于在MFC中使用Cserial[4]。

  例如串口的打開、設置、讀、寫、關閉函數分別為:

  m_port.Open();

  m_port.SetUp();

  m_port.Write();

  m_port.Read();

  m_port.Close();

  如寫運轉指令:m_port.Write(":010620000002D7\r\n");。

  3 總體方案設計

  3.1 總體方案結構

  變頻器的串行通信系統結構圖如圖1所示。

001.jpg

  3.2 控制界面設計

  本文設計的系統所要實現的基本功能是控制變頻器輸出,使電機能正轉、反轉、加速和減速。為了使軟件有更好的兼容性能,附加了串口配置模塊。同時為方便操作員使用,還增加了變頻器在STOP模式下的預設模塊,并以視圖化形式呈現出來,用來完成對一些常用函數的設置。系統控制界面如圖2所示。

002.jpg

  3.3 串行通信的編程實現

  (1)創建基于對話框的項目

  ①進入Visual C++編程環境,選擇“File/New”菜單命令,打開新建項目工作區,選擇“Project”標簽下的“MFC AppWizard[exe]”選項,在“Project Name”編輯框中輸入應用程序項目的名稱“數據控制變頻器的研究與實現”,在“Location”編輯框中輸入相應的文件名和文件路徑,單擊“OK”按鈕。

  ②在MFC AppWizard-Step1向導頁上選擇基于對話框的選項(Dialog base),后面其他的向導頁都采用默認設置值并確定。

  (2)調整對話框屬性

  ①按“Alt+Enter”組合鍵,彈出“Dialog Properties”對話框。

  ②設置ID和標題,其他保持默認設置,如圖3所示。

003.jpg

  (3)給對話框添加控件

  將控件工具欄中的控件按鈕拖到對話框模板上合適的位置。

  (4)根據需要對控件的屬性進行設置,如表1所示的對正轉按鈕的設置。

005.jpg

  (5)添加消息映像

  在Windows的使用控件編程中,必須事先設定對話框中各控件的消息處理方式,這樣,用戶才可以向控件發送消息來完成指定的任務,或根據控件產生的消息執行相應的程序代碼。為控件添加消息的一般步驟如下。

  ①打開“MFC ClassWizard”對話框,按“Ctrl+W”組合鍵,如圖4所示。

004.jpg

  ②選擇“Message Maps”標簽,從“Class name”列表框中選擇“CvisualCDlg”類。

  ③在“Object IDs”列表框中選擇產生消息的控件ID,例如IDC_FORWARD。

  ④在“Messages”消息框中選擇消息響應方式,例如BN-CLICKED方式。

  ⑤單擊“Add Function”按鈕,創建相應的成員函數。

  ⑥選定“Member functions”列表框中的相應成員函數,單擊“Edit Code”按鈕,在成員函數模板中添加如下程序代碼:

  void CVisualCDlg::OnForeward()

  {

  //TODO:Add your control notification handler code here

  }

  至此系統框架就已經完成,下一步就是針對每一個控件內嵌Cserial類函數來完成對串口的控制,進而控制變頻器。

  3.4 變頻器工作方式設定

  要實現對變頻器的串行通信控制,需對變頻器進行工作方式設定,如表2所示,詳細設定值說明可參考臺達VFD-M變頻器使用手冊[5]。

006.jpg

  3.5 通信的硬件實現

  3.5.1 臺達變頻器VFD-M

  臺達VFD-M變頻器系列是由中達電通股份有限公司生產的超低噪音迷你型變頻器,最大輸出功率可達7.5 kW,體積小、噪音低,主要用于三相異步交流電機的控制。

  3.5.2 物理接口

  臺達VFD-M變頻器帶有RS-485接口,因此可以通過RS-232/485轉換器與上位機RS-232端口連接,與上位機建立通信。

  將界面控制變為函數控制,建立函數庫,通過函數調用實現控制,使其資源共享,便于在不同控制系統中靈活調用。

  搜集不同型號的變頻器的控制代碼,編制控制代碼表,供程序定義時使用及在編程過程中調用。這樣,程序就可適用于控制各式各樣的變頻器。

  在工業自動化控制領域,組網運行是發展趨勢,系統中各控制單元的控制方法及實現,大部要由主控計算機完成。本文以上位機Visual C++6.0為開發平臺,使用MFC類進行開發設計,最終形成運行于上位機的應用程序。變頻器是自動控制系統中使用較廣泛的交流電機控制器,本文通過上位機,用串行通信的方式對變頻器操控,進而對交流電機實現控制。這一方案及實現方法能為自動化工程師解決此類問題提供一個理想、良好的解決思路。

  參考文獻

  [1] 崔躍,夏旭東,蔣勇.Quantum控制系統在20 000 m3/h制氧機的應用[J].電氣應用,2006(2).

  [2] 王文學,張謙,尹巖青.Visual C++6寶典[M].北京:電子工業出版社,2001.

  [3] 周韌研,商斌.Visual C++串口通信開發入門與編程實踐[M].北京:電子工業出版社,2009.

  [4] 曹衛彬.C/C++串口通訊典型應用實例編程實踐[M].北京:電子工業出版社,2009.

  [5] 董艦,張桓.數字通信在變頻器控制中的作用[J].河北聯合大學學報(自然科學版),2012(3):93-99.


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 在线观看中文字幕第一页 | 99久久精品国产一区二区 | 香蕉99国内自产自拍视频 | 一级特色黄色片 | 日韩啊v | 亚洲精选在线 | 在线观看精品视频一区二区三区 | 成人综合激情 | 日日干狠狠操 | 香蕉视频在线观 | 国产成人麻豆精品video | 在线免费看片网站 | 色综合天天综久久久噜噜噜久久〔 | 精品视频一区二区三区在线观看 | 一个人看的免费高清www视频 | 风流放荡的艳妇小说 | 色网在线观看 | 欧美最猛黑人xxxxx猛交 | 日日狠狠的日日日日 | 一本大道高清香蕉中文大在线 | 38在线视频| 天天操夜夜操免费视频 | 理论毛片 | 国产成人免费无庶挡视频 | 一个人免费观看www视频 | 日韩免费播放 | 成人免费一区二区三区 | 国产网站免费 | 国产黄色免费观看 | 色秀视频在线 | 国产欧美日韩中文字幕 | 色图欧美 | 男人午夜影院 | 美女下面粉嫩粉嫩冒白浆高清 | 伊人久久五月天综合网 | 另类小说第一草 | 欧美日本高清一本二本三本 | 色羞羞| 日本高清不卡码 | 色博影院| 亚洲高清成人 |