大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

您現在的位置:智能制造網>技術中心>如何通過RS-485控制多臺變頻器

直播推薦

更多>

企業動態

更多>

推薦展會

更多>

如何通過RS-485控制多臺變頻器

2006年10月31日 16:32:18人氣:861來源:煙臺勾股通信技術有限公司

  摘 要:MicroMaster變頻器的RS-485通信協議,利用VC5.0中的ActiveX控件MSCOMM通信控件實現了Windows95下單臺微機與多臺變頻器的串行通信控制,并能實時檢測各變頻器的運行狀態。
  
  關鍵詞:工控PC機 ActiveX控件 RS-485通信協議 變頻器控制
  
    工業場合中,經常要用變頻器去控制交流電機的轉速、轉向。在某些場合,需要用1臺工控PC機靈活地控制多臺變頻器,以達到控制各交流電機的目的。針對這一需要,一些公司(如德國西門子、日本東芝、三菱等公司)推出了帶有RS-485通信接口的變頻器,使用戶能方便靈活地選擇變頻器的強大功能來設計各自的工業控制系統。
    在Windows95下開發工控軟件,可利用Windows95的豐富資源,方便地生成各種菜單及美觀大方的圖形界面,軟件產品質量高且開發周期短。Visual C++5.0是Microsoft公司推出功能zui強的Windows開發軟件,由于只能在Win95下運行開發32位的應用程序,而在Windows環境下,系統*接管了各種硬件資源,不允許用戶直接控制串行口的中斷管理,因此如何在Windows環境下開發微機的底層資源,已成為當今工業控制軟件的一大熱點及難點。
    本文利用VC5.0的ActiveX控件——Microsoft Communication控件,方便地實現了Win95環境下與多個西門子MicroMaster變頻器的串行通信接口,成功地實現了用單臺工控PC機對多臺交流異步電機的靈活控制。
  
  一、系統的總體設計
  
    圖1為系統的總體設計方框圖,這里只重點突出工控PC機與變頻器RS-485的接口部分。RS-485的驅動器可帶32個接收器,在波特率為100Kb/s時,通信距離可達到1200m;通信距離為15m時,波特率可達10Mb/s。在工業現場,RS-485是應用較多的一種通信方式。圖中工控PC機通過485通信接口卡與多個變頻器相連接,zui多可達到32臺。每個變頻器被賦予各自的地址碼用以識別身份,這樣上位機便能通過485通信線對掛在上面的所有變頻器進行控制操作。
  

  
  二、變頻器的串口通信協議
  
  對于西門子的MicroMaster變頻器,其通信方式為RS-485,波特率zui高可達到19200b/s;1位起始位;8位數據位;1位偶校驗;1位停止位。變頻器接收控制的通信協議如下:
  

    與上位機向變頻器發送的控制字相比,變頻器回送的狀態字只是以ZSW代替了STW,HIW代替了HSW,其余的字的含義是一樣的。ZSW是16位的狀態字來指示變頻器的當前運行狀態,各位的具體含義見說明書;HIW也是16位的字代表變頻器的輸出頻率,其定義與HSW是一樣的。
    因此,對于變頻器能通過面板按鍵設置的功能,通過以上的通信協議也一樣能實現。并且通過RS-485通信線zui多能同時控制32臺變頻器,同時各變頻器的運行狀態也能實時地回送給上位機,這就大大方便了用戶,增加了控制系統的靈活性。
  
  三、Visual C++5.0下對變頻器進行串行通信控制
  
  1、ActiveX控件Microsoft Comm Control 5.0
  
  在Windows環境下,操作系統*接管了各種硬件資源,不允許用戶直接控制串行口的中斷管理。以往程序員只能通過數目眾多的API函數來控制串口。
    VC5.0下提供了1個ActiveX控件Microsoft Communication Control 5.0,簡稱MSComm控件。用戶可以在自己的應用程序中嵌入MSComm控件,利用它可以方便地進行計算機串口的通信管理。VC5.0中的ActiveX控件MSComm與VC4.0中的OLE通信控件相比,增加了一些新的功能,其中zui為有用的1個改進是將Input(從緩沖區讀取接收數據)的數據類型從CString改成Variant,同時新增1個屬性InputMode,使程序能方便地選擇從緩沖區讀取數據的格式:字符串格式或2進制格式。
    在VC5.0開發環境中,選擇Microsoft Communication Control 5.0控件插入程序,則系統自動為所插入的控件定義1個CMSComm類,與其相關的文件保存在mscomm.h和mscomm.cpp文件中。確認以上菜單選擇后,則MSComm控件已嵌入到項目文件中。
    MSComm控件有許多屬性,其中一些重要的屬性如下:
    CommPort:設置串口號,類型:short;
    Settings:設置串口通信參數,類型:CString;
    PortOpen:設置或返回通信口的狀態,類型:BOOL;
    InputMode:設置從緩沖區讀取數據的格式,類型:long;
    Input:從接收緩沖區讀取數據,類型:VARIANT;
    Output:向發送緩沖區寫入數據,類型:VARIANT;
    InBufferSize:接收緩沖區的大小,類型:short;
    InBufferCount:接收緩沖區的字節數,類型:short;
    OutBufferSize:發送緩沖區的大小,類型:short;
    OutBufferCount:發送緩沖區中的字節數,類型:short;
    InputLen:設置或返回Input每次讀出的字節數,類型:short;
    CommEvent:串口事件,類型:short。
    其中串口號(CommPort)設置為1、2等表示COMM1、COMM2。參數設置(Settings)的格式為“B,P,D,S”,B表示波特率,P表示奇偶校驗(N-無校驗,E-偶校驗,O-奇校驗),D表示字節有效位數,S表示停止位數。串口狀態(PortOpen)為BOOL變量,TRUE表示打開串口,FALSE表示關閉串口。InputMode使程序能方便地選擇從緩沖區讀取數據的格式,設置為0時字符串格式,設置為1時表示2進制格式。InputLen設置或返回的是用Input從緩沖區讀字符串時每次讀出的字符個數,這個性質對于讀出數據塊中定長數據串非常有用。
    另外,MSComm控件提供了2種方法來處理串口通信,上面屬性的InBufferCount和OutBufferCount用于串口的查詢方式。對于較復雜的通信任務,可通過SetCommEvent()函數設置串口要響應的事件,當相應事件或串口錯誤事件發生時,系統會激活OnComm()事件,在OnComm()中添加用戶的處理代碼,則可實現類似DOS中斷的串口處理程序。
  
  2、變頻器串口通信控制檢測軟件的編制
  
  在項目文件嵌入MSComm控件的頭文件mscomm.h及實現文件mscomm.cpp之后,為了用該控件控制1個串口進行通信操作,還必須在應用程序中插入該控件。為此,我們為程序的某個對話框插入MSComm控件,控件ID為IDC_MSCOMM1,并利用Class Wizard為其添加變量CCMSComm m_Coml,則程序中對串口的各種操作都可通過變量m_Coml來實現。
    MicroMaster變頻器回送的狀態信息1幀為14B。為此,程序編制上采用事件驅動的通信方式,串口每接收14個字符便激活1個OnComm()事件,在OnComm()消息處理函數中加入相應的處理代碼,用來讀取狀態字ZSW和HIW各位的狀態參數,并作出相應的處理,如顯示、報警等。下面簡要給出用事件驅動方式讀出變頻器回送狀態字的程序源代碼。設RS-485卡的口地址為工控PC機的串口4的地址,波特率為9600b/s。
    串口初始化程序如下:
    m_Coml.SetCommPort(4); //設置串口4
    if(! m_Coml.GetPortOpen())
      m_Coml.SetPortOpen(TRUE); //打開串口
    m_Coml.SetSettings(″9600,e,8,1″); //串口參數設置
    m_Coml.SetInputMode(1); //設置Binary緩沖輸入方式
    m_Coml.SetRThreshold(14); //每接收1個字符時//激發OnComm()事件
    工控PC機控制變頻器的參數通過類ColeVariant的構造函數來實現,ColeVariant可以接受各種類型的數據(如字符串、整數、浮點數等)并自動將其轉換為符合VARIANT要求的數據。程序代碼如下:
    m_Coml.SetOutput(ColeVariant(″\x02″)); //發送起始//字符02H
    m_Coml.SetOutput(ColeVariant(″\x0C″)); //發送數據//長度字符0CH
    ……      //發送其它的控制參數
    對于變頻器回送的狀態信息則利用Windows的消息處理函數OnComm()進行處理。利用ClassWizard為MSComm控件IDC_MSCOMM1添加消息處理函數OnOnCommMscomm1(),在OnOnCommMscomm1()中加入處理代碼如下(zui后2個語句為添加的程序代碼,其余代碼由ClassWizard自動生成):
    void CGpsdataDlg::OnOnCommMscomm1()
    {
    //TODO:Add your control notification handler //code here
    m_Coml.SetInputLen(0); //讀取串口緩沖區全//部數據
    VARIANT Parameter=m_Coml.GetInput(); //數據賦給VARIANT變量
    ……   //具體程序處理代碼
    }
  在消息處理函數OnOnCommMscomm1()中,將變頻器回送的14個狀態字每一次全部讀到VARIANT變量Parameter中,然后程序再從VARIANT類型的數組變量Parameter中分別讀取各狀態字節,在屏幕上顯示、判斷并報警。
    本文利用VC5.0下的ActiveX控件和MicroMaster變頻器RS-485的串行通信功能,實現了在Windows95環境下用單臺工控PC機控制多臺變頻器的任務,并能實時檢測各變頻器的運行狀態。整個控制系統靈活方便,具有很大的實用性。

