1、概述
西門子S7-1200PLC支持多種和談通過以太網(wǎng)通訊方式,如OPC、TCP、S7、MODBUS-TCP等。TCP方式相比其它和談,具有更多的天真性,更快的數(shù)據(jù)相應等優(yōu)點,自己即先容LabVIEW通過TCP方式與S7-1200 PLC通訊。
S7-1200PLC的TCP通訊方式,稱之為“開放式用戶通訊”,通過以太網(wǎng)發(fā)送或讀取數(shù)據(jù)。
2、測試環(huán)境
2.1 硬件平臺
1) PLC:CPU 1215C 固件v4.0;
2) PC一臺;
2.2 軟件平臺
1) 博途 TIA V14
2) LabVIEW 2012 或以上版本
2.3 團體思路
1) PLC編程:配置PLC --> 增加發(fā)送和汲取數(shù)據(jù)塊 --> 發(fā)送數(shù)據(jù)程序 --> 汲取數(shù)據(jù)程序 --> 編譯下載
2) LabVIEW編程:建立TCP連接 --> 汲取或發(fā)送數(shù)據(jù) --> 關閉連接
3、操縱步驟
3.1 CPU配置
1) 翻開 TIA Portal,建立項目,增加CPU為1215C。
2) 雙擊“建筑組態(tài)”,切換到“建筑視圖”,點擊CPU,右鍵選定屬性。
3) 在常規(guī)欄,選定PROFINET 接口[X1]/以太網(wǎng)地點屬性,配置CPU的IP地點,本例配置為 192.168.0.10,如下圖所示:
圖 1
4) 在常規(guī)欄,選定體系和時間存儲器屬性,啟用體系存儲器字節(jié)和時鐘存儲器字節(jié),如下圖:
圖 2
5) 要是傳輸?shù)臄?shù)據(jù)量大,且及時性要求高,可選定通訊負載屬性,把由通訊惹起的輪回負荷由默認為20%,進步到 50%。
圖 3
3.2 增加數(shù)據(jù)塊
1) 增加發(fā)送數(shù)據(jù)塊。該數(shù)據(jù)塊用于存儲PLC向LabVIEW發(fā)送的數(shù)據(jù)。點擊程序塊/增加新塊,在翻開的對話框中選定數(shù)據(jù)塊,輸入名稱,如 PlcSendData ,類型可選定全局DB。留意要是不一次性傳輸大量數(shù)據(jù),可以干脆使用PLC變量,單次發(fā)送一個數(shù)據(jù),不需要建立數(shù)據(jù)塊。
圖 4
2) 翻開該數(shù)據(jù)塊PlcSendData ,增加數(shù)據(jù),名稱如 ArySendData,選定數(shù)據(jù)類型Array of Byte,即字節(jié)數(shù)組,數(shù)組長度配置為10。
圖 5
3) 點竄數(shù)據(jù)塊屬性。選中數(shù)據(jù)塊PlcSendData ,右鍵屬性,在屬性欄去掉優(yōu)化的塊走訪,以支持絕對尋址模式。
圖 6
4) 增加汲取數(shù)據(jù)塊。該數(shù)據(jù)塊用于存儲LabVIEW向PLC發(fā)送的數(shù)據(jù)。數(shù)據(jù)塊名稱PlcRecvData,數(shù)據(jù)類型Array of Byte,操縱要領同步驟1、2、3。
圖 7
3.3 編寫發(fā)送數(shù)據(jù)程序
1) 翻開 Main 程序
2) 增加指令通訊/開放式用戶通訊/TSEND_C到程序段1,調(diào)用選項的數(shù)據(jù)塊名稱接納默認。
圖 8
3) 配置 TSEND_C 的通訊參數(shù)。選中 TSEND_C,右鍵屬性,切換到組態(tài)頁,選定連接參數(shù)屬性。同伴項選定未指定,連接數(shù)據(jù)選定新建,體系會自動建立一個連接數(shù)據(jù),如PLC_1_Send_DB。輸入同伴的IP地點,如192.168.0.12。由同伴主動確立連接,PLC的端口可保存默認的2000。連接類型為TCP,連接ID接納默認值。(注:所謂同伴即與PLC通訊的另一方,可以為上位機PC、HMI等)
圖 9
4) 配置 TSEND_C 的輸入輸出。TSEND_C在檢測到參數(shù) REQ 上升沿時執(zhí)行發(fā)送功課,因此每次發(fā)送數(shù)據(jù)時,都應在REQ上發(fā)生一個脈沖,此處為了輕便,調(diào)用體系時鐘 Clock_10Hz(每秒10次),周期性的發(fā)送數(shù)據(jù)。參數(shù)DATA為待發(fā)送的數(shù)據(jù),此處調(diào)用數(shù)據(jù)塊 PlcSendData。留意DATA接納純符號尋址時,發(fā)送 LEN 應配置為0,而接納絕對尋址時,應配置為現(xiàn)實發(fā)送數(shù)據(jù)的長度。通訊狀況參數(shù) DONE\BUSY等按需要連接。
圖 10
3.4 編寫汲取數(shù)據(jù)程序
1) 增加指令通訊/開放式用戶通訊/TRCV_C 到程序段2,調(diào)用選項的數(shù)據(jù)塊名稱接納默認。
2) 配置 TRCV_C 的通訊參數(shù)。選中 TRCV_C,右鍵屬性,切換到組態(tài)頁,選定連接參數(shù)屬性。同伴項選定未指定,連接數(shù)據(jù)選定3.3 步驟自動建立的數(shù)據(jù),如PLC_1_Send_DB,切記不要選定新建(此例的通訊連接為自動建立,因此發(fā)送與汲取共用一個連接,必需保持一致才氣平常通訊)。
圖 11
3) 配置 TRCV_C 的輸入輸出。TRCV_C在檢測到參數(shù) EN_R 為1時啟動汲取。參數(shù)DATA為數(shù)據(jù)汲取區(qū),此處調(diào)用3.2步驟所建立的數(shù)據(jù)塊PlcRecvData。留意DATA接納純符號尋址時,汲取 LEN 應配置為0,而接納絕對尋址時,應配置為現(xiàn)實發(fā)送數(shù)據(jù)的長度。通訊狀況參數(shù) DONE\BUSY等按需要連接。具體參數(shù)信息請查看贊助文檔。
圖 12
4) 為了校驗PLC是否精確汲取到LabVIEW所發(fā)送的數(shù)據(jù),可通過以下兩種要領測試。
a、將第3.3 的數(shù)據(jù)發(fā)送區(qū)配置為與數(shù)據(jù)汲取區(qū)相像的數(shù)據(jù)塊,即 PlcRecvData,使PLC把汲取到數(shù)據(jù)發(fā)送回LabVIEW。
b、增加 MOVE 指令接納數(shù)據(jù)挪動的要領實現(xiàn)此功效,如下所示:
圖 13
3.5 編寫LabVIEW程序
1) 建立TCP連接TCPOpenConnection。輸入PLC的IP地點 192.168.0.10 和端口號2000。
圖 14
2) 讀取數(shù)據(jù)TCPRead。輸入讀取長度10(PLC程序的發(fā)送數(shù)據(jù)塊長度為10個字節(jié))。
圖 15
3) 發(fā)送數(shù)據(jù)TCPWrite。
圖 16
4) 關閉連接TCPClose Connection。
5) 前面板如下。點擊 Write,把數(shù)據(jù)WriteData寫入PLC,同時PLC把該數(shù)據(jù)發(fā)還LabVIEW,通過 ReadData顯示。要是ReadData數(shù)據(jù)與WriteData一致,即通訊平常。