圖文詳解PLCSIM實現仿真兩個CPU仿真,可以這樣使用!

2019-05-22     電氣自動化應用

PLCSIM可以仿真兩個CPU之間的S7通信、TCP通信、ISO ON TCP通信,下面逐一進行示例,因為TCP和ISO ON TCP相同,所以只示例ISO ON TCP。

第一篇:S7通信

一、同一項目里的兩個CPU仿真器的S7通信

添加兩個設備,CPU1-1212作為客戶端,CPU2-1215作為伺服器端,IP位址分別設為192.168.1.6和192.168.1.7,激活「啟用時鐘存儲器位元組」。通信目的是將CPU1212發送數據區數據傳輸到CPU1215接收數據區,同時1212接收數據區接收來自CPU1215發送數據區的數據。

1.1客戶端CPU1212組態S7連接,如圖1所示。

圖1:客戶端組態S7連接

1.2 客戶端CPU1212添加數據通信數據塊,比如s7com(DB1)建立Send和Rev兩個數組(Array[0..9] of int),Send數組代表CPU1212發送數據區,Rev數組代表CPU1212接收數據區,如圖2所示。

圖2:建立收發數據塊

1.3 伺服器CPU1215添加數據通信數據塊,同樣s7com(DB1)建立Send和Rev兩個數組(Array[0..9] of int),Send數組代表CPU1215發送數據區,Rev數組代表CPU1215接收數據區,與客戶端一樣。

1.4 客戶端CPU1212編程

調用「PUT」指令將數據寫入到夥伴CPU1215中,調用「GET」指令從夥伴CPU1215讀取數據,如圖3和4所示。

圖3:PUT指令

圖4:GET指令

1.5 伺服器端CPU1215設置「允許來自遠程對象的PUT/GET通信訪問」,如圖5所示。(無需編程)

圖5:伺服器端勾選允許遠程訪問

1.6 啟動各自仿真器並進行下載測試,如圖6所示。

圖6::仿真通信測試

二、不同項目里兩個CPU的S7通信仿真

還以CPU1212(客戶端)和CPU1215(伺服器端)為例,只是兩個CPU在不同的項目里。

2.1 客戶端項目CPU組態編程

與同一項目里組態編程基本一致,區別就是連接參數裡通信夥伴方選擇未指定,同時在「常規」屬性里填寫未指定夥伴方的IP位址,如圖7和8所示。

圖7:創建未指定連接

圖8:填寫夥伴IP位址

程序里還是建立數據塊S7com收發數據,同時調用「TSEND」和「TRCV」指令用於發送和接收數據,與前面一樣不再贅述。

2.2 伺服器端項目CPU1215組態

與同一項目里一樣,CPU1215建立數據S7com用於收發數據即可,無需編程,同時勾選「允許來自遠程對象的PUT/GET通信訪問」。

3.3 通信測試

客戶端項目和伺服器端項目均點擊仿真按鈕進行仿真,仿真CPU運行後自動下載程序。打開兩個項目各自的監控表,客戶端填入發送數據和伺服器端填入發送數據後,各自均收到對方發送的數據,如圖9所示。

圖9:不同項目通信測試

提示:成功建立S7連接是PUT/GET指令數據訪問成功的先決條件,可在S7連接屬性里「診斷>連接信息>連接詳細信息」里查看連接狀態,如圖10所示。

圖10:查看S7連接狀態

至此PLCSIM仿真CPU間S7通信就結束了。

第二篇:ISO ON TCP通信仿真

一、同一項目里兩個CPU的ISO-on-TCP通信仿真

添加兩個設備,CPU1-1212作為客戶端,CPU2-1215作為伺服器端,IP位址分別設為192.168.1.6和192.168.1.7,激活「啟用時鐘存儲器位元組」。通信目的是將CPU1212發送數據區數據傳輸到CPU1215接收數據區,同時1212接收數據區接收來自CPU1215發送數據區的數據。

1.1客戶端CPU1212編程:

1)添加數據通信數據塊,比如TCP (DB11)建立Send和Rev兩個數組(Array[0..9] of int),Send數組代表CPU1212發送數據區,Rev數組代表CPU1212接收數據區。

