時(shí)間:2006-06-07 09:08:00來源:0
SD:(Start Delimiter)開始定界符(68H)
LE:(Length)報(bào)文數(shù)據(jù)長度
LER:(Repeated Length)重復(fù)報(bào)文數(shù)據(jù)長度(從DA到DU)
SD: (Start Delimiter)開始定界符(68H)
SA:(Source Address)數(shù)據(jù)源站地址
DA:(Destination Address)數(shù)據(jù)目標(biāo)站地址
FC:(Function Code)功能碼
DSAP:(Destination Service Access Point)目的服務(wù)存取點(diǎn)
SSAP:(Source Service Access Point)源服務(wù)存取點(diǎn)
DU:(Data Unit)數(shù)據(jù)單元
FCS:校驗(yàn)碼(從DA到DU數(shù)據(jù)和)
ED:(End Code)結(jié)束碼(16H)
3、通訊過程
從計(jì)算機(jī)上的COM口通過一條PC/PPI編程電纜連到PLC的編程口上(最小的系統(tǒng)要求),計(jì)算機(jī)(為主,地址為00)與PLC(為從,地址為02)采用主從方式通訊,具體過程如下圖所示,一次讀寫操作的步驟包括:(1)首先主機(jī)(計(jì)算機(jī))發(fā)出讀寫命令,(2)從機(jī)(PLC)作出接收正確的響應(yīng)(E5),(3)主機(jī)接到此響應(yīng)則發(fā)出確認(rèn)指令(10 02 00 5C 5E 16),(4)PLC回應(yīng)給上位機(jī)數(shù)據(jù)。這樣收發(fā)兩次數(shù)據(jù),完成一次數(shù)據(jù)的讀寫。
4、讀寫指令實(shí)例
4.1讀指令實(shí)例
對于一次讀取一個(gè)數(shù)據(jù),讀命令都是33個(gè)字節(jié)。前面的0—21字節(jié)是相同的,SA=00,DA=02(PLC缺省地址),如果有多個(gè)站,DA要改成相應(yīng)的站號。讀命令中從DA到DU的長度為1B即27個(gè)字節(jié)。從22字節(jié)開始根據(jù)讀取數(shù)據(jù)的類型、位置不同而不同。 下表是讀不同存儲器命令的Byte22—32。
讀命令的Byte22-32
實(shí)際輸出指令:讀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í)例:
一次寫一個(gè)類型的數(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īng)用實(shí)例
在鋼管制造行業(yè),水壓靜載試驗(yàn)機(jī)(簡稱水壓機(jī))是必備的檢驗(yàn)和試驗(yàn)設(shè)備。因?yàn)槊绹蛥f(xié)會的API標(biāo)準(zhǔn)《管線鋼管 Spec 5L》和國家標(biāo)準(zhǔn)GB/T9711-1997規(guī)定,螺旋焊管和直縫焊管必須經(jīng)過規(guī)定的靜水壓試驗(yàn),并且保存水壓過程的壓力曲線。該系統(tǒng)原來是用MCGS工控組態(tài)軟件+VB程序來完成的,采集速度較慢,最多一秒鐘采集一個(gè),比較緩慢?,F(xiàn)用VB語言,通過PPI協(xié)議直接采集PLC的水壓值進(jìn)行處理,簡潔又迅速,懷可以開發(fā)出多種功能。采用PPI電纜將計(jì)算機(jī)COM1口與PLC的PORT0編程口連接,通訊系統(tǒng)采用主從結(jié)構(gòu),通訊協(xié)議遵循PPI協(xié)議格式,計(jì)算機(jī)發(fā)出讀寫申請,PLC返回相應(yīng)的數(shù)據(jù)。程序?qū)崿F(xiàn)如下
5.1 初始化程序
Private Sub Form_Load()
With MSComm1
.CommPort = 1
.Settings = "9600,e,8,1" ‘波特率9600,偶校驗(yàn),8數(shù)據(jù)位,1停止位
.InputLen = 0
.RThreshold = 1 ‘收到字符就產(chǎn)生事件
.InputMode = comInputModeBinary ‘二進(jìn)制接收模式
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 ‘計(jì)算讀高位地址
sendbyte(30) = (readaddress * 8) Mod 256 ‘計(jì)算讀低位地址
sendbyte(31) = &H0
sendbyte(32) = &H16
For i = 4 To 30
temp = temp + sendbyte(i)
Next
sendbyte(31) = temp Mod 256 ‘計(jì)算校驗(yàn)碼
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 ‘定義確認(rèn)發(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ā)送確認(rèn)指令碼
ElseIF rcv_array(0) = &H68 AND rcv_array(1) = &H17 THEN
yy = Val(rcv_array(25)) * 256 + Val(rcv_array(26)) ‘計(jì)算讀取數(shù)據(jù)
Text1 = yy
ELSE
MSComm1.RThreshold = 1
End If
End Select
watchtimer.Enabled = False
End Sub
5.5 主程序
程序已開始,首先寫入PLC必要的實(shí)驗(yàn)數(shù)據(jù):試驗(yàn)壓力值、鋼管的直徑、保壓時(shí)間等數(shù)據(jù),開始試驗(yàn),啟動一計(jì)時(shí)器,每隔100毫秒讀一次油壓值和水壓值,同時(shí)識別出壓力值并用曲線顯示出來,完成一次水壓試驗(yàn),保存一次水壓曲線數(shù)據(jù),以備日后察看。在日常應(yīng)用中相當(dāng)可靠便捷。
6、結(jié)束語
利用PPI協(xié)議還可以讀寫S7-200PLC中的各種類型數(shù)據(jù),包括I、Q、SM、M、V、等數(shù)據(jù)類型,能夠直接讀出以上變量中的位、字節(jié)、字、雙字等,其中讀位變量時(shí),是讀取該位所在的字節(jié)值,計(jì)算機(jī)再識別出該位的值,一次還可以讀些多個(gè)數(shù)據(jù),具體的指令碼可以模擬以上的指令碼寫出。PPI協(xié)議還具有豐富多彩的功能,若要全面是用PPI協(xié)議請使用西門子的授權(quán)軟件。
參考文獻(xiàn):
[1]S7-200可編程控制器系統(tǒng)手冊 西門子(中國)有限公司 2001.9
[2] SIMATIC S7 STEP7 使用手冊 西門子(中國)有限公司 2001.9
作者簡介:黃法春,男,生于1969年,畢業(yè)于沈陽化工學(xué)院自動化專業(yè)。主要從事螺旋焊管制造設(shè)備的電氣設(shè)計(jì)與維護(hù)工作。
聯(lián)系方法:黃法春 勝利鋼管有限公司 255082
地址:山東省淄博市張店區(qū)中埠鎮(zhèn)
電話: 0546-8850085
Email: deck_hand@sina100.com
標(biāo)簽:
傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(www.cqlanhua.cn)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>液壓快速接頭生產(chǎn)廠家怎么選?2026年優(yōu)...
2026-06-06
干式變壓器溫度控制器BWD3K130,BWD3K260...
2026-06-04
干式變壓器冷卻風(fēng)機(jī)GFDD370-150/155,GF...
2026-06-04
2026-05-28
2026-05-08
SEW減速機(jī)SEW減速電機(jī) 諾德NORD減速機(jī)諾...
2026-05-06