1200與1200的S7通訊在相同博圖專案中

1200與1200的S7通訊在相同博圖專案中

S7-1200 的乙太網口可以做 S7 通訊的伺服器端或客戶端。S7-1200 支援 S7 單邊通訊,僅需在客戶端單邊組態連線和程式設計,而伺服器端只准備好通訊的資料就行。

一、建立一個新專案,新建 S7-1200 命名為伺服器端 ,再新建另一個S7-1200站命名為客戶端 。

1200與1200的S7通訊在相同博圖專案中

二、設定IP地址和子網。在CPU屬性中單擊“新增新子網”,新建子網,寫入IP地址,要確定兩個CPU在同一個IP地址網段內,兩個CPU在同一個子網內。PLC間使用路由器通訊時啟用使用路由器功能,要保證路由器地址IP一致。但試驗證明不選路由器也可以。

1200與1200的S7通訊在相同博圖專案中

1200與1200的S7通訊在相同博圖專案中

三、啟用客戶端的系統時鐘儲存器,方便後面程式設計使用

啟用客戶端的系統時鐘,應用其中的M0。3 2HZ的時鐘去自動執行傳送任務。系統時鐘就相當於不同時基的時鐘。TIA中不管3004001200還是1500都有系統儲存器位,類似於200的SM0。1/SM0。0。

1200與1200的S7通訊在相同博圖專案中

客戶端和伺服器端,在屬性中的連線機制中選擇“允許來自遠端物件的PUT/GET”通訊訪問。

1200與1200的S7通訊在相同博圖專案中

1200與1200的S7通訊在相同博圖專案中

四、網路檢視中組態S7連線

進入“網路檢視”,可以看到兩個已經組態的CPU,在同一個子網內。

1200與1200的S7通訊在相同博圖專案中

在“網路檢視”中,點中左上角的“連線”圖示,連線框中選擇“S7連線”,然後選中客戶端,右鍵客戶端的CPU,選擇“新增新的連線”,在建立新連線對話方塊內,右上角型別,選擇S7連線,選擇連線物件“伺服器端”,不能選擇未指定,然後選擇“主動建立連線”。本地ID號不用改,每新建一個S7連線後本地ID號會自動更改。

1200與1200的S7通訊在相同博圖專案中

1200與1200的S7通訊在相同博圖專案中

1200與1200的S7通訊在相同博圖專案中

在中間欄的“連線”條目中,可以看到已經建立的“S7_連線_1”,兩個CPU中都自動建立了S7連線,所以S7通訊組態完成後,兩個CPU都需要重新下載一次。

1200與1200的S7通訊在相同博圖專案中

點中上面的連線,在“S7_連線_1”的連線屬性中檢視各引數

1200與1200的S7通訊在相同博圖專案中

在本地ID中:顯示通訊連線的ID 號,這裡ID=W#16#100(記住此ID號W#16#100,後面程式設計會使用)。

1200與1200的S7通訊在相同博圖專案中

在特殊連線屬性中:可以選擇是否為主動連線,這裡client是主動建立連線。

1200與1200的S7通訊在相同博圖專案中

在地址詳細資訊中:定義通訊雙方的 TSAP 號,這裡不需要修改。

1200與1200的S7通訊在相同博圖專案中

配置完網路連線,雙方都編譯存檔並下載。如果通訊連線正常,連線線上狀態

1200與1200的S7通訊在相同博圖專案中

五、建立PUT/GET結構體變數。

1200與1200的S7通訊在相同博圖專案中

1200與1200的S7通訊在相同博圖專案中

六、建立傳送和接收DB

在客戶端,建立一個用於傳送和接收的資料塊,呼叫PUTGET引數結構體變數,生成後面程式設計要用到的管腳引數地址。注意DB資料塊的屬性中,需要選擇非最佳化塊訪問(把預設的勾去掉),要對DB塊進行編譯,編譯完成後地址的偏移量才會出現。

1200與1200的S7通訊在相同博圖專案中

在伺服器端,建立一個用於傳送和接收的資料塊,建立陣列,用於傳送和接收資料的存放地址。同上,注意資料塊的非最佳化操作。

1200與1200的S7通訊在相同博圖專案中

七、在客戶端呼叫PUT和GET指令,具體管腳解釋見S7通訊指令檔案。

1200與1200的S7通訊在相同博圖專案中

1200與1200的S7通訊在相同博圖專案中

不用DB塊做資料地址,也可以,如下

1200與1200的S7通訊在相同博圖專案中

八、程式設計完畢後要分別下載客戶端和伺服器端配置。雖然S7通訊中的PUT/GET指令只在客戶端中呼叫,但對於在同一專案下的兩個1200,在組態S7時都有組態的變化,所以對兩個1200的組態都需要下載到各自CPU中。

可以同時開兩個模擬器

1200與1200的S7通訊在相同博圖專案中

然後監控資料交換

1200與1200的S7通訊在相同博圖專案中