吳海翔,盛亞英
(1.浙江省人民醫(yī)院杭州醫(yī)學(xué)院附屬人民醫(yī)院,杭州 310000;2.溫州醫(yī)科大學(xué)附屬眼視光醫(yī)院,溫州 325027)
在信息技術(shù)的支持下,現(xiàn)代工業(yè)得到了空前的發(fā)展,工業(yè)領(lǐng)域中應(yīng)用了大量自動(dòng)化設(shè)備,不僅實(shí)現(xiàn)了數(shù)據(jù)的自動(dòng)處理,而且在設(shè)備的測(cè)試和監(jiān)控上也實(shí)現(xiàn)了自動(dòng)化,節(jié)省了大量人力物力成本[1]。從目前的自動(dòng)化技術(shù)應(yīng)用環(huán)境來(lái)看,用戶以及企業(yè)對(duì)自動(dòng)化編程控制提出了更高的要求,常規(guī)的編程控制受到封閉式體系架構(gòu)的限制,并不能完全滿足用戶需求[2]。
從目前的應(yīng)用形勢(shì)看,自動(dòng)化控制多數(shù)使用簡(jiǎn)單的數(shù)字和模擬控制,過(guò)度依賴上位機(jī),系統(tǒng)工程往往結(jié)合了多個(gè)廠家的硬件,這些硬件各自具有不同的屬性參數(shù),在協(xié)同工作上并不能實(shí)現(xiàn)完全的系統(tǒng)同步,導(dǎo)致系統(tǒng)控制水平低[3]。面對(duì)這一情況,提出自動(dòng)化編程控制系統(tǒng)的設(shè)計(jì),在翻閱了大量參考資料后,將PLC組態(tài)分析原理應(yīng)用到系統(tǒng)設(shè)計(jì)中。PLC在工業(yè)領(lǐng)域中具有非常優(yōu)越的性能,其組態(tài)分析針對(duì)控制的各個(gè)模塊,能夠根據(jù)控制系統(tǒng)的設(shè)計(jì)要求將各個(gè)控制模塊組成一個(gè)完整的回路,實(shí)現(xiàn)穩(wěn)定的自動(dòng)化控制,設(shè)計(jì)基于PLC組態(tài)分析原理的自動(dòng)化編程控制系統(tǒng),有助于解決上述常規(guī)的編程控制系統(tǒng)中存在的問(wèn)題。
在系統(tǒng)硬件設(shè)計(jì)中,針對(duì)原有的編程控制系統(tǒng)的內(nèi)部結(jié)構(gòu)進(jìn)行優(yōu)化和改良。編程控制系統(tǒng)的內(nèi)部結(jié)構(gòu)如圖1所示。
圖1 編程控制系統(tǒng)內(nèi)部結(jié)構(gòu)示意圖
在系統(tǒng)內(nèi)部結(jié)構(gòu)中,硬件部分包括處理器的定制和外部設(shè)備的連接,在設(shè)計(jì)系統(tǒng)硬件部分時(shí),基于PLC組態(tài)分析原理,將系統(tǒng)硬件部分與PLC外接設(shè)備相連接。設(shè)備添加情況如圖2所示。
圖2 設(shè)備連接向?qū)?/p>
在完成設(shè)備的添加后,定義與PLC設(shè)備相對(duì)應(yīng)的I/O變量。針對(duì)選定的PLC設(shè)備,使用基于FPGA的軟CPU內(nèi)核作為系統(tǒng)硬件的核心,采用NiosII/s作為標(biāo)準(zhǔn)的多位處理器,支持系統(tǒng)硬件部分的緩存和調(diào)試[4]。
將接入的PLC設(shè)備分別與NiosII/s處理器、通信模塊相連接,實(shí)現(xiàn)從PLC端口到通信I/O接口間的映射。定義的I/O中包含4個(gè)寄存器,每個(gè)寄存器具有不同的功能,其中數(shù)據(jù)寄存器負(fù)責(zé)輸入輸出系統(tǒng)內(nèi)的數(shù)據(jù),其偏移地址為0字節(jié);方向寄存器控制每一個(gè)輸入輸出的引腳方向,偏移地址為4字節(jié);中斷控制寄存器控制輸入輸出中斷的使能,偏移地址為8字節(jié);邊沿捕捉寄存器負(fù)責(zé)輸入的邊沿捕捉,偏移地址是12字節(jié)。以上設(shè)計(jì)的I/O接口在系統(tǒng)工作時(shí),均采用邊沿觸發(fā)模式控制外部設(shè)備[5]。
基于PLC組態(tài)分析原理設(shè)計(jì)編程控制系統(tǒng),將組態(tài)王軟件默認(rèn)為硬件,根據(jù)組態(tài)王內(nèi)部設(shè)置的各個(gè)設(shè)備驅(qū)動(dòng),設(shè)計(jì)PLC組態(tài)與控制系統(tǒng)之間的通信方式。
設(shè)計(jì)中采用PPI通訊和串行通訊方式,在上位機(jī)上設(shè)置PPI參數(shù)默認(rèn)值,建立起上位機(jī)與PLC組態(tài)之間的通信連接,使用向?qū)ФxPLC組態(tài),設(shè)置PLC地址和通訊,實(shí)現(xiàn)兩者之間的通信。兩者之間的通訊地址如下所示:
PPI0-PPIB63→VB200-VB263;
在PLC組態(tài)與系統(tǒng)通信連接建立后,設(shè)計(jì)流程控制指令,用于控制編程。首先,根據(jù)自動(dòng)化編程控制要求,添加控制標(biāo)簽指令,指令格式為:
Label(n);
其中Label是控制標(biāo)簽指令的關(guān)鍵字,n是標(biāo)簽的序號(hào)。指定跳轉(zhuǎn)指令的關(guān)鍵字是Goto,整體的格式為:
GotoLabel(n);
在控制編程過(guò)程中,往往存在大量跳轉(zhuǎn)指令,為了保證編程的正常進(jìn)行,使用條件判斷指令對(duì)IO點(diǎn)的狀態(tài)進(jìn)行判斷,如果判斷后IO點(diǎn)的狀態(tài)是目標(biāo)狀態(tài),則實(shí)現(xiàn)跳轉(zhuǎn);如果IO點(diǎn)的狀態(tài)并不是目標(biāo)狀態(tài),則不跳轉(zhuǎn),直接執(zhí)行下一條控制指令。判斷指令格式如下:
其中If表示條件判斷的關(guān)鍵字,on/off表示期望狀態(tài),分別是真和假,n表示IO點(diǎn)的序號(hào),m表示指定標(biāo)簽的序號(hào)。在以上控制指令的支持下,與控制輔助函數(shù)相配合,實(shí)現(xiàn)自動(dòng)化編程控制。
自動(dòng)化編程控制輔助函數(shù)包括控制參數(shù)的單維合成與分解函數(shù)和多項(xiàng)式配置函數(shù)。設(shè)計(jì)中,給定控制矩陣和四元數(shù),表達(dá)形式如下:
公式中α表示控制參數(shù)的純量,σT表示控制參數(shù)的向量,控制矩陣與四元數(shù)之間的相互轉(zhuǎn)換函數(shù)為:
式中H_to_Q(H)表示控制矩陣轉(zhuǎn)換為四元數(shù)的函數(shù),Q_to_H(Q)表示四元數(shù)轉(zhuǎn)換為控制矩陣的函數(shù)。給定初始控制參量E0和終止控制參量E1,獲得包含控制參數(shù)的單維合成函數(shù):
公式中[W,n]表示獲得的控制參數(shù),n表示控制參數(shù)維度??刂茀?shù)的分解函數(shù)是單維合成的逆運(yùn)算,在W、n和E0已知的情況下,則控制參數(shù)的單維分解函數(shù)為:
其中Ex表示系統(tǒng)實(shí)際工作時(shí)的控制參數(shù)。對(duì)于自動(dòng)化編程控制中的多項(xiàng)式配置,給定已知參數(shù)起始控制參量和終止控制參量,默認(rèn)系統(tǒng)起始控制到終止控制的時(shí)間為T(mén),則解出的多項(xiàng)式配置解為:
公式中K表示求得的多項(xiàng)式解,表示形式是集合,getPPara(E0,E1,T)表示控制多項(xiàng)式配置的參數(shù)求解函數(shù),多項(xiàng)式配置的數(shù)量由PLC組態(tài)確定,得到的解的個(gè)數(shù)與多項(xiàng)式的數(shù)量相同。編程自動(dòng)化控制中存在插補(bǔ)情況,根據(jù)上述內(nèi)容確定插補(bǔ)計(jì)算函數(shù),給定控制多項(xiàng)式配置的系數(shù)β,插補(bǔ)的時(shí)間節(jié)點(diǎn)t,確定的插補(bǔ)計(jì)算函數(shù)為:
公式中c=getPPos(β,T,t)表示插補(bǔ)計(jì)算函數(shù),c表示控制插補(bǔ)分量。根據(jù)上述內(nèi)容整理控制輔助流程:給定各項(xiàng)已知參數(shù),獲得控制矩陣:
獲得控制參量的單維合成參數(shù),如式(4)所示,由控制時(shí)間和插補(bǔ)時(shí)間確定整個(gè)編程流程。至此,基于PLC組態(tài)分析原理的自動(dòng)化編程控制系統(tǒng)設(shè)計(jì)完成。
在自動(dòng)化編程控制系統(tǒng)設(shè)計(jì)完成后,通過(guò)功能測(cè)試對(duì)系統(tǒng)整體進(jìn)行驗(yàn)證與分析,根據(jù)系統(tǒng)的整體架構(gòu)和基本功能,從系統(tǒng)安裝與卸載、啟動(dòng)與退出、控制過(guò)程管理、編程控制類(lèi)庫(kù)管理、控制工具、腳本編輯六個(gè)方面展開(kāi)研究,具體的測(cè)試內(nèi)容和與預(yù)期設(shè)定如表1所示。
表1 系統(tǒng)測(cè)例配置
按照表中的各項(xiàng)測(cè)例,測(cè)試設(shè)計(jì)的自動(dòng)化編程控制系統(tǒng)各項(xiàng)功能執(zhí)行是否正常。將系統(tǒng)出現(xiàn)bug的情況分為4類(lèi),第一類(lèi)標(biāo)記為A,系統(tǒng)出現(xiàn)嚴(yán)重錯(cuò)誤,程序引起死機(jī)或數(shù)據(jù)庫(kù)發(fā)生鎖死;第二類(lèi)標(biāo)記為B,系統(tǒng)功能測(cè)試中存在較嚴(yán)重的錯(cuò)誤,如程序接口錯(cuò)誤,數(shù)據(jù)缺省等;第三類(lèi)標(biāo)記為C,系統(tǒng)測(cè)試中出現(xiàn)一般性錯(cuò)誤,如信息格式錯(cuò)誤、操作界面錯(cuò)誤等;第四類(lèi)是系統(tǒng)出現(xiàn)較小錯(cuò)誤,如輸入輸出內(nèi)容不規(guī)范,界面不規(guī)范等。針對(duì)表中的各個(gè)方面,自動(dòng)化編程控制系統(tǒng)測(cè)試結(jié)果如表2所示。
表2 系統(tǒng)測(cè)試bug類(lèi)型及數(shù)量
觀察表中顯示的系統(tǒng)測(cè)試結(jié)果可知,在各個(gè)系統(tǒng)測(cè)例中,部分測(cè)例在測(cè)試前存在一般錯(cuò)誤和較小的錯(cuò)誤,在測(cè)試完成后,測(cè)試bug全部為0,由此可知,系統(tǒng)在運(yùn)行過(guò)程中各項(xiàng)功能能夠正常實(shí)現(xiàn),系統(tǒng)運(yùn)行可靠。
單一的測(cè)試只能系統(tǒng)功能的完善,對(duì)于實(shí)際應(yīng)用的情況,還需要通過(guò)進(jìn)一步的對(duì)比研究來(lái)證明,針對(duì)自動(dòng)化編程控制系統(tǒng)的脈沖同步問(wèn)題,引入兩種常規(guī)的編程控制系統(tǒng),設(shè)計(jì)數(shù)據(jù)同步對(duì)比測(cè)試,在測(cè)試結(jié)束后,根據(jù)測(cè)試結(jié)果對(duì)比分析各個(gè)編程控制系統(tǒng)的實(shí)際性能。
在測(cè)試編程控制系統(tǒng)的數(shù)據(jù)同步性能時(shí),在Modbus主站調(diào)試軟件上運(yùn)行系統(tǒng),針對(duì)實(shí)驗(yàn)中每一個(gè)編程控制系統(tǒng),在Modbus軟件上創(chuàng)建多個(gè)主機(jī),每個(gè)主機(jī)支持保持寄存器的查詢和設(shè)置,在Modbus軟件上模擬系統(tǒng)的運(yùn)行,監(jiān)測(cè)各個(gè)系統(tǒng)下數(shù)據(jù)的變化。為了保證實(shí)驗(yàn)的可靠性,設(shè)置Modbus調(diào)試軟件內(nèi)的各項(xiàng)參數(shù),統(tǒng)一測(cè)試條件。具體設(shè)置如圖3所示。
圖3 Modbus軟件通信參數(shù)設(shè)置
從圖中的波特率、端口號(hào)、數(shù)據(jù)位等參數(shù)的設(shè)置,限制了系統(tǒng)的工作環(huán)境,避免了實(shí)驗(yàn)中外界環(huán)境的變換對(duì)系統(tǒng)測(cè)試產(chǎn)生干擾。在設(shè)置完成后,將編程信息下載到系統(tǒng)中,運(yùn)行編程控制系統(tǒng),觀察Modbus內(nèi)數(shù)據(jù)的變化,實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 不同控制系統(tǒng)數(shù)據(jù)同步測(cè)試結(jié)果
對(duì)比觀察以上測(cè)試結(jié)果可知,在圖中顯示的接收數(shù)據(jù)的位置內(nèi)能明顯看出,三種編程控制系統(tǒng)均實(shí)現(xiàn)了數(shù)據(jù)的接收,說(shuō)明系統(tǒng)數(shù)據(jù)處理功能正常,對(duì)編程信息識(shí)別讀取正常,但是從Modbus顯示的數(shù)據(jù)可知,三組結(jié)果中,只有提出的控制系統(tǒng)測(cè)試結(jié)果在1s、2s、3s依次顯示,并且顯示正常,而其他兩組實(shí)驗(yàn)結(jié)果中,數(shù)據(jù)不連續(xù),并且寄存器地址異常。由此可知,設(shè)計(jì)的基于PLC組態(tài)分析原理的編程控制系統(tǒng)數(shù)據(jù)在定時(shí)器中同步正常,無(wú)擾動(dòng),該系統(tǒng)優(yōu)于常規(guī)的編程控制系統(tǒng)。
本文以PLC組態(tài)分析原理作為基礎(chǔ),在原有的編程控制系統(tǒng)的支持下,重新設(shè)計(jì)了自動(dòng)化編程控制系統(tǒng),從硬件和軟件兩方面進(jìn)一步完善了控制系統(tǒng)的各項(xiàng)功能。為了證明系統(tǒng)的可行性,在編程控制系統(tǒng)設(shè)計(jì)完成后,針對(duì)系統(tǒng)的各項(xiàng)功能進(jìn)行了驗(yàn)證,同時(shí)將常規(guī)的編程控制系統(tǒng)作為對(duì)比項(xiàng),證明了設(shè)計(jì)的編程控制系統(tǒng)擁有高水平的同步性,在實(shí)際應(yīng)用中數(shù)據(jù)同步及時(shí),無(wú)擾動(dòng)。雖然本文設(shè)計(jì)的控制系統(tǒng)實(shí)現(xiàn)了預(yù)期目標(biāo),實(shí)現(xiàn)了編程控制的基本功能,但是由于技術(shù)經(jīng)驗(yàn)的不足,控制系統(tǒng)還有晉升的空間,在后續(xù)研究中,總結(jié)現(xiàn)階段的研究和經(jīng)驗(yàn),從編程和算法上不斷改進(jìn)和優(yōu)化,在通信上也可以嘗試不同的通訊協(xié)議實(shí)現(xiàn)遠(yuǎn)程自動(dòng)化控制,逐漸完善控制系統(tǒng)。