全年征稿/資訊合作 聯系郵箱:1271141964@qq.com

免責聲明

  • 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
  • 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
  • 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

<
更多 >

工控網機器人儀器儀表物聯網3D打印工業軟件金屬加工機械包裝機械印刷機械農業機械食品加工設備制藥設備倉儲物流環保設備造紙機械工程機械紡織機械化工設備電子加工設備水泥設備海洋水利裝備礦冶設備新能源設備服裝機械印染機械制鞋機械玻璃機械陶瓷設備橡塑設備船舶設備電子元器件電氣設備


我要投稿
  • 投稿請發送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
  • 聯系電話0571-89719789
工業4.0時代智能制造領域“互聯網+”服務平臺
智能制造網APP

功能豐富 實時交流

智能制造網小程序

訂閱獲取更多服務

微信公眾號

關注我們

抖音

智能制造網

抖音號:gkzhan

打開抖音 搜索頁掃一掃

視頻號

智能制造網

公眾號:智能制造網

打開微信掃碼關注視頻號

快手

智能制造網

快手ID:gkzhan2006

打開快手 掃一掃關注
意見反饋
關閉
企業未開通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 垣曲县| 阳新县| 北京市| 久治县| 顺义区| 胶州市| 江川县| 江山市| 宝坻区| 淮北市| 宣化县| 广元市| 嘉义市| 陕西省| 台江县| 定远县| 湖口县| 信宜市| 泽州县| 开封市| 迭部县| 宁河县| 瓮安县| 夏邑县| 于都县| 红安县| 赤水市| 克拉玛依市| 历史| 浦东新区| 贡觉县| 桦甸市| 东宁县| 台江县| 南昌县| 台东县| 长垣县| 靖江市| 社会| 图木舒克市| 巴林左旗|