S7-1200 CPU 與 S7-300 PN/S7-400 S7 通信(S7-1200 作為客戶端)
S7-1200 CPU 與 S7-300 PN CPU 之間的以太網(wǎng)通信通過 S7 通信來實(shí)現(xiàn)。當(dāng) S7-1200 作為客戶端,S7-300 PN 作為服務(wù)器,需在客戶端單邊組態(tài)連接和編程,而作為服務(wù)器端的 S7-300 PN 只需準(zhǔn)備好通信的數(shù)據(jù)就行。
此外本文也可以作為 S7-1200 與 S7-400 PN/CP 之間的 S7 通信文檔。
硬件和軟件需求及所完成的通信任務(wù)
所需條件:
① S7-1215 DC/DC/DC V4.4 / CPU 314C-2 PN/DP,V3.3
② TIA STEP7 V17 Professional / STEP7 V5.6 SP2 HF7
所完成的通信任務(wù):
① S7-1200 CPU 讀取 S7-300 CPU中 DB1 的 10 個(gè)字節(jié)數(shù)據(jù)到 S7-1200 的 DB3 中。
② S7-1200 CPU 將本地 DB4 中 10 個(gè)字節(jié)的數(shù)據(jù)寫到 S7-300 CPU 的 DB2 中。
S7-1200 與 S7-300 PN 之間 S7 通訊,可以分 3 種情況來操作,具體如下:
- 第一種情況:S7-1200 與 S7-300 PN 在同一項(xiàng)目中操作
- 第二種情況:S7-1200 與 S7-300 PN 不在一個(gè)項(xiàng)目中的操作(兩個(gè) TIA Portal 項(xiàng)目)
- 第三種情況:S7-1200 與 S7-300 PN 不在一個(gè)項(xiàng)目中的操作(S7-1200 在 TIA Portal 項(xiàng)目,S7-300 PN 在 STEP7 項(xiàng)目)
一. 第一種情況(S7-1200 與 S7-300 在同一項(xiàng)目中操作)
使用 TIA Portal 在同一個(gè)項(xiàng)目中,新建一個(gè) S7-1200 站點(diǎn),一個(gè) S7-300 站點(diǎn),然后做 S7 通訊。
1.1 S7-1200 側(cè)和 S7-300 側(cè)通信的編程,連接參數(shù)及通信參數(shù)的配置
1. 使用 TIA Portal 軟件新建一個(gè)項(xiàng)目并完成硬件配置
在 TIA Portal 的 “Portal 視圖” 中選擇 “創(chuàng)建新項(xiàng)目” 創(chuàng)建一個(gè)新項(xiàng)目。
2.添加硬件并命名PLC
然后進(jìn)入 “項(xiàng)目視圖”,在“項(xiàng)目樹” 下雙擊 “添加新設(shè)備”,在對話框中選擇所使用的 S7-1200 CPU 添加到機(jī)架上,命名為 PLC_1,如圖 1 所示。
圖 1. 添加新設(shè)備
為了編程方便,使用 CPU 屬性中定義的時(shí)鐘位,定義方法如下:
在 “項(xiàng)目樹” > “PLC_1” > “設(shè)備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統(tǒng)和時(shí)鐘存儲(chǔ)器” 下,將時(shí)鐘位定義在 MB0,如圖 2 所示。時(shí)鐘位程序主要使用 M0.3,它是以 2Hz 的速率在 0 和 1 之間切換的一個(gè)位,可以使用它去自動(dòng)激活發(fā)送任務(wù)。
圖 2. 時(shí)鐘位
3. 為 PROFINET 通信口分配以太網(wǎng)地址
在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會(huì)出現(xiàn) PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配 IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為255.255.255.0,如圖 3 所示。
圖 3. 分配 IP 地址
4.使用 TIA Portal 軟件添加新設(shè)備并命名 PLC_2
與 PLC_1 在同一個(gè)項(xiàng)目中,在“項(xiàng)目樹” 下雙擊 “添加新設(shè)備”,在對話框中選擇所使用的 S7-300 CPU 添加到機(jī)架上,命名為 PLC_2,如圖 4 所示。
圖 4. 添加新設(shè)備
5. 為 PROFINET 通信口分配以太網(wǎng)地址
在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會(huì)出現(xiàn) PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配 IP 地址為 192.168.0.2 ,子網(wǎng)掩碼為255.255.255.0,如圖 5 所示。
圖 5. 分配 IP 地址
6. 創(chuàng)建 CPU 的邏輯網(wǎng)絡(luò)連接
在網(wǎng)絡(luò)視圖下,用鼠標(biāo)點(diǎn)中 S7-1200 上的 PROFINET 通信口的綠色小方框,然后拖拽出一條線,到另外一個(gè) S7-300 上的 PROFINET 通信口上,松開鼠標(biāo),PN/IE_1的子網(wǎng)連接就建立起來了,如圖 6 所示。
圖 6. 網(wǎng)絡(luò)視圖
1.2 S7-1200 側(cè)組態(tài)S7連接,連接參數(shù)說明
1. 網(wǎng)絡(luò)組態(tài)
(1)打開 “網(wǎng)絡(luò)視圖” 配置網(wǎng)絡(luò),首先點(diǎn)中左上角的“連接”圖標(biāo),選擇“S7 連接”,然后選中 S7-1200 CPU,右鍵選擇“添加新連接”添加新的連接,如圖 7 所示。
圖 7. 添加連接
(2) 然后在“添加新連接”窗口中,選擇“PLC_2[CPU314C-2 PN/DP]”,然后點(diǎn)擊“添加”建立 S7 連接,如圖 8 所示。
圖 8. 選擇連接伙伴
(3)在信息欄里顯示連接已添加,如圖 9 所示,點(diǎn)擊"關(guān)閉"即可。
圖 9. 創(chuàng)建新連接
(4)在“網(wǎng)絡(luò)視圖”中,鼠標(biāo)選中剛剛生成的"S7_連接_1",在屬性的常規(guī)選項(xiàng)卡中的"常規(guī)"欄,可查看創(chuàng)建的連接名稱和連接路徑,如圖 10 所示。
圖 10. S7 連接常規(guī)信息
(5)在屬性的常規(guī)選項(xiàng)卡中的"本地 ID"欄,可查看連接的 ID 號,如圖 11 所示。
圖 11. 連接 ID 號
(6)在屬性的常規(guī)選項(xiàng)卡中的"特殊連接屬性"欄,可查看連特殊接的性,如圖 12 所示。
圖 12. 連接屬性
(7)在屬性的常規(guī)選項(xiàng)卡中的"地址詳細(xì)信息"欄,可查看連接的 TSAP 號,如圖 13 所示。
圖 13. 查看通訊雙方的 TSAP 號
2. 檢查連接狀態(tài)
(1)配置完網(wǎng)絡(luò)連接,分別對 S7-1200 和 S7-300 編譯保存并下載。下載完成后,可點(diǎn)擊"轉(zhuǎn)至在線"按鈕,在“網(wǎng)絡(luò)視圖”的“連接”選項(xiàng)卡中查看連接狀態(tài),如圖 14 所示,本地連接名稱“S7_連接_1”左側(cè)有綠色標(biāo)志,則表示組態(tài)的連接已經(jīng)成功建立。
圖 14. 通訊連接已建立
(2)如果出現(xiàn)如圖 15 所示的情況,本地連接名稱“S7_連接_1”左側(cè)有紅色標(biāo)志,則說明連接沒有建立,請檢查網(wǎng)線的連接、IP 地址等。
圖 15. 通訊連接未建立
1.3 S7-1200 側(cè)和 S7-300 側(cè)軟件編程
1. S7-1200 側(cè)軟件編程
(1)創(chuàng)建并定義 S7-1200 的接收數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在 DB 塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問”,點(diǎn)擊“確定”鍵,定義接收數(shù)據(jù)區(qū)為 10個(gè)字節(jié)的數(shù)組,如圖 16,17,18 所示。
圖 16. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
圖 17. 設(shè)置接收數(shù)據(jù)區(qū) DB 塊屬性
圖 18. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
(2)創(chuàng)建并定義 S7-1200 的發(fā)送數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在 DB 塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問”,點(diǎn)擊“確定”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 10個(gè)字節(jié)的數(shù)組,如圖 19,20,21 所示。
圖 19. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊
圖20. 設(shè)置發(fā)送數(shù)據(jù)區(qū) DB 塊屬性
圖 21. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
(3)在 OB1 中,從“指令” >“通信” >“S7 通信”下,調(diào)用 GET、PUT 通信指令,程序調(diào)用如圖 22 所示。
圖 22. 程序調(diào)用功能
(4)GET 功能塊使用背景數(shù)據(jù)塊 DB1,管腳說明如下:
參數(shù)說明:
輸入接口參數(shù):
REQ | : 系統(tǒng)時(shí)鐘 2Hz 的脈沖,在上升沿啟動(dòng)發(fā)送作業(yè) |
ID | : 連接號,要與連接配置中一致,創(chuàng)建連接時(shí)的連接號,如圖 11 所示 |
ADDR_1 | :指向伙伴 CPU 發(fā)送地址區(qū)域 |
SD_1 | :指向本地 CPU 接收地址區(qū)域 |
輸出接口參數(shù):
NDR | :接收到新數(shù)據(jù)時(shí),該位置 1 |
ERROR | :通信過程中有錯(cuò)誤發(fā)生,該位置 1 |
STATUS | :有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤代碼 |
(5)PUT 功能塊使用背景數(shù)據(jù)塊 DB2,管腳說明如下:
參數(shù)說明:
輸入接口參數(shù):
REQ | : 系統(tǒng)時(shí)鐘 2Hz 的脈沖,在上升沿啟動(dòng)發(fā)送作業(yè) |
ID | : 連接號,要與連接配置中一致,創(chuàng)建連接時(shí)的連接號,如圖 11 所示 |
ADDR_1 | :指向伙伴 CPU 接收地址區(qū)域 |
SD_1 | :指向本地 CPU 發(fā)送地址區(qū)域 |
輸出接口參數(shù):
DONE | :發(fā)送數(shù)據(jù)完成時(shí),該位置 1 |
ERROR | :通信過程中有錯(cuò)誤發(fā)生,該位置 1 |
STATUS | :有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤代碼 |
2. S7-300 側(cè)軟件編程
(1)創(chuàng)建并定義 S7-300 的發(fā)送數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_2”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,點(diǎn)擊“確定”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 10 個(gè)字節(jié)的數(shù)組,如圖 23,24 所示。
圖 23. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊
圖 24. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
(2)創(chuàng)建并定義 S7-300 的接收數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_2”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,點(diǎn)擊“確定”鍵,定義接收數(shù)據(jù)區(qū)為 10 個(gè)字節(jié)的數(shù)組,如圖 25,26 所示。
圖 25. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
圖 26. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
1.4 下載程序并監(jiān)控通信結(jié)果
下載兩個(gè) CPU 中的所有程序,實(shí)現(xiàn)兩個(gè) CPU 之間數(shù)據(jù)交換,監(jiān)控結(jié)果如圖 27 所示。
圖 27. 監(jiān)控結(jié)果
二. 第二種情況(S7-1200 與 S7-300 不在同一個(gè) TIA Portal 項(xiàng)目)
使用 TIA Portal 在一個(gè)項(xiàng)目中,新建一個(gè) S7-1200 站點(diǎn),在另一個(gè)項(xiàng)目中,新建一個(gè) S7-300 站點(diǎn),然后做 S7 通訊。
2.1 S7-1200 側(cè)通信的編程,連接參數(shù)及通信參數(shù)的配置
1. 使用 TIA Portal 軟件新建一個(gè)項(xiàng)目并完成硬件配置
在 TIA Portal 的 “Portal 視圖” 中選擇 “創(chuàng)建新項(xiàng)目” 創(chuàng)建一個(gè)新項(xiàng)目。
2. 添加硬件并命名PLC
然后進(jìn)入 “項(xiàng)目視圖”,在“項(xiàng)目樹” 下雙擊 “添加新設(shè)備”,在對話框中選擇所使用的 S7-1200 CPU 添加到機(jī)架上,命名為 PLC_1,如圖 28 所示。
圖 28. 添加新設(shè)備
為了編程方便,使用 CPU 屬性中定義的時(shí)鐘位,定義方法如下:
在 “項(xiàng)目樹” > “PLC_1” > “設(shè)備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統(tǒng)和時(shí)鐘存儲(chǔ)器” 下,將時(shí)鐘位定義在 MB0,如圖 29 所示。時(shí)鐘位程序主要使用 M0.3,它是以 2Hz 的速率在 0 和 1 之間切換的一個(gè)位,可以使用它去自動(dòng)激活發(fā)送任務(wù)。
圖 29. 時(shí)鐘位
3. 為 PROFINET 通信口分配以太網(wǎng)地址
在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會(huì)出現(xiàn) PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配 IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為 255.255.255.0,點(diǎn)擊“添加新子網(wǎng)”,增加子網(wǎng)“PN/IE_1”,如圖 30 所示。
圖 30. 分配 IP 地址
2.2 S7-300 側(cè)通信的編程,連接參數(shù)及通信參數(shù)的配置
1.使用 TIA Portal 軟件新建項(xiàng)目,添加新設(shè)備并命名 PLC_2
打開 TIA Portal ,在 “Portal 視圖” 中選擇 “創(chuàng)建新項(xiàng)目” 創(chuàng)建一個(gè)新項(xiàng)目。然后進(jìn)入 “項(xiàng)目視圖”,在“項(xiàng)目樹” 下雙擊 “添加新設(shè)備”,在對話框中選擇所使用的 S7-300 CPU 添加到機(jī)架上,命名為 PLC_2,如圖 31 所示。
圖 31. 添加新設(shè)備
2. 為 PROFINET 通信口分配以太網(wǎng)地址
在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會(huì)出現(xiàn) PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配 IP 地址為 192.168.0.2 ,子網(wǎng)掩碼為 255.255.255.0,選擇子網(wǎng)“PN/IE_1”,如圖 32 所示。
圖 32. 分配IP 地址
2.3 S7-1200 側(cè)組態(tài) S7 連接,連接參數(shù)說明
1. 網(wǎng)絡(luò)組態(tài)
(1)打開 “網(wǎng)絡(luò)視圖” 配置網(wǎng)絡(luò),首先點(diǎn)中左上角的“連接”圖標(biāo),選擇“S7 連接”,然后選中 S7-1200 CPU,右鍵選擇“添加新連接”,如圖 33 所示。
圖 33. 添加新連接
(2) 然后在“添加新連接”窗口中,選擇“未指定”,然后點(diǎn)擊“添加”建立 S7 連接,如圖 34 所示。
圖 34. 選擇連接伙伴
(3)在信息欄里顯示連接已添加,如圖 35 所示,點(diǎn)擊"關(guān)閉"即可。
圖 35. 創(chuàng)建新連接
(4)在“網(wǎng)絡(luò)視圖”中,鼠標(biāo)選中剛剛生成的"S7_連接_1",在屬性的常規(guī)選項(xiàng)卡中的"常規(guī)"欄,設(shè)置伙伴方的 IP地址,如本例中的 192.168.0.2,如圖 36 所示。
圖 36. S7 連接常規(guī)信息
(5)在屬性的常規(guī)選項(xiàng)卡中的"本地 ID"欄,可查看連接的 ID 號,如圖 37 所示。
圖 37. 連接 ID 號
(6)在屬性的常規(guī)選項(xiàng)卡中的"特殊連接屬性"欄,可查看連特殊接屬性,如圖 38 所示。
圖 38. 連接屬性
(7)在屬性的常規(guī)選項(xiàng)卡中的"地址詳細(xì)信息"欄,可定義伙伴方的 TSAP 號,如圖 39 所示。
圖 39. 定義伙伴方的 TSAP 號
注意:S7-300 預(yù)留給 S7 連接 TSAP 地址:03.02;如果通信伙伴是 S7-400,TSAP 地址:03.0x(x 是十六進(jìn)制),x 要根據(jù)用于通信的 CPU 槽位(即使通信使用 CP,也是看其所屬的 CPU 的槽位)來決定 TSAP 地址,例如:通信的 CPU 在 3 號槽,則 TSAP 地址為 03.03。
2. 檢查連接狀態(tài)
(1)配置完網(wǎng)絡(luò)連接,分別對 S7-1200 和 S7-300 編譯保存并下載。下載完成后,可點(diǎn)擊"轉(zhuǎn)至在線"按鈕,在“網(wǎng)絡(luò)視圖”的“連接”選項(xiàng)卡中查看連接狀態(tài),如圖 40 所示,本地連接名稱“S7_連接_1”左側(cè)有綠色標(biāo)志,則表示組態(tài)的連接已經(jīng)成功建立。
圖 40. 通訊連接已建立
(2)如果出現(xiàn)如圖 41 所示的情況,本地連接名稱“S7_連接_1”左側(cè)有紅色標(biāo)志,則說明連接沒有建立,請檢查網(wǎng)線的連接、IP 地址等。
圖 41. 通訊連接未建立
2.4 S7-1200 側(cè)和 S7-300 側(cè)軟件編程
1. S7-1200 側(cè)軟件編程
(1)創(chuàng)建并定義 S7-1200 的接收數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在 DB 塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問”,點(diǎn)擊“確定”鍵,定義接收數(shù)據(jù)區(qū)為 10 個(gè)字節(jié)的數(shù)組,如圖 42,43,44 所示。
圖 42. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
圖 43. 設(shè)置接收數(shù)據(jù)區(qū) DB 塊屬性
圖 44. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
(2)創(chuàng)建并定義 S7-1200 的發(fā)送數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在 DB 塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問”,點(diǎn)擊“確定”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 10 個(gè)字節(jié)的數(shù)組,如圖 45,46,47 所示。
圖 45. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊
圖 46. 設(shè)置發(fā)送數(shù)據(jù)區(qū) DB 塊屬性
圖 47. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
(3)在 OB1 中,從“指令” >“通信” >“S7 通信”下,調(diào)用 GET、PUT 通信指令,程序調(diào)用如圖 48 所示。
圖 48. 程序調(diào)用功能
(4)GET 功能塊使用背景數(shù)據(jù)塊 DB1,管腳說明如下:
參數(shù)說明:
輸入接口參數(shù):
REQ | : 系統(tǒng)時(shí)鐘 2Hz 的脈沖,在上升沿啟動(dòng)發(fā)送作業(yè) |
ID | : 連接號,要與連接配置中一致,創(chuàng)建連接時(shí)的連接號,如圖 37 所示 |
ADDR_1 | :指向伙伴 CPU 發(fā)送地址區(qū)域 |
SD_1 | :指向本地 CPU 接收地址區(qū)域 |
輸出接口參數(shù):
NDR | :接收到新數(shù)據(jù)時(shí),該位置 1 |
ERROR | :通信過程中有錯(cuò)誤發(fā)生,該位置 1 |
STATUS | :有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤代碼 |
(5)PUT 功能塊使用背景數(shù)據(jù)塊 DB2,管腳說明如下:
參數(shù)說明:
輸入接口參數(shù):
REQ | : 系統(tǒng)時(shí)鐘 2Hz 的脈沖,在上升沿啟動(dòng)發(fā)送作業(yè) |
ID | : 連接號,要與連接配置中一致,創(chuàng)建連接時(shí)的連接號,如圖 37 所示 |
ADDR_1 | :指向伙伴 CPU 接收地址區(qū)域 |
SD_1 | :指向本地 CPU 發(fā)送地址區(qū)域 |
輸出接口參數(shù):
DONE | :發(fā)送數(shù)據(jù)完成時(shí),該位置 1 |
ERROR | :通信過程中有錯(cuò)誤發(fā)生,該位置 1 |
STATUS | :有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤代碼 |
2. S7-300 側(cè)軟件編程
(1)創(chuàng)建并定義 S7-300 的發(fā)送數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_2”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,點(diǎn)擊“確定”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 10 個(gè)字節(jié)的數(shù)組,如圖 49,50 所示。
圖 49. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊
圖 50. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
(2)創(chuàng)建并定義 S7-300 的接收數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_2”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,點(diǎn)擊“確定”鍵,定義接收數(shù)據(jù)區(qū)為 10 個(gè)字節(jié)的數(shù)組,如圖 51,52 所示。
圖 51. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
圖 52. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
2.5 下載程序并監(jiān)控通信結(jié)果
下載兩個(gè) CPU 中的所有程序,實(shí)現(xiàn)兩個(gè) CPU 之間數(shù)據(jù)交換,監(jiān)控結(jié)果如圖 53 所示。
圖 53. 監(jiān)控結(jié)果
三. 第三種情況(S7-1200 在 TIA Portal 項(xiàng)目中,S7-300 在 STEP7 項(xiàng)目中)
使用 TIA Portal ,新建一個(gè) S7-1200 站點(diǎn),使用 STEP7,新建一個(gè)S7-300站點(diǎn),然后做S7通訊。
3.1 S7-1200 側(cè)通信的編程,連接參數(shù)及通信參數(shù)的配置
1. 使用 TIA Portal 軟件新建一個(gè)項(xiàng)目并完成硬件配置
在 TIA Portal 的 “Portal 視圖” 中選擇 “創(chuàng)建新項(xiàng)目”。
2. 添加硬件并命名 PLC
然后進(jìn)入 “項(xiàng)目視圖”,在“項(xiàng)目樹” 下雙擊 “添加新設(shè)備”,在對話框中選擇所使用的 S7-1200 CPU 添加到機(jī)架上,命名為 PLC_1,如圖 54 所示。
圖 54. 添加新設(shè)備
為了編程方便,使用 CPU 屬性中定義的時(shí)鐘位,定義方法如下:
在 “項(xiàng)目樹” > “PLC_1” > “設(shè)備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統(tǒng)和時(shí)鐘存儲(chǔ)器” 下,將時(shí)鐘位定義在 MB0,如圖 55 所示。時(shí)鐘位程序主要使用 M0.3,它是以 2Hz 的速率在 0 和 1 之間切換的一個(gè)位,可以使用它去自動(dòng)激活發(fā)送任務(wù)。
圖 55. 時(shí)鐘位
3. 為 PROFINET 通信口分配以太網(wǎng)地址
在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會(huì)出現(xiàn) PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為 255.255.255.0,點(diǎn)擊“添加新子網(wǎng)”,增加子網(wǎng) “PN/IE_1”,如圖 56 所示。
圖 56. 分配 IP 地址
3.2 S7-300 側(cè)通信的編程,連接參數(shù)及通信參數(shù)的配置
1. 創(chuàng)建PLC項(xiàng)目
在 STEP7 創(chuàng)建一個(gè)項(xiàng)目并插入 CPU314C-2PN/DP 站。操作步驟如下:
(1) 打開 STEP7, 在 “File” 菜單中選擇 “New…” 選項(xiàng),如圖 57 所示。
圖 57. 新建項(xiàng)目
(2) 在彈出的創(chuàng)建新項(xiàng)目窗口里輸入項(xiàng)目名為“ 300S7Server ”,然后點(diǎn)擊“ OK ”按鈕,如圖 58 所示。
圖 58. 輸入項(xiàng)目名稱
(3) 在 300S7Server 下點(diǎn)擊右鍵“ Insert New Object ”,選擇“ SIMATIC 300 Station ”,如圖 59 所示。
圖 59. 插入 S7-300 站點(diǎn)
(4) 雙擊“ Hardware ”打開硬件組態(tài),如圖 60 所示。
圖 60. 硬件組態(tài)
(5) 插入 S7-300 導(dǎo)軌,如圖 61 所示。
圖 61. 插入 S7-300 導(dǎo)軌
(6) 插入 S7-300 CPU ,與實(shí)際 CPU 一致: 6ES7 314-6EH04-0AB0 V3.3 ,如圖 62 所示。
圖 62. 插入 S7-300 CPU
(7) 在彈出的“ Properties-Ethernet interface PN-IO ”對話框的“ Parmeters ”選項(xiàng)卡中為以太網(wǎng)接口設(shè)置 IP 地址 192.168.0.2 和子網(wǎng)掩碼 255.255.255.0,如圖 63 所示 。
圖 63. 設(shè)置 IP 地址和子網(wǎng)掩碼
(8) 點(diǎn)擊“ New... ”新建子網(wǎng),如圖 64 所示。
圖 64. 新建子網(wǎng)
(9) “ New subnet Industrial Ethernet ”對話框下 Name : Ethernet(1) ,如圖 65 所示。
圖 65. 子網(wǎng)名稱
(10) 新建 子網(wǎng) 后,點(diǎn)擊“ OK ”,如圖 66 所示。
圖 66. 確認(rèn)子網(wǎng)
(11) 點(diǎn)擊“ Save and Compile ”按鈕。編譯保存硬件組態(tài)信息,如圖 67 所示。
圖 67. 保存并編譯硬件組態(tài)
3.3 S7-1200 側(cè)組態(tài) S7 連接,連接參數(shù)說明
1. 網(wǎng)絡(luò)組態(tài)
(1)打開 “網(wǎng)絡(luò)視圖” 配置網(wǎng)絡(luò),首先點(diǎn)中左上角的“連接”圖標(biāo),選擇“S7 連接”,然后選中 S7-1200 CPU,右鍵選擇“添加新連接”,如圖 68 所示。
圖 68. 添加連接
(2) 然后在“添加新連接”窗口中,選擇“未指定”,然后點(diǎn)擊“添加”建立 S7 連接,如圖 69 所示。
圖 69. 選擇連接伙伴
(3)在信息欄里顯示連接已添加,如圖 70 所示,點(diǎn)擊"關(guān)閉"即可。
圖 70. 創(chuàng)建新連接
(4)在“網(wǎng)絡(luò)視圖”中,鼠標(biāo)選中剛剛生成的"S7_連接_1",在屬性的常規(guī)選項(xiàng)卡中的"常規(guī)"欄,設(shè)置伙伴方的 IP 地址,如本例中的 192.168.0.2,如圖 71 所示。
圖 71. S7 連接常規(guī)信息
(5)在屬性的常規(guī)選項(xiàng)卡中的"本地 ID"欄,可查看連接的 ID 號,如圖 72 所示。
圖 72. 連接 ID 號
(6)在屬性的常規(guī)選項(xiàng)卡中的"特殊連接屬性"欄,可查看連特殊連接屬性,如圖 73 所示。
圖 73. 連接屬性
(7)在屬性的常規(guī)選項(xiàng)卡中的"地址詳細(xì)信息"欄,可定義伙伴方的 TSAP 號,如圖 74 所示。
圖 74. 定義伙伴方的 TSAP 號
注意:S7-300 預(yù)留給 S7 連接 TSAP 地址:03.02;如果通信伙伴是 S7-400,TSAP 地址:03.0x(x 是十六進(jìn)制),x 要根據(jù)用于通信的 CPU 槽位(即使通信使用 CP,也是看其所屬的 CPU 的槽位)來決定 TSAP 地址,例如:通信的 CPU 在 3 號槽,則 TSAP 地址為 03.03。
2. 檢查連接狀態(tài)
(1)配置完網(wǎng)絡(luò)連接,分別對 S7-1200 和 S7-300 編譯保存并下載。下載完成后,可點(diǎn)擊"轉(zhuǎn)至在線"按鈕,在“網(wǎng)絡(luò)視圖”的“連接”選項(xiàng)卡中查看連接狀態(tài),如圖 75 所示,本地連接名稱“S7_連接_1”左側(cè)有綠色標(biāo)志,則表示組態(tài)的連接已經(jīng)成功建立。
圖 75. 通訊連接已建立
(2)如果出現(xiàn)如圖 76 所示的情況,本地連接名稱“S7_連接_1”左側(cè)有紅色標(biāo)志,則說明連接沒有建立,請檢查網(wǎng)線的連接、IP 地址等。
圖 76. 通訊連接未建立
3.4 S7-1200 側(cè)和 S7-300 側(cè)軟件編程
1. S7-1200 側(cè)軟件編程
(1)創(chuàng)建并定義 S7-1200 的接收數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在 DB 塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問”,點(diǎn)擊“確定”鍵,定義接收數(shù)據(jù)區(qū)為 10 個(gè)字節(jié)的數(shù)組,如圖 77,78,79 所示。
圖 77. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
圖 78. 設(shè)置接收數(shù)據(jù)區(qū) DB 塊屬性
圖 79. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
(2)創(chuàng)建并定義 S7-1200 的發(fā)送數(shù)據(jù)區(qū) DB 塊。
通過“項(xiàng)目樹”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在 DB 塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問”,點(diǎn)擊“確定”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 10 個(gè)字節(jié)的數(shù)組,如圖 80,81,82 所示。
圖 80. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊
圖 81. 設(shè)置發(fā)送數(shù)據(jù)區(qū) DB 塊屬性
圖 82. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
(3)在 OB1 中,從“指令” >“通信” >“S7 通信”下,調(diào)用 GET、PUT 通信指令,程序調(diào)用如圖 83 所示。
圖 83. 程序調(diào)用功能
(4)GET 功能塊使用背景數(shù)據(jù)塊 DB1,管腳說明如下:
參數(shù)說明:
輸入接口參數(shù):
REQ | : 系統(tǒng)時(shí)鐘 2Hz 的脈沖,在上升沿啟動(dòng)發(fā)送作業(yè) |
ID | : 連接號,要與連接配置中一致,創(chuàng)建連接時(shí)的連接號,如圖 72 所示 |
ADDR_1 | :指向伙伴 CPU 發(fā)送地址區(qū)域 |
SD_1 | :指向本地 CPU 接收地址區(qū)域 |
輸出接口參數(shù):
NDR | :接收到新數(shù)據(jù)時(shí),該位置 1 |
ERROR | :通信過程中有錯(cuò)誤發(fā)生,該位置 1 |
STATUS | :有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤代碼 |
(5)PUT 功能塊使用背景數(shù)據(jù)塊 DB2,管腳說明如下:
參數(shù)說明:
輸入接口參數(shù):
REQ | : 系統(tǒng)時(shí)鐘 2Hz 的脈沖,在上升沿啟動(dòng)發(fā)送作業(yè) |
ID | : 連接號,要與連接配置中一致,創(chuàng)建連接時(shí)的連接號,如圖 72 所示 |
ADDR_1 | :指向伙伴 CPU 接收地址區(qū)域 |
SD_1 | :指向本地 CPU 發(fā)送地址區(qū)域 |
輸出接口參數(shù):
DONE | :發(fā)送數(shù)據(jù)完成時(shí),該位置 1 |
ERROR | :通信過程中有錯(cuò)誤發(fā)生,該位置 1 |
STATUS | :有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤代碼 |
2. S7-300 側(cè)軟件編程
2.1 創(chuàng)建并定義 S7-300 的發(fā)送數(shù)據(jù)區(qū) DB 塊。
(1)添加 Data Block ,如圖 84 所示。
圖 84. 添加數(shù)據(jù)塊
(2) 添加共享 DB1 ,作為發(fā)送數(shù)據(jù)區(qū),如圖 85 所示。
圖 85. 定義發(fā)送數(shù)據(jù)塊
(3) 添加變量,類型為數(shù)組,如圖 86 所示。
圖 86. 修改數(shù)據(jù)類型
(4) 添加 10 個(gè) BYTE 的數(shù)組變量,如圖 87 所示。
圖 87. 定義變量
2.2 創(chuàng)建并定義 S7-300 的接收數(shù)據(jù)區(qū) DB 塊。
(1)添加 Data Block ,如圖 88 所示。
圖 88. 添加數(shù)據(jù)塊
(2) 添加共享 DB2 ,作為接收數(shù)據(jù)區(qū),如圖 89 所示。
圖 89. 定義接收數(shù)據(jù)塊
(3) 添加變量,類型為數(shù)組,如圖 90 所示。
圖 90. 修改數(shù)據(jù)類型
(4) 添加 10 個(gè) BYTE 的數(shù)組變量,如圖 91 所示。
圖 91. 定義變量
3.5 下載程序并監(jiān)控通信結(jié)果
下載兩個(gè) CPU 中的所有程序,實(shí)現(xiàn)兩個(gè) CPU 之間數(shù)據(jù)交換:
(1) 寫入 16 進(jìn)制數(shù)據(jù)“ 01 02 03 04 05 06 07 08 09 10 ”,如圖 92 所示。
圖 92. CPU314C-2PN/DP 寫入數(shù)據(jù)
(2)監(jiān)控結(jié)果如圖 93 所示。
圖93. 監(jiān)控結(jié)果