S7-1200 CPU 與 CP343-1 S7 通信(S7-1200 作為服務器)
S7-1200 CPU 與 CP343-1 之間的以太網通信通過 S7 通信來實現。當 CP343-1(至少標準版)作為客戶端,S7-1200 作為服務器,需在客戶端單邊組態連接和編程,而作為服務器端的 S7-1200 只需準備好通信的數據(非優化的 DB 塊,或者 PLC 變量)以及 V4.0 版本以上 CPU 需要激活連接機制。
硬件和軟件需求及所完成的通信任務
所需條件:
① S7-1215 DC/DC/DC V4.5 / CPU 314C-2 PN/DP,V3.3 + CP343-1(6GK7 343-1EX30-0XE0),V3.0
② TIA Portal Step7 Professional V17/ Step7 V5.6 SP2
所完成的通信任務:
① S7-300 CPU 將本地 DB3 中的數據通過 CP 卡寫到 S7-1200 CPU 中 DB4 中。
② S7-300 CPU 通過 CP 卡將 S7-1200 CPU 中 DB3 的數據讀取到本地 DB4 中。
S7-1200 與 CP343-1 之間 S7 通訊,可以分 2 種情況來操作,具體如下:
- 第一種情況:S7-1200 與 CP343-1 都在 TIA Portal 中操作
- 第二種情況:S7-1200 在 TIA Portal 項目中,CP343-1 在 Step7 項目中
一. 第一種情況(S7-1200 與 CP343-1 都在 TIA Portal 中操作)
在 TIA Portal 中,新建一個 S7-1200 站點和一個 S7-300 站點,然后做 S7 通信。
注意:本情況是適用于“S7-1200 與 CP343-1 在同一 TIA Portal 項目中” 和 “S7-1200 與 CP343-1 在不同 TIA Portal 項目中”兩種情況。
1.1 S7-1200 側和 S7-300CP 側硬件組態配置
1. 使用 TIA Portal 軟件新建一個項目并完成硬件配置
在 TIA Portal 的 “Portal 視圖” 中選擇 “創建新項目” 創建一個新項目。
2. 添加 S7-1200 CPU 硬件并為命名 PLC
然后進入 “項目視圖”,在“項目樹” 下雙擊 “添加新設備”,在對話框中選擇所使用的 S7-1200 CPU 添加到機架上,命名為 PLC_1,如圖 1 所示。
圖 1. 添加 S7-1200 CPU 設備
S7-1200 CPU 作為服務器,對于 V4.0 及其以上固件版本,必須勾選連接機制選項,否則會導致 S7 通信異常。在 CPU 常規屬性-防護與安全-連接機制內勾選參數設置,如圖 2 所示。
圖 2. 設置連接機制屬性
3. 為 PROFINET 通信口分配以太網地址
在 “設備視圖”中點擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會出現 PROFINET 接口的屬性,在 “以太網地址” 下分配 IP 地址為 192.168.0.15 ,子網掩碼為 255.255.255.0,如圖 3 所示。
圖 3. 分配 S7-1200 CPU IP 地址
4.添加 S7-300 CPU 和 CP343-1 硬件并命名 PLC
然后進入 “項目視圖”,在“項目樹” 下雙擊 “添加新設備”,在對話框中選擇所使用的 S7-300 CPU 添加到機架上,命名為 PLC_2,如圖 4 所示。
圖 4. 添加 S7-300 CPU 設備
為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下: 在 “項目樹” > “PLC_2”> “設備組態” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “時鐘存儲器” 下時鐘字節定義在 MB0,如圖 5 所示。 時鐘位使用 M0.5,以 1Hz 的速率自動激活發送任務。
圖 5. 啟動時鐘存儲器
5. 組態 CP343-1 并分配以太網地址
在 “設備視圖”中點擊 CP 上代表 PROFINET 通信口的綠色小方塊,在下方會出現 PROFINET 接口的屬性,在 “以太網地址” 下分配 IP 地址為 192.168.0.11,子網掩碼為 255.255.255.0,如圖 6 所示。
圖 6. 分配 CP343-1 IP 地址
6. 創建 CPU 的邏輯網絡連接(僅當S7-1200 和 S7-300 在同一 TIA 項目)
在 “項目樹”>“設備和網絡” >“網絡視圖” 視圖下,創建兩個設備的連接。用鼠標點中 S7-1200 上的PROFINET通信口的綠色小方框,然后拖拽出一條線,到另外一個 CP343-1 上的 PROFINET 通信口上,松開鼠標,PN/IE_1 的子網連接就建立起來了,如圖 7 所示。
圖 7. 建立伙伴間的網絡子網連接
注:當 S7-1200 和 S7-300 在不同項目時,無需操作此步驟。獨立設置各自 PLC/CP 的子網連接即可。
1.2 在 S7-300 側配置 S7 單邊通信連接和編程
1.創建 S7 單邊通信連接
① 打開 "網絡視圖" 配置網絡,點中左上角的"連接"圖標,此時 CPU 變成亮藍色,選擇 S7 連接,然后選中 S7-300 CPU,右鍵選擇添加新的連接, 如圖 8 所示。
圖 8. 網絡視圖配置
② 在連接列表里選擇未指定,并確認本地接口,確認連接類型為 S7 連接。S7-300 側因做 S7 單邊通信客戶端,確認 S7 連接屬性為主動建立連接和單向,最后點擊添加,如圖 9 所示。
圖 9. 添加未指定伙伴的 S7 單邊新連接
注意:
此處也可以選擇指定的 CPU,但是這時則會在 CPU 和 CP 生成兩條連接,此時為 S7 雙邊連接,這樣兩個 CPU 需要分別編譯下載組態,如圖 10、11 所示。
所以,一般建議選擇未指定 S7 連接。
圖 10. CP343-1 添加指定伙伴的 S7 連接
圖 11. S7 雙邊連接
③ 在“網絡視圖”-“連接”內,查看新添加的 S7 單邊連接。在“連接”下只有一個 S7 單邊連接存在,在 S7 連接常規-屬性內,設置伙伴的 IP 地址,如圖 12 所示。
圖 12. 設置伙伴 IP 地址
2.設置 S7 單邊通信連接屬性
① 在“網絡視圖”-“連接”內選中新創建的 S7 單邊連接,在常規-屬性內設置 S7 單邊連接參數。本地ID使用默認 ID 值 W#16#100,在調用 S7 指令時使用,如下圖 13 所示。
圖 13. S7 單邊連接本地 ID
② 特殊連接屬性內,確認客戶端 S7 單邊連接參數:“單向”、“主動建立連接”勾選,如圖 14 所示。
圖 14. S7 單邊連接特殊連接屬性
③ 地址詳細信息內,設置本地和伙伴雙方 TSAP,如圖 15 所示。
圖15. S7 單邊連接地址詳細信息
注意:S7-1200 預留給 S7 連接兩個 TSAP 地址:03.00 和 03.01。
3.S7-300 側軟件編程
① 創建接收和發送數據塊 ,接收 DB 10 字節數組,發送 DB 10 字節數組。如圖 16、17 所示。
圖 16. S7-300 創建接收數據區 DB 塊
圖 17. S7-300 創建發送數據區 DB 塊
② 在 OB1 中,從"指令">"通信">"S7 通信">"其他"下,調用 GET_S、PUT_S 通信指令。程序如圖 18 所示。
圖 18. OB1 調用 S7 通信指令
指令管腳參數說明:
CALL “PUT_S” | :%DB1 | //調用 PUT_S,使用背景 DB 塊:DB1 |
REQ | :=%M0:5 | //系統時鐘 1 秒脈沖 |
ID | :=W#16#1 | //連接號,要與連接配置中一致 |
DONE | :=%M10.0 | //為 1 時,發送完成 |
ERROR | :=%M10.1 | //為 1 時,有故障發生 |
STATUS | :=%MW12 | //狀態代碼 |
ADDR_1 | :=P#DB4.DBX 0.0 BYTE 10 | //發送到通信伙伴數據區的地址 |
SD_1 | :=P#DB3.DBX0.0 BYTE 10 | //本地發送數據區 |
CALL “GET_S” | :%DB2 | //調用 GET_S,使用背景 DB 塊:DB2 |
REQ | :=%M0.5 | //系統時鐘 1 秒脈沖 |
ID | :=W#16#1 | //連接號,要與連接配置中一致 |
NDR | :=%M20.0 | //為 1 時,接收到新數據 |
ERROR | :=%M20.1 | //為 1 時,有故障發生 |
STATUS | :=%MW22 | //狀態代碼 |
ADDR_1 | :=P#DB3.DBX 0.0 BYTE 10 | //從通信伙伴數據區讀取數據的地址 |
RD_1 | :=P#DB4.DBX0.0 BYTE 10 | //本地接收數據地址 |
S7-300 側 S7 單邊連接配置和編程完成,編譯存盤并下載。
1.3 在 S7-1200 側配置和編程
①創建接收和發送數據塊 ,接收 DB 10 字節數組,發送 DB 10 字節數組。如圖 19、20 所示。
圖 19. S7-1200 創建接收數據區 DB 塊
圖 20. S7-1200 創建發送數據區 DB 塊
② S7 通信中 S7-1200 CPU 側使用的 DB 塊必須為非優化的 DB 塊。右鍵單擊 DB 塊,在 DB 塊屬性內取消“DB 塊的優化塊訪問”,如圖 21 所示。
圖 21. 取消 DB 塊的優化塊訪問
注:進行 S7 單邊通信,正常情況下對于 S7-1200 側(服務器側)無需任何配置。但需注意兩點:
1. S7-1200 勾選連接機制屬性;.
2. S7-1200 側被讀寫的 DB 塊取消優化訪問。
文檔按照雙方均為新建項目考慮測試。
1.4 監控通信結果
下載兩個 CPU 中的所有硬件組態及程序,實現兩個 CPU 之間數據交換,監控結果如圖 22 所示。
圖 22. 監控結果
二. 第二種情況(S7-1200 在 TIA Portal 項目中,CP343-1 在 Step7 項目中)
S7-1200 作為 S7 服務器,使用 TIA Portal 編程;CP343-1 作為 S7 客戶端 ,使用 Step7 編程;詳細步驟如下。
2.1 S7-1200 側硬件組態配置
該部分內容和 1.1 章節內容相同,不再贅述。
2.2 在 S7-300 側配置 S7 單邊通信連接和編程
1 . 創建 PLC 項目并進行硬件組態配置
在 STEP7 中創建一個項目并插入 CPU 314C-2 PN/DP 和 CP343-1 。操作步驟如下:
(1) 打開 STEP7,在 “File” 菜單中選擇 “New…” 選項,如圖 23 所示。
圖 23. 新建項目
(2) 在彈出的創建新項目窗口里輸入項目名為 “CP343-1_S7” ,然后點擊 “OK” 按鈕,如圖 24 所示。
圖 24. 輸入項目名稱
(3) 在 CP343-1_S7 下點擊右鍵 “Insert New Object”,選擇 “SIMATIC 300 Station”,如圖 25 所示。
圖 25. 插入 S7-300 站點
(4) 雙擊 “Hardware” 打開硬件組態,如圖 26 所示。
圖 26. 硬件組態
(5) 插入 S7-300 機架,如圖 27 所示。
圖 27. 插入 S7-300 機架
(6) 插入 CPU 314C-2 PN/DP 和 CP343-1,如圖 28、29 所示。
圖 28. 插入 S7-300 CPU
圖 29. 插入 CP343-1
(7) 設置 CP343-1 的 IP 地址 192.168.0.11 和子網掩碼 255.255.255.0 ,并添加新建子網。如圖 30 所示。
圖 30. 設置 IP 地址和添加子網
(8) 為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下: 雙擊硬件配置機架內的 CPU 314C-2PN/DP ,進入 CPU 屬性設置,選擇 Cycle/Clock Memory,然后激活 Clock memory 時鐘字節定義為 MB0,如圖 31 所示。 時鐘位使用 M0.5,以 1Hz 的速率自動激活發送任務。
圖 31. 啟動時鐘存儲器
(9)點擊 “Save and Compile” 按鈕。編譯保存硬件組態信息,如圖 32 內 1 所示。
圖 32. 保存并編譯硬件組態
2.在 Netpro 內組態并配置 S7 單邊連接參數
① 硬件配置完畢后,點擊 Netpro 圖標如圖 32 內 2 所示,進入 Netpro 右鍵 CPU 添加新連接,如圖 33 所示。
圖 33. Netpro 內新建 S7 單邊連接
②選擇未指定的伙伴,類型選擇 S7 連接,然后確定,如圖 34 所示。
圖 34. 新建未指定 S7 連接
③添加完成后,進一步設置 S7 連接參數。 因 CP343-1 做 S7 單邊通信客戶端,確認 S7 連接屬性為主動建立連接和單向,查看 S7 連接 ID 號,并設置未指定伙伴的 IP 地址,如圖 35 所示。
圖 35. 設置新建的 S7 連接參數
④在“Address Details”內設置伙伴的 TSAP,如圖 36 所示。
圖 36. 設置伙伴 TSAP
注意:S7-1200 預留給 S7 連接兩個 TSAP 地址:03.00 和 03.01。
⑤S7-300 側新建 S7 連接配置完畢,可在 Netpro 內查看到只有一個未指定的 S7 單邊連接存在,編譯并保存,如圖 37 所示。
圖 37. Netpro 內新建的 S7 單邊連接
3.在 S7-300 側軟件編程
①創建接收和發送數據塊 ,接收 DB 10 字節數組,發送 DB 10 字節數組。如圖 38、39 所示。
圖 38. S7-300 創建接收數據區 DB 塊
圖 39. S7-300 創建發送數據區 DB 塊
② 在 OB1 中,從"Libraries">"SIMATIC_NET_CP">"CP 300"下,調用 FB15 "PUT"、FB14 "GET" 通信指令。程序見圖 40。
圖 40. OB1 調用 S7 通信指令
S7-300 側 S7 單邊連接配置和編程完成,編譯存盤并下載。
2.3 在 S7-1200 側配置和編程
該部分內容和 1.3 章節內容相同,不再贅述。
2.4 監控通信結果
下載兩個 CPU 中的所有硬件組態及程序,實現兩個 CPU 之間數據交換,監控結果如圖 41 所示。
圖 41. 監控結果