通過CM1243-5實現S7-1200與S7-300之間的S7通信
使用 STEP7 V12,CM1243-5 的 DP 通信接口可以做 S7 通信的客戶端或服務器;S7-1200 僅支持 S7 單邊通信;CM1243-5 與 S7-300 之間的 S7 通信僅需在作為客戶端的一邊進行組態連接和編程,而服務器端只需要準備好通信數據塊即可。
以下例子描述了 CM1243-5 與 S7-300 之間的 S7 通信的兩種方式:
一、CM1243-5 與 S7-300 CPU 集成 DP 接口的 S7 通信;
二、CM1243-5 與 CP342-5 之間的 S7 通信。
一、CM1243-5 與 S7-300 CPU 集成 DP 口的 S7 通信
硬件和軟件需求
硬件:
① 1臺 1215C + 1臺 CM1243-5
② 1臺 CPU315-2DP
③ DP 接頭及 DP電纜
④ PC(帶以太網卡)
⑤ 以太網電纜,PC adapter 編程電纜
軟件:
① TIA PORTAL V12 SP1 Update2
所完成的通信任務:
CM1243-5 作為客戶端創建 S7 連接,將數據塊 DB3 中的10個字節發送到 CPU315-2DP 的數據塊 DB1 中;同時,讀取 CPU315-2DP 數據塊 DB2 中的10個字節存儲到 1215C 的數據塊 DB4 中。
CM1243-5 作為客戶端
1. 使用 STEP7 V12 軟件新建一個項目并完成硬件配置
在項目樹“設備和網絡”>“網絡視圖”視圖下,創建兩個設備的 PROFIBUS 連接。用鼠標點中 PLC1 上的 CM1243-5 DP 通信口的粉色小方框,然后拖拽出一條線到 PLC2 上的 CPU315-2DP 通信口上,松開鼠標,連接建立。
2. 組態 S7 連接
打開“網絡視圖”配置網絡,首先點中左上角的“連接”圖標,選擇“S7 連接”,然后選中 PLC1 上的 CPU,鼠標右鍵選擇“添加新連接”。如圖1所示。
圖1. 添加 S7 連接
然后在“創建新連接”窗口中,選擇“PLC2”,并在右側窗口中選擇本地接口“CM1243-5,DP 接口”,最后再點擊“添加”建立 S7 連接。如圖2所示。
圖2. 建立 S7 連接
“S7_連接_1”為建立的連接,選中連接,在屬性的“常規”條目中可查看該 S7 連接的相關信息。如圖3所示。
圖3. S7 連接信息
點擊“特殊連接屬性”,確認 S7 連接由 PLC1 主動建立連接(即 PLC1 為客戶端)。如圖4所示。
圖4. PLC1 作為客戶端
配置完網絡連接,編譯保存并下載。在線后可查看通信連接狀態。如圖5所示。
圖5. 通信連接狀態
3. 軟件編程
分別在 PLC1 中創建發送數據塊 DB3 和接收數據塊 DB4 ,在 PLC2 中創建接收數據塊 DB1 和發送數據塊 DB2 ,均定義為10字節的長度,并在 DB 塊的“屬性”中取消“優化的塊訪問”,編譯并保存。如圖6所示。
圖6. DB 塊屬性設置
在 PLC1 的 OB1 主程序中,從“指令”>“通信”>“S7 通信”下,調用 GET、PUT 通信指令,編譯保存并下載。程序調用如圖7所示。
圖7. 程序調用
CALL “PUT” | , %DB1 | //調用 PUT,使用背景DB塊:DB1 |
REQ | :=%M0.5 | //系統時鐘 1秒脈沖 |
ID | :=W#16#100 | //連接號,要與連接配置中一致,創建連接時的本地連接號 |
DONE | :=%M2.0 | // 為1時,發送完成 |
ERROR | :=%M2.1 | // 為1時,有故障發生 |
STATUS | :=%MW4 | // 狀態代碼 |
ADDR_1 | :=P#DB1.DBX0.0 BYTE 10 | // 發送到通信伙伴數據區的地址 |
SD_1 | :=P#DB3.DBX0.0 BYTE 10 | // 本地發送數據區 |
CALL “GET” | , %DB2 | //調用 GET,使用背景DB塊:DB2 |
REQ | :=%M0.5 | //系統時鐘 1秒脈沖 |
ID | :=W#16#100 | //連接號,要與連接配置中一致,創建連接時的本地連接號 |
NDR | :=%M2.2 | //為1時,接收到新數據 |
ERROR | :=%M2.3 | //為1時,有故障發生 |
STATUS | :=%MW6 | //狀態代碼 |
ADDR_1 | :=P#DB2.DBX0.0 BYTE 10 | //從通信伙伴數據區讀取數據的地址 |
RD_1 | :=P#DB4.DBX0.0 BYTE 10 | //本地接收數據地址 |
4. 監控結果
通過在 S7-1200 側編程進行 S7 通信,實現兩個 CPU 之間的數據交換,監控結果如圖8所示。
圖8. 監控結果
二、CM1243-5 與 CP342-5 的 S7 通信
硬件和軟件需求
硬件:
① 1臺 1215C + 1臺 CM1243-5
② 1臺 CPU314C + 1臺 CP342-5
③ DP 接頭及 DP電纜
④ PC(帶以太網卡)
⑤ 以太網電纜,PC adapter 編程電纜
軟件:
① TIA PORTAL V12 SP1 Update2
所完成的通信任務:
① CM1243-5 作為客戶端創建 S7 連接,將數據塊 DB3 中的10個字節發送到 CPU314C 的數據塊 DB1 中;同時,讀取 CPU314C 數據塊 DB2 中的10個字節存儲到 1215C 的數據塊 DB4 中。
② CP342-5 作為客戶端創建 S7 連接,將數據塊 DB3 中的10個字節發送到 1215C 的數據塊 DB1 中;同時,讀取 1215C 數據塊 DB2 中的10個字節存儲到 CPU314C 的數據塊 DB4 中。
① CM1243-5 作為客戶端
1. 使用 STEP7 V12 軟件新建一個項目并完成硬件配置
在項目樹“設備和網絡”>“網絡視圖”視圖下,創建兩個設備的 PROFIBUS 連接。用鼠標點中 PLC1 上的 CM1243-5 DP 通信口的粉色小方框,然后拖拽出一條線到 PLC2 上的 CP342-5 通信口上,松開鼠標,連接建立。
2. 組態 S7 連接
打開“網絡視圖”配置網絡,首先點中左上角的“連接”圖標,選擇“S7 連接”,然后選中 PLC1 上的 CPU,鼠標右鍵選擇“添加新連接”。如圖9所示。
圖9. 添加 S7 連接
然后在“創建新連接”窗口中,選擇“PLC2”,并在右側窗口中選擇本地接口“CM1243-5,DP 接口”,最后再點擊“添加”建立 S7 連接。如圖10所示。
圖10. 建立 S7 連接
“S7_連接_1”為建立的連接,選中連接,在屬性的“常規”條目中可查看該 S7 連接的相關信息。如圖11所示。
圖11. S7 連接信息
點擊“特殊連接屬性”,確認 S7 連接由 PLC1 主動建立連接(即 PLC1 為客戶端)。如圖12所示。
圖12. PLC1 作為客戶端
配置完網絡連接,編譯保存并下載。在線后可查看通信連接狀態。如圖13所示。
圖13. 通信連接狀態
3. 軟件編程
分別在 PLC1 中創建發送數據塊 DB3 和接收數據塊 DB4 ,在 PLC2 中創建接收數據塊 DB1 和發送數據塊 DB2 ,均定義為10字節的長度,并在 DB 塊的“屬性”中取消“優化的塊訪問”,編譯并保存。如圖14所示。
圖14. DB 塊屬性設置
在 PLC1 的 OB1 主程序中,從“指令”>“通信”>“S7 通信”下,調用 GET、PUT 通信指令,編譯保存并下載。程序調用如圖15所示。
圖15. 程序調用
CALL “PUT” | , %DB1 | //調用 PUT,使用背景DB塊:DB1 |
REQ | :=%M0.5 | //系統時鐘 1秒脈沖 |
ID | :=W#16#100 | //連接號,要與連接配置中一致,創建連接時的本地連接號 |
DONE | :=%M2.0 | // 為1時,發送完成 |
ERROR | :=%M2.1 | // 為1時,有故障發生 |
STATUS | :=%MW4 | // 狀態代碼 |
ADDR_1 | :=P#DB1.DBX0.0 BYTE 10 | // 發送到通信伙伴數據區的地址 |
SD_1 | :=P#DB3.DBX0.0 BYTE 10 | // 本地發送數據區 |
CALL “GET” | , %DB2 | //調用 GET,使用背景DB塊:DB2 |
REQ | :=%M0.5 | //系統時鐘 1秒脈沖 |
ID | :=W#16#100 | //連接號,要與連接配置中一致,創建連接時的本地連接號 |
NDR | :=%M2.2 | //為1時,接收到新數據 |
ERROR | :=%M2.3 | //為1時,有故障發生 |
STATUS | :=%MW6 | //狀態代碼 |
ADDR_1 | :=P#DB2.DBX0.0 BYTE 10 | //從通信伙伴數據區讀取數據的地址 |
RD_1 | :=P#DB4.DBX0.0 BYTE 10 | //本地接收數據地址 |
4. 監控結果
通過在 S7-1200 側編程進行 S7 通信,實現兩個 CPU 之間的數據交換,監控結果如圖16所示。
圖16. 監控結果
② CP342-5 作為客戶端
1. 使用 STEP7 V12 軟件新建一個項目并完成硬件配置
在項目樹“設備和網絡”>“網絡視圖”視圖下,創建兩個設備的 PROFIBUS 連接。用鼠標點中 PLC1 上的 CM1243-5 DP 通信口的粉色小方框,然后拖拽出一條線到 PLC2 上的 CP342-5 通信口上,松開鼠標,連接建立。
2. 組態 S7 連接
打開“網絡視圖”配置網絡,首先點中左上角的“連接”圖標,選擇“S7 連接”,然后選中 PLC2 上的 CPU,鼠標右鍵選擇“添加新連接”。如圖17所示。
圖17. 添加 S7 連接
然后在“創建新連接”窗口中,選擇“PLC1”,并在右側窗口中選擇本地接口“CP342-5_1”,最后再點擊“添加”建立 S7 連接。如圖18所示。
圖18. 建立 S7 連接
“S7_連接_1”為建立的連接,選中連接,在屬性的“常規”條目中可查看該 S7 連接的相關信息。如圖19所示。
圖19. S7 連接信息
點擊“特殊連接屬性”,確認 S7 連接由 PLC2 主動建立連接(即 PLC2 為客戶端)。如圖20所示。
圖20. PLC2 作為客戶端
配置完網絡連接,編譯保存并下載。在線后可查看通信連接狀態。如圖21所示。
圖21. 通信連接狀態
3. 軟件編程
分別在 PLC1 中創建發送數據塊 DB1 和接收數據塊 DB2 ,在 PLC2 中創建接收數據塊 DB3 和發送數據塊 DB4 ,均定義為10字節的長度,并在 DB 塊的“屬性”中取消“優化的塊訪問”,編譯并保存。如圖22所示。
圖22. DB 塊屬性設置
在 PLC2 的 OB1 主程序中,從“指令”>“通信”>“S7 通信”>“其它”下,調用 GET_S、PUT_S 通信指令,編譯保存并下載。程序調用如圖23所示。
圖23. 程序調用
CALL “PUT” | , %DB1 | //調用 PUT,使用背景DB塊:DB1 |
REQ | :=%M0.5 | //系統時鐘 1秒脈沖 |
ID | :=W#16#1 | //連接號,要與連接配置中一致,創建連接時的本地連接號 |
DONE | :=%M2.0 | // 為1時,發送完成 |
ERROR | :=%M2.1 | // 為1時,有故障發生 |
STATUS | :=%MW4 | // 狀態代碼 |
ADDR_1 | :=P#DB1.DBX0.0 BYTE 10 | // 發送到通信伙伴數據區的地址 |
SD_1 | :=P#DB3.DBX0.0 BYTE 10 | // 本地發送數據區 |
CALL “GET” | , %DB2 | //調用 GET,使用背景DB塊:DB2 |
REQ | :=%M0.5 | //系統時鐘 1秒脈沖 |
ID | :=W#16#1 | //連接號,要與連接配置中一致,創建連接時的本地連接號 |
NDR | :=%M2.2 | //為1時,接收到新數據 |
ERROR | :=%M2.3 | //為1時,有故障發生 |
STATUS | :=%MW6 | //狀態代碼 |
ADDR_1 | :=P#DB2.DBX0.0 BYTE 10 | //從通信伙伴數據區讀取數據的地址 |
RD_1 | :=P#DB4.DBX0.0 BYTE 10 | //本地接收數據地址 |
4. 監控結果
通過在 314C 側編程進行 S7 通信,實現兩個 CPU 之間的數據交換,監控結果如圖24所示。
圖24. 監控結果
審核編輯:劉清
-
以太網
+關注
關注
40文章
5432瀏覽量
171892 -
plc
+關注
關注
5012文章
13314瀏覽量
463839 -
cpu
+關注
關注
68文章
10873瀏覽量
212056 -
S7-300
+關注
關注
8文章
225瀏覽量
34312 -
S7-1200
+關注
關注
11文章
331瀏覽量
18004
原文標題:通過CM1243-5實現S7-1200與S7-300之間的S7通信
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論