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