1全局?jǐn)?shù)據(jù)包通信簡(jiǎn)介
對(duì)于PLC之間的數(shù)據(jù)交換,只關(guān)心數(shù)據(jù)的發(fā)送區(qū)和接收區(qū),全局?jǐn)?shù)據(jù)包的通信方式是在配PLC硬件的過(guò)程中,組態(tài)所要通信PLC站之間的發(fā)送區(qū)和接收區(qū),不需要任何程序處理,這種通信方式只適合S7-300/300/400 PLC之間相互通信。
下面將以舉例的方式介紹全局?jǐn)?shù)據(jù)包通信,使用的軟硬件如下:
所需硬件:CPU315-2DP,CPU416-2DP
所需軟件:STEP7 V5.2 SP1
注意:TIA軟件平臺(tái)不再支持全局?jǐn)?shù)據(jù)包通信方式
2全局?jǐn)?shù)據(jù)包的配置
1)首先打開(kāi)編程軟件STEP7,建立一個(gè)新項(xiàng)目如MPI_GD,在此項(xiàng)目下插入兩個(gè)站STATION1/CPU416-2DP,STATION2/CPU315-2DP,分別組態(tài)硬件,插入CPU,配置MPI的站號(hào)和通信速率,在本例中MPI的站號(hào)分別設(shè)置為2號(hào)站和4號(hào)站,通信速率為187.5Kbit/S。
這些工作完成以后,可以組態(tài)數(shù)據(jù)的發(fā)送區(qū)和接收區(qū)。點(diǎn)擊項(xiàng)目名MPI_GD后出現(xiàn)STATION1,STATION2和MPI網(wǎng),點(diǎn)擊MPI,再點(diǎn)擊菜單“Options”->
“Define Global Date”進(jìn)入組態(tài)畫(huà)面如圖1、2:
圖1進(jìn)入全局?jǐn)?shù)據(jù)組態(tài)界面
圖2全局?jǐn)?shù)據(jù)組態(tài)界面
2)插入所有需要通信的PLC站CPU
雙擊GD ID右邊的CPU欄選擇需要通信PLC站的CPU。CPU欄總共有15列,這就意味者最多有15個(gè)CPU能夠參與通信。在每個(gè)CPU欄底下填上數(shù)據(jù)的發(fā)送區(qū)和接收區(qū),例如:CPU416-2DP的發(fā)送區(qū)為DB1.DBB0~DB1.DBB21,可以填寫(xiě)為DB1.DBB0:22,然后在菜單“edit”選擇“Sender”作為發(fā)送區(qū)。
CPU315-2DP的接收區(qū)為DB1.DBB0~21,可以填寫(xiě)為DB1.DBB0:22。編譯存盤(pán)后,把組態(tài)數(shù)據(jù)分別下載到CPU中,這樣數(shù)據(jù)就可以相互交換了。發(fā)送接收數(shù)據(jù)區(qū)的設(shè)置參考圖3:
圖3設(shè)置通信區(qū)
地址區(qū)可以為DB,M,I,Q,區(qū),長(zhǎng)度S7-300最大為22個(gè)字節(jié),S7-400最大為54個(gè)字節(jié)。發(fā)送區(qū)與接收區(qū)應(yīng)一致,所以在上例中通信區(qū)最大為22個(gè)字節(jié)。
3多個(gè)CPU通信
了解多個(gè)CPU通信首先要了解GD ID,編譯以后,每行通信區(qū)都會(huì)有GD ID號(hào),
可以參考圖3為
A:全局?jǐn)?shù)據(jù)包的循環(huán)數(shù),每一循環(huán)數(shù)表示和一個(gè)CPU通信,例如兩個(gè)S7-300CPU通信,發(fā)送與接收是一個(gè)循環(huán),S7-400中三個(gè)CPU之間的發(fā)送與接收是一個(gè)循環(huán),
循環(huán)數(shù)與CPU有關(guān),S7-300CPU最多為4個(gè),所以最多和4個(gè)CPU通信。S7-400CPU414-2DP最多為8個(gè),S7-400CPU416-2DP最多為16個(gè)。
B:全局?jǐn)?shù)據(jù)包的個(gè)數(shù)。表示一個(gè)循環(huán)有幾個(gè)全局?jǐn)?shù)據(jù)包,例如兩個(gè)S7站相互通信
一個(gè)循環(huán)有兩個(gè)數(shù)據(jù)包。如圖4所示:
圖4一個(gè)循環(huán)兩個(gè)數(shù)據(jù)包
C:一個(gè)數(shù)據(jù)包里的數(shù)據(jù)區(qū)數(shù)
可以參考圖5:CPU315-2DP發(fā)送4組數(shù)據(jù)到CPU416-2DP,4個(gè)數(shù)據(jù)區(qū)是一個(gè)數(shù)據(jù)包。從上面可以知道一個(gè)數(shù)據(jù)包最大為22個(gè)字節(jié),在這種情況下每個(gè)額外的數(shù)據(jù)區(qū)占用兩個(gè)字節(jié),所以數(shù)據(jù)量最大為16個(gè)字節(jié)。
圖5一個(gè)數(shù)據(jù)包里的數(shù)據(jù)區(qū)數(shù)
對(duì)于A,B,C的介紹只是用于優(yōu)化數(shù)據(jù)的接收區(qū)和發(fā)送區(qū),減少CPU的通信負(fù)載,簡(jiǎn)單應(yīng)用可以不用考慮這些,GD ID編譯后自動(dòng)生成。
4通信的診斷
在多個(gè)CPU通信時(shí),有時(shí)通信會(huì)中斷,是什么原因造成通信中斷?我們編譯完成后,在菜單“View”中點(diǎn)擊“Scan Rates”和“GD Status”可以?huà)呙柘禂?shù)和狀態(tài)字。如圖6所示:
圖6通信診斷
S R:掃描頻率系數(shù)。如圖6 SR1.1為225,表示發(fā)送更新時(shí)間為225×CPU循環(huán)時(shí)間。范圍為1~255。通信中斷的問(wèn)題往往設(shè)置掃描時(shí)間過(guò)快??筛拇笠恍?/p>
GDS:每包數(shù)據(jù)的狀態(tài)字(雙字)。可根據(jù)狀態(tài)字編寫(xiě)相應(yīng)的錯(cuò)誤處理程序,結(jié)構(gòu)如下:
第一位:發(fā)送區(qū)域長(zhǎng)度錯(cuò)誤。
第二位:發(fā)送區(qū)數(shù)據(jù)塊不存在。
第四位:全局?jǐn)?shù)據(jù)包丟失。
第五位:全局?jǐn)?shù)據(jù)包語(yǔ)法錯(cuò)誤。
第六位:全局?jǐn)?shù)據(jù)包數(shù)據(jù)對(duì)象丟失。
第七位:發(fā)送區(qū)與接收區(qū)數(shù)據(jù)對(duì)象長(zhǎng)度不一致。
第八位:接收區(qū)長(zhǎng)度錯(cuò)誤。
第九位:接收區(qū)數(shù)據(jù)塊不存在。
第十二位:發(fā)送方從新啟動(dòng)。
第三十二位:接收區(qū)接收到新數(shù)據(jù)。
GST:所有GDS相“OR”的結(jié)果
如果編程者使用CP5511/5611編程卡可以首先診斷一下連線(xiàn)是否可靠,如上例中S7-300 MPI地址是2,S7-400MPI地址是4,用CP卡連接到MPI網(wǎng)上(PROFIBUS接頭必須有編程口)可以直接讀出2,4號(hào)站,在“控制面板”->“PG/PC interface” ->“Diagnostics”->“read”讀出所以網(wǎng)上站號(hào),如圖7所示:
圖7使用網(wǎng)卡診斷站號(hào)
0號(hào)站位CP5611站號(hào),如果沒(méi)有讀出2,4號(hào)站,說(shuō)明連線(xiàn)有問(wèn)題或MPI網(wǎng)傳輸速率不一致,可以把問(wèn)題具體化。
5事件觸發(fā)的數(shù)據(jù)傳送
如果需要控制數(shù)據(jù)的發(fā)送與接收,在某一事件,某一時(shí)刻,接收和發(fā)送所需要的數(shù)據(jù),這時(shí)將用到事件觸發(fā)的數(shù)據(jù)傳送。這種通信方式通過(guò)調(diào)用CPU的系統(tǒng)功能SFC60 (GD_SND),SFC61(GD_RCV)來(lái)完成的,而且只有S7-400CPU支持,并且必須設(shè)置CPU的SR(掃描頻率)為0,可參考圖8全局?jǐn)?shù)據(jù)的組態(tài)畫(huà)面:
圖8在S7-400CPU側(cè)的SR為0
與上面作法相同編譯存盤(pán)后下載到相應(yīng)的CPU中,然后在S7-400側(cè)中調(diào)用SFC60/61控制接收與發(fā)送。
所需硬件:CPU315-2DP,CPU416-2DP。
所需軟件:STEP7 V5.2 SP1
CIRCLE_ID,BLOCK_ID參考GD A。B。C。
例子中M1.1為1時(shí)CPU416接收CPU315的數(shù)據(jù)MB20~MB29放到MB40~MB49中,M1.0為1時(shí)CPU416發(fā)送數(shù)據(jù)MB60~MB69到CPU315MB60~MB69中
-
通信
+關(guān)注
關(guān)注
18文章
6145瀏覽量
137160 -
軟硬件
+關(guān)注
關(guān)注
1文章
313瀏覽量
19480 -
數(shù)據(jù)包
+關(guān)注
關(guān)注
0文章
269瀏覽量
24818
原文標(biāo)題:S7-300/400 通過(guò)全局?jǐn)?shù)據(jù)包通信
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
請(qǐng)問(wèn)如何獲取藍(lán)牙通信的數(shù)據(jù)包?
請(qǐng)問(wèn)在串口通信中數(shù)據(jù)包的幀頭和幀尾怎樣加入到數(shù)據(jù)包?
串口通信簡(jiǎn)介和STM32的串口通信
SPI通信簡(jiǎn)介
STM32F4串口通信簡(jiǎn)介
89C52串口通信簡(jiǎn)介
STM32F103芯片實(shí)現(xiàn)USART串口通信簡(jiǎn)介
網(wǎng)絡(luò)數(shù)據(jù)包捕獲機(jī)制研究
基于Jpcap的數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
數(shù)據(jù)包過(guò)濾原理

什么是數(shù)據(jù)包?
西門(mén)子PLC通信技術(shù)培訓(xùn)教程

網(wǎng)絡(luò)數(shù)據(jù)包分析軟件wireshark的基本使用
Wireshark網(wǎng)絡(luò)數(shù)據(jù)包分析軟件簡(jiǎn)介

評(píng)論