SIEMENS 長沙豪乾智能科技有限公司
公司帶來銷售的產品全部由西門子直接提供,所有產品保證絕對原裝,每個產品都可以到西門子長沙辦事處去查驗。
我們出售的產品按照西門子質保進行保修,(保修期為一年)《選擇長沙豪乾,是您最明智的決定》。想了解更多內容,請來電,我將為您一一解答。
工作( Q Q ):254598303 136 8731 7079(微信同步)
聯系人 :張 柏 / )
公司理念:
是專業(yè)從事工業(yè)自動化產品銷售和系統集成的高新技術企業(yè)。在西門子工控領域,公司以精益求精的經營理念,從產品、方案到服務,致力于塑造一個“行業(yè)專家”品牌,以實現可持續(xù)的發(fā)展。
S7-1200 CPU 通過 ETHERNET 與 S7-300 PN 口之間 TCP 通信的方式
S7-1200 與 S7-300 PN 口之間的以太網通信可以通過 TCP 協議來實現,使用的通信指令是在雙方 CPU 調用 T-block (TSEND_C,TRCV_C, TCON, TDISCON, TSEND, TRCV) 指令來實現。通信方式為雙邊通信,因此 TSEND 和 TRCV 必須成對出現。
硬件和軟件需求及所完成的通信任務
所需條件:
① S7-1200/S7-300(集成PN口)
② STEP7 V11
所完成的通信任務:
① S7-1200 CPU將通訊數據區(qū) DB4 塊中的 10 個字節(jié)的數據發(fā)送到 S7-300 CPU的接收數據區(qū) DB2 塊中。
② S7-300 CPU將通訊數據區(qū) DB1 塊中的 10 個字節(jié)的數據發(fā)送到 S7-1200 CPU的接收數據區(qū) DB5 塊中。
S7-1200 側通信的編程,連接參數及通信參數的配置
1. 使用 STEP7 V11 軟件新建一個項目并完成硬件配置
在 STEP7 v11的 “Portal 視圖” 中選擇 “創(chuàng)建新項目” 創(chuàng)建一個新項目。
2.添加硬件并命名PLC
然后進入 “項目視圖”,在“項目樹” 下雙擊 “添加新設備”,在對話框中選擇所使用的 S7-1200 CPU 添加到機架上,命名為 S7-1200,如圖1.所示。
圖1. 添加新設備
為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:
在 “項目樹” > “S7-1200” > “設備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統和時鐘存儲器” 下,將系統位定義在 MB1,時鐘位定義在 MB0,如圖2.所示。
時鐘位我們主要使用 M0.3,它是以 2Hz 的速率在 0 和 1 之間切換的一個位,可以使用它去自動激活發(fā)送任務。
圖2. 系統位與時鐘位
3. 為 PROFINET 通信口分配以太網地址
在 “設備視圖”中點擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會出現 PROFINET 接口的屬性,在 “以太網地址” 下分配 IP 地址為 192.168.0.123 ,子網掩碼為255.255.255.0,如圖3. 所示。
圖3. 分配IP 地址
4. 創(chuàng)建 CPU的邏輯網絡連接
在項目樹 “項目樹”>“設備和網絡” >“網絡視圖” 視圖下,創(chuàng)建兩個設備的連接。用鼠標點中 S7-1200 上的PROFINET通信口的綠色小方框,然后拖拽出一條線,到另外一個 317-2pn 上的PROFINET通信口上,松開鼠標,連接就建立起來了,如圖4.所示。
圖4. 建立兩個 CPU的邏輯連接
5.在 S7-1200 中調用并配置“TCON”、“TSEND”、“TRCV” 通信指令
① 在 S7-1200 CPU 中調用發(fā)送通信指令,進入 “項目樹” > “ S7-1200” > “程序塊” > “OB1” 主程序中,從右側窗口 “指令” > “通訊” > “開放式用戶通信”下調用 “TCON” 指令,創(chuàng)建連接,如圖5.所示。
圖5. 調用 TCON 通信指令
② 定義 S7-1200 的 “TCON”連接參數
S7-1200 的 “TCON”指令的連接參數需要在指令下方的屬性窗口“屬性”> “組態(tài)”>“連接參數中”中設置,如圖6.所示。
圖6. 定義 TCON 連接參數
連接參數說明:
端點
|
:可以通過點擊選擇按鈕選擇“未指定” ;
|
連接類型
|
:選擇通信協議為 TCP;
|
連接 ID
|
:連接的地址 ID 號,這個 ID 號在后面的編程里會用到;
|
連接數據
|
:點擊新建自動生成該數據塊,如S7-1200_Connection_DB;
|
主動建立連接
|
:選擇本地 S7-1200 作為主動連接;
|
地址詳細信息
|
:定義通信伙伴方的端口號為:2000。
|
③創(chuàng)建并定義 S7-1200 的發(fā)送數據區(qū) DB4 塊
通過“項目樹”>“S7-1200”>“程序塊”>“添加新塊”,選擇“數據塊” 創(chuàng)建 DB4 塊,選擇“標準-與S7-300/400 兼容”,點擊“確定”鍵,定義發(fā)送數據區(qū)為 101 個字節(jié)的數組,如圖7.所示,結果如圖8.所示。
圖7. 創(chuàng)建發(fā)送數據區(qū) DB 塊
圖8. 定義發(fā)送數據區(qū)為字節(jié)類型的數組 101 字節(jié)
④將 “TSEND” 在 OB1 內調用 發(fā)送 10 個字節(jié)數據到 317-2pn 中
進入 “項目樹” > “S7-1200” > “程序塊” > “OB1 ” 主程序中,從右側窗口 “指令” > “通訊” > “開放式用戶通信”下調用 “TSEND” 指令,配置接口參數,如圖9.所示。
圖9. 調用 TSEND 指令并配置接口參數
參數說明:
輸入接口參數:
REQ
|
:= M0.3
|
// 使用 2Hz 的時鐘脈沖,上升沿激活發(fā)送任務;
|
ID
|
: = 1
|
//創(chuàng)建連接ID;
|
LEN
|
:= 10
|
//發(fā)送數據長度;
|
DATA
|
:= P#DB4.DBX0.0 BYTE 10
|
// 發(fā)送數據區(qū)的數據,使用指針尋址時,DB塊要選用絕對尋址;
|
輸出接口參數:
DONE
|
:= M11.0
|
//任務執(zhí)行完成并且沒有錯誤,該位置 1;
|
BUSY
|
:= M11.2
|
// 該位為 1,代表任務未完成,不能激活新任務;
|
ERROR
|
:= M11.3
|
//通信過程中有錯誤發(fā)生,該位置 1;
|
STATUS
|
:= MW22
|
//有錯誤發(fā)生時,會顯示錯位信息號。
|
⑤創(chuàng)建并定義 S7-1200 的接收數據區(qū) DB5 塊。
通過“項目樹”>“S7-1200”>“程序塊”>“添加新塊”,選擇“數據塊” 創(chuàng)建 DB5 塊,選擇“標準-與S7-300/400 兼容”,點擊“確定”鍵,定義接收數據區(qū)為 101 個字節(jié)的數組,如圖10.所示,結果如圖11.所示。
圖10. 創(chuàng)建接收數據區(qū) DB5 塊
圖11. 定義接收數據區(qū)為字節(jié)類型的數組
⑥ 將 “TRCV” 在 OB1 內調用
進入 “項目樹” > “S7-1200” > “程序塊” > “OB1 ” 主程序中,從右側窗口 “指令” > “通訊” > “開放式用戶通信”下調用 “TRCV” 指令,配置接口參數,如圖12.所示。
圖12. 調用 TRCV 指令并配置接口參數
參數說明:
輸入接口參數:
EN_R
|
:= TRUE
|
// 準備好接收數據;
|
ID
|
:= 1
|
// 連接號,使用的是 TCON 的連接參數中 ID號;
|
LEN
|
:= 10
|
// 接收數據長度為 10 個字節(jié);
|
DATA
|
:= P#DB5.DBX0.0 BYTE 10
|
// 接收數據區(qū)的地址;
|
輸出接口參數:
NDR
|
:= M12.0
|
// 該位為 1,接收任務成功完成;
|
BUSY
|
:= M12.1
|
// 該位為 1,代表任務未完成,不能激活新任務;
|
ERROR
|
:= M12.3
|
// 通信過程中有錯誤發(fā)生,該位置 1;
|
STATUS
|
:= MW24
|
// 有錯誤發(fā)生時,會顯示錯誤信息號;
|
RCVD_LEN
|
:= MW26
|
// 實際接收數據的字節(jié)數。
|
配置完連接并編譯存盤。
如何打開項目歸檔文件
參考:如何打開歸檔項目文件
S7-1200 與 S7-300 CP343-1 TCP 通信例程
本文為S7-1200 與 S7-300 CP343-1 之間 TCP 通信的幾種可能情況分別提供了例程:
1. 同一項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信,S7-1200 作為 TCP 客戶端,S7-300 CP343-1 作為服務器;
2. 同一項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信,S7-1200 作為 TCP 服務器,S7-300 CP343-1 作為客戶端;
3. 不同項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信,S7-1200 作為 TCP 客戶端,S7-300 CP343-1 作為服務器,雙方 CPU 都采用 TIA V14 SP 編程組態(tài);
4. 不同項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信,S7-1200 作為 TCP 服務器,S7-300 CP343-1 作為客戶端,雙方 CPU 都采用 TIA V14 SP 編程組態(tài);
5. 不同項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信,S7-1200 作為 TCP 客戶端,S7-300 CP343-1 作為服務器,S7-1200 使用STEP7 V14 SP1編程組態(tài),S7-300PN 使用 STEP 7 V5.6 編程組態(tài);
6. 不同項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信,S7-1200 作為 TCP 服務器,S7-300 CP343-1 作為客戶端,S7-1200 使用STEP7 V14 SP1編程組態(tài),S7-300PN 使用 STEP 7 V5.6 編程組態(tài)。
1.同一項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信(S7-1200 作為 TCP 客戶端,S7-300 CP343-1 作為服務器)
1.使用環(huán)境:
① 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 作為 TCP 通信的客戶端,S7-300 作為 TCP 通信的服務器。
① S7-1200 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-300 CPU的 DB11 塊中。
② S7-300 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-1200 CPU的 DB11 塊中。
1_Same_Projects_S7-1200_As_Client.zap14
2.同一項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信(S7-1200 作為 TCP 服務器,S7-300 CP343-1 作為客戶端)
1.使用環(huán)境:
① 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 作為 TCP 通信的服務器,S7-300 作為 TCP 通信的客戶端。
① S7-1200 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-300 CPU的 DB11 塊中。
② S7-300 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-1200 CPU的 DB11 塊中。
2_Same_Projects_S7-300_As_Client.zap14
3.不同項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信(S7-1200 作為 TCP 客戶端,S7-300 CP343-1 作為服務器)
1.使用環(huán)境:
① 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 作為 TCP 通信的客戶端,S7-300 作為 TCP 通信的服務器。
① S7-1200 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-300 CPU的 DB11 塊中。
② S7-300 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-1200 CPU的 DB11 塊中。
S7-1200 項目:3_Different_Projects_S7-1200_As_Client_1.zap14
S7-300項目:3_Different_Projects_S7-300_As_Server.zap14
4.不同項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信(S7-1200 作為 TCP 服務器,S7-300 CP343-1 作為客戶端)
1.使用環(huán)境:
① 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 作為 TCP 通信的服務器,S7-300 作為 TCP 通信的客戶端。
① S7-1200 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-300 CPU的 DB11 塊中。
② S7-300 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-1200 CPU的 DB11 塊中。
S7-1200 項目:4_Different_Projects_S7-1200_As_Server.zap14
S7-300項目:4_Different_Projects_S7-300_As_Client.zap14
5.不同項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信(S7-1200 作為 TCP 客戶端,S7-300 CP343-1 作為服務器)
1.使用環(huán)境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ S7-1200 V4.2 使用STEP7 V14 SP1編程組態(tài);S7-300 V3.3 使用 STEP 7 V5.6 編程組態(tài)。
2.實現功能:
用于演示不同項目中S7-1200 與 S7-300 CP343-1之間的以太網通信,項目中 S7-1200 CPU 作為 TCP 通信的客戶端,S7-300 作為 TCP 通信的服務器。
① S7-1200 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-300 CPU的 DB11 塊中。
② S7-300 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-1200 CPU的 DB11 塊中。
S7-1200 項目:5_Different_Projects_S7-1200_As_Client.zap14
S7-300項目:5_Different_Projects_S7-300_As_Server.zip
6.不同項目中S7-1200 與 S7-300 CP343-1之間 TCP 通信(S7-1200 作為 TCP 服務器,S7-300 CP343-1 作為客戶端)
1.使用環(huán)境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ S7-1200 V4.2 使用STEP7 V14 SP1編程組態(tài);S7-300 V3.3 使用 STEP 7 V5.6 編程組態(tài)。
2.實現功能:
用于演示不同項目中S7-1200 與 S7-300 CP343-1之間的以太網通信,項目中 S7-1200 CPU 作為 TCP 通信的服務器,S7-300 作為 TCP 通信的客戶端。
① S7-1200 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-300 CPU的 DB11 塊中。
② S7-300 CPU將本地 DB10 塊中的 10 個字節(jié)的數據發(fā)送到 S7-1200 CPU的 DB11 塊中。
S7-1200 項目:6_Different_Projects_S7-1200_As_Server_1.zap14
S7-300項目:6_Different_Projects_S7-300_As_Client.zip
免責聲明
本例程僅供參考,程序中的CPU版本、類型可能與用戶實際使用不同,用戶可能需要先對例子程序做修改和調整,才能將其用于測試。本例程的作者和擁有者對于該例程的功能性和兼容性不負任何責任,使用該例程的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯系西門子技術支持與服務部門。