|
|
湖南 長沙 西門子 6ES7954-8LL02-0AA0 報價單
S7-1200 和 S7-1200 之間 S7 通信
S7-1200 的 PROFINET 通信口可以做 S7 通信的服務器端或客戶端(CPU V2.0及以上版本)。S7-1200 僅支持 S7 單邊通信,僅需在客戶端單邊組態連接和編程,而服務器端只準備好通信的數據就行。
硬件:
軟件:
所完成的通信任務:
S7-1200之間 S7 通訊,可以分2種情況來操作,具體如下:
使用 STEP 7 V13 在同一個項目中,新建兩個S7-1200站點,然后做 S7 通訊。
使用 STEP7 V13 創建一個新項目,并通過“添加新設備”組態 S7-1200 站 client V4.1,選擇 CPU1214C DC/DC/DC V4.1(client IP:192.168.0.10);接著組態另一個S7-1200站 server v2.0,選擇 CPU1214C DC/DC/DC V2.0(server IP:192.168.0.12),如圖 1 所示。
圖 1 在新項目中插入2個 S7-1200 站點
在“設備組態”中 ,選擇“網絡視圖”欄進行配置網絡,點中左上角的“連接”圖標,連接框中選擇“S7連接”,然后選中client v4.1 CPU(客戶端),右鍵選擇“添加新的連接”,在創建新連接對話框內,選擇連接對象“server v2.0 CPU”,選擇“主動建立連接”后建立新連接,如圖 2 所示。
圖 2 建立 S7 連接
在中間欄的“連接”條目中,可以看到已經建立的“S7_連接_1”,如圖 3 所示。
圖 3 S7 連接
點中上面的連接,在“S7_連接_1”的連接屬性中查看各參數,如圖 4 所示。
在常規中,顯示連接雙方的設備,IP地址。
在本地ID中:顯示通訊連接的ID 號,這里ID=W#16#100(編程使用)。
在特殊連接屬性中:可以選擇是否為主動連接,這里client v4.1是主動建立連接。
在地址詳細信息中:定義通訊雙方的 TSAP 號,這里不需要修改。
圖 4 連接的屬性
配置完網絡連接,雙方都編譯存盤并下載。如果通訊連接正常,連接在線狀態,如圖 5 所示。
圖 5 連接狀態
在 S7-1200 兩側,分別創建發送和接收數據塊 DB1 和 DB2,定義成 10 個字節的數組,如圖 6 所示。
圖 6 數據塊
注意: 數據塊的屬性中,需要選擇非優化塊訪問(把默認的勾去掉),如圖 7 所示。
圖 7 數據塊屬性-非優化的塊訪問
在主動建連接側編程(client v4.1 CPU),在OB1中,從“Instruction” >“Communication” >“S7 Communication”下,調用 Get、Put 通信指令,如圖 8 所示。
圖 8 發送接收指令調用
功能塊參數意義如下表1.
CALL “PUT” | , %DB3 | //調用 PUT,使用背景DB塊:DB3 |
REQ | :=%M0.0 | //上升沿觸發 |
ID | :=W#16#100 | //連接號,要與連接配置中一致,創建連接時的本地連接號 |
DONE | :=%M0.5 | // 為1時,發送完成 |
ERROR | :=%M0.6 | // 為1時,有故障發生 |
STATUS | :=%MW10 | // 狀態代碼 |
ADDR_1 | :=P#DB1.DBX0.0 BYTE 10 | // 發送到通信伙伴數據區的地址 |
SD_1 | :=P#DB1.DBX0.0 BYTE 10 | // 本地發送數據區 |
CALL “GET” | , %DB4 | //調用 GET,使用背景DB塊:DB4 |
REQ | :=%M1.0 | //上升沿觸發 |
ID | :=W#16#100 | //連接號,要與連接配置中一致,創建連接時的本地連接號 |
NDR | :=%M1.5 | //為1時,接收到新數據 |
ERROR | :=%M1.6 | //為1時,有故障發生 |
STATUS | :=%MW12 | //狀態代碼 |
ADDR_1 | :=P#DB2.DBX0.0 BYTE 10 | //從通信伙伴數據區讀取數據的地址 |
RD_1 | :=P#DB2.DBX0.0 BYTE 10 | //本地接收數據地址 |
表1. 功能塊參數意義
通過在 S7-1200 客戶機側編程進行 S7 通訊,實現兩個 CPU 之間數據交換,監控結果如圖 9 所示。
圖 9 監控結果
使用 STEP 7 V13 不在一個項目中,新建兩個S7-1200站點,然后做 S7 通訊。
使用 STEP7 V13 創建一個新項目,并通過“添加新設備”組態 S7-1200 站 client V4.1,選擇 CPU1214C DC/DC/DC V4.1;接著在另一個項目組態S7-1200站 server v2.0,選擇 CPU1214C DC/DC/DC V2.0。
在“設備組態”中 ,選擇“網絡視圖”欄進行配置網絡,點中左上角的“連接”圖標,連接框中選擇“S7連接”,然后選中client v4.1 CPU(客戶端),右鍵選擇“添加新的連接”,在創建新連接對話框內,選擇連接對象“未指定”,如圖 10 所示。
圖 10 建立 S7 連接
在中間欄的“連接”條目中,可以看到已經建立的“S7_連接_1”,如圖 11 所示。
圖 11 S7 連接
點中上面的連接,在“S7_連接_1”的連接屬性中查看各參數,如圖 12 所示。
在常規中,顯示連接雙方的設備,在伙伴方“站點”欄選擇“未知”;在“地址”欄填寫伙伴的IP地址192.168.0.12。
在本地ID中:顯示通訊連接的ID 號,這里ID=W#16#100。
在特殊連接屬性中:建未指定的連接,建連接側為主動連接,這里client v4.1是主動建立連接。
在地址詳細信息中:定義伙伴側的 TSAP 號(注意:S7-1200預留給S7連接兩個TSAP地址:03.01和03.00),這里設置伙伴的 TSAP:03.00。
圖 12 連接的屬性及設置后連接狀態
配置完網絡連接,編譯存盤并下載。如果通訊連接正常,連接在線狀態,如圖 13 所示。
圖 13 連接狀態
在主動建連接的客戶機側調用 Get、Put 通信指令,具體使用同上一種情況。
請注意,以上例子中使用的作為服務器的PLC是固件版本V2.0的S7-1200 CPU,如果您使用固件版本為 V4.0 以上的 S7-1200 CPU 作為服務器,則需要如下額外設置,才能保證S7通信正常。
請點開作為S7服務器(sever)的 CPU 的設備組態,“屬性->常規->保護”里“連接機制”一項需要勾選“允許從遠程伙伴(PLC\HMI\OPC\...)使用 PUT/GET 通信訪問”,如下圖所示:
使用 STEP7 V11,S
圖1. 建立S7連接
圖2. 定義連接對方地址
圖3. 定義通信雙方 TSAP號
注意:S7-300預留給S7連接TSAP地址:03.02;如果通信伙伴是S7-400,則要根據CPU槽位來決定TSAP地址,例如: CPU400在3號槽,則TSAP地址為03.03。
配置完網絡連接,編譯存盤并下載。
3. 軟件編程
在OB1中,從“Instruction”>“S7 Communication”>下,調用Get、Put通信指令。創建發送和接收數據塊 DB3和DB4,定義成100個字節的數組。程序見圖4
圖4. 程序調用功能
CALL “GET” | ,%DB2 | //調用 GET,使用背景DB塊:DB2 |
REQ | :=%M0.7 | //系統時鐘 2秒脈沖 |
ID | :=W#16#0100 | //連接號,要與連接配置中一致,創建連接時的連接號 |
NDR | :=%M4.0 | //為1時,接收到新數據 |
ERROR | :=%M4.1 | //為1時,有故障發生 |
STATUS | :=%MW6 | //狀態代碼 |
ADDR_1 | :=P#DB3.DBX0.0 BYTE 100 | //從通信伙伴數據區讀取數據的地址 |
RD_1 | :=P#DB4.DBX0.0 BYTE 100 | //本地接收數據地址 |
CALL “PUT” | , %DB5 | //調用 PUT,使用背景DB塊:DB5 |
REQ | :=%M0.7 | //系統時鐘 2秒脈沖 |
ID | :=W#16#0100 | //連接號,要與連接配置中一致,創建連接時的連接號 |
DONE | :=%M8.0 | // 為1時,發送完成 |
ERROR | :=%M8.1 | // 為1時,有故障發生 |
STATUS | :=%MW10 | // 狀態代碼 |
ADDR_1 | :=P#DB4.DBX0.0 BYTE 100 | // 發送到通信伙伴數據區的地址 |
SD_1 | :=P#DB3.DBX0.0 BYTE 100 | // 本地發送數據區 |
4. 監控結果
通過在S7-1200側編程進行S7通訊 ,實現兩個CPU之間數據交換,監控結果如圖5.
圖5. 監控結果
在 SIMATIC S7-1200 CPU 的用戶程序中如何編寫“GET” 和“PUT” 指令來傳遞多于 160 字節數據?
回答:
“GET” 指令一行調用三次,使用同一個連接號,這樣才能接收 400 個字節的數據。
“PUT” 指令一行調用兩次,使用同一個連接號,這樣才能接收 240 個字節的數據。
使用 STEP7 V11,S7-1200 的 PROFINET 通信口可以做 S7 通信的服務器端或客戶端。S7-1200 僅支持 S7 單邊通信,僅需在客戶端單邊組態連接和編程,而服務器端只準備好通信的數據就行。
所以在編程組態和建立連接方面,S7-1200CPU 如何做為服務器端,將不用做任何編程工作,只需在 S7-300CPU 一側建立單邊連接,使用單邊編程方式PUT,GET指令進行通信。
注意:如果在S7-1200一側使用 DB 塊作為通信數據區,必須將DB 塊定義成絕對尋址,否則會造成通信失敗。
所需要條件:
① S7-1200 /S7-300 CP343-1設備
② STEP7 V11
所完成的通信任務:
① S7-1200 CPU 將本地DB3中的數據寫到S7-300 CPU中DB4中。
② S7-300 CPU 通過CP卡將本地DB3中的數據寫到S7-1200 CPU中DB4中。
1. 使用 STEP7 V11軟件新建一個項目并完成硬件配置
在項目樹 “Project tree”>“Devices & Networks” >“Networks view” 視圖下,創建兩個設備的連接。用鼠標點中 PLC_2 上 CP343-1的PROFINET通信口的綠色小方框,然后拖拽出一條線,到另外一個PLC_1 上的PROFINET通信口上,松開鼠標,連接就建立起來了,
2. 網絡組態
打開 “Network View” 配置網絡,選中 CPU,然后右鍵選擇添加新的連接, 在連接列表里建立新的連接并選擇連接對象和通信協議,如圖1. 所示。注意:不要直接使用軟件拖拽功能創建S7通訊,如果這樣做了,在S7-300側將不會出現One-Way選項,不能實現數據通訊。
圖1. 建立S7連接
圖2. 定義連接對方地址
圖3. 定義通信雙方 TSAP號
注意:S7-1200預留給S7連接兩個TSAP地址:03.01和03.00
配置完網絡連接,編譯存盤并下載。
3. 軟件編程
在OB1中,在OB1中,從“Instruction”>“S7 Communication”>“Others”下,調用Get_s、Put_s通信指令。創建發送和接收數據塊 DB3和DB4,定義成100個字節的數組。程序見圖4。
注意:如果是 S7-300 本體上的PN口作為S7通信的客戶端,則選用“Instruction”>“S7 Communication”下的PUT,GET指令。
圖4. 程序調用功能
CALL “GET_S” | ,%DB1 | //調用 GET_S,使用背景DB塊:DB1 |
REQ | :=%M0.7 | //系統時鐘 2秒脈沖 |
ID | :=W#16#0001 | //連接號,要與連接配置中一致 |
NDR | :=%M4.0 | //為1時,接收到新數據 |
ERROR | :=%M4.1 | //為1時,有故障發生 |
STATUS | :=%MW6 | //狀態代碼 |
ADDR_1 | :=P#DB3.DBX 0.0 BYTE 100 | //從通信伙伴數據區讀取數據的地址 |
RD_1 | :=P#DB4.DBX0.0 BYTE 100 | //本地接收數據地址 |
CALL “PUT_S” | , %DB2 | //調用 PUT_S,使用背景DB塊:DB2 |
REQ | :=%M0.7 | //系統時鐘 2秒脈沖 |
ID | :=W#16#0001 | //連接號,要與連接配置中一致 |
DONE | :=%M10.0 | //為1時,發送完成 |
ERROR | :=%M10.1 | //為1時,有故障發生 |
STATUS | :=%MW12 | //狀態代碼 |
ADDR_1 | :=P#DB4.DBX 0.0 BYTE 100 | //發送到通信伙伴數據區的地址 |
SD_1 | :=P#DB3.DBX0.0 BYTE 100 | //本地發送數據區 |
4. 監控結果
通過在S7-300側編程進行S7通訊 ,實現 兩個CPU之間數據交換,監控結果如圖5
湖南 長沙 西門子 6ES7954-8LL02-0AA0 7-1200 的 PROFINET 通信口可以做 S7 通信的服務器端或客戶端。S7-1200 僅支持 S7 單邊通信,僅需在客戶端單邊組態連接和編程,而服務器端只準備好通信的數據就行。
所以在編程組態和建立連接方面,S7-1200CPU 如果做為客戶端,只需在 S7-1200 這一側建立連接,并使用單邊編程方式 PUT,GET 指令進行通信,而 S7-300CPU 側不用做任何工作。
所需要條件:
① S7-1200 /S7-300 CP343-1設備
② STEP7 V11
所完成的通信任務:
① S7-1200CPU 將本地 DB3 中的數據寫到 S7-300CPU 中 DB4 中。
② S7-300CPU 通過 CP 卡將本地 DB3 中的數據寫到S7-1200CPU 中 DB4 中。
1. 使用 STEP7 V11軟件新建一個項目并完成硬件配置
在項目樹 “Project tree”>“Devices & Networks” >“Networks view” 視圖下,創建兩個設備的連接。用鼠標點中 PLC_1 PROFINET 通信口上,然后拖拽出一條線,到另外一個 CP343-1 的 PROFINET 通信口的綠色小方框上,松開鼠標,連接就建立起來了。
2. 網絡組態
打開 “Network View” 配置網絡,點中左上角的“連接”圖標,這時所有 CPU 變成亮藍色,然后選中S7-1200CPU,右鍵選擇添加新的連接, 在連接列表里建立新的連接并選擇連接對象和通信協議,如圖1. 所示。