賈玉鵬,李詩然,朱翔宇,李傳璨,王志騰
(鄭州機電工程研究所,河南 鄭州 450000)
S7-1200是德國西門子公司生產(chǎn)的一款將各個功能進行模塊化封裝的緊湊型工業(yè)PLC,能夠滿足工業(yè)上簡單或復(fù)雜的邏輯控制,支持HMI和網(wǎng)絡(luò)通信等。它的編程界面友好、編程方式簡單、系統(tǒng)可靠性高以及模塊式設(shè)計擴展性強等,使其在自動化控制領(lǐng)域的應(yīng)用十分廣泛[1]。但是,該PLC的人機接口功能不完善,不能給用戶提供一個友好的人機交互界面,影響對設(shè)備運行過程的管理與監(jiān)控。PC在這一方面強大而完善[2],要實現(xiàn)PC機管理PLC中的過程數(shù)據(jù),需要通過通信方式將PLC產(chǎn)生的數(shù)據(jù)傳送給PC。
S7-1200和PC機的通信方式主要有以下3種。第一,將西門子的HMI軟件WinCC作為動態(tài)數(shù)據(jù)交換服務(wù)器,客戶應(yīng)用程序通過訪問動態(tài)數(shù)據(jù)交換服務(wù)器來間接訪問PLC內(nèi)的數(shù)據(jù)。然而,該方式需要安裝專門的組態(tài)軟件,受組態(tài)軟件的限制較多且擴展性較差。第二,安裝西門子OPC服務(wù)器,然后按照OPC接口協(xié)議規(guī)定編寫OPC客戶端接口,可以完成PLC與PC的數(shù)據(jù)通信。第三,調(diào)用PLC的功能塊,配置PC和PLC分別作為客戶端和服務(wù)端,同時基于TCP/IP協(xié)議進行數(shù)據(jù)通信[3]。這種通信方式簡單且靈活,但所選用的PLC需要支持以太網(wǎng)TCP/IP協(xié)議。本文詳細講解了PLC與PC基于TCP/IP協(xié)議的通信方式,并以此搭建機場旅客隨身行李安檢設(shè)備狀態(tài)監(jiān)測系統(tǒng)。
本文預(yù)建成機場旅客隨身行李安檢設(shè)備狀態(tài)監(jiān)測系統(tǒng)。狀態(tài)監(jiān)測系統(tǒng)通過自動化采集和存儲設(shè)備的數(shù)據(jù),依托已構(gòu)建的數(shù)據(jù)倉庫,采用數(shù)據(jù)挖掘和機器學習等智能技術(shù),完成設(shè)備狀態(tài)監(jiān)測和故障診斷等功能,實時感知設(shè)備狀態(tài),及早發(fā)現(xiàn)設(shè)備隱患,并快速輔助設(shè)備維修,最終達到大幅延長設(shè)備使用壽命和提高工作效率的目的[4]。
機場旅客隨身行李安檢設(shè)備狀態(tài)監(jiān)測系統(tǒng)框架,如圖1所示。
PLC現(xiàn)場控制總線PROFINET是基于TCP/IP協(xié)議的100 Mb/s總線,可以對所有PROFINET網(wǎng)絡(luò)內(nèi)的所有站點進行數(shù)據(jù)交換,包括傳感器、電機以及電機控制器等。同時,PLC支持串口通信的功能擴展,可通過串口與多功能數(shù)顯表進行通信。在PROFINET網(wǎng)絡(luò)內(nèi)部,PLC通過自帶的網(wǎng)絡(luò)接口可以讀取到傳感器、電機以及電機控制器實時的工作電壓、工作時間、工作狀態(tài)以及報警信息。此外,PLC可以通過串口讀取到機場旅客隨身行李安檢設(shè)備的輸入電壓、電流以及功率等信息。PLC數(shù)據(jù)采集的硬件組成框圖如圖2所示。
圖1 監(jiān)測系統(tǒng)的整體框架示意圖
圖2 PLC數(shù)據(jù)采集硬件組成框圖
由于PLC端在進行數(shù)據(jù)采集時,需要采集的設(shè)備數(shù)量過多,且其采集的數(shù)據(jù)類型大部分是相同的,唯一的不同是不同設(shè)備在PLC組態(tài)里的地址不同。因此,為了簡化程序,減小程序運行內(nèi)存,提高CPU運行效率,可通過復(fù)用PLC的FC函數(shù)塊來進行大量數(shù)據(jù)的采集。PLC程序中數(shù)據(jù)采集FC函數(shù)塊,如圖3所示。
圖3 PLC程序中數(shù)據(jù)采集FC函數(shù)塊
設(shè)計中上位機采用普通工業(yè)PC,選取支持TCP/IP協(xié)議的PLC,為PLC與工業(yè)PC的通信提供了硬件基礎(chǔ)。當工業(yè)PC與PLC利用TCP/IP協(xié)議進行通信時,兩者的IP地址需要處于同一網(wǎng)段。
西門子S7-1200系列PLC進行TCP/IP通信時,主要調(diào)用的系統(tǒng)功能塊包括TCON(建立通信連接)、TSEND(通過通信連接發(fā)送數(shù)據(jù))以及TRCV(通過通信連接接收數(shù)據(jù))。其中,TCON用來建立連接,并進行網(wǎng)絡(luò)通信配置,具體的連接參數(shù)配置如圖4所示。
圖4 TCON模塊連接參數(shù)配置
圖4中,本地指的是PLC,伙伴指的是需要進行連接的工業(yè)PC。配置時,需要確保本地的IP地址與伙伴的IP地址處于同一IP段,保證物理上是聯(lián)通的。本次設(shè)置中,設(shè)置伙伴端即工業(yè)PC端為主動建立連接的一方。由TCP的基本通信原理可知,在建立TCP/IP連接時,主動建立連接的一方為客戶端。所以,本次通信配置中,PLC設(shè)置為服務(wù)端,工業(yè)PC設(shè)置為客戶端。需要說明的是,通信端口的配置需要配置通信雙方的端口,而不是只配置服務(wù)端。如圖4所示,PLC的TCON模塊連接參數(shù)配置頁面中只能進行PLC端即服務(wù)端端口的配置,而客戶端端口需要在工業(yè)PC進行軟件編制時配置。
此外,TSEND用于PLC在通信中發(fā)送數(shù)據(jù),TRCV用于PLC在通信中接收數(shù)據(jù)。在實際過程中,無論將PLC設(shè)置為客戶端還是服務(wù)端,其軟件配置沒有差別,都是通過TCON塊建立TCP/IP連接,通過TSEND和TRCV塊進行數(shù)據(jù)的發(fā)送和接收。
在本文的通信方式中,工業(yè)PC端編寫的軟件對外建立的通信接口為網(wǎng)絡(luò)套接字Socket。它的編程方式根據(jù)工業(yè)PC端與PLC的連接是主動還是被動有所不同。套接字Socket在編程的過程中通過構(gòu)建一個中間文件描述符來處理接口到網(wǎng)絡(luò)的操作,具體的網(wǎng)絡(luò)操作細節(jié)由操作系統(tǒng)完成,而不是直接訪問發(fā)送與接收包的網(wǎng)絡(luò)接口設(shè)備。
設(shè)計中,工業(yè)PC作為客戶端,其套接字編程接口系統(tǒng)函數(shù)調(diào)用的流程為Socket→bind→connect。建立連接時,工業(yè)PC端編制的對應(yīng)軟件會主動向PLC發(fā)起連接請求,在3次握手完畢后,工業(yè)PC端的編制軟件與PLC成功建立連接,隨后工業(yè)PC端的編制軟件會通過調(diào)用read函數(shù)和write函數(shù)與PLC端進行數(shù)據(jù)交換。當不需要工業(yè)PC與PLC進行數(shù)據(jù)交換時,工業(yè)PC端的軟件可以通過調(diào)用close函數(shù)主動關(guān)閉與PLC的連接。
數(shù)據(jù)寫入代碼如下:
數(shù)據(jù)讀取代碼如下:
PLC與工業(yè)PC成功完成通信的前提是雙方都能準確接收、發(fā)送以及解碼特定的數(shù)據(jù)。而通信協(xié)議是用來對PLC與工業(yè)PC交互的數(shù)據(jù)進行解碼,需要進行數(shù)據(jù)交互的雙方共同遵守。本文中的通信協(xié)議如圖5所示,協(xié)議中定義了所傳遞數(shù)據(jù)的數(shù)據(jù)類型和所傳遞數(shù)據(jù)的含義。同時,通信協(xié)議中定義了通信雙方的IP地址、端口號以及信息發(fā)送和接收的時序,以保證能夠順利將信息數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)街付ǖ奈恢谩?/p>
從圖5可以看出,PLC與工業(yè)PC通信的指令長度固定為23個字符。其中,起始符為2位、結(jié)束符為2位,PLC地址為1位,數(shù)據(jù)長度為1位,且數(shù)據(jù)內(nèi)容固定不發(fā)生變化。功能碼為1位int型,數(shù)據(jù)內(nèi)容會根據(jù)不同的器件發(fā)生變化。設(shè)備狀態(tài)碼為16位int型數(shù)據(jù),內(nèi)部包含設(shè)備的工作時間、工作狀態(tài)、故障狀態(tài)、工作電壓、工作電流以及溫度等數(shù)據(jù)。
圖5 通信協(xié)議格式
搭建通信測試環(huán)境如下:PLC包含1塊CPU、1塊擴展I/O模塊、2塊串口通信模塊以及1塊工業(yè)交換機模塊;IP地址為192.168.8.180;網(wǎng)絡(luò)端口設(shè)置為2000。工業(yè)PC機選用的是研祥工控機,PC的操作系統(tǒng)為Windows 10。測試過程中將工業(yè)PC的IP地址設(shè)置為192.168.8.110,隨身行李安檢設(shè)備狀態(tài)監(jiān)測系統(tǒng)軟件端口配置為2000。為了監(jiān)控網(wǎng)絡(luò)連接和數(shù)據(jù)交換,直接在隨身行李安檢設(shè)備狀態(tài)監(jiān)測系統(tǒng)軟件中將傳遞的數(shù)據(jù)打印出來。工業(yè)PC主動建立連接、工業(yè)PC接收到來自PLC的數(shù)據(jù)以及工業(yè)PC向PLC發(fā)送數(shù)據(jù),分別如圖6、圖7及圖8所示。
圖6 工業(yè)PC主動建立連接
圖7 工業(yè)PC接收到來自PLC的數(shù)據(jù)
圖8 工業(yè)PC向PLC發(fā)送數(shù)據(jù)
在前期積累的大量設(shè)備異常數(shù)據(jù)的基礎(chǔ)上,依靠機器學習和三支決策等智能信息技術(shù),由工業(yè)PC智能分析PLC端采集的數(shù)據(jù),并在可視化界面展示設(shè)備的運行狀態(tài)。此外,設(shè)備三維可視化安全態(tài)勢感知、故障診斷、故障報警以及維修保養(yǎng)等功能,可輔助現(xiàn)場維保人員及管理者及早預(yù)防設(shè)備隱患,優(yōu)化維修決策,延長設(shè)備的使用壽命,提高工作效率??梢暬缑嫒鐖D9所示。同時,PC端的數(shù)據(jù)上傳至移動端,由移動端分析各用戶提供給設(shè)備的檢測數(shù)據(jù)和異常信息。存在報警信息時,維修人員需上報報警信息和維修結(jié)果,并在維修后將維修內(nèi)容和經(jīng)驗上傳至系統(tǒng)形成閉環(huán),從而逐步完善故障診斷模型,提高診斷和預(yù)測的精度。
圖9 可視化分析系統(tǒng)界面
PLC與工業(yè)PC通過以太網(wǎng)基于TCP/IP協(xié)議的通信方式具有簡單靈活等優(yōu)點。本文基于該通信方式搭建了機場旅客隨身行李安檢設(shè)備狀態(tài)監(jiān)測系統(tǒng),實現(xiàn)了對接入系統(tǒng)的機場安檢設(shè)備進行狀態(tài)監(jiān)測、報警信息、剩余壽命預(yù)測、健康評估、保養(yǎng)管理、巡檢管理以及維修管理等,實時感知設(shè)備狀態(tài),及早發(fā)現(xiàn)設(shè)備隱患,快速輔助設(shè)備維修,制定應(yīng)急措施,最終達到大幅延長使用壽命和提高工作效率的目的。