|
|
長沙玥勵 西門子 6ES7215-1AG40-0XB0 銷售中心
S7-1200 CPU 與 S7-200 CPU 之間的以太網通信只能通過 S7 通信來實現,因為 S7-200 的以太網模塊只支持S7 通信。而在 STEP7 v11中, S7-1200 的 PROFINET 通信口可以做 S7 通信的服務器端或客戶端。當S7-200作為客戶端,S7-1200作為服務器,見“S7-1200 CPU 通過ETHERNET與S7-200 CPU 通信”;當S7-200作為服務器,S7-1200作為客戶端,由于S7-1200 僅支持 S7 單邊通信,需在客戶端單邊組態連接和編程,而作為服務器端的S7-200只需設置為服務器準備好通信的數據就行。
硬件:
① S7-1200 CPU 硬件版本V2.0或更高
② S7-200 CPU + CP243-1
③ PC (帶以太網卡)
④ PC/PPI 電纜
⑤ TP以太網電纜
軟件:
① STEP7 V11 SP2
② STEP 7 Micro/WIN V4.0 SP9
所完成的通信任務:
① S7-1200 將通信數據區 DB1 中的212 個字節發送到 S7-200 的VB 數據區。
② S7-1200 讀取 S7–200中的VB數據區存儲到S7-1200 的數據區DB2 。
1. 打開 STEP 7 Micro/WIN 軟件,創建一個新項目,在“PLC”>“TYPE”選擇所使用 CPU 的型號,如圖1. 所示。
圖1. 選擇S7-200 CPU 類型
2. 選擇“工具”>“以太網向導” 進入 CP243-1 的向導配置,如圖2. 所示。
圖2. 使用以太網向導
3. 選擇CP243-1 模板的位置。
CP243-1 緊鄰 CPU 安裝,所以模板位置為0 ,也可以通過“讀取模塊”讀出模板位置,如圖3. 所示。
圖3. 選擇模板位置
4. 設置 CP243-1 模板的 IP 地址
IP 地址:192. 168. 70. 101 ,子網掩碼:255. 255. 255. 0,如圖4.所示。
圖4. 設置網絡地址
5. 設置模塊所占用輸出地址字節和連接數,如圖5. 所示。
圖5. 設置占用輸出地址及網絡連接數
6. 將CP243-1 定義為 Server 端,如圖6. 所示。
圖 6. 定義為 Server 端
注意:本例S7-200中安裝的CP243-1緊鄰CPU,位置為0,故TSAP地址為10.00;若CP243-1在位置為1,則TSAP地址為10.01。
7. 選擇CRC校驗,如圖7. 所示。
圖7. 選擇CRC 較驗
8. 為配置分配存儲區
根據以態網的配置,需要一個V存儲區,用戶可以指定一個未用過的V存儲區的起始地址,也可以點擊“建議地址”按鈕使用建議地址。如圖8. 所示。
圖8. 為配置分配存儲區
9. 生成以太網用戶子程序。如圖9. 所示。
圖9. 生成子程序
10. 調用向導中生成的子程序,并將程序下載到CPU中。如圖10. 所示。
圖10. 調用子程序
1. 使用 STEP7 V11軟件新建一個項目并完成硬件配置,網絡組態
1.1 在“項目樹”>“設備組態”>“網絡視圖”下,按如下圖片中1~6的步驟建立S7連接,如圖11. 所示。
圖11. 建立S7連接
1.2 按如下圖片中1~3的步驟填寫連接參數,如圖12. 所示。
圖12. 定義連接對方IP地址
1.3 在“地址詳細信息”中設置通信伙伴的TSAP地址,如圖13. 所示。
圖13. 定義通信雙方TSAP號
注意:通訊伙伴的TSAP地址設定必須與CP243-1的組態一致,如圖6所示。
2. 軟件編程
2.1 創建發送數據塊DB1(接收區數據塊DB2類似),定義為212個字節的數組,如圖14.和15. 所示。
圖14. 創建發送數據塊DB1
圖15. 定義212個字節的數組
2.2 在OB1中,從“指令”-->“S7 通信”下,調用Get、Put通信指令,程序見圖16。
圖16. 程序調用功能
CALL “PUT” | , %DB3 | //調用 PUT,使用背景DB塊:DB3 |
REQ | :=%M0.7 | //系統時鐘 2秒脈沖 |
ID | :=W#16#0100 | //連接號,要與連接配置中一致,創建連接時的連接號 |
DONE | :=%M2.0 | // 為1時,發送完成 |
ERROR | :=%M2.1 | // 為1時,有故障發生 |
STATUS | :=%MW4 | // 狀態代碼 |
ADDR_1 | :=P#DB1.DBX1000.0 BYTE 212 | // 發送到通信伙伴數據區的地址 |
SD_1 | :=P#DB1.DBX0.0 BYTE 212 | // 本地發送數據區 |
CALL “GET” | , %DB4 | //調用 GET,使用背景DB塊:DB4 |
REQ | :=%M0.7 | //系統時鐘 2秒脈沖 |
ID | :=W#16#0100 | //連接號,要與連接配置中一致,創建連接時的連接號 |
NDR | :=%M2.2 | //為1時,接收到新數據 |
ERROR | :=%M2.3 | //為1時,有故障發生 |
STATUS | :=%MW6 | //狀態代碼 |
ADDR_1 | :=P#DB1.DBX2000.0 BYTE 212 | //從通信伙伴數據區讀取數據的地址 |
RD_1 | :=P#DB2.DBX0.0 BYTE 212 | //本地接收數據地址 |
3. 監控結果
通過在S7-1200側編程進行S7通信,實現兩個CPU之間的數據交換,監控結果如圖17。
圖17. S71200和S7200監控數據
注意:S7-200中V區對應于DB1,即在PUT指令中使用的通信伙伴數據區ADDR_1=P#DB1.DBX1000.0 BYTE 212在S7-200中對于為VB1000~VB1211。
參考:如何打開歸檔項目文件
本文為S7-1200 與 S7-300 CP343之間 S7 通信的幾種可能情況分別提供了例程:
1. 同一項目中S7-1200 與 S7-300 CP343-1之間 S7 通信,S7-1200 作為 S7 客戶端,S7-300 作為服務器;
2. 同一項目中S7-1200 與 S7-300 CP343-1之間 S7 通信,S7-1200 作為 S7 服務器,S7-300 作為客戶端;
3. 不同項目中S7-1200 與 S7-300 CP343-1之間 S7 通信,S7-1200 作為 S7 客戶端,S7-300 作為服務器,雙方 CPU 都采用 TIA V14 SP1編程組態;
4. 不同項目中S7-1200 與 S7-300 CP343-1之間 S7 通信,S7-1200 作為 S7 服務器,S7-300 作為客戶端,雙方 CPU 都采用 TIA V14 SP1編程組態;
5. 不同項目中S7-1200 與 S7-300 CP343-1之間 S7 通信,S7-1200 作為 S7 客戶端,S7-300 作為服務器,S7-1200 使用STEP7 V14 SP1編程組態,S7-300使用 STEP 7 V5.6 編程組態;
6. 不同項目中S7-1200 與 S7-300 CP343-1之間 S7 通信,S7-1200 作為 S7 服務器,S7-300 作為客戶端,S7-1200 使用STEP7 V14 SP1編程組態,S7-300使用 STEP 7 V5.6 編程組態。
注:例程中為標準版的 CP343-1,如果為CP343-1 lean,則S7-300只能作為服務器。
1.使用環境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ STEP7 V14 SP1
2.實現功能:
用于演示同一項目中S7-1200 與 S7-300 CP343-1之間的以太網通信,項目中 S7-1200 CPU 作為 S7 通信的客戶端,S7-300 作為 S7 通信的服務器。
① S7-1200 CPU將 本地 DB10塊中的 10 個字節的數據發送到 S7-300 CPU的DB11 塊中。
② S7-1200 CPU將 S7-300 CPU的 DB10塊中 10 個字節的數據讀取到 本地DB11 塊中。
1_Same_Projects_S7-1200_As_Client.zap14
1.使用環境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ STEP7 V14 SP1
2.實現功能:
用于演示同一項目中S7-1200 與 S7-300 CP343-1之間的以太網通信,項目中 S7-1200 CPU 作為 S7 通信的服務器,S7-300 作為 S7 通信的客戶端。
① S7-300 CPU將 本地 DB10塊中的 10 個字節的數據發送到 S7-1200 CPU的DB11 塊中。
② S7-300 CPU將 S7-1200 CPU的 DB10塊中 10 個字節的數據讀取到 本地DB11 塊中。
2_Same_Projects_S7-300_As_Client.zap14
1.使用環境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ STEP7 V14 SP1
2.實現功能:
用于演示不同項目中S7-1200 與 S7-300 CP343-1之間的以太網通信,項目中 S7-1200 CPU 作為 S7 通信的客戶端,S7-300 作為 S7 通信的服務器。
① S7-1200 CPU將 本地 DB10塊中的 10 個字節的數據發送到 S7-300 CPU的DB11 塊中。
② S7-1200 CPU將 S7-300 CPU的 DB10塊中 10 個字節的數據讀取到 本地DB11 塊中。
S7-1200 項目:3_Different_Projects_S7-1200_As_Client.zap14
S7-300項目:3_Different_Projects_S7-300_As_Server.zap14
1.使用環境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ STEP7 V14 SP1
2.實現功能:
用于演示不同項目中S7-1200 與 S7-300 CP343-1之間的以太網通信,項目中 S7-1200 CPU 作為 S7 通信的服務器,S7-300 作為 S7 通信的客戶端。
① S7-300 CPU將 本地 DB10塊中的 10 個字節的數據發送到 S7-1200 CPU的DB11 塊中。
② S7-300 CPU將 S7-1200 CPU的 DB10塊中 10 個字節的數據讀取到 本地DB11 塊中。
S7-1200 項目:4_Different_Projects_S7-1200_As_Server.zap14
S7-300項目:4_Different_Projects_S7-300_As_Client.zap14
1.使用環境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ S7-1200 V4.2 使用STEP7 V14 SP1編程組態;S7-300 V3.3 使用 STEP 7 V5.6 編程組態。
2.實現功能:
用于演示不同項目中S7-1200 與 S7-300 CP343-1之間的以太網通信,項目中 S7-1200 CPU 作為 S7 通信的客戶端,S7-300 作為 S7 通信的服務器。
① S7-1200 CPU將 本地 DB10塊中的 10 個字節的數據發送到 S7-300 CPU的DB11 塊中。
② S7-1200 CPU將 S7-300 CPU的 DB10塊中 10 個字節的數據讀取到 本地DB11 塊中。
S7-1200 項目:5_Different_Projects_S7-1200_As_Client.zap14
S7-300項目:5_Different_Projects_S7-300_As_Server.zip
1.使用環境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ S7-1200 V4.2 使用STEP7 V14 SP1編程組態;S7-300 V3.3 使用 STEP 7 V5.6 編程組態。
2.實現功能:
用于演示不同項目中S7-1200 與 S7-300 CP343-1之間的以太網通信,項目中 S7-1200 CPU 作為 S7 通信的服務器,S7-300 作為 S7 通信的客戶端。
① S7-300 CPU將 本地 DB10塊中的 10 個字節的數據發送到 S7-1200 CPU的DB11 塊中。
② S7-300 CPU將 S7-1200 CPU的 DB10塊中 10 個字節的數據讀取到 本地DB11 塊中。
S7-1200 項目:6_Different_Projects_S7-1200_As_Server.zap14
S7-300項目:6_Different_Projects_S7-300_As_Client.zip
本例程僅供參考,程序中的CPU版本、類型可能與用戶實際使用不同,用戶可能需要先對例子程序做修改和調整,才能將其用于測試。本例程的作者和擁有者對于該例程的功能性和兼容性不負任何責任,使用該例程的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯系西門子技術支持與服務部門。
參考:如何打開歸檔項目文件
本文為S7-1200 與 S7-300 PN 之間 S7 通信的幾種可能情況分別提供了例程:
1. 同一項目中S7-1200 與 S7-300 PN 口之間 S7 通信,S7-1200 作為 S7 通信客戶端,S7-300 PN 作為服務器;
2. 同一項目中S7-1200 與 S7-300 PN 口之間 S7 通信,S7-1200 作為 S7 通信服務器,S7-300 PN 作為客戶端;
3. 不同項目中S7-1200 與 S7-300 PN 口之間 S7 通信,S7-1200 作為 S7 通信客戶端,S7-300 PN 作為服務器,雙方 CPU 都采用 TIA V14 SP1 編程組態;
4. 不同項目中S7-1200 與 S7-300 PN 口之間 S7 通信,S7-1200 作為 S7 通信服務器,S7-300 PN 作為客戶端,雙方 CPU 都采用 TIA V14 SP1 編程組態;
5. 不同項目中S7-1200 與 S7-300 PN 口之間 S7 通信,S7-1200 作為 S7 通信客戶端,S7-300 PN 作為服務器,S7-1200 使用STEP7 V14 SP1 編程組態,S7-300PN 使用 STEP 7 V5.6 編程組態;
6. 不同項目中S7-1200 與 S7-300 PN 口之間 S7 通信,S7-1200 作為 S7 通信服務器,S7-300 PN 作為客戶端,S7-1200 使用STEP7 V14 SP1 編程組態,S7-300PN 使用 STEP 7 V5.6 編程組態。
1.使用環境:
① S7-1200 V4.2
② S7-300PN V3.2
③ STEP7 V14 SP1
2.實現功能:
例程用于演示同一項目中S7-1200 與 S7-300 PN 口之間的S7通信,項目中 S7-1200 CPU 作為 S7 通信的客戶端,S7-300PN 作為 S7 通信的服務器。
① S7-1200 CPU調用 PUT 指令將本地數據區 DB10 塊中的 10 個字節的數據傳送到 S7-300 CPU的數據區 DB10 塊中。
② S7-1200 CPU調用 GET 指令讀取S7-300 CPU的數據區 DB11 塊中10 個字節的數據存儲到本地數據區 DB 11 塊中。
S7 通信服務器設置:
S7-300PN 作為 S7 通信的服務器無需編寫 S7 通信程序。
S7-1200_S7_Communication_With_S7-300PN_S7-1200_As_Client.zap14
1.使用環境:
① S7-1200 V4.2
② S7-300PN V3.2
③ STEP7 V14 SP1
2.實現功能:
例程用于演示同一項目中S7-1200 與 S7-300 PN 口之間的S7通信,項目中 S7-1200 CPU 作為 S7 通信的服務器,S7-300PN 作為 S7 通信的客戶端。
① S7-300PN CPU調用 PUT 指令將本地數據區 DB11 塊中的 10 個字節的數據傳送到 S7-1200 CPU的數據區 DB11 塊中。
② S7-300PN CPU調用 GET 指令讀取S7-1200 CPU的數據區 DB10 塊中10 個字節的數據存儲到本地數據區 DB 10 塊中。
S7 通信服務器設置:
S7-1200 作為 S7 通信的服務器無需編寫 S7 通信程序,但是需要在 CPU 屬性"防護與安全 > 連接機制"中激活"允許來自遠程對象的 PUT/GET 通信訪問"。
S7-1200_S7_Communication_With_S7-300PN_S7-1200_As_Server.zap14
1.使用環境:
① S7-1200 V4.2
② S7-300PN V3.2
③ STEP7 V14 SP1
2.實現功能:
例程用于演示不同項目中S7-1200 與 S7-300 PN 口之間的S7通信,項目中 S7-1200 CPU 作為 S7 通信的客戶端,S7-300PN 作為 S7 通信的服務器。
① S7-1200 CPU調用 PUT 指令將本地數據區 DB10 塊中的 10 個字節的數據傳送到 S7-300 CPU的數據區 DB10 塊中。
② S7-1200 CPU調用 GET 指令讀取S7-300 CPU的數據區 DB11 塊中10 個字節的數據存儲到本地數據區 DB 11 塊中。
S7 通信服務器設置:
S7-300PN 作為 S7 通信的服務器無需編寫 S7 通信程序。
注意:
S7-1200 項目中創建 S7 連接時,需要在網絡視圖中為"S7_連接"的屬性"常規 > 地址詳細信息"中將伙伴 CPU 的 TSAP 設置為 03.02 。
S7-1200 項目:Different_Projects_S7-1200_As_Client.zap14
S7-300PN項目:Different_Projects_S7-300_As_Server.zap14
1.使用環境:
① S7-1200 V4.2
② S7-300PN V3.2
③ STEP7 V14 SP1
2.實現功能:
例程用于演示不同項目中S7-1200 與 S7-300 PN 口之間的S7通信,項目中 S7-1200 CPU 作為 S7 通信的服務器,S7-300PN 作為 S7 通信的客戶端。
① S7-300PN CPU調用 PUT 指令將本地數據區 DB11 塊中的 10 個字節的數據傳送到 S7-1200 CPU的數據區 DB11 塊中。
② S7-300PN CPU調用 GET 指令讀取S7-1200 CPU的數據區 DB10 塊中10 個字節的數據存儲到本地數據區 DB 10 塊中。
S7 通信服務器設置:
S7-1200 作為 S7 通信的服務器無需編寫 S7 通信程序,但是需要在 CPU 屬性"防護與安全 > 連接機制"中激活"允許來自遠程對象的 PUT/GET 通信訪問"。
S7-1200 項目:Different_Projects_S7-1200_As_Server.zap14
S7-300PN項目:Different_Projects_S7-300_As_Client.zap14
1.使用環境:
① S7-1200 V4.2
② S7-300PN V3.2
③ S7-1200 V4.2 使用STEP7 V14 SP1編程組態;S7-300PN V3.2 使用 STEP 7 V5.6 編程組態。
2.實現功能:
例程用于演示不同項目中S7-1200 與 S7-300 PN 口之間的S7通信,項目中 S7-1200 CPU 作為 S7 通信的客戶端,S7-300PN 作為 S7 通信的服務器。
① S7-1200 CPU調用 PUT 指令將本地數據區 DB10 塊中的 10 個字節的數據傳送到 S7-300 CPU的數據區 DB10 塊中。
② S7-1200 CPU調用 GET 指令讀取S7-300 CPU的數據區 DB11 塊中10 個字節的數據存儲到本地數據區 DB 11 塊中。
S7 通信服務器設置:
S7-300PN 作為 S7 通信的服務器無需編寫 S7 通信程序。
注意:
S7-1200 項目中創建 S7 連接時,需要在網絡視圖中為"S7_連接"的屬性"常規 > 地址詳細信息"中將伙伴 CPU 的 TSAP 設置為 03.02 。
S7-1200 項目:S7-1200_As_Client.zap14
S7-300PN項目:S7-300_As_Server.zip
1.使用環境:
① S7-1200 V4.2
② S7-300PN V3.2
③ S7-1200 V4.2 使用STEP7 V14 SP1編程組態;S7-300PN V3.2 使用 STEP 7 V5.6 編程組態。
2.實現功能:
例程用于演示不同項目中S7-1200 與 S7-300 PN 口之間的S7通信,項目中 S7-1200 CPU 作為 S7 通信的服務器,S7-300PN 作為 S7 通信的客戶端。
① S7-300PN CPU調用 PUT 指令將本地數據區 DB11 塊中的 10 個字節的數據傳送到 S7-1200 CPU的數據區 DB11 塊中。
② S7-300PN CPU調用 GET 指令讀取S7-1200 CPU的數據區 DB10 塊中10 個字節的數據存儲到本地數據區 DB 10 塊中。
S7 通信服務器設置:
S7-1200 作為 S7 通信的服務器無需編寫 S7 通信程序,但是需要在 CPU 屬性"防護與安全 > 連接機制"中激活"允許來自遠程對象的 PUT/GET 通信訪問"。
S7-1200 項目:S7-1200_As_Server.zap14
S7-300PN項目:S7-300_As_Client.zip
本例程僅供參考,程序中的CPU版本、類型可能與用戶實際使用不同,用戶可能需要先對例子程序做修改和調整,才能將其用于測試。本例程的作者和擁有者對于該例程的功能性和兼容性不負任何責任,使用該例程的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯系西門子技術支持與服務部門。
參考:如何打開歸檔項目文件
本文為 S7-1200 與 S7-1200 進行 S7 通信的兩種可能情況分別提供了例程:
1. S7-1200 與 S7-1200 在同一項目下進行 S7 通信;
2. S7-1200 與 S7-1200 在不同項目下進行 S7 通信;
1. 使用環境:
(1)S7-1215C V4.2與S7-1217C V4.2
(2)TIA 博途V14SP1組態
2. 實現功能:
S7-1215C作為客戶端,S7-1217C作為服務器,S7-1215C讀取S7-1217C的IB100~IB199,寫入S7-1217C的QB100~QB199
1. 使用環境:
(1)S7-1215C V4.2與S7-1217C V4.2
(2)TIA 博途V14SP1組態
2. 實現功能:
S7-1215C作為客戶端,S7-1217C作為服務器,S7-1215C讀取S7-1217C的IB100~IB199,寫入S7-1217C的QB100~QB199
客戶端程序:
S7_PUT_GET_Client.zap14
服務器程序:
本例程僅供參考,程序中的CPU版本、類型可能與用戶實際使用不同,用戶可能需要先對例子程序做修改和調整,才能將其用于測試。本例程的作者和擁有者對于該例程的功能性和兼容性不負任何責任,使用該例程的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯系西門子技術支持與服務部門。
長沙玥勵 西門子 6ES7215-1AG40-0XB0