高德欣, 程 捷, 白劍飛
(青島科技大學 自動化與電子工程學院,山東 青島 266042)
基于C#的交流異步電機測試與分析系統(tǒng)開發(fā)
高德欣, 程 捷, 白劍飛
(青島科技大學 自動化與電子工程學院,山東 青島 266042)
針對電機出廠前需進行測試分析這一情況,以西門子S7-1200為控制器,基于Visual Studio平臺,采用C#高級語言開發(fā)了一套交流異步電機測試與分析系統(tǒng);首先,設(shè)計了包括監(jiān)控層、測控層、設(shè)備層的系統(tǒng)總體結(jié)構(gòu);其次,給出了西門子S7-1200PLC與上位機的以太網(wǎng)通訊,及與匝間耐壓測試儀、電參數(shù)測試儀、轉(zhuǎn)矩測試儀等儀表之間的RS485通訊實現(xiàn)方法;然后,根據(jù)國標GB/T1032-2012開發(fā)了系統(tǒng),分析了系統(tǒng)功能和數(shù)據(jù)庫設(shè)計方法;最后,系統(tǒng)應用于某電機生產(chǎn)企業(yè),通過現(xiàn)場測試實例表明,系統(tǒng)實現(xiàn)了電機在不同狀態(tài)下的數(shù)據(jù)采集、顯示、存儲和分析,并形成了試驗報告,幫助企業(yè)提高了生產(chǎn)效率和試驗精度。
交流異步電機;C#;S7-1200;以太網(wǎng);RS485
電機在國民生活和經(jīng)濟領(lǐng)域有著重要的作用。為提高電機生產(chǎn)質(zhì)量,新電機研發(fā)生產(chǎn)后,生產(chǎn)企業(yè)要參照國標,對其進行出廠試驗和型式試驗,判定其性能好壞。傳統(tǒng)的電機試驗一般用分離儀表進行測試,采用人工方式讀取、記錄、處理數(shù)據(jù)和手工方式繪制曲線,這種方式自動化程度較低,工作強度大,耗費大量的人力、物力和時間,人為因素的介入再加上試驗儀表誤差,會造成試驗過程中誤差增大,測試精度大大降低,從而影響對電機總體性能的判斷[1-5]。
根據(jù)以上電機測試中存在的問題,本文以Microsoft Visual Studio為平臺,采用C#高級語言開發(fā)了一套交流異步電機測試與分析系統(tǒng)。系統(tǒng)以西門子S7-1200為控制器,采用匝間耐壓測試儀、電參數(shù)測試儀、轉(zhuǎn)矩測試儀等設(shè)備為測量儀表,通過工業(yè)以太網(wǎng)和RS485網(wǎng)絡相結(jié)合的方式通訊,實現(xiàn)了電機測試的自動化和數(shù)據(jù)處理的智能化,提高了試驗精度,提高了工作效率。
交流異步電機測試與分析系統(tǒng)按照GB/T1032-2012《三相異步電動機試驗方法》設(shè)計,系統(tǒng)總體結(jié)構(gòu)分為:監(jiān)控層、測控層和設(shè)備層三部分[6],如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
1)監(jiān)控層:主要包括工控機和UPS不間斷電源等。工控機作為系統(tǒng)的監(jiān)控主機;UPS保障系統(tǒng)在意外停電的情況下的正常運行。
2)測控層:包括S7-1200 PLC、觸摸屏、匝間耐壓測試儀、電參數(shù)測試儀、堵轉(zhuǎn)測試儀、溫度傳感器等測量控制設(shè)備。其中,耐壓匝間測試儀是做出廠試驗的必備工具,它能夠進行耐壓、匝間、絕緣測試,采集其中的電阻、電壓等參數(shù);電參數(shù)測量儀主要采集電壓、電流、功率因數(shù)、輸入功率、輸出功率等參數(shù);堵轉(zhuǎn)測試儀能夠測試電機堵轉(zhuǎn)狀態(tài)下的轉(zhuǎn)矩等參數(shù);溫度傳感器采集被測電機和陪測電機的進風、出風及環(huán)境等溫度參數(shù)。
3)設(shè)備層:包括陪試電機、轉(zhuǎn)矩轉(zhuǎn)速傳感器、被試電機。轉(zhuǎn)矩轉(zhuǎn)速傳感器對電機的轉(zhuǎn)矩、轉(zhuǎn)速等數(shù)據(jù)進行采集。
通訊在系統(tǒng)設(shè)計中非常重要,它保證數(shù)據(jù)傳輸?shù)目煽啃院头€(wěn)定性,本系統(tǒng)中主要涉及S7- 1200 PLC與上位機監(jiān)控系統(tǒng)的通訊,及其與各測試儀表之間的通訊。
2.1 PLC與上位機的通訊
西門子S7-1200PLC與上位機之間的通訊方式主要采用工業(yè)以太網(wǎng)通訊方式,目前實現(xiàn)方式主要有兩種:Prodave控件方式和直接協(xié)議通訊方式。Prodave控件是西門子主要為S7-300或S7-400PLC通信開發(fā)的底層DLL動態(tài)鏈接庫,當用于S7-1200 PLC的時候需要進行一些修改;直接協(xié)議通訊比較靈活,本系統(tǒng)采用該方式。
2.1.1 Modbus協(xié)議規(guī)范[7]
Moudbus是一種簡單客戶機/服務器應用協(xié)議,客戶機能夠向服務器發(fā)送請求,服務器分析請求,處理請求,向發(fā)送機發(fā)送報告,其提供的是在以太網(wǎng)上的TCP/IP網(wǎng)絡連接的設(shè)備之間的通信。Modbus協(xié)議定義了一個與基礎(chǔ)通信層無關(guān)的簡單協(xié)議數(shù)據(jù)單元(PDU),特定總線或網(wǎng)絡上的Modbus協(xié)議映射能夠在應用數(shù)據(jù)單元(ADU)上引入一些附加域,如圖2所示是通用Modbus數(shù)據(jù)幀格式。
圖2 通用Modbus數(shù)據(jù)幀格式
當服務器對客戶機響應時,使用功能碼來域來指示正常響應或異常響應。對一個正常響應來說,服務器只是復制原始功能碼;對于異常響應,服務器將原始功能碼的最高有效位設(shè)置邏輯1后返回,然后異常碼指示差錯類型。
2.1.2 Modbus/TCP通訊實現(xiàn)
Modbus協(xié)議通訊實現(xiàn)分為兩種,一種是在串行鏈路上的實現(xiàn),一種是在TCP/IP上的實現(xiàn),本系統(tǒng)選擇的是后者。通過它PLC可以與上位機監(jiān)控系統(tǒng)通信,Modbus/TCP數(shù)據(jù)幀格式如圖3所示。
圖3 Modbus/TCP數(shù)據(jù)幀格式
所有的Modbus/TCP ADU通過TCP上注冊的502端口上發(fā)送。
在C#環(huán)境中,在上位機上建立Modbus客戶端,西門S7-1200PLC為服務器,通過以太網(wǎng)實現(xiàn)Modbus/TCP通信。S7-1200的IP地址為192.168.0.1,通過以太網(wǎng)把上位機和PLC連起來,并設(shè)置本機的IP地址為192.168.0.5,子網(wǎng)掩碼為255.255.255.0,這樣上位機就和PLC組成了客戶機/服務器模式。
在上位機上用C#編寫Modbus/TCP客戶端程序。其中用到TcpClient客戶端類和TcpListener服務器端類,在TcpClient類內(nèi)部封裝一個Soket類實例,它被用來使用TCP協(xié)議向服務器請求和獲取數(shù)據(jù),其程序如下:
private static string IP = ConfigurationManager.AppSettings["IP"];
private static int Port = Int32.Parse(ConfigurationManager.AppSettings["Port"]);
private Socket socket = null;
public void Connect()
{
this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ip = new IPEndPoint(IPAddress.Parse(IP), Port);
this.socket.Connect(ip);
}
2.2 S7-1200PLC與儀表的通訊
S7-1200PLC與測量儀表采用RS485方式通訊,S7-1200PLC不帶RS485通訊口,需要擴展RS485模塊,本系統(tǒng)采用的是CM1241 RS485擴展模塊。以溫度傳感器為例,溫度傳感器作為從站,只需在設(shè)定中選擇Modbus-RTU通信協(xié)議并且為設(shè)備分配不重復的站地址即可。S7-1200 PLC作為主站,其通信的基本原理是:首先程序開始運行時,調(diào)用一次Modbus庫中的功能塊MB_COMM_LOAD來組態(tài)RS485模塊上的端口;其次調(diào)用庫中的功能塊MB_MASTER作為Modbus主站與設(shè)備進行通信。其界面及參數(shù)設(shè)置如圖4、圖5所示。
圖4 MB_COMM_LOAD塊
圖5 MB_MASTER塊
從圖4中可以看出RS485端口地址為1,波特率為9600,奇偶校驗為無。1200PLC作為主站通信是由DATA_ADDR(從站中的起始Modbus地址)和MODE(讀、寫、診斷模式)參數(shù)一起確定實際Modbus消息中使用的功能代碼。DATA_PTR(數(shù)據(jù)指針)指向要寫入或讀取的數(shù)據(jù)的CPU DB地址,該DB必須為“非僅符號訪問”DB類型。從圖5中可以看出,模式為0,DATA_ADDR地址為40001,地址類型為保持寄存器,數(shù)據(jù)長度為20,讀取的數(shù)據(jù)的CPU DB地址為P#DB10.DBX0.0WORD 21。
3.1 上位機軟件設(shè)計
根據(jù)國標和電機廠家的需求,設(shè)計的交流異步電機測試系統(tǒng),如圖6所示。
圖6 交流異步電機測試系統(tǒng)
系統(tǒng)可對電機進行空載試驗、負載試驗、堵轉(zhuǎn)試驗、溫升試驗、T_N試驗、安規(guī)試驗和初始電阻等7個試驗。測試流程是:首先填寫測試單信息,當測試單完成后,選中試驗類型,然后啟動測試,測試狀態(tài)由“停止”變?yōu)椤皽y試中”,試驗中測試數(shù)據(jù)顯示在界面上,在測試過程中還可以選擇手動或自動方式。當試驗結(jié)束后停止測試,如果在做其他試驗,按照上面所示的相同步驟進行實驗。
3.2 數(shù)據(jù)庫的設(shè)計
系統(tǒng)采用Access 2010實現(xiàn)對電機測試數(shù)據(jù)的存儲。根據(jù)試驗的要求,數(shù)據(jù)庫設(shè)計了21個表對空載試驗、負載試驗、溫升試驗、T_N試驗、安規(guī)試驗等不同實驗的數(shù)據(jù)進行采集存儲。通過SQL語句并搭配C#語言實數(shù)據(jù)存儲,以負載試驗為例,向LoadBRecord表中插入數(shù)據(jù)的程序如下:
string Nowtime = DateTime.Now.ToString();
string connectionString1 = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=e:database" + textBoxtestbill.Text + ".mdb";
OleDbConnection connection1 = new OleDbConnection(connectionString1);
string sql1 = "insert into LoadBRecord(ReportNumber,[測試時間],[電機型號],[A相電流],…) values ('" + textBoxtestbill.Text + "','" + Nowtime + "','" + textBoxmotorname.Text + "', '" + textBoxLIa.Text + "', …)";
OleDbCommand cmd1 = new OleDbCommand(sql1, connection1);
connection1.Open();
cmd1.ExecuteNonQuery();
connection1.Close();
connection1.Dispose();
然后在timer組件中的Interval屬性中輸入1 000,在timer_click中寫入更新程序,表示每隔1 s數(shù)據(jù)庫LoadBRecord表中的數(shù)據(jù)更新一次。
交流異步電機測試系統(tǒng)對電機各參數(shù)的數(shù)據(jù)采集后,需根據(jù)國標中各參數(shù)之間的關(guān)系和對各試驗特性曲線要求,對數(shù)據(jù)進行計算分析,并且擬合成曲線。根據(jù)這種情況,基于最小二乘法原理,設(shè)計了交流異步電機分析系統(tǒng),如圖7所示。
圖7 交流異步電機分析系統(tǒng)
分析過程首先單擊“數(shù)據(jù)連接”,目的是連接數(shù)據(jù)庫;其次單擊“數(shù)據(jù)采集”,目的是采集數(shù)據(jù)庫中數(shù)據(jù)在界面上顯示;最后單擊“曲線擬合”,目的是擬合曲線。另外,系統(tǒng)中還有“報告輸出”和“曲線輸出”按鈕,點擊“報告輸出”,所有數(shù)據(jù)以Excel格式輸出;點擊“曲線輸出”,會出現(xiàn)打印預覽窗口,然后通過打印機將數(shù)據(jù)和曲線分別打印出來,以便以后分析。
以某電機廠型號為YX3-180M-4電機的負載試驗為例,對分析系統(tǒng)說明。表1是該電機的銘牌參數(shù),表2是該電機的負載原始數(shù)據(jù)。
表1 電機銘牌參數(shù)
表2 負載原始數(shù)據(jù)
交流異步電機分析系統(tǒng)能夠獲取測試系統(tǒng)存入數(shù)據(jù)庫中的數(shù)據(jù),對數(shù)據(jù)按照GB/T1032-2012《三相異步電動機試驗方法》進行計算,將參數(shù)擬合成曲線,通過表2中的負載原始數(shù)據(jù)得到負載擬合曲線如圖8所示。
圖中Eff表示效率,n表示轉(zhuǎn)速,Pf表示功率因數(shù),I表示電流,P1表示輸入功率,P2表示輸出功率,從曲線中可以看出每條曲線都是二次曲線,參照國標,可以判斷該電機負載性能合格。
圖8 交流異步電機分析系統(tǒng)
系統(tǒng)經(jīng)過現(xiàn)場試驗,達到了企業(yè)要求,實現(xiàn)了對電機型式試驗測試與分析的自動化,能夠?qū)﹄姍C進行批量測試,減少測試誤差,提高了企業(yè)的生產(chǎn)效率,對指導企業(yè)提高產(chǎn)品質(zhì)量有一定意義,具有一定的行業(yè)推廣價值。
[1] 盧天海, 王 見. 基于LabVIEW的電機功耗實時檢測系統(tǒng)設(shè)計[J]. 計算機測量與控制, 2012, 20(3):580-583.
[2] 張 輝, 李建軍, 王佳熙, 等. 電機設(shè)備運行參數(shù)遠程控制系統(tǒng)設(shè)計[J]. 計算機測量與控制, 2015, 23(10): 3395-3397.
[3] 楊潤賢, 王 斌. 基于ADAM的三相異步電機電氣故障試驗系統(tǒng)研究與開發(fā)[J].計算機測量與控制,2013,21(12):3312-3314.
[4] 朱彥軍. 交流電機智能綜合測試系統(tǒng)設(shè)計[J]. 機電工程, 2012, 29(2): 200-203.
[5] 高德欣, 張文武, 楊 清. 雙速電機高精度測速與參數(shù)測試SADA系統(tǒng)開發(fā)[J]. 電氣應用, 2007, 26(2): 105-108.
[6] 費春國, 王鵬鵬. 機場廊橋設(shè)備監(jiān)測系統(tǒng)的設(shè)計與應用[J]. 測控技術(shù), 2016, 35(5):75-78.
[7] 李躍武, 袁 敏, 朱海林. 開放式PLC數(shù)據(jù)采集控制器設(shè)計與研究[J]. 微型電腦應用, 2013, 29(9):48-51.
Development of Test and Analysis System of AC Asynchronous Motor Based on C#
Gao Dexin,Cheng Jie,Bai Jianfei
(College of Automation and Electronic Engineering, Qingdao University of Science & Technology, Qingdao 266042, China)
Motor need to be tested before out of the factory. According to this situation, Siemens S7-1200 as the controller,a set of test and analysis system of AC asynchronous motor are developed based on Visual Studio and C#.Firstly,this paper introduces the general structure of the system, including monitoring layer, measurement and control layer and equipment layer.Secondly,it introduces the Ethernet communication between Siemens S7-1200 PLC and PC and the concrete implemention ways of RS485 communication between Siemens S7-1200 PLC and interturn withstand voltage tester, electric parameter tester ,the torque tester and so on.Then according to national standard GB/1032-2012,the system are developed and it gives the fuction of the system and designed means of database.Finally,the system is applied to a motor manufacturing enterprises.The examples of test on spot show that the system realizes acquisition,display,storage and analysis of the data in the different state of motor.Also it forms the test report and help enterprises improve the production efficiency and test accuracy.
AC asynchronous motor; C#; S7-1200; Ethernet; RS485
2016-06-30;
2016-07-12。
高德欣(1978-),男,山東煙臺人,博士后,教授,碩士生導師,主要從事優(yōu)化控制、計算機控制等方向的研究。
1671-4598(2016)12-0037-04
10.16526/j.cnki.11-4762/tp.2016.12.011
TP273
A