姜俊彤,李 鴻,曾周煜東
(長(zhǎng)沙理工大學(xué)電氣與信息工程學(xué)院,長(zhǎng)沙410114)
以傳統(tǒng)PLC(可編程控制器件)硬件與上層專用開(kāi)發(fā)軟件為基礎(chǔ)的開(kāi)發(fā)平臺(tái)因其在工業(yè)環(huán)境應(yīng)用下具有運(yùn)行穩(wěn)定性高、組態(tài)靈活、開(kāi)發(fā)環(huán)境友好等優(yōu)點(diǎn)[1],所以廣泛存在于各類工控領(lǐng)域中。然而自傳統(tǒng)PLC誕生以來(lái),由于系統(tǒng)硬件都是基于特定解決方案設(shè)計(jì)的,從而導(dǎo)致傳統(tǒng)的開(kāi)發(fā)平臺(tái)存在硬件體系不兼容、編程語(yǔ)言與指令系統(tǒng)各異、體系結(jié)構(gòu)封閉等缺點(diǎn),難以適應(yīng)日漸復(fù)雜變化在車輛組態(tài)系統(tǒng)可視化界面開(kāi)發(fā)方面的市場(chǎng)需求[2]。
近些年來(lái)如文獻(xiàn)[3-6]中的眾多學(xué)者等都對(duì)列車可視化界面通用平臺(tái)的問(wèn)題進(jìn)行研究,并提出在ARM為內(nèi)核的CPU中運(yùn)行l(wèi)inux操作系統(tǒng)作為解決方案。但存在著諸如非專業(yè)編程人員難以熟悉該系統(tǒng)的問(wèn)題;系統(tǒng)本身是分時(shí)操作系統(tǒng),在實(shí)時(shí)性上難以滿足IEC(國(guó)際電工院委員會(huì))標(biāo)準(zhǔn)等問(wèn)題?;谏鲜鰡?wèn)題,提出一種基于ARM與MVB(多功能車輛總線)通信實(shí)現(xiàn)的軟PLC可視化界面通用平臺(tái)設(shè)計(jì)。闡述通用平臺(tái)系統(tǒng)運(yùn)行機(jī)制,并基于此硬件平臺(tái)提出CODESYS通用編程框架,最后以深圳某線HMI(人機(jī)交互)屏項(xiàng)目為試驗(yàn)對(duì)象對(duì)平臺(tái)性能進(jìn)行測(cè)試。
文中提出的以PLC軟核為核心的通用平臺(tái)系統(tǒng)如圖1所示,分為3個(gè)模塊:IO信號(hào)處理模塊、車載信號(hào)邏輯處理模塊、列車組態(tài)界面顯示模塊。具體工作流程為IO處理模塊對(duì)列車信號(hào)數(shù)據(jù)進(jìn)行預(yù)處理,并將處理后的數(shù)據(jù)流通過(guò)MVB與車載信號(hào)邏輯處理模塊進(jìn)行交互;在車載邏輯信號(hào)處理模塊中移植CODESYS內(nèi)核引擎使其CPU上運(yùn)行的Vxworks實(shí)時(shí)操作系統(tǒng)能執(zhí)行通過(guò)TCP/IP傳輸?shù)纳蠈泳幾g文件,并通過(guò)XML配置文件進(jìn)行IO地址映射達(dá)到共用內(nèi)存的目的;在列車組態(tài)界面顯示模塊中移植CODESYS內(nèi)核引擎使其CPU上運(yùn)行的Linux分時(shí)操作系統(tǒng)能夠運(yùn)行上層圖形化開(kāi)發(fā)界面的編譯文件,通過(guò)觸發(fā)中斷更新數(shù)據(jù)結(jié)構(gòu)體的方式滿足人機(jī)交互的需求。
圖1 系統(tǒng)整體框架
基于通用平臺(tái)設(shè)計(jì)低耦合、高穩(wěn)定、易于移植的要求,將列車信號(hào)處理、圖形化界面顯示、數(shù)據(jù)流處理分別在IMX.6、S3C2440、stm32F407三款CPU上運(yùn)行。并基于實(shí)際需求與操作系統(tǒng)的優(yōu)勢(shì)分別選擇了實(shí)時(shí)性具有明顯優(yōu)勢(shì)的Vxworks操作系統(tǒng)負(fù)責(zé)列車復(fù)雜邏輯處理、界面運(yùn)行穩(wěn)定的Linux操作系統(tǒng)負(fù)責(zé)界面顯示、高效經(jīng)濟(jì)的裸機(jī)操作系統(tǒng)對(duì)IO信號(hào)進(jìn)行預(yù)處理。在程序運(yùn)行復(fù)雜度和耦合度指標(biāo)上,實(shí)現(xiàn)從θ(i+j+n)到θi+θj+θn的轉(zhuǎn)換。
為滿足列車車載設(shè)備安全穩(wěn)定的要求,其中IO板卡信號(hào)配合雙冗余電源,信號(hào)處理全部采取基于FPGA的1oo2D結(jié)構(gòu),DI、AI信號(hào)經(jīng)過(guò)濾波處理電路輸入處理進(jìn)入IO板卡,并通過(guò)內(nèi)置FPGA對(duì)雙冗余的輸入輸出信號(hào)進(jìn)行判斷,若信號(hào)判斷正常則對(duì)外進(jìn)行輸入輸出操作,如圖2所示。通過(guò)模糊故障樹(shù)對(duì)其1oo2D結(jié)構(gòu)進(jìn)行計(jì)算:理論危險(xiǎn)未檢測(cè)到的共因失效率為λduc=βλdu、一般失效率為λduc=(1-β)λdu。1oo2D結(jié)構(gòu)要求時(shí)失效概率近似計(jì)算公式為PFD1oo2D=λduc×TI+(λdun×TI)2,將三角模糊數(shù)的概念帶入底故障事件,頂事件的發(fā)生模糊概率為
圖2 IO處理板
而平均失效概率PFDavg等于運(yùn)行時(shí)間上危險(xiǎn)失效PFD概率平均值。
假設(shè)元件失效率在生命周期內(nèi)保持不變,根據(jù)內(nèi)部試驗(yàn)數(shù)據(jù)統(tǒng)計(jì)將共因失效系數(shù)取β=0.03,根據(jù)列車運(yùn)行設(shè)備真實(shí)檢修周期將周期系數(shù)取為0.5α,最終計(jì)算出設(shè)備0.5α的PFDavg的模糊數(shù)為滿足IEC 61508下 的SIL2等 級(jí) 的(1.147×10-3,1.508×10-3,2.169×10-3)。
由此提出的可視化界面通用平臺(tái)具有信號(hào)系統(tǒng)處理效率高、IO信號(hào)安全、車載硬件平臺(tái)擴(kuò)展性與適應(yīng)性高的優(yōu)點(diǎn),能夠滿足不同項(xiàng)目之間數(shù)據(jù)流、通信方式、IO配置、硬件平臺(tái)差異化的需求。
系統(tǒng)硬件架構(gòu)設(shè)計(jì)如圖3所示:該平臺(tái)主芯片運(yùn)行Vxworks與Linux雙系統(tǒng)、TCNS協(xié)議棧軟件與內(nèi)置CODESYS-runtime引擎,其中Vxworks是滿足工業(yè)系統(tǒng)要求的實(shí)時(shí)操作系統(tǒng)。模塊的主CPU為IMX.6Q控制器,該芯片采用A9內(nèi)核,為4核高性能處理器。最高主頻率可達(dá)1.2 GHz,并帶有1 GBit/s以太網(wǎng)口,多路SPI/UART/CAN等通信接口,完全滿足列車工控產(chǎn)品的需求。
圖3 硬件系統(tǒng)框架圖
系統(tǒng)的通用外圍電路包括:由外部晶振提供的系統(tǒng)時(shí)鐘、看門狗刷新、程序儲(chǔ)存與運(yùn)行、MVB控制器、串口及以太網(wǎng)等通信接口組成。其中看門狗刷新由看門狗芯片與系統(tǒng)時(shí)鐘實(shí)現(xiàn),在規(guī)定時(shí)間內(nèi)系統(tǒng)軟件運(yùn)行正常執(zhí)行喂狗操作,否則看門狗發(fā)出復(fù)位信號(hào)程序重新啟動(dòng)。程序儲(chǔ)存與運(yùn)行電路包括SDRAM、FLASH等,對(duì)上電后與系統(tǒng)運(yùn)行的程序、數(shù)據(jù)、配置文件進(jìn)行儲(chǔ)存。RS232接口提供后期產(chǎn)品運(yùn)行階段調(diào)試與更新新版本程序功能。以太網(wǎng)提供與上位機(jī)監(jiān)控系統(tǒng)通信的擴(kuò)展要求,并通過(guò)以太網(wǎng)實(shí)現(xiàn)運(yùn)行在操作系統(tǒng)上的CODESYS-runtime內(nèi)核引擎與上層開(kāi)發(fā)軟件的編譯信息交互功能。MVB協(xié)議控制器滿足板卡模塊間的MVB通信需求。
MVB檢測(cè)系統(tǒng)主芯片選用ALTERA公司的Cyclone IV系列FPGA作為核心,并選用MAX3292作為MVB數(shù)據(jù)的采樣芯片,如圖4所示。該系統(tǒng)主要完成波形分析與數(shù)據(jù)分析功能。波形分析通過(guò)采樣電路完成波形提取與特征值信息的采集,包括:穩(wěn)態(tài)電平幅值、過(guò)零點(diǎn)斜率、幀電平信息等,然后將提出的MVB波形特征值與IEC 61375-3-1的標(biāo)準(zhǔn)進(jìn)行比較。數(shù)據(jù)分析模塊是對(duì)MVB數(shù)據(jù)的總線負(fù)載率、從幀數(shù)量、誤碼率等進(jìn)行判斷,判斷成功之后,將雙路IO信號(hào)輸出至IO板卡的MCU進(jìn)行數(shù)據(jù)校驗(yàn),若校驗(yàn)成功則輸出其中一路IO信號(hào)通過(guò)MVB進(jìn)入車載處理系統(tǒng)。
圖4 MVB檢測(cè)系統(tǒng)
MVB通信模塊選用基于ALTERA公司的Cy?clone IV系列FPGA作為核心,并以SPI時(shí)序與外界通信。為了滿足MVB通信模塊對(duì)于電壓穩(wěn)定性的要求,需在外圍增加由磁珠與電容構(gòu)成的電源正極濾波電路,從而達(dá)到減少電源波動(dòng)與波紋的作用。
MVB總線收發(fā)電路如圖5所示,選用MAXIM公司的RS485收發(fā)芯片MAX3292,采樣頻率高達(dá)10 MBPS,滿足對(duì)于MVB檢測(cè)采樣的速率要求。由于MVB總線為差分信號(hào),故需在輸入電路的前端增加差分轉(zhuǎn)單端電路,并增加濾波、穩(wěn)壓電路對(duì)輸入信號(hào)進(jìn)行處理。
圖5 MVB總線收發(fā)電路
通用平臺(tái)結(jié)構(gòu)設(shè)備的軟件結(jié)構(gòu)復(fù)雜,具體軟件架構(gòu)主要由3部分組成:上層環(huán)境應(yīng)用程序、操作系統(tǒng)的邏輯處理以及過(guò)程數(shù)據(jù)的MVB傳輸,如圖6所示。
圖6 軟件整體架構(gòu)
除了總線化管理與網(wǎng)絡(luò)通信外,CODESYS編程環(huán)境最重要的是對(duì)工控對(duì)象進(jìn)行圖形化流程編程。在通用平臺(tái)內(nèi)部的CPU中嵌入CODESYS的Runtime引擎負(fù)責(zé)對(duì)上層編程環(huán)境中的任務(wù)與命令進(jìn)行解釋。CODESYS圖形化編程的5種編程語(yǔ)言均滿足IEC 61131-3標(biāo)準(zhǔn)規(guī)定[7],分別為:ST結(jié)構(gòu)化文本編程、FBD功能塊圖編程、CFC順序功能圖編程、CFC順序功能塊編程、LD梯形邏輯圖編程,編程人員可根據(jù)實(shí)際項(xiàng)目要求選用方便快捷、符合編程邏輯的語(yǔ)言解決問(wèn)題[8]。同時(shí)CODESYS環(huán)境也支持離線仿真、在線調(diào)試的功能,既可以將本身的PC端看做是運(yùn)行設(shè)備進(jìn)行仿真,也可以在線對(duì)程序運(yùn)行變量進(jìn)行監(jiān)控、強(qiáng)制修改,具有開(kāi)發(fā)環(huán)境友好、開(kāi)發(fā)效率高、開(kāi)發(fā)項(xiàng)目靈活多變的優(yōu)點(diǎn)。
通過(guò)CODESYS軟件,用戶進(jìn)行符合IEC 61131-3標(biāo)準(zhǔn)的語(yǔ)言對(duì)組態(tài)可視化界面開(kāi)發(fā)之后,通過(guò)TCP/IP網(wǎng)絡(luò)下載進(jìn)通用平臺(tái)中,通用平臺(tái)的Run?time引擎對(duì)于上層任務(wù)進(jìn)行解釋并且執(zhí)行。可視化界面相關(guān)數(shù)據(jù)通過(guò)數(shù)據(jù)映射與通用平臺(tái)共享同一片內(nèi)存,通過(guò)MVB過(guò)程數(shù)據(jù)應(yīng)用接口與外圍的IO板卡進(jìn)行車載數(shù)據(jù)通信。
CODESYS可視化界面編程通用架構(gòu)主要分為:IODRV映射、GVL結(jié)構(gòu)體、FB通用功能塊、PRG程序、Task任務(wù)、ImagPool圖形池、Visualzation可視化編程等7個(gè)部分組成,如圖7所示。
圖7 CODESYS軟件架構(gòu)
其中IODRV與通用平臺(tái)共享同一片內(nèi)存進(jìn)行數(shù)據(jù)交互,用戶可根據(jù)實(shí)際項(xiàng)目數(shù)據(jù)流對(duì)其進(jìn)行修改;GVL定義數(shù)據(jù)結(jié)構(gòu),在上層環(huán)境地址中對(duì)MVB數(shù)據(jù)流輸出與獲取,并且對(duì)可視化界面需求的數(shù)據(jù)進(jìn)行定義;FB通用功能塊封裝通用的數(shù)據(jù)處理過(guò)程,將MVB數(shù)據(jù)流與可視化界面需求的數(shù)據(jù)結(jié)構(gòu)聯(lián)系起來(lái);PRG程序調(diào)用FB通用功能塊與數(shù)據(jù)結(jié)構(gòu)生成任務(wù)調(diào)度下的子程序[9];Task任務(wù)為滿足MVB通信與項(xiàng)目的周期需求,對(duì)子程序進(jìn)行調(diào)度;ImagPool圖形池對(duì)CODESYS編程環(huán)境嵌入JPG圖形,使其成為可視化界面的編程元素庫(kù);Visualzation在已有的元素庫(kù)的支持下,對(duì)列車組態(tài)化可視化界面進(jìn)行設(shè)計(jì),并將其中圖形化元素的變化與Visualzation_PRG的變量相關(guān)聯(lián)。整套可視化界面開(kāi)發(fā)軟件架構(gòu)具有耦合度低、移植性高、調(diào)試難度低等優(yōu)點(diǎn),符合車輛組態(tài)系統(tǒng)可視化界面開(kāi)發(fā)靈活多變的需求。
以自主研發(fā)的基于通用平臺(tái)的深圳某線列車可視化界面和MVB陪測(cè)設(shè)備已經(jīng)完成模擬真實(shí)列車運(yùn)行環(huán)境下的仿真試驗(yàn)與設(shè)備型式試驗(yàn)。因整體項(xiàng)目可視化界面試驗(yàn)項(xiàng)目較復(fù)雜,難以闡述清晰,僅以運(yùn)行主界面為例,設(shè)備外觀設(shè)計(jì)如圖8所示(單位:mm),仿真運(yùn)行效果如圖9所示。
圖8 設(shè)備尺寸圖
圖9 主界面運(yùn)行圖
基于CODESYS環(huán)境運(yùn)行的主界面通過(guò)與外界進(jìn)行MVB通信,可靈活顯示列車車輛各子系統(tǒng)狀態(tài)信息;對(duì)當(dāng)前接入基于MVB總線的列車網(wǎng)絡(luò)上設(shè)備的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,從而對(duì)列車設(shè)備故障及時(shí)響應(yīng);方便完成對(duì)列車網(wǎng)絡(luò)子系統(tǒng)信息的設(shè)置,例如需要設(shè)置當(dāng)前運(yùn)行模式的空調(diào)子系統(tǒng)以及列車運(yùn)行線路信息等。由于CODESYS編程完全符合IEC 61131-3的國(guó)際標(biāo)準(zhǔn),并且配有實(shí)時(shí)操作系統(tǒng)的硬件平臺(tái)支撐,所以在此基礎(chǔ)上開(kāi)發(fā)的車輛組態(tài)可視化界面除了功能完善,還具有運(yùn)行穩(wěn)定、操作響應(yīng)迅速等優(yōu)點(diǎn)。由于在最初的軟件架構(gòu)上即具有低耦合、易移植、模塊化的特點(diǎn),既能大大加快排除程序故障的時(shí)間,又能使開(kāi)發(fā)者在進(jìn)行不同項(xiàng)目之間移植的過(guò)程中,可根據(jù)需求在圖形池的支持下靈活地對(duì)可視化界面進(jìn)行修改與二次開(kāi)發(fā),從而大大加快開(kāi)發(fā)效率。
在CODESYS軟件平臺(tái)上模擬實(shí)現(xiàn)了軌道車輛的系統(tǒng)視圖界面,通過(guò)模擬運(yùn)行證明,該界面較好地實(shí)現(xiàn)了軌道車輛的各項(xiàng)實(shí)際功能,并具有運(yùn)行穩(wěn)定、操作響應(yīng)快速的優(yōu)點(diǎn)。選用CODESYS軟件,可以靈活多變的配置可視化界面,大大地加快了界面設(shè)計(jì)開(kāi)發(fā)在界面設(shè)計(jì)開(kāi)發(fā)的效率。同時(shí)也完成對(duì)底層數(shù)據(jù)通信和硬件平臺(tái)支撐的整體設(shè)計(jì),實(shí)現(xiàn)了整套可視化界面開(kāi)發(fā)通用系統(tǒng)方案。