S7-1500 和 S7-1500 之間 S7 通信
S7-1500 的 PROFINET 通信口可以做 S7 通信的服務器端或客戶端。S7-1500 支持 S7單邊通信,僅需在客戶端單邊組態連接和編程,而服務器端只準備好通信的數據就行。
硬件:
CPU 6ES7 513-1AL01-0AB0
CPU 6ES7 515-2AM00-0AB0
軟件:
Step7 V14 SP1
所完成的通信任務:
S7-1500 CPU Clinet 將通訊數據區 DB1 塊中的 10 個字節的數據發送到 S7-1500 CPU server 的接收數據區 DB1 塊中;
S7-1500 CPU Clinet 將S7-1500 CPU server 發送數據區 DB2 塊中的 10 個字節的數據讀到 S7-1500 CPU Clinet 的接收數據區 DB2 塊中。
S7-1500之間 S7 通訊,可以分2種情況來操作,具體如下:
1.第一種情況:兩個 S7-1500 在一個項目中操作
2.第二種情況:兩個 S7-1500 不在一個項目中的操作
1. 第一種情況(同一項目中操作)
使用 STEP7 V14 在同一個項目中,新建兩個S7-1500站點,然后做 S7 通訊。
1.1 使用 Step7V14生成項目
使用 STEP7V14 創建一個新項目,并通過“添加新設備”組態 S7-1500 站 client ,選擇 CPU 513-1AL01-0AB0(client IP:192.168.100.1);接著組態另一個S7-1500站 server ,選擇 CPU 515-2AM00-0AB0(server IP:192.168.100.15),如圖 1 所示。
?
圖 1 在新項目中插入2個 S7-1500 站點
1.2 網絡配置,組態 S7 連接
在“設備組態”中 ,選擇“網絡視圖”欄進行配置網絡,點中左上角的“連接”圖標,連接框中選擇“S7連接”,然后選中client CPU(客戶端),右鍵選擇“添加新的連接”,在創建新連接對話框內,選擇連接對象“server CPU”,選擇“主動建立連接”后建立新連接,如圖 2 所示。
圖 2 建立 S7 連接
1.3 S7 連接及其屬性說明
在中間欄的“連接”條目中,可以看到已經建立的“S7_連接_1”,如圖 3 所示。
圖 3 S7 連接
點中上面的連接,在“S7_連接_1”的連接屬性中查看各參數,如圖 4 所示。
在常規中,顯示連接雙方的設備,IP地址。
在本地ID中:顯示通訊連接的ID 號,這里ID=W#16#100(編程使用)。
在特殊連接屬性中:可以選擇是否為主動連接,這里client是主動建立連接。
在地址詳細信息中:定義通訊雙方的 TSAP 號,這里不需要修改。
圖 4 連接的屬性
配置完網絡連接,雙方都編譯存盤并下載。如果通訊連接正常,連接在線狀態,如圖 5 所示。
圖 5 連接狀態
1.4 軟件編程
在 S7-1500 兩側,分別創建發送和接收數據塊 DB1 和 DB2,定義成 10 個字節的數組,如圖 6 所示。
???
圖 6 數據塊
注意:數據塊的屬性中,需要選擇非優化塊訪問(把默認的勾去掉),如圖 7 所示。
圖 7 數據塊屬性-非優化的塊訪問
在主動建連接側編程(client 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. 功能塊參數意義
1.5 監控結果
通過在 S7-1500 客戶機側編程進行 S7 通訊,實現兩個 CPU 之間數據交換,監控結果如圖 9 所示。
圖 9 監控結果
2. 第二種情況(不在同一項目中操作)
使用 STEP 7V14 不在一個項目中,新建兩個S7-1500站點,然后做 S7 通訊。
2.1 使用 Step7V14生成項目
使用 STEP7V14 創建一個新項目,并通過“添加新設備”組態 S7-1500 站 client ,選擇 CPU 6ES7 513-1AL01-0AB0;接著在另一個項目組態S7-1500站 server,選擇 CPU 6ES7 515-2AM00-0AB0。
2.2 網絡配置,組態 S7 連接
在“設備組態”中 ,選擇“網絡視圖”欄進行配置網絡,點中左上角的“連接”圖標,連接框中選擇“S7連接”,然后選中client CPU(客戶端),右鍵選擇“添加新的連接”,在創建新連接對話框內,選擇連接對象“未指定”,如圖 10 所示。
圖 10 建立 S7 連接
2.3 S7 連接及其屬性說明
在中間欄的“連接”條目中,可以看到已經建立的“S7_連接_1”,如圖 11 所示。
圖 11 S7 連接
點中上面的連接,在“S7_連接_1”的連接屬性中查看各參數,如圖 12 所示。
在常規中,顯示連接雙方的設備,在伙伴方“站點”欄選擇“未知”;在“地址”欄填寫伙伴的IP地址192.168.10.15。
在本地ID中:顯示通訊連接的ID 號,這里ID=W#16#100。
在特殊連接屬性中:建未指定的連接,建連接側為主動連接,這里client 是主動建立連接。
在地址詳細信息中:定義伙伴側的 TSAP 號(注意:S7-1500預留給S7連接TSAP地址:03.01),這里設置伙伴的 TSAP:03.01。
圖 12 連接的屬性及設置后連接狀態
配置完網絡連接,編譯存盤并下載。如果通訊連接正常,連接在線狀態,如圖 13 所示。
圖 13 連接狀態
2.4 軟件編程
在主動建連接的客戶機側調用 Get、Put 通信指令,具體使用同上一種情況。
3、附加說明
請注意,以上例子中使用1500的作為服務器的PLC,需要如下額外設置,才能保證S7通信正常。
請點開作為S7服務器(sever)的 CPU 的設備組態,“屬性->常規->保護”里“連接機制”一項需要勾選“允許從遠程伙伴(PLCHMIOPC...)使用 PUT/GET 通信訪問”,如下圖所示:
圖14 通信保護設置
審核編輯:湯梓紅
-
cpu
+關注
關注
68文章
10824瀏覽量
211137 -
通信
+關注
關注
18文章
5969瀏覽量
135850 -
服務器
+關注
關注
12文章
9017瀏覽量
85182 -
Profinet
+關注
關注
6文章
1062瀏覽量
23322 -
S7-1500
+關注
關注
3文章
300瀏覽量
6341
原文標題:S7-1500 之間 S7 通信實例
文章出處:【微信號:中泰PLC自動化教學,微信公眾號:中泰PLC自動化教學】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論