一、理論知識
1、PROFINET 通信口
S7-1200 CPU 本體上集成了一個PROFINET 通信口,支持以太網和基於TCP/IP和UDP 的通信標准。這個PROFINET物理接口是支持10/100Mb/s的RJ45口,支持電纜交叉自適應,因此一個標准的或是交叉的以太網線都可以用於這個接口。使用這個通信口可以實現S7-1200 CPU 與編程設備的通信,與HMI觸摸屏的通信,以及與其它CPU 之間的通信。
2、 支持的通信協議
S7-1200 CPU 的PROFINET 通信口支持以下通信協議及服務
1)TCP
2)ISOon TCP ( RCF 1006 )
3)UDP(V1.0不支持)
4)S7通信
3、 硬件版本 V4.1 支持的協議和最大的連接資源:
分配給每個類別的預留連接資源數為固定值;您無法更改這些值。 但可組態6個"可用自由連接"以按照應用要求增加任意類別的連接數。
示例:1 個PG 具有3 個可用連接資源。根據當前使用的 PG功能,該PG 實際可能使用其可用連接資源的1、2或3。 在S7-1200 中,始終保證至少有1 個PG,但不允許超過1 個PG。
在CPU屬性>常規>連接資源顯示:
二、開發工具
1、博途TIA Protal V13
2、仿真器S7-PLCSIM V13
三、實現過程
S7-1200與S7-1200之間的以太網通信可以通過TCP或ISOonTCP協議來實現,使用的通信指令是在雙方CPU通用T-block(TSEND_C,TRCV_C, TCON, TDISCON, TSEN,TRCV)指令來實現,通信方式為雙邊通信,因此通信指令必須成對出現。
1、組態&編程
(1)打開博途軟件,創建新項目,命名為:2個S7-1200之間通信
(2)添加新設備,命名為PLC1,這里選擇的是CPU1214C,版本V4.1
(3)CPU屬性設置,啟用系統存儲器字節和時鍾存儲器字節
(4)以太網地址設置,IP地址設為:192.168.0.1
(5)新建全局數據塊DB1,命名為Data,用來發送和接收數據。
(6)在數據塊DB1中,新建數組send,用來發送數據到對方通信PLC,數據類型為Array[0..9]ofByte,共計10個字節;新建數組receive,用來接收對方通信PLC發送過來的數據,數據類型為Array[0..9]of Byte,共計10個字節。
(7)在全局數據塊DB1點擊右鍵,選擇屬性
將“優化的塊訪問”復選框的鈎去掉,因為使用絕對尋址,需要禁用這個選項。
“優化的塊訪問”復選框的鈎去掉后,點確定
(8)在PLC1上點擊右鍵,復制並粘貼,命名為PLC2,修改IP地址:192.168.0.2
(9)點擊項目根目錄下的“設備和網絡”,並用鼠標連線PLC1與PLC2的通信網口
連線成功后,如下圖,兩個PLC之間的通信組態完成。
(10)在PLC1的Main(OB1)中編程,選擇通信指令中的開放式用戶通信指令:TSEND_C,TRCV_C.
(11)選中TSEND_C指令,右鍵屬性,選擇組態,並設置各項參數如下:
(12)選中TRCV_C指令,右鍵屬性,選擇組態,並設置各項參數如下:
(13)TSEND_C指令,各項參數設置如下:
(14)TRCV_C指令,各項參數設置如下:
(15)在PLC2的Main(OB1)中編程,選擇TSEND_C,TRCV_C指令,組態&編程和PLC1類同。
2、模擬仿真
(1)在電腦“控制面板”中,點擊“設置PG/PC接口”,將應用程序訪問點設置為:PLCSIMS7-1200/1500.
(2)選中在PLC1,點擊“開始仿真”
(3)點擊開始搜索,選中目標設備,下載。
(4)PLC2的啟動仿真,程序下載和PLC1的方法完全一致。
(5)在PLC1的“監控和強制表”中添加新監控表如下,並在線監控:
(6)在PLC2的“監控和強制表”中添加新監控表如下,並在線監控:
(7)通過上面第(5)、(6)步驟,可以看到PLC1與PLC2交互的數據完成正確。
(8)在PLC1的Main(OB1)中在線監視通信指令的情況如下,由於仿真器非真正的實體PLC,不能完全代替其實際功能,故指令執行狀態與實際PLC指令狀態存在差異,但不影響執行結果。
----公眾號abseMe:堅持原創 注重實用