国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關注中國自動化產業發展的先行者!
隨著會計的發展,追蹤碳足跡
CAIAC 2025
2024
工業智能邊緣計算2024年會
2023年工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

PPI協議代替工控組態軟件采集數據
  • 企業:控制網    
  • 點擊數:1569     發布時間:2006-08-17 21:39:13
  • 分享到:
利用西門子S7-200 PLC內置的PPI協議的部分功能和VB ,可以做出簡單實用的控制和采集系統,可以代替一些小型的工控組態系統。
1        前言
       西門子S7-200系列可編程控制器(PLC)是控制領域應用最廣的小型PLC之一,它支持兩種與計算機通信方式:自由端口,PPI方式使用自由口方式進行編程時,必須定義自己的通訊協議,在上位機和PLC中都要編寫數據通信程序,占用PLC的內存。使用PPI協議進行通信時,PLC可以不用編程,而且可讀寫所有數據區,快捷方便。但是西門子公司沒有公布PPI協議的格式。用戶如果想使用PPI協議,必須購買西門子的協議模塊或其它廠家的組態軟件。只對于一些小型系統來說成本比較高,若只應用幾個數據,就購買一套軟件,實在是浪費。利用S7-200內置的PPI協議,開發自己的控制或采集系統不愧是一個捷徑。
2        部分PPI協議格式
SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
DU
FCS
ED
SD:(Start Delimiter)開始定界符(68H)
LE:(Length)報文數據長度
LER:(Repeated Length)重復報文數據長度(從DA到DU)
SD: (Start Delimiter)開始定界符(68H)
SA:(Source Address)數據源站地址
DA:(Destination Address)數據目標站地址
FC:(Function Code)功能碼
DSAP:(Destination Service Access Point)目的服務存取點
SSAP:(Source Service Access Point)源服務存取點
DU:(Data Unit)數據單元
FCS:校驗碼(從DA到DU數據和)
ED:(End  Code)結束碼(16H)
3        通訊過程
        從計算機上的COM口通過一條PC/PPI編程電纜連到PLC的編程口上(最小的系統要求),計算機(為主,地址為00)與PLC(為從,地址為02)采用主從方式通訊,具體過程如下圖所示,一次讀寫操作的步驟包括:(1)首先主機(計算機)發出讀寫命令,(2)從機(PLC)作出接收正確的響應(E5),(3)主機接到此響應則發出確認指令(10 02 00 5C 5E 16),(4)PLC回應給上位機數據。這樣收發兩次數據,完成一次數據的讀寫。

 
 
 
讀寫指令實例

4.1  讀指令實例
      對于一次讀取一個數據,讀命令都是33個字節。前面的0―21字節是相同的,SA=00,DA=02(PLC缺省地址),如果有多個站,DA要改成相應的站號。讀命令中從DA到DU的長度為1B即27個字節。從22字節開始根據讀取數據的類型、位置不同而不同。下表是讀不同存儲器命令的Byte22―32。
字節
22
24
25
26
27
28
29
30
31
32
功能
讀取長度
數據個數
數據類型
數據地址
校驗
結束
讀VB100
02
01
00
01
84
00
03
20
8B
16
讀VW100
04
01
00
01
84
00
03
20
8D
16
讀vd100
06
01
00
01
84
00
03
20
8F
16
讀命令的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  寫指令實例:
一次寫一個類型的數據V100,寫V區地址 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 寫入數據的長度、存儲器類型、存儲器偏移量與讀命令相同。Byte 35-38 寫入數據的位數。
5        應用實例
        在鋼管制造行業,水壓靜載試驗機(簡稱水壓機)是必備的檢驗和試驗設備。因為美國石油協會的API標準《管線鋼管 Spec 5L》和國家標準GB/T9711-1997規定,螺旋焊管和直縫焊管必須經過規定的靜水壓試驗,并且保存水壓過程的壓力曲線。該系統原來是用MCGS工控組態軟件+VB程序來完成的,采集速度較慢,最多一秒鐘采集一個,比較緩慢。現用VB語言,通過PPI協議直接采集PLC的水壓值進行處理,簡潔又迅速,懷可以開發出多種功能。采用PPI電纜將計算機COM1口與PLC的PORT0編程口連接,通訊系統采用主從結構,通訊協議遵循PPI協議格式,計算機發出讀寫申請,PLC返回相應的數據。程序實現如下