2)在主程序OB1中調用「TCON」指令,建立ISO-on-TCP連接。單擊「TCON」指令右上角「開始組態」按鈕,在巡視窗口中選擇「TCON」指令的「屬性>組態>連接參數」,直接配置連接屬性。連接類型選擇「ISO-on-TCP」, 「連接數據」里選擇「新建」時,系統將自動創建一個連接數據塊,如圖11所示。

圖11:客戶端1212連接

「TCON」指令的說明

REQ:該參數的上升沿用於啟動連接操作,成功建立連接後參數DONE將置位一個掃描周期。

ID:指向已分配連接的引用,如圖1裡面的「連接ID(十進位)」,此處為2。

CONNECT:指向描述通信連接指針,也就是指向我們剛才組態時自動創建的連接數據塊,它包含了建立連接所需的全部設置。這個參數既可以像上面一樣通過點擊指令右上角「開始組態」按鈕生成,也可以在數據塊中組態一個結構類型為TCON_IP_v4變量來實現。

3)在主程序中調用「TSEND」指令,用於發送數據,如圖12所示。

4)在主程序中調用「TRCV」指令,用於接收數據,如圖13所示。

圖12:客戶端發送指令

圖13:客戶端接收指令

1.2伺服器端CPU1215編程

1)和客戶端一樣添加數據通信數據塊,比如TCP (DB11)建立Send和Rev兩個數組(Array[0..9] of INT),Send數組代表CPU1215的發送數據區,Rev數組代表CPU1215的接收數據區。

2)在主程序OB1中調用「TCON」指令,建立TCP連接。同樣是單擊「TCON」指令右上角「開始組態」按鈕進行組態,連接數據選擇前面客戶端CPU已組態好的即可,如圖14所示.

圖14:伺服器端1215配置

3)同樣在主程序中調用」TSEND」和「TRCV」指令,用於發送和接收數據,與前面客戶端程序相同,不再贅述。

1.3 通信測試

對本項目中2個CPU均啟動仿真,啟動各自仿真CPU運行並下載程序。每個CPU都添加監控表,分別觸發各自TCON連接("TCP".Ctl[0]),同時在1212CPU的Send區和1215CPU的Send區填入相關數據,在1212CPU的Rev區和1215CPU的Rev區會接收到對方發來的數據,如圖15所示。

圖15:ISO ON TCP通信仿真測試(同一項目)

二、不同項目里兩個CPU的TCP通信仿真

還以CPU1212(客戶端)和CPU1215(伺服器端)為例,只是兩個CPU在不同的項目里。

2.1 客戶端項目CPU組態編程

與前面同一項目里組態編程基本一致,區別就是連接參數裡通信夥伴方選擇未指定,如圖16所示。

圖16:客戶端 ISO ON TCP連接設置

調用「TSEND」和「TRCV」指令用於發送和接收數據,與前面一樣不再贅述。

2.2 伺服器端項目CPU1215組態和編程

OB里調用」TCON」指令,連接參數裡「夥伴」同樣選擇「未指定」,因為不在同一項目。輸入夥伴CPU的IP位址(192.168.1.6),另外是客戶端主動連接,所以夥伴側選上「主動建立連接」,同時新建連接數據,如圖17所示。

圖17:伺服器1215端ISO ON TCP配置

調用「TSEND」和「TRCV」指令也與前面一樣,不再贅述。

2.3 通信測試

客戶端項目和伺服器端項目均點擊仿真按鈕進行仿真,仿真CPU運行後自動下載程序。打開兩個項目各自的監控表,客戶端填入發送數據和伺服器端填入發送數據後,各自均收到對方發送的數據,如圖18所示。

圖18:不同項目仿真ISO ON TCP通信測試

第三篇:TCP通信仿真

與ISO ON TCP幾乎一模一樣,只要把連接改為TCP即可,不再贅述了。

文章來源: https://twgreatdaily.com/zh-tw/5XJcp2wBvvf6VcSZ-4wG.html