西門子S7-1200 PLC四種以太網通信應用實例之四:開放式用戶通信應用實例
發布時間: 2024-09-06 11:21 更新時間: 2024-11-22 08:00
觀看西門子S7-1200 PLC四種以太網通信應用實例之四:開放式用戶通信應用實例視頻
一.功能概述
開放式用戶通信(OUC通信)是基于以太網進行數據交換的協議,適用于PLC之間通信、PLC與第三方設備、PLC與gaoji語言等進行數據交換。開放式用戶通信有以下通信連接方式:(1) TCP通信方式,該通信方式支持TCP/IP的開放式數據通信。TCP/IP采用面向數據流的數據傳送,發送的長度zuihao是固定的。如果長度發生變化,在接收區需要判斷數據流的開始和結束位置,比較繁瑣,并且需要考慮到發送和接收的時序問題。(2) ISO-on-TCP通信方式,由于ISO不支持以太網路由,因而西門子應用RFC1006將ISO映射到TCP上,實現網絡路由。(3) User Datagram Protocol通信方式,該通信連接屬于OSI模型第四層協議,支持簡單數據傳輸,數據無須確認,與TCP通信相比,UDP沒有連接。S7-1200 CPU通過集成的以太網接口用于開放式用戶通信連接,通過調用發送指令(TSEND_C)和接收指令(TRCV_C)進行數據交換。通信方式為雙邊通信,因此,兩臺S7-1200 PLC之間進行開放式以太網通信,“TSEND_C”和“TRCV_C”必須成對出現。
二.指令說明
在指令選項卡中選擇“通信”→“開放式用戶通信”,開放式用戶通信指令列表如圖1所示。開放式用戶通信指令主要包括三個通信指令,“TSEND_C”(發送數據指令)、“TRCV_C” (接數據指令)和“TMAIL_C”(發送電子郵件指令),還包括一個其他指令文件夾。其中,“TSEND_C”(發送數據指令)和“TRCV_C” (接收數據指令)是常用指令,下面做詳細說明。
圖1 開放式用戶通信指令
1.“TSEND_C”指令
(1)指令介紹使用“TSEND_C”指令設置并建立通信連接,CPU會自動保持和監視該連接。該指令異步執行,先設置并建立通信連接,然后通過現有的通信連接發送數據,Zui后終止或重置通信連接。指令如圖2所示。
圖2 TSEND_C指令
(2)指令參數該指令的輸入輸出引腳參數的意義如表1所示。
表1 “TSEND_C”指令引腳參數
2.“TRCV_C”指令
(1)指令介紹使用“TRCV_C”指令設置并建立通信連接, CPU會自動保持和監視該連接。該指令異步執行,先設置并建立通信連接,然后通過現有的通信連接接收數據。指令如圖3所示。
圖3 TRCV_C指令
(2)指令參數該指令的輸入輸出引腳參數的意義如表2所示。
表2 “TRCV_C”指令引腳參數
三.實例內容
1.實例名稱
開放式用戶通信應用實例
2.實例描述
兩臺S7-1200 PLC之間作開放式用戶通信,一臺作為客戶端,一臺作為服務端??蛻舳藢B10.DBW0- DB10.DBW4的數據寫到服務端DB100.DBW0- DB100.DBW4中。
3.硬件組成
(1) CPU1214C DC/DC/DC,兩臺,訂貨號:6ES7 214-1AG40-0XB0;(2) 四口交換機,一臺;(3) 編程電腦,一臺,已安裝博途V15.1軟件。
四.實例實施
1.新建項目及組態連接
第一步:新建項目及組態客戶端CPU打開博途軟件,在Portal 視圖中,單擊“創建新項目”,并輸入項目名稱(開放式用戶通信應用實例),路徑和作者等信息,然后單擊“創建”即可生成新項目。進入項目視圖,在左側的項目樹中,單擊“添加新設備”,隨即彈出添加新設備對話框,如圖4所示。在此對話框中選擇的CPU型號和版本號(必須與實際設備相匹配),然后單擊“確定”按鈕
圖4 添加新設備對話框
在項目樹中,選擇“PLC_1[CPU 1214C DC/DC/DC]”,雙擊“設備組態”,在“設備視圖”的工作區中,選中PLC_1,在其巡視窗口中的“屬性”→“常規”的選項卡中,選擇“PROFINET接口[X1]”→“以太網地址”,修改CPU以太網IP地址如圖5所示。
圖5 以太網IP地址
在其巡視窗口的“屬性”→“常規”的選項卡中,選擇“系統和時鐘存儲器”,激活“啟動時鐘存儲器字節”復選框,如圖6所示。
圖6系統和時鐘存儲器
注:程序中會用到時鐘存儲器M0.5。
第二步:組態服務端CPU在左側的項目樹中,單擊“添加新設備”,隨即彈出添加新設備對話框,如圖7所示。在此對話框中選擇的CPU型號和版本號(必須與實際設備相匹配),然后單擊“確定”按鈕。
圖7 添加新設備對話框
在項目樹中,選擇“PLC_2[CPU 1214C DC/DC/DC]”,雙擊“設備組態”,在“設備視圖”的工作區中,選中PLC_2,在其巡視窗口中的“屬性”→ “常規”的選項卡中,選擇“PROFINET接口[X1]”→“以太網地址”,修改CPU以太網IP地址如圖8所示
圖8 以太網IP地址
在其巡視窗口中的“屬性”→“常規”的選項卡中,選擇“系統和時鐘存儲器”,激活“啟動時鐘存儲器字節”復選框,如圖9所示。
圖9 系統和時鐘存儲器
第三步:創建網絡連接在項目樹中,選擇“設備和網絡”,在網絡視圖中,用鼠標點中PLC_1的PROFINET通信口的綠色小方框,然后拖拽出一條線,到PLC_2的PROFINET通信口的綠色小方框上,然后松開鼠標,連接就建立起來了,如圖10所示。
圖10 組態網絡連接
2.編寫客戶端程序
第一步:創建PLC變量表在項目樹中,選擇“PLC_1[CPU 1214C DC/DC/DC]”→“PLC變量”,雙擊“添加新變量表”,并命名變量表為“PLC變量表”,在“PLC變量表”中新建變量如圖11所示。
圖11 PLC變量表
第二步:創建發送數據區(1) 在項目樹中,選擇“PLC_1[CPU 1214C DC/DC/DC]”→“程序塊”→“添加新塊”,選擇“數據塊(DB)”創建DB塊,數據塊名稱為“數據塊_1”,手動修改數據塊編號為10,單擊“確認”按鈕,如圖12所示。
圖12 創建數據塊
(2) 需要在DB塊屬性中取消優化的塊訪問,單擊“確認”按鈕,如圖13所示。
圖13 取消優化塊的訪問
(3) 在DB塊中,創建5個字的數組用于存儲發送數據,如圖14所示。
圖14 發送數據區
第三步:編寫OB1主程序主程序主要完成“TSEND_C”指令的編寫,可使用指令的“屬性”來組態連接參數和塊參數。(1)組態“TSEND_C”指令的連接參數將 TSEND_C指令插入到OB1主程序中,自動生成背景數據塊。選中指令的任意部分,在其巡視窗口中,選擇“屬性”→“組態”的選項卡,連接參數對話框如圖15所示。
圖15 TSEND_C指令的連接參數
(2)編寫“TSEND_C”指令的塊參數
指令的塊參數,如圖16所示。
圖16 TSEND_C指令的塊參數
主要參數說明如下:
① REQ:在上升沿時執行該指令;② CONT:1表示建立并保持通信連接;③ CONNET:指向連接描述結構的數據塊;④ DATA:指向發送區的地址。
3.編寫服務端程序
第一步:創建PLC變量表
在項目樹中,選擇“PLC_2[CPU 1214C DC/DC/DC]”→“PLC變量”,雙擊“添加新變量表”,并命名變量表為“PLC變量表”,在“PLC變量表”中新建變量如圖17所示。
圖17 PLC變量表
第二步:創建數據接收區
(1) 在項目樹中,選擇“PLC_2[CPU 1214C DC/DC/DC]”→“程序塊”→“添加新塊”,選擇“數據塊(DB)”創建DB塊,數據塊名稱為“數據塊_1”,手動修改數據塊編號為100,單擊“確認”按鈕,如圖18所示。
圖18 創建數據塊
(2) 需要在DB塊屬性中取消優化的塊訪問,單擊“確認”按鈕,如圖19所示。
圖19 取消優化塊的訪問
(3) 在DB塊中,創建5個字的數組用于存儲接收數據,如圖20所示。
圖20 接收數據區
第三步:編寫OB1主程序
(1)配置“TRCV_C”指令的連接參數
將“TRCV_C”指令插入到OB1主程序中,自動生成背景數據塊。選中指令的任意部分,在其巡視窗口中,選擇“屬性”→“組態”的選項卡,連接參數對話框如圖21所示。
圖21 TSEND_C指令的連接參數
(2)編寫“TRCV_C”指令的引腳參數
指令的塊參數,如圖22所示。
圖22 TRCV_C指令的塊參數
① EN_R:為1,表示啟用接收功能;② CONT:1表示建立通信連接并在接收數據后保持該連接;③ CONNET:指向連接描述結構的數據塊;④ DATA:指向接收區的地址。
4.程序測試
程序編譯后,下載到S7-1200 CPU,通過監控表監控通信數據,監控表如圖23和24所示。
圖23 PLC_1監控表
圖24 PLC_2監控表