李 飛
(公安部第一研究所, 北京中盾安民分析技術有限公司, 北京 100048)
隨著我國經(jīng)濟和工業(yè)化的發(fā)展, 工業(yè)領域的自動化應用越來越廣泛。在工業(yè)控制領域,PLC 憑借其顯著優(yōu)勢占據(jù)邏輯控制的主流地位。 近年來隨著安檢系統(tǒng)應用范圍的逐步擴大,合作廠商和方式逐步升級,對多系統(tǒng)對接時的便捷性、 合理性以及系統(tǒng)運行效率等都提出了新的需求。西門子S7-1200 定位于“低端的離散自動化系統(tǒng)和獨立自動化系統(tǒng)中使用的小型控制器模塊”,充分滿足于中小型自動化的系統(tǒng)需求, 此系列產(chǎn)品的設計充分考慮了系統(tǒng)、控制器、人機界面和軟件的無縫整合和高效協(xié)調(diào)的需求[1-2]。
目前, 西門子S7-1200 本體PROFINET 通信口支持以太網(wǎng)和基于TCP/IP 和UDP 的通信標準和方式[3-4]。 西門子S7-1200 和上位機通信主要有2 種方式: 采用以太網(wǎng)通信或者OPC 通信。 OPC 通信方法過于復雜,多數(shù)OPC服務器難以為實時數(shù)據(jù)庫提供數(shù)據(jù)緩存、 無法提供一些常用的計算功能以及OPC 在分布式應用中容易和防火墻發(fā)生沖突[5]。 以太網(wǎng)通信方式簡單,與OPC 通信相比具有靈活、開發(fā)成本低等優(yōu)點。 西門子S7-1200 與其他西門子可編程控制器連接方式主要有串口通信、IO 干接點通信和以太網(wǎng)通信, 串口通信和IO 干接點通信的優(yōu)點是簡單,但是劣勢是傳輸效率低、抗干擾能力弱。
綜上所述, 本設計中西門子S7-1200 與外部系統(tǒng)西門子可編程控制器采用穩(wěn)定可靠的PROFINET IO 方式連接,與安檢系統(tǒng)的上位機采用以太網(wǎng)通信方式連接。
S7-1200 在本設計中通過和外部系統(tǒng)西門子PLC 進行組態(tài), 實現(xiàn)了兩個不同廠家的信息系統(tǒng)進行數(shù)據(jù)的交互、邏輯控制等,簡易流程圖如圖1 所示。 為了保持不同系統(tǒng)之間的數(shù)據(jù)安全和電氣獨立, 在兩個PLC 進行組態(tài)時進行電氣/網(wǎng)絡隔離。 外部控制信號采用工業(yè)現(xiàn)場常用的干接點連接,S7-1200 實際應用框圖如圖2 所示。
圖1 簡易流程圖
圖2 S7-1200 實際應用框圖
本次設計選用本體集成兩個以太網(wǎng)口的S7-1200 系列的PLC,CPU 的型號為1215C。S7-1200 和上位機通過Socket 進行通訊[6-7]。Socket 建立在傳輸層協(xié)議(TCP 和UDP)之 上,由于TCP 面向連接,UDP 是無連接的,因此,利用Socket 進行通信,有兩種方式:面向連接的和無連接的。本設計采用面向連接的通信方式,其中上位機作為Client 端進行實時訪問,S7-1200 作為接收連接對象的Server 端, 所以應選用兩部分功能模塊指令:一是TRCV(接收指令),如圖3 所示, 接收數(shù)據(jù)指令針對數(shù)據(jù)是否定長有不同配置;二是TSEND_C(發(fā)送指令),如圖4 所示。
圖3 接收指令
圖4 發(fā)送指令
線程是程序中的一個執(zhí)行流程,是CPU 調(diào)度和分派的基本單位。一個線程可以包含一個或者多個線程,并在同一個進程內(nèi)的多個線程共享內(nèi)存和資源[8]。因為S7-1200屬于單線程運行,為了程序的通用性以及合理性,S7-1200需要實現(xiàn)和上位機多線程通信的機制, 這就要求數(shù)據(jù)接收端(即S7-1200)內(nèi)部編寫程序實現(xiàn)數(shù)據(jù)接收緩沖池,將上位機發(fā)送的數(shù)據(jù)全部接收后以固定時間間隔發(fā)送給PN/PN COUPLE,報文接收部分程序截圖如圖5 所示。
圖5 報文接收部分程序截圖
為了減少兩個不同電路之間的干擾, 確保一側網(wǎng)絡端的錯誤對另一側的網(wǎng)絡端沒有影響, 在兩個系統(tǒng)連接時候通過專用設備進行隔離。 本設計選用西門子公司生產(chǎn)的PN/PN COUPLE 耦合器作為連接兩個系統(tǒng)PLC 的中間隔離設備,PLC 和PN/PN COUPLE 之間通過PROFINET連接進行數(shù)據(jù)交換,實際連接示意圖如圖6 所示。
圖6 隔離連接示意圖
PN/PN COU PLE 為數(shù)據(jù)交換提供兩個相互對應的緩沖區(qū),每個緩沖區(qū)都有發(fā)送區(qū)域(Output)和接收區(qū)域(Input)。 一 個PROFINET 網(wǎng) 絡 的 發(fā) 送 區(qū) 對 應 另 一 個PROFINET 網(wǎng)絡的接收區(qū),反之亦然。 在PROFINET 接口下的轉換映射欄中將發(fā)送和接收傳輸區(qū)分別進行配置,導出GSD 文件供PN/PN COUPLE 另一個接入端進行組態(tài)。 配置完成的傳輸區(qū)示意圖如圖7 所示。
圖7 配置完成的傳輸區(qū)示意圖
PN/PN COUPLE 開放的緩沖區(qū)類似靜態(tài)數(shù)組, 如果數(shù)據(jù)寫入的速度超過了讀取的數(shù)據(jù), 就會存在前一組數(shù)據(jù)被覆蓋而無法讀取的現(xiàn)象, 所以為了雙方都可以準確無誤的數(shù)據(jù)交互,就對緩沖區(qū)數(shù)據(jù)保持時間THOLD提出了要求。假設S7-1200 的最長刷新周期為T1MAX,考慮時鐘的不穩(wěn)定性以及其他冗余, 外部系統(tǒng)PLC 寫入PN/PN COUPLE 緩沖區(qū)的數(shù)據(jù)保持時間最少為THOLD=2T1MAX。 同理S7-1200 寫入PN/PN COUPLE 緩沖區(qū)的數(shù)據(jù)保持的時間最少為THOLD=2T2MAX(外部系統(tǒng)PLC 的最長刷新周期為T2MAX)。 此部分信息報文程序截圖如圖8 所示。
圖8 信息報文程序截圖
外部控制信號采用了傳輸速度快、可靠性高、接線方式簡單等優(yōu)點的無緣信號接線方式, 在程序中增加濾波處理以防止信號的誤觸發(fā)。此信號主要包括光障、走帶以及急停信號等,部分控制信號程序截圖如圖9 所示。
圖9 部分控制信號程序截圖
HMI 是人機界面的縮寫,將HMI 和PLC 相連可以將其數(shù)據(jù)等顯示在屏幕上, 開展故障檢修、 數(shù)據(jù)監(jiān)控的目的。 本設計中S7-1200 和HMI 屏選用以太網(wǎng)通信,使用TCP 協(xié)議。HMI 添加后需要在設備組態(tài)中進行組網(wǎng)設置,切記HMI 觸摸屏和S7-1200 以及PN/PN COUPLE 需在相同的IP 網(wǎng)段并且不同的IP 地址。 HMI 觸摸屏示意圖如圖10 所示。
圖10 HMI 觸摸屏示意圖
本設計安裝于實際的應用環(huán)境, 通過TIA 軟件中的Traces 功能進行實時監(jiān)測以及上位機記錄的數(shù)據(jù)交互日志,經(jīng)過分析發(fā)現(xiàn)實際中單次數(shù)據(jù)傳輸,從外部系統(tǒng)到安檢系統(tǒng)30ms 即可完成。 本設計數(shù)據(jù)傳輸快速、正確以及穩(wěn)定, 可以實現(xiàn)高強度長時間工作的需求,TRACE 曲線示意圖如圖11 所示,上位機日志截圖如圖12 所示。
圖11 TRACE 曲線示意圖
圖12 上位機日志截圖
本設計介紹了S7-1200 在安檢系統(tǒng)中的應用與設計, 通過PROFINET IO 連接外部系統(tǒng)的西門子PLC,通過以太網(wǎng)方式連接內(nèi)部安檢系統(tǒng)的上位機,實現(xiàn)了報文的通信、邏輯指令的控制以及狀態(tài)實時監(jiān)控。 經(jīng)過實際應用環(huán)境中的大量數(shù)據(jù)測試, 報文通信實時并且穩(wěn)定,控制信號正確無誤。 說明了此設計方式的合理性,為以后同類型場景、不同類型設備的應用提供了有價值的模型參考。