黃福桃
(廣州市機電技師學院 廣東 廣州 510000)
在當前社會工業化進程中,自動化生產線的占比將越來越重,基于可編程邏輯控制器(下簡稱PLC)的多站通信流水線作業也已經成為當前自動化設備的主流控制方式。現代化加工工廠內,多站生產實訓控制系統將是高職院校機電專業學生主要面對的場所。為了幫助學生及時發現、應對處理PLC多站通信異常現象,本文通過分析多站通信過程中設備功耗情況,設計系統根據功耗異常信息判斷是否出現通信異常現象,達成檢測PLC多站通信異常現象的目的。
通過西門子S7-1200PLC實現多站通信主要有兩種途徑,內部以太網多站通信和開放以太網多站通信,具體使用可根據自身實際情況酌情選擇。
基于西門子內部S7協議,建立的多站通信體系只能應用于西門子帶有PN口的CPU之間。這種多站通信方法安全性、可靠性高,但相對限制較多,設備要求較高。具體通信方案做法如下[1-2]。
(1)增加兩個S7-1200PLC并設置好相關參數,連接機制勾選允許訪問通信,IP地址分別為192.168.0.1和192.068.0.2,而后在兩個PLC內都建立一個標準數據塊。
(2)在兩個PLC以太網端口如圖1所示設置子網,在PLC1中添加如圖2所示的指令組態,在PLC2中設置伙伴名稱并進行子網連接[3]。
(3)對PLC1、PLC2分別進行如圖3、圖4所示的程序設計[4-5]。
(4)下載程序并進行仿真。
開放式以太網多站通信普適性更高,可用于多種情況之下,但是因為開放網絡會導致安全性降低,容易遭到攻擊。可根據實際情況酌情選擇,具體操作方法如下[6-7]。
(1)增加兩個S7-1200PLC并設置好相關參數,連接機制勾選允許訪問通信,IP地址分別為192.168.0.1和192.068.0.2,連接兩個PLC端口設置子網。
(2)在開放式以太網中,系統必須同時擁有TRCV_C指令與TRSEN_C指令才能完成通信數據傳輸。所以需要向P LC1中加入TRSEN_C指令,向PLC2中加入TRCV_C指令,數據塊分別選擇Send_DB與Receive_DB[8]。
(3)設置PLC程序。
(4)下載程序并進行仿真。
LSTM主要應用在遞歸神經網絡模型方面用以處理梯度消失問題[9],核心是一類特殊的循環神經網絡(RNN)模型。RNN模型整體共分為輸出層、隱含層、輸入層3層,因為RNN模型具有按照時刻將隱含層包含信息逐步傳輸給后續隱含層的能力,所以常被用于處理與時間依存的相關問題。對RNN模型進行拆解,設整體系統中Xt為輸入信息,t為對應時刻,H為隱含層,Yt為輸出信息。RNN模型整體成一鏈式結構,信息從輸入層輸入,到達隱含層后傳輸到下一隱含層,之后信息從輸出層輸出。整體結構與時間關聯性緊密,十分適合處理時間依賴性問題,但就整體信息傳輸過程而言,其存在著信息梯度消失的問題。隨著傳遞時間的增加,信息缺失程度也在不斷增加,而隨著新數據的不斷涌入,原始信息對于整體系統的影響將會逐漸降低。因為這種趨勢的出現,導致在訓練過程中,X0的信息對于Yt+2的影響微乎其微,在計算誤差過程中,t+2時的誤差也不能用來計算初始時刻的誤差[10]。
為了解決RNN模型運行過程中遇到的梯度消失問題,LSTM應運而生。LSTM與傳統RNN模型最大的區別在于加入了記憶單元儲存之前時刻的信息,LSTM利用控制輸入門、遺忘門、輸出門的方法達成對于信息保存更新的作用。傳統的RNN模型是員工簡單的非線性激活函數,LSTM是利用記憶單元取代了激活函數,達到了長時間儲存信息,不隨時間削減的效果[11]。
圖5為最簡單的LSTM模型隱含層結構,其中σi、σf、σo分別為系統輸入門、遺忘門、輸出門,Ct是t時刻記憶單元儲存信息值,是t時刻系統輸出信息,Xt是t時刻系統輸入信息,it、ft、ot分別是系統輸入門、遺忘門和輸出門的值,是系統候選記憶單元的值,主要作用是更新系統狀態,Wij是連接i到j的權值,b代表偏振。根據已有數據計算可得:
遺忘門ft的值為:
ft=σi(Wxf xt+Wyf yt-1+bf)
輸入門it的值為:
it=σi(Wxi xt+Wyiyt-1+bi)
候選記憶單元-Ct的值為:
記憶單元Ct的值為:
輸出門ot的值為:
ot=σo(Wxoxt+Wyoyt-1+bo)
當前輸出值yt為:
yt=ot×tanh(Ct)
根據公式分析可知,系統對于信息的存留程度取決于遺忘門的數值,輸入門的取值直接影響此時刻的信息數據,輸出門影響后續時刻的信息數據。所以通過控制3種門的數值大小就能使信息長時間儲存下去。

在利用PLC進行多站通信的過程中,經常會出現各種各樣的故障情況,比如PLC可能接收到了通信數據,但卻沒有發送數據,或者游離于整個系統之外,既不吸收,也不會發出通信數據,往往一兩組的數據缺失并不容易被人發現,難以被人觀察注意。為了解決這一問題,完善PLC多站通信異常現象檢測機制,本文利用PLC出現異常現象時PLC的中央處理器(CPU)功耗變化情況為評判標準,達到監測多種通信異常現象的目的。在PLC設備中加裝如圖6所示的CPU功耗采集裝置。
功耗采集裝置僅能進行數據收集,無法識別具體異常現象,所以通過程序設計,利用收集到的數據進行訓練,編寫出一套多站通信異常信息識別系統。常見的監測算法設計多是訓練一個多分類器,雖然多分類器監測精準度較高,但是多分類器的訓練過程中,需要大量的樣本數據以及訓練時間。多分類器多用于大型企業進行精密監測工作,在高職院校中為學生輔助使用并不需要高精度要求,所以本文采用利用長短記憶單元(LSTM)的神經網絡模型算法進行監測工作。主要監測方法為,通過利用正常樣本進行訓練,使得程序具有模擬接下來正確樣本數據的能力,監測時,通過對比監測數據與預測數據之間的吻合程度判斷是否出現異常現象,具體原理見圖7。
設計多站通信異常現象檢測程序具體算法流程見圖8。采集足夠的多站通信正常運行的CPU能耗正樣本進行訓練,確保能夠準確預測下一時刻功耗樣本信息情況。在監測過程中,對于收集到的原始功耗數據進行切分,預處理后提取出相應特征,得到特征樣本X。利用上一個時刻算法根據樣本算出的預測數據X’與特征樣本X進行比對,吻合度高記為正樣本,吻合度低,出現明顯偏差記為負樣本。在出現負樣本后進行判定,是否出現連續3個負樣本,如果是,則判定多站通信之間出現異常現象,給予報警,如果不是,則記錄負樣本個數加1,進行下一個樣本比對工作。為了排除偶然因素影響,下一個樣本如果為正樣本,則將之前累計的負樣本個數清零。
利用Matlab及現有設備進行監測實驗,監測過程中實時監控系統界面見圖9。
不改變其他條件因素,使多站通信運行48 h,使用系統一直進行監測工作,觀察48 h內產生負樣本數量,報警次數,分析整體監測系統誤報率。實驗結果見圖10。
從圖中可以看出,初始情況下,幾乎不會出現負樣本,但隨著設備的運行,PLC的CPU能耗將會因為溫度影響出現一定的誤差,導致算法誤報率提升,不過整體誤報率極低,48 h內,誤報率仍不超過1%,誤報率基本滿足要求,而且因為3次連續負樣本報警機制,大幅度降低了誤報警情況出現,48 h內未出現報警現象。
為了驗證監測系統對于多站通信中異常現象的識別能力,又進行了系統誤接收率實驗。實驗共有4個階段,每個階段用時兩個小時,總實驗共8個小時。階段1,多站通信系統正常運行,監測正常情況下,將正樣本誤接收為負樣本的概率。階段2,關閉PLC2信號接收裝置,檢測接收負樣本數及將負樣本誤接收為正樣本的概率。階段3,關閉PLC2信號發出裝置,檢測接收負樣本數及將負樣本誤接收為正樣本的概率。階段4,關閉PLC2信號接收、發射裝置,檢測接收負樣本數及將負樣本誤接收為正樣本的概率。實驗結果見圖11。
由圖11實驗結果來看,在正常運行情況下,正樣本誤接收率在0.28%左右;對于多站通信出現異常現象時,關閉PLC2信號接收裝置,系統負樣本誤接收率在0.89%左右;關閉PLC2信號發射裝置,系統負樣本誤接收率在0.29%左右,將PLC2信號接收發射裝置全部關閉后,系統負樣本誤接收率幾乎為零。3種異常現象之間的差別主要在于CPU功耗變化程度,幅度越小,誤報率越高,變化程度越大,則整體系統判別準確性就越高。為了降低實際運行過程中,系統誤報警現象出現,設定只有連續出現3個負樣本時,才判斷出現異常現象,整體判定系統大概需要1 min左右的判定時間,因為多站通信系統對于響應速度要求不高,所以1 min的判定時長并不影響系統整體使用情況。
在實驗2的基礎上,改變選取樣本長度觀察對于監測結果的影響。各類異常現象與實驗2中等同,切分時間分別變為2 s、3 s、5 s、9 s、17 s。利用不同切分時間下的樣本提取特征進行訓練。切分時間選取原則為我們在計算特征時選取的點位,需是2的n次方,所以切分時間應選取2的n次方附近的數字。準備工作做好后,進行實驗,實驗結果見圖12。
由實驗結果可知,樣品切分長度對監測結果影響以9 s為轉折點,小于9 s時,監測準確率較高;大于9 s后,準確率急劇下降。分析其原因是樣本切分長度過長,導致樣品特征提取數量增多,在比對過程中差異出現增多,導致判斷負樣本增多,準確率降低。在樣本切分長度選取為5 s時整體監測效果最好,對于3種異常現象監測準確率均在99%以上。
常規情況下,算法監測準確率取決于訓練時間,但訓練時間過長之后,對于準確率的提升效果會降低,為了找到訓練時間與訓練效果之間平衡點,避免無端浪費,選取性價比最高的做法,進行實驗4。其他條件不變,樣品切分長度選取為5 s,將訓練時間變為6 h、10 h、14 h、18 h、22 h、26 h、30 h,訓練結束后分別對3種異常現象進行識別準確率實驗,實驗結果見圖13。
根據實驗結果顯示,訓練時間與訓練效果之間平衡點在18 h處,18 h之前,系統異常現象監測準確度明顯隨訓練時間增加而提升,18 h后監測準確率提升速度明顯放緩,隨著訓練時間增長無限接近于100%。為了追求訓練時間與效率之間的平衡關系,選取18 h作為整體訓練時間,實驗結果顯示對于3種異常現象的監測準確率均在99%以上。
算法采樣參數設置中,最后一項就是采樣率對于系統監測準確性的影響,一般情況下,采樣率越高,則整體算法準確率也會越高。采樣率越高,在相同時間內獲取的信息也會更多,對于算法區分辨別工作幫助就更大,但過高的采樣率會加大采樣器能量消耗,對于監測準確率的提升效果會降低,從而造成無用的效率浪費。為了找到性價比最高的設備采樣率,進行實驗5。其他條件不變,控制樣品切分長度為5 s,系統訓練時間為18 h,改變采樣率為250 kSa/s、225 kSa/s、200 kSa/s、175 kSa/s、150 kSa/s、125 kSa/s、100 kSa/s,分別測量不同采樣率下,算法監測準確度,實驗結果見圖14。
結果顯示,綜合分析采樣率的最佳值應為175 kSa/s,當采樣率小于175 kSa/s時,采樣率對監測準確率影響十分巨大,所以并不適合作為普遍選取值,在175 kSa/s之后,隨著采樣率變化,監測數據準確率變化幅度并不大。所以在精度要求沒有特別高的情況下,選用175 kSa/s的采樣率是性價比最高的方法。
PLC多站通信在自動化流水線中的占比也越來越重,為了幫助高職的同學們能夠熟練掌握PLC建設,快速找出解決PLC多站通信過程中出現的問題。本文利用基于長短記憶單元的神經網絡模型編寫了PLC多站通信異常現象檢測機制,根據一系列實驗測得,整體系統算法最佳參數為樣品切分長度為5 s,系統訓練時間為18 h,采樣率為175 kSa/s,之后經過實驗檢驗,PLC多站通信異常現象檢測系統滿足相關要求,可以起到相應預警作用,為同學們學習過程提供幫助。雖然該監測系統已經初步實現了對于PLC多站通信異常現象的監測工作,但是還存在很大的不足與改進空間,譬如本文僅是就PLC功耗信息進行了采集分析,事實上PLC還存在許多旁路信號,如電磁干擾信號、聲信號、熱信號等,在一定程度上均可以反映PLC運行狀況,對這些信號進行研究,可對目前的PLC監測系統進行良好的補充,得到更加完善的PLC監測機制。