国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VB的上位機(jī)和西門子S7—400 PLC通信系統(tǒng)實(shí)現(xiàn)

2016-07-10 07:08楊艷偉向樹民段晨東
電子技術(shù)與軟件工程 2016年8期
關(guān)鍵詞:通信以太網(wǎng)

楊艷偉 向樹民 段晨東

摘 要:文中介紹了在Windows環(huán)境下,VB與西門子S7-400系列 PLC的通信方法,并應(yīng)用到北方重工特殊鋼廠30MN快鍛液壓機(jī)組控制系統(tǒng)中,實(shí)踐證明該方法通信實(shí)時(shí)性好,數(shù)據(jù)準(zhǔn)確性高,滿足30MN快鍛液壓機(jī)組的工藝要求。

【關(guān)鍵詞】PLC VB 通信 以太網(wǎng)

1 引言

在智能控制的重型設(shè)備中,上位機(jī)的監(jiān)控軟件顯得尤其重要。那么研究既能實(shí)現(xiàn)上位機(jī)和PLC的通信,又能滿足設(shè)備工藝要求的開發(fā)軟件有著實(shí)際而重要的意義。

2 軟件總體設(shè)計(jì)

30MN快鍛液壓機(jī)組的鍛打頻次達(dá)103次/min之多,要求同步顯示數(shù)據(jù)和曲線,并且這些數(shù)據(jù)和曲線要求具有記錄和查詢的功能。而Visual Basic(簡(jiǎn)稱VB)作為一種可視化編程軟件,在開發(fā)圖形曲線顯示、數(shù)據(jù)庫(kù)等方面有著其它組態(tài)軟件不可比的優(yōu)勢(shì)。因此,我們采用第三方軟件VB來(lái)開發(fā)30MN快鍛液壓機(jī)組上位機(jī)監(jiān)控軟件,其主界面如圖1所示。

3 數(shù)據(jù)通信

3.1 通信軟件接口

解決西門子S7-400系列PLC與第三方應(yīng)用軟件VB的通信是該項(xiàng)目上位機(jī)軟件開發(fā)成功的關(guān)鍵。經(jīng)過(guò)調(diào)研,西門子公司發(fā)布的PRODAVE(Process Data Traffic 過(guò)程數(shù)據(jù)交換)MPI/IE軟件包是專門用于S7系列PLC與上位機(jī)第三方應(yīng)用軟件之間數(shù)據(jù)通信的工具軟件包,該軟件包中集成了基于Windows操作系統(tǒng)的動(dòng)態(tài)鏈接庫(kù)DLL函數(shù),且可以通過(guò)MPI適配器(PC-Adaptor)、MPI通信處理器(CP5611卡)、工業(yè)以太網(wǎng)卡等硬件設(shè)備實(shí)現(xiàn)PLC和上位機(jī)之間數(shù)據(jù)通信。如圖2所示,本文通過(guò)一根網(wǎng)線把上位機(jī)的以太網(wǎng)卡,與PLC中的以太網(wǎng)模塊CP443硬件連接組成工業(yè)以太網(wǎng)絡(luò),然后VB調(diào)用PRODAVE MPI/IE中函數(shù)實(shí)現(xiàn)S7-400 PLC與上位機(jī)的數(shù)據(jù)通信,并通過(guò)VB中的Adodc控件鏈接Access數(shù)據(jù)庫(kù),查詢歷史記錄曲線并生成數(shù)據(jù)報(bào)表。

3.2 軟件接口配置

在上位機(jī)中設(shè)置控制面板“PG/PC”接口,添加應(yīng)用程序訪問(wèn)點(diǎn),并指向上位機(jī)相應(yīng)的以太網(wǎng)卡,如圖3所示。需要注意的是上位機(jī)的IP地址,要與以太網(wǎng)模塊CP443中的IP地址保持在同一個(gè)網(wǎng)段內(nèi),否則通信鏈接失敗,上位機(jī)與PLC就無(wú)法進(jìn)行數(shù)據(jù)交換。

3.3 動(dòng)態(tài)鏈接庫(kù)函數(shù)聲明

程序中用到的PRODAVE函數(shù)主要有:

(1)LoadConnection_ex6函數(shù)用于建立PLC與上位機(jī)的初始化鏈接。

(2)SetActiveConnection_ex6函數(shù)用于激活PLC與上位機(jī)的鏈接。

(3)UnloadConnection_ex6函數(shù)用于斷開PLC與上位機(jī)的鏈接。

(4)field_read_ex6函數(shù)用于從PLC DB塊中讀取連續(xù)的數(shù)據(jù)。

(5)field_write_ex6函數(shù)用于向PLC DB塊中寫入連續(xù)的數(shù)據(jù)。

通信開始之前首先要調(diào)用LoadConnection_ex6函數(shù),來(lái)建立PLC與上位機(jī)的初始化鏈接,通信結(jié)束時(shí)要調(diào)用UnloadConnection_ex6函數(shù)來(lái)斷開PLC與上位機(jī)的鏈接,否則會(huì)引起上位機(jī)系統(tǒng)的異常。

VB在調(diào)用PRODAVE中函數(shù)之前,必須用Declare語(yǔ)句在模塊中聲明所要使用的DLL函數(shù),以指明函數(shù)所在的DLL庫(kù)名和路徑,以及函數(shù)的參數(shù)說(shuō)明,這樣Windows才能正確執(zhí)行函數(shù)。程序中主要函數(shù)的聲明如下:

Declare Function LoadConnection_ex6 Lib "Prodave6.dll" (ByVal ConNr As Integer, ByVal AccessPoint As String, ByVal ConTableLen As Integer, pConTable As CON_TABLE_TYPE) As Long

//ConNr 鏈接號(hào),有效值是0-63

//AccessPoint= "CP-TCPIP" 鏈接接入點(diǎn)

//ConTableLen=9 鏈接信號(hào)的長(zhǎng)度

//pConTable.AdrType 連接類型,IP地址,PLC背板號(hào),CPU槽號(hào)

Declare Function SetActiveConnection_ex6 Lib "Prodave6.dll" (ByVal ConNr As Integer) As Long

//激活鏈接號(hào)為ConNr的鏈接

Declare Function UnloadConnection_ex6 Lib "Prodave6.dll" (ByVal ConNr As Integer) As Long

//斷開鏈接號(hào)為ConNr的鏈接

Declare Function field_read_ex6 Lib "Prodave6.dll" (ByVal FieldType As Byte, ByVal blknr As Integer, ByVal StartNr As Integer, ByVal Amount As Long,BufLen As Long, pBuffer As Byte, pDatLen As Long) As Long

//從PLC DB塊中按數(shù)據(jù)字節(jié)讀取StartNr為起始字節(jié)地址Amount字節(jié)數(shù)的數(shù)據(jù)存入pBuffer緩沖區(qū)

//FieldType = Asc("d") 數(shù)值類型為Data Byte,按數(shù)據(jù)字節(jié)讀取數(shù)據(jù)

//Blknr=2 數(shù)據(jù)塊為DB2

//BufLen 緩沖區(qū)長(zhǎng)度

//pDatLen緩沖區(qū)的數(shù)據(jù)字節(jié)長(zhǎng)度的指針

Declare Function field_write_ex6 Lib "Prodave6.dll" (ByVal FieldType As Byte, ByVal blknr As Integer, ByVal StartNr As Integer, ByVal Amount As Long, BufLen As Long, pBuffer As Byte) As Long

//向PLC DB塊中寫入數(shù)據(jù)

3.3 Adodc控件連接Access數(shù)據(jù)庫(kù)

采集數(shù)據(jù)的最終目的不僅要把需要顯示的數(shù)據(jù)實(shí)時(shí)顯示在人機(jī)界面上,還要把數(shù)據(jù)記錄到數(shù)據(jù)庫(kù)中,以備日后查詢。VB中的Adodc控件是一個(gè)數(shù)據(jù)庫(kù)綁定控件,可以用該控件連接Access數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)表進(jìn)行編輯,如對(duì)數(shù)據(jù)表中的記錄進(jìn)行查詢、增加、修改和刪除等。查詢數(shù)據(jù)表中數(shù)據(jù)的部分程序如下:

如圖4所示,查詢到數(shù)據(jù)以曲線的形式直觀的表示出來(lái),以方便30MN快鍛液壓機(jī)組操作人員查詢各個(gè)比例閥的開關(guān)過(guò)程,以及閥之間的配合關(guān)系等。如果操作人員要對(duì)數(shù)據(jù)進(jìn)行分析,也可以以數(shù)據(jù)報(bào)表的形式保存 。

4 結(jié)束語(yǔ)

實(shí)踐證明用VB調(diào)用PRODAVE動(dòng)態(tài)鏈接庫(kù)集成的函數(shù)進(jìn)行上位機(jī)監(jiān)控軟件的開發(fā),并通過(guò)工業(yè)以太網(wǎng)實(shí)現(xiàn)S7-400 PLC與上位機(jī)的通信,通信實(shí)時(shí)性好,數(shù)據(jù)準(zhǔn)確性高,且滿足30MN快鍛液壓機(jī)組的工藝要求。

參考文獻(xiàn)

[1]Siemens PRODAVE MPI/IE V6.0 Manual (A5E00388168-01).Edition 05/2005.

[2]崔堅(jiān).西門子S7可編程序控制器—STEP7編程指南[M].北京:機(jī)械工業(yè)出版社,2007:257-270.

[3]明日科技,高春艷,劉彬彬,王斌.Visual Basic開發(fā)技術(shù)大全[M].北京:人民郵電出版社,2007:413-474.

[4]劉振東 梁秀滿.西門子S7-300/400 PLC與VB的通信方法[J].微計(jì)算機(jī)信息,2006(04S):55-56.

[5]郭春春,賀貴明,陳明榜,劉發(fā)慧.基于VB6.0的西門子PLC與PC的通信實(shí)現(xiàn)微機(jī)監(jiān)控功能[J].可編程控制器與工廠自動(dòng)化:plc Fa,2004:71-73.

作者單位

1.西安蘭石重工機(jī)械有限公司 陜西省西安市 710065

2.長(zhǎng)安大學(xué) 陜西省西安市 710064

猜你喜歡
通信以太網(wǎng)
基于1500以太網(wǎng)養(yǎng)豬場(chǎng)的智能飼喂控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
談實(shí)時(shí)以太網(wǎng)EtherCAT技術(shù)在變電站自動(dòng)化中的應(yīng)用
對(duì)數(shù)字微波通信技術(shù)的研究
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計(jì)
淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用