- 相關推薦
紡機中的微機遠程多電機同步傳動控制系統
在紡織、印染、造紙等生產中,多電機同步傳動應用的十分廣泛。其中,印染聯合機的工藝及控制原理圖如圖1所示,采用西門子MICROMASTER Vector, 即MMV變頻器,電機1(M1)至電機4(M4)為三相交流電機。
圖1 印染聯合機的工藝及控制原理圖
b變頻調速以其顯著的節(jié)能效益、優(yōu)異的調速與起制動性能、高功率因數、安全性能及其它許多優(yōu)點而被認為是非常有發(fā)展前途的調速方式。交流電機和變頻器配合,能獲得與直流電機相似甚至更好的控制性能。并且交流電機低,結構簡單,容量和電壓范圍廣。采用RS485標準總線,通過USS通訊協議組成網絡,遠程控制變頻器,進而控制電機,可以監(jiān)控生產線,遠離對人體有害的工作現場,保存數據,出錯參數自動回傳,縮短診斷時間和維修時間,節(jié)省大量物力。工控機通過RS-232/RS-485接口轉換器接入RS485網絡,可遠程控制31臺變頻器,當數據傳輸率<100kbit/s時,距離可達到1200m。接口轉換器采用Model 2485BR隔離型接口轉換器,它能完成RS-232/RS-485隔離型接口轉換,支持不同通訊速率及格式,最多可連接32個485終端設備。
2 軟件的總體設計
VC有ClassWizard、SourceBrowser、Visual SourceSafe等一系列工具,它所帶的MSDN更是讓軟件人員感到十分方便。而且VC應用程序對系統有極好的兼容性和穩(wěn)定性。用VC從底部開發(fā),雖然開發(fā)周期稍長,但能根據用戶的需要進行編程,編出的軟件的功能和風格適合用戶的習慣。綜合考慮開發(fā)周期和用戶要求等因素,軟件采用VC編寫。軟件的總體設計框圖見圖2。
圖2 軟件總體設計框圖
3 軟件開發(fā)過程
3.1 建立窗體顯示項目
選擇項目類型MFC AppWizard(exe),令主要的視圖類從基類CFormView派生。
3.2 添加MScomm控件
Microsoft Communications Control(以下簡稱MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,通過串行端口傳輸和接收數據,為應用程序提供串行通訊功能。MSComm控件在串口編程時非常方便,程序員不必去花時間去了解較為復雜的API函數,而且在VC、VB、Delphi等語言中均可使用。它提供了兩種處理通信問題的方法;一是事件驅動(Event-driven)方法,一是查詢法。本軟件采用事件驅動方式。
(1) MSComm 控件的常用屬性
MSComm 控件有很多屬性,幾個重要的屬性有;
●CommPort 設置并返回通訊端口號;
● Settings 以字符串的形式設置并返回波特率、奇偶校驗、數據位、停止位;
● PortOpen 設置并返回通訊端口的狀態(tài),也可以打開和關閉端口;
● Input 從接收緩沖區(qū)返回和刪除字符;
● Output 向傳輸緩沖區(qū)寫一個字符串。
(2) 添加MSComm 控件
選擇Project菜單下Add To Project子菜單中的 Components and Controls選項,在彈出的對話框中雙擊Registered ActiveX Controls項,則所有注冊過的ActiveX控件出現在列表框中。選擇Microsoft Communications Control,單擊Insert按鈕將它插入到我們的Project中來,接受缺省的選項。另外,添加2個控件,1個List Box控件,用于改變通訊端口號,1個Edit Box控件,用于改變波特率、奇偶校驗、數據位、停止位。
(3) 設置MSComm串口參數
可以在需要的時候打開串口,例如在程序中做一個開始按鈕,在該按鈕的處理函數中打開串口,F在我們在主對話框的CSCommTestDlg::OnInitDialog()打開串口,加入如下代碼;
// TODO: Add extra initialization here
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //選擇com1
if( !m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);//打開串口
else
AfxMessageBox("cannot open serial port");
m_ctrlComm.SetSettings("9600,e,8,1");
//波特率9600,偶校驗,8個數據位,1個停止位
m_ctrlComm.SetInputModel(1);
//1;表示以二進制方式檢取數據
m_ctrlComm.SetRThreshold(1);
串口初始化程序如下;
m_Coml.SetCommPort(1); //設置串口1
if(! m_Coml.GetPortOpen())
m_Coml.SetPortOpen(TRUE); //打開串口
m_Coml.SetSettings(″9600,e,8,1″);
//串口參數設置
m_Coml.SetInputMode(1);
//設置Binary緩沖輸入方式
m_Coml.SetRThreshold(14);
//每接收14個字符,激活一次OnComm()事件
3.3 添加控制電機運行所需的各種控件
添加垂直滾動條List Box,對應于USS協議的地址ADR,表述為變頻器號:1-31直接列出,廣播式的32用“全部”代替。添加垂直滾動條List Box,對應于USS協議的STW,表述為電機動作方式:啟動,停止等。添加垂直滾動條List Box,對應于USS協議的PKE, 表述為要回顯的運行參數。添加開始發(fā)送按鈕、緊急起動按鈕、緊急停車按鈕等等。
3.4 USS協議
USS協議是profibus的一個子集。USS通信協議有各種長度,視所要滿足的功能多少而定,且因所用設備類型而有所不同。協議規(guī)定如表1所示;
表1 USS協議的規(guī)定
(1) 下傳的規(guī)定;
● STX(start of text);起始字符,為02H。
● LGE(telegram length);發(fā)送報文的字節(jié)數,可以變化?倛笪牡膶嶋H長度比LGE多兩個字節(jié),這是因為開始的2個字節(jié)(STX和LGE)不被計入LGE中。只有net字符、ADR字節(jié)和BCC字符計入LGE中。具體為;總報文最長256字節(jié),總報文= STX+LGE+LGE=2+LGE,1d LGE d 254,LGE=ADR+n+BCC=1+n+1,nd254(設net字符數n)。
● ADR(address byte);變頻器的地址碼,取值范圍為0~31(Bit;0~4位),第5位為1時為廣播發(fā)送。
● net character(或稱net data)段分為2個區(qū);PKW區(qū)和 PZD區(qū), 如表2所示。
表2 PKW區(qū)和 PZD區(qū)的規(guī)定
a)PKW (parameter ID value);參數標識值,定義了處理2個通訊設備之間參數傳遞的機制。例參數的讀和寫,參數的定義等。包含PKE、IND、PKW elements3個內容。MM3的PKW長度為3個字,MM4的PKW長度為4個字, 如表3所示。
表3 MM4的PKW定義
PKE;為一16位的字,用來控制變頻器的運行參數設置,各Bit的含義如表4所示;
表4 PKE各Bit的含義
控制位(15-12) 0(11) 變頻器的參數值(10-0)
對于MMV變頻器,控制位為0000時,無動作;控制位為0001時,讀變頻器的參數;控制位為0010時,寫參數到變頻器的RAM,控制位為1110時,寫參數到變頻器的EEPROM。
IND;為16位的字。用于讀寫參數說明,讀寫一維數組值,讀寫報文的信息內容。
PKW element(PKWE):信息,與任務或響應有關。假如在net data區(qū)只傳送PZD data時,可以長度為0。
PKE與PKWE的使用舉例。下傳變頻器參數PKE=(0001,0000,0101,1100)=105Ch(即要求上傳P092(串口連接波特率)),PKWE =0000。若上傳變頻器參數為PKE=105Ch,PKWE=0006,又由于MMV變頻器規(guī)定P092為3時是1200bit,為4時是2400bit,為5時是4800bit,為6時是9600bit,為7時是19200bit,則說明此時串口連接波特率為9600bit。
b) PZD (process data);過程數據,如表5所示。包含了自動操作所需的信號;從主機到從站的控制字和定位點,從從站到主機的狀態(tài)字和實際值。最長16個字,最短0字。
表5 PZD的定義
PZD1為控制字,PZD2為主要定位點,PZD3... PZD16為定位點或輔助控制字;
PZD1;為控制字,16位的字,用來控制變頻器的運行動作;
PZD2;為主要定位點,16位的字,用來控制變頻器的輸出頻率,滿頻的值為16384(4000H)對應100%的輸出頻率,最大值為32767,即200%的輸出頻率。當取值為32768~65535時,表示反向的輸出頻率從0%~200%變化,電機反轉。
● BCC;校驗字符,為前面所有字節(jié)的異或和。
上傳規(guī)定與下傳規(guī)定基本相同,只是上傳的一般為實際值。
3.5 數據的處理
這里以發(fā)送數據中輸出頻率的處理為例,假設軟件界面輸出頻率編輯框(對應變量m_strFreData)填寫50,程序將“50”以字符形式取出,通過編寫的函數String2Dec將字符“
50”轉換為十六進制字節(jié)數“32”即50D,由于USS發(fā)送協議中變頻器的輸出頻率HSW為16位的字,所以 要將字節(jié)擴展成對應的字。50D通過擴展后對應的字為4000H。25D通過擴展后對應的字為2000H。以此類推運算。設輸出頻率50D,示范程序如下:
CByteArray hexdata;// hexdata為十六進制數組,m_strFreData為輸出頻率的十進制變量
int len=String2Dec(m_strFreData,hexdata);
// 輸出頻率m_strFreData=50D轉換為十六進制的hexdata[0]= 0X32
LONG NUM1,NUM2;//實型精確一些
INT NUM3;
hexdata.SetSize(14);
NUM1=hexdata[0];//得到0X32(=50D)
NUM2=( NUM1*4*16)/50;//字節(jié)擴展成對應的字,得到字節(jié)50D對應的字4000H的高字節(jié)NUM2=0X40
NUM3=NUM2;//實型變整型
hexdata[11]=NUM3;
hexdata[12]=( NUM1*0X4000- NUM3*256*50)/50+1;
//得到字節(jié)50D對應的字4000H的低字節(jié)NUM3=0X00,
4 軟件調試結果
軟件主界面如圖3所示。
圖3 軟件主界面
運行中,遇到異常情況時,可進行緊急停車。電機在需要單獨啟動時,可以個別設置。需要同步啟動時,可以以廣播式啟動全部電機。變頻器參數可全部或部分上傳,遠程監(jiān)控電機的運行情況。
5 結束語
本軟件通過USS通訊協議,用VC6.0的通訊控件MSCOMM,實現了單臺工控機遠程串口控制多臺變頻器,并且對數據轉換和數據輸出算法進行了改進,有些地方進行了補償,控制更準確,運行狀況比較滿意。
參考文獻
[1] 張承慧,萬 軍,李洪斌. 利用PCC開發(fā)變頻器串行協議[J].電氣傳動,2003,(1).
[2] 孫志剛,朱德森. USS協議和Modbus協議的實現.與[J]. 2001,(5).
[3] [美]Michael J.Young著,邱仲潘等譯.Visual C++ 6 從入門到精通[M]. 北京:電子出版社,1999.
[4] SIEMENS.USS protocol (Universal Serial Interface Protocol), 1994(9)
【紡機中的微機遠程多電機同步傳動控制系統】相關文章:
ADVANTECH噴油泵實驗臺微機控制系統解決方案05-31
基于電話網絡的熱網遠程控制系統設計05-11
復合勵磁永磁同步發(fā)電機勵磁調節(jié)系統研究05-11
離網型永磁同步風力發(fā)電機安全運行相關問題的研究05-04
消防聯動控制系統(一)05-11
免費盤磨機傳動裝置(一)05-13
淺析自動控制系統04-19
核電站中微機型繼電保護裝置的運用及優(yōu)化建議06-13
智能型校園教室燈光自動控制系統05-11
雙容水箱串級液位控制系統設計 開題報告07-30