5.1   初始化程序
Private Sub Form_Load()
With MSComm1
.CommPort = 1
.Settings = "9600,e,8,1" ‘波特率9600,偶校驗,8數據位,1停止位
.InputLen = 0
.RThreshold = 1  ‘收到字符就產生事件
.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  ‘關閉通訊串口
End If
End Sub
5.2   讀VW函數
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函數
Function ppiww(adressx As Integer, datax As Integer)
‘adressx 為寫VW的地址datax 要寫入VW的整數
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的事件獲取數據
Private Sub MSComm1_OnComm()
Dim rcvtemp(5) As Byte   ‘定義確認發送的數組數據元素為字節
Dim rcv_array() As Byte
Dim yy As Long
  Select Case MSComm1.CommEvent
     Case comEvReceive
            rcv_array = MSComm1.Input  ‘取出串口接收緩沖器的數據。
            If rcv_array(0) = &HE5 Then   ‘PLC 返回應答數據E5H
            SComm1.RThreshold =25
             rcvtemp(0) = &H10
             rcvtemp(1) = &H2
             rcvtemp(2) = &H0
             rcvtemp(3) = &H5C
             rcvtemp(4) = &H5E
             rcvtemp(5) = &H16
             MSComm1.Output = rcvtemp  ‘發送確認指令碼
            ElseIF rcv_array(0) = &H68 AND rcv_array(1) = &H17 THEN 
              yy = Val(rcv_array(25)) * 256 + Val(rcv_array(26))  ‘計算讀取數據
Text1 = yy
ELSE
              MSComm1.RThreshold = 1
        End If
End Select
watchtimer.Enabled = False    ‘監視返回數據看門狗
End Sub
5.5  主程序
        程序已開始,首先寫入PLC必要的實驗數據:試驗壓力值、鋼管的直徑、保壓時間等數據,開始試驗,啟動一計時器,每隔100毫秒讀一次油壓值和水壓值,同時識別出壓力值并用曲線顯示出來,完成一次水壓試驗,保存一次水壓曲線數據,以備日后察看。在日常應用中相當可靠便捷。
6        結束語
        利用PPI協議還可以讀寫S7-200PLC中的各種類型數據,包括I、Q、SM、M、V、等數據類型,能夠直接讀出以上變量中的位、字節、字、雙字等,其中讀位變量時,是讀取該位所在的字節值,計算機再識別出該位的值,一次還可以讀些多個數據,具體的指令碼可以模擬以上的指令碼寫出。PPI協議還具有豐富多彩的功能,若要全面是用PPI協議請使用西門子的授權軟件。    
參考文獻:
[1]S7-200可編程控制器系統手冊西門子(中國)有限公司 2001.9
[2] SIMATIC S7 STEP7 使用手冊 西門子(中國)有限公司 2001.9
 

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 成人在线观看一区 | 97婷婷狠狠成人免费视频 | 成年片人免费www | 日韩欧美印度一级毛片 | 亚洲精品一区二区三区在线播放 | 在线观看精品视频一区二区三区 | 欧美成人免费一区在线播放 | 免费观看成为人视频 | 一级一片在线播放在线观看 | 黄色片日本人 | 日韩精品在线观看免费 | 成人看片在线观看免费 | 亚洲一区二区三区免费视频 | 亚洲欧美日韩另类在线 | 美女视频黄.免费网址 | 永久精品免费影院在线观看网站 | 精品久久久久国产免费 | 一级毛片一级毛片一级毛片 | 久久亚洲综合中文字幕 | 亚洲羞羞裸色私人影院 | 久久福利精品 | 久久高清免费 | 美女视频黄.免费网址 | 亚洲国产www| 国内精品久久久久久久aa护士 | 欧美在线观看高清一二三区 | 亚洲欧美中文日韩在线v日本 | 国产精品一国产精品 | 国产欧美在线播放 | 暖暖视频日韩欧美在线观看 | 久久精品免费视频观看 | 日本免费久久 | 精品亚洲成a人片在线观看 精品亚洲成a人在线播放 | 一级一级一片免费高清 | 国产成人福利视频网站 | 99久久综合国产精品免费 | 奇米影视7777久久精品 | 亚洲免费视频网站 | 日韩免费一区二区三区 | 日韩久久精品 | 国产手机精品a |