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