技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應用方案 > NI 利用西門子PPI協(xié)議采集數(shù)據(jù)

NI 利用西門子PPI協(xié)議采集數(shù)據(jù)

時間:2006-06-07 09:08:00來源:0

導語:?利用西門子S7-200 PLC內(nèi)置的PPI協(xié)議的部分功能,可以做出簡單使用的控制和采集系統(tǒng)
摘 要:利用西門子S7-200 PLC內(nèi)置的PPI協(xié)議的部分功能,可以做出簡單使用的控制和采集系統(tǒng)。 關(guān)鍵詞:PPI協(xié)議、PLC通訊、數(shù)據(jù)采集 1、前言 西門子S7-200系列可編程控制器(PLC)是控制領(lǐng)域應用最廣的小型PLC之一,它支持兩種與計算機通信方式:自由端口,PPI方式使用自由口方式進行編程時,必須定義自己的通訊協(xié)議,在上位機和PLC中都要編寫數(shù)據(jù)通信程序,占用PLC的內(nèi)存。使用PPI協(xié)議進行通信時,PLC可以不用編程,而且可讀寫所有數(shù)據(jù)區(qū),快捷方便。但是西門子公司沒有公布PPI協(xié)議的格式。用戶如果想使用PPI協(xié)議,必須購買西門子的協(xié)議模塊或其它廠家的組態(tài)軟件。只對于一些小型系統(tǒng)來說成本比較高,若只應用幾個數(shù)據(jù),就購買一套軟件,實在是浪費。利用S7-200內(nèi)置的PPI協(xié)議,開發(fā)自己的控制或采集系統(tǒng)不愧是一個捷徑。 2、部分PPI協(xié)議格式 SD:(Start Delimiter)開始定界符(68H) LE:(Length)報文數(shù)據(jù)長度 LER:(Repeated Length)重復報文數(shù)據(jù)長度(從DA到DU) SD: (Start Delimiter)開始定界符(68H) SA:(Source Address)數(shù)據(jù)源站地址 DA:(Destination Address)數(shù)據(jù)目標站地址 FC:(Function Code)功能碼 DSAP:(Destination Service Access Point)目的服務存取點 SSAP:(Source Service Access Point)源服務存取點 DU:(Data Unit)數(shù)據(jù)單元 FCS:校驗碼(從DA到DU數(shù)據(jù)和) ED:(End Code)結(jié)束碼(16H) 3、通訊過程 從計算機上的COM口通過一條PC/PPI編程電纜連到PLC的編程口上(最小的系統(tǒng)要求),計算機(為主,地址為00)與PLC(為從,地址為02)采用主從方式通訊,具體過程如下圖所示,一次讀寫操作的步驟包括:(1)首先主機(計算機)發(fā)出讀寫命令,(2)從機(PLC)作出接收正確的響應(E5),(3)主機接到此響應則發(fā)出確認指令(10 02 00 5C 5E 16),(4)PLC回應給上位機數(shù)據(jù)。這樣收發(fā)兩次數(shù)據(jù),完成一次數(shù)據(jù)的讀寫。 4、讀寫指令實例 4.1讀指令實例 對于一次讀取一個數(shù)據(jù),讀命令都是33個字節(jié)。前面的0—21字節(jié)是相同的,SA=00,DA=02(PLC缺省地址),如果有多個站,DA要改成相應的站號。讀命令中從DA到DU的長度為1B即27個字節(jié)。從22字節(jié)開始根據(jù)讀取數(shù)據(jù)的類型、位置不同而不同。 下表是讀不同存儲器命令的Byte22—32。 讀命令的Byte22-32 實際輸出指令:讀VB100,Byte28-30 為100*8=&H0320 68 1B 1B 68 2 0 6C 32 1 0 0 0 0 0 E 0 0 4 1 12 A 10 2 0 1 0 1 84 0 3 20 8B 16 4.2 寫指令實例: 一次寫一個類型的數(shù)據(jù)V100,寫V區(qū)地址 Byte28-30 為100*8=&H0320 寫VB100(16): 68 20 20 68 2 0 6C 32 1 0 0 0 0 0 E 0 5 5 1 12 A 10 2 0 1 0 1 84 0 3 20 0 4 0 8 10 B9 16 寫VW100(16): 68 21 21 68 2 0 6C 32 1 0 0 0 0 0 E 0 6 5 1 12 A 10 4 0 1 0 1 84 0 3 20 0 4 0 10 0 10 B9 16 寫VD100(16): 68 23 23 68 2 0 6C 32 1 0 0 0 0 0 E 0 8 5 1 12 A 10 6 0 1 0 1 84 0 3 20 0 4 0 20 0 0 0 10 B9 16 Byte 22-- Byte 30 寫入數(shù)據(jù)的長度、存儲器類型、存儲器偏移量與讀命令相同。Byte 35-38 寫入數(shù)據(jù)的位數(shù)。 5、應用實例 在鋼管制造行業(yè),水壓靜載試驗機(簡稱水壓機)是必備的檢驗和試驗設(shè)備。因為美國石油協(xié)會的API標準《管線鋼管 Spec 5L》和國家標準GB/T9711-1997規(guī)定,螺旋焊管和直縫焊管必須經(jīng)過規(guī)定的靜水壓試驗,并且保存水壓過程的壓力曲線。該系統(tǒng)原來是用MCGS工控組態(tài)軟件+VB程序來完成的,采集速度較慢,最多一秒鐘采集一個,比較緩慢?,F(xiàn)用VB語言,通過PPI協(xié)議直接采集PLC的水壓值進行處理,簡潔又迅速,懷可以開發(fā)出多種功能。采用PPI電纜將計算機COM1口與PLC的PORT0編程口連接,通訊系統(tǒng)采用主從結(jié)構(gòu),通訊協(xié)議遵循PPI協(xié)議格式,計算機發(fā)出讀寫申請,PLC返回相應的數(shù)據(jù)。程序?qū)崿F(xiàn)如下 5.1 初始化程序 Private Sub Form_Load() With MSComm1 .CommPort = 1 .Settings = "9600,e,8,1" ‘波特率9600,偶校驗,8數(shù)據(jù)位,1停止位 .InputLen = 0 .RThreshold = 1 ‘收到字符就產(chǎn)生事件 .InputMode = comInputModeBinary ‘二進制接收模式 End With If MSComm1.PortOpen = False Then MSComm1.PortOpen = True ‘打開通訊串口 End If End Sub Private Sub Form_Unload(Cancel As Integer) If MSComm1.PortOpen = True Then MSComm1.PortOpen = False ‘關(guān)閉通訊串口 End If End Sub 5.2 讀VW函數(shù) Function ppird(readaddress As String) ‘讀VW的地址,例如:1000 Dim i As Integer, temp As Integer Dim sendbyte(32) As Byte sendbyte(0) = &H68 sendbyte(1) = &H1B sendbyte(2) = &H1B sendbyte(3) = &H68 sendbyte(4) = &H2 sendbyte(5) = &H0 sendbyte(6) = &H6C sendbyte(7) = &H32 sendbyte(8) = &H1 sendbyte(9) = &H0 sendbyte(10) = &H0 sendbyte(11) = &H0 sendbyte(12) = &H0 sendbyte(13) = &H0 sendbyte(14) = &HE sendbyte(15) = &H0 sendbyte(16) = &H0 sendbyte(17) = &H4 sendbyte(18) = &H1 sendbyte(19) = &H12 sendbyte(20) = &HA sendbyte(21) = &H10 sendbyte(22) = &H4 sendbyte(23) = &H0 sendbyte(24) = &H1 sendbyte(25) = &H0 sendbyte(26) = &H1 sendbyte(27) = &H84 sendbyte(28) = &H0 sendbyte(29) = (readaddress * 8) \ 256 ‘計算讀高位地址 sendbyte(30) = (readaddress * 8) Mod 256 ‘計算讀低位地址 sendbyte(31) = &H0 sendbyte(32) = &H16 For i = 4 To 30 temp = temp + sendbyte(i) Next sendbyte(31) = temp Mod 256 ‘計算校驗碼 ppird = sendbyte ‘‘返回讀VW 指令碼 End Function 5.3 寫VW函數(shù) Function ppiww(adressx As Integer, datax As Integer) ‘a(chǎn)dressx 為寫VW的地址datax 要寫入VW的整數(shù) Dim i As Integer, temp As Integer Dim sendbyte(38) As Byte sendbyte(0) = &H68 sendbyte(1) = &H21 sendbyte(2) = &H21 sendbyte(3) = &H68 sendbyte(4) = &H2 sendbyte(5) = &H0 sendbyte(6) = &H6C sendbyte(7) = &H32 sendbyte(8) = &H1 sendbyte(9) = &H0 sendbyte(10) = &H0 sendbyte(11) = &H0 sendbyte(12) = &H0 sendbyte(13) = &H0 sendbyte(14) = &HE sendbyte(15) = &H0 sendbyte(16) = &H6 sendbyte(17) = &H5 sendbyte(18) = &H1 sendbyte(19) = &H12 sendbyte(20) = &HA sendbyte(21) = &H10 sendbyte(22) = &H4 sendbyte(23) = &H0 sendbyte(24) = &H1 sendbyte(25) = &H0 sendbyte(26) = &H1 sendbyte(27) = &H84 sendbyte(28) = &H0 sendbyte(29) = (adressx * 8) \ 256 sendbyte(30) = (adressx * 8) Mod 256 sendbyte(31) = &H0 sendbyte(32) = &H4 sendbyte(33) = &H0 sendbyte(34) = &H10 sendbyte(35) = datax \ 256 sendbyte(36) = datax Mod 256 sendbyte(37) = &H0 sendbyte(38) = &H16 For i = 4 To 36 temp = temp + sendbyte(i) Next sendbyte(37) = temp Mod 256 ppiww = sendbyte ‘返回寫VW 指令碼 End Function 5.4 利用MSCOMM的事件獲取數(shù)據(jù) Private Sub MSComm1_OnComm() Dim rcvtemp(5) As Byte ‘定義確認發(fā)送的數(shù)組數(shù)據(jù)元素為字節(jié) Dim rcv_array() As Byte Dim yy As Long Select Case MSComm1.CommEvent Case comEvReceive rcv_array = MSComm1.Input ‘取出串口接收緩沖器的數(shù)據(jù)。 If rcv_array(0) = &HE5 Then SComm1.RThreshold =25 rcvtemp(0) = &H10 rcvtemp(1) = &H2 rcvtemp(2) = &H0 rcvtemp(3) = &H5C rcvtemp(4) = &H5E rcvtemp(5) = &H16 MSComm1.Output = rcvtemp ‘發(fā)送確認指令碼 ElseIF rcv_array(0) = &H68 AND rcv_array(1) = &H17 THEN yy = Val(rcv_array(25)) * 256 + Val(rcv_array(26)) ‘計算讀取數(shù)據(jù) Text1 = yy ELSE MSComm1.RThreshold = 1 End If End Select watchtimer.Enabled = False End Sub 5.5 主程序 程序已開始,首先寫入PLC必要的實驗數(shù)據(jù):試驗壓力值、鋼管的直徑、保壓時間等數(shù)據(jù),開始試驗,啟動一計時器,每隔100毫秒讀一次油壓值和水壓值,同時識別出壓力值并用曲線顯示出來,完成一次水壓試驗,保存一次水壓曲線數(shù)據(jù),以備日后察看。在日常應用中相當可靠便捷。 6、結(jié)束語 利用PPI協(xié)議還可以讀寫S7-200PLC中的各種類型數(shù)據(jù),包括I、Q、SM、M、V、等數(shù)據(jù)類型,能夠直接讀出以上變量中的位、字節(jié)、字、雙字等,其中讀位變量時,是讀取該位所在的字節(jié)值,計算機再識別出該位的值,一次還可以讀些多個數(shù)據(jù),具體的指令碼可以模擬以上的指令碼寫出。PPI協(xié)議還具有豐富多彩的功能,若要全面是用PPI協(xié)議請使用西門子的授權(quán)軟件。 參考文獻: [1]S7-200可編程控制器系統(tǒng)手冊 西門子(中國)有限公司 2001.9 [2] SIMATIC S7 STEP7 使用手冊 西門子(中國)有限公司 2001.9 作者簡介:黃法春,男,生于1969年,畢業(yè)于沈陽化工學院自動化專業(yè)。主要從事螺旋焊管制造設(shè)備的電氣設(shè)計與維護工作。 聯(lián)系方法:黃法春 勝利鋼管有限公司 255082 地址:山東省淄博市張店區(qū)中埠鎮(zhèn) 電話: 0546-8850085 Email: deck_hand@sina100.com

標簽:

點贊

分享到:

上一篇:安邦信變頻器在三次采油技術(shù)...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號