專利名稱:工業(yè)控制網(wǎng)絡(luò)冗余容錯(cuò)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于工業(yè)控制領(lǐng)域,提出了一種在需要高可靠性、高安全性的工業(yè)生產(chǎn)領(lǐng) 域中,將設(shè)備同步、故障檢測(cè)與自恢復(fù)、故障報(bào)告、設(shè)備熱切換等功能集于一身的工業(yè)級(jí)冗 余容錯(cuò)系統(tǒng)的設(shè)計(jì)方法。
背景技術(shù):
冗余技術(shù)是系統(tǒng)或設(shè)備獲得高可靠性、高安全性和高生存能力的設(shè)計(jì)方法之一, 是實(shí)現(xiàn)容錯(cuò)功能非常重要的手段。在重要的工業(yè)生產(chǎn)領(lǐng)域和中,采用冗余技術(shù)提高控制系 統(tǒng)可靠性的做法越來(lái)越普遍。常規(guī)的冗余就是采用成倍增加元件的方式來(lái)參與控制,以期 能夠?qū)⒁蚩刂圃O(shè)備的意外而導(dǎo)致的停機(jī)降到最少。一個(gè)冗余系統(tǒng),不僅要求單純的增加一倍元件、部件或者模塊。而是需要具備可 配置冗余系統(tǒng)參數(shù)、硬件結(jié)構(gòu)支持冗余接線、網(wǎng)絡(luò)結(jié)構(gòu)支持冗余通訊、運(yùn)行過(guò)程中能夠動(dòng)態(tài) 備份與檢測(cè)、對(duì)上級(jí)設(shè)備透明運(yùn)行、可在線更換設(shè)備、發(fā)生故障時(shí)可以快速熱切換等諸多能 力。目前大型工業(yè)生產(chǎn)中應(yīng)用的冗余系統(tǒng),均采用增加環(huán)網(wǎng)交換機(jī)的方式來(lái)實(shí)現(xiàn)控制 網(wǎng)絡(luò)通信線路的冗余。而,針對(duì)設(shè)備間的冗余,都是采用專用的組態(tài)軟件來(lái)配合冗余設(shè)備實(shí) 現(xiàn)資源的熱備份與發(fā)生故障時(shí)進(jìn)行的熱切換?,F(xiàn)有的環(huán)網(wǎng)冗余方案僅能解決線路上的通信故障,并不能解決設(shè)備的故障;現(xiàn)有 的設(shè)備冗余方案,又無(wú)法解決整個(gè)系統(tǒng)由于控制網(wǎng)絡(luò)故障而產(chǎn)生的問(wèn)題;同時(shí),現(xiàn)有的設(shè)備冗余方案需要專用的上位機(jī)軟件配合才能使用。這種需要上位 機(jī)配合的方式不僅操作復(fù)雜而且對(duì)上級(jí)結(jié)構(gòu)不透明。對(duì)于那些對(duì)冗余技術(shù)并不太熟悉的工 程師,這種方式極大地增加了部署應(yīng)用時(shí)的復(fù)雜度。而且在系統(tǒng)應(yīng)用過(guò)程中,整個(gè)冗余系統(tǒng) 運(yùn)行的細(xì)節(jié)都需要暴露給上層應(yīng)用,不符合模塊化、組件化的設(shè)計(jì)思想。綜上,當(dāng)前沒有一種完善的冗余系統(tǒng),能夠?qū)⒕W(wǎng)絡(luò)冗余、設(shè)備冗余、自動(dòng)管理與熱 切換等諸多特性結(jié)合到一起。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明提出了一種集多種冗余結(jié)構(gòu)以及自動(dòng)化故障管理與切 換管理為一體的工業(yè)控制網(wǎng)絡(luò)冗余容錯(cuò)系統(tǒng)。本發(fā)明所述的系統(tǒng)可在控制網(wǎng)絡(luò)運(yùn)行中自動(dòng) 同步兩個(gè)冗余的控制網(wǎng)絡(luò)中的資源,也能同時(shí)自動(dòng)判斷是否發(fā)生故障。如果發(fā)現(xiàn)故障,系統(tǒng) 可以在三百毫秒的時(shí)間內(nèi)自動(dòng)、平滑地切換到備份的控制網(wǎng)絡(luò)中去,以確保整個(gè)系統(tǒng)能夠 在發(fā)生故障后仍然能夠正常平穩(wěn)地運(yùn)行。同時(shí),系統(tǒng)還會(huì)記錄下發(fā)生過(guò)的所有故障的詳細(xì) 信息,為系統(tǒng)的維護(hù)和修復(fù)提供依據(jù)。本發(fā)明所述的工業(yè)控制網(wǎng)絡(luò)冗余容錯(cuò)系統(tǒng)包含四個(gè)部分主控器冗余系統(tǒng)、從設(shè) 備冗余系統(tǒng)、故障日志系統(tǒng)和上位機(jī)監(jiān)控接口。主控器冗余系統(tǒng),由兩個(gè)互為冗余的主控器以及它們所攜帶的控制網(wǎng)絡(luò)組成。兩
6個(gè)主控設(shè)備通過(guò)一塊集線器與上級(jí)網(wǎng)絡(luò)設(shè)備進(jìn)行連接。兩個(gè)主控器可以各自攜帶一片控制 網(wǎng)絡(luò)形成網(wǎng)絡(luò)冗余,也可共享同一片控制網(wǎng)絡(luò),使得切換后仍然能夠正常使用這片控制網(wǎng) 絡(luò)中的其他資源。從設(shè)備冗余系統(tǒng),由一個(gè)主控器和一對(duì)從設(shè)備組成。在這個(gè)系統(tǒng)中的主控器最多 可以攜帶16對(duì)從設(shè)備,每對(duì)從設(shè)備互為冗余。在冗余的從設(shè)備與主控器所構(gòu)成的網(wǎng)絡(luò)中, 由主控器監(jiān)控當(dāng)前線路通信情況,并從根據(jù)用戶的配置,實(shí)時(shí)地選擇最優(yōu)的通訊路徑進(jìn)行
通{曰。故障日志系統(tǒng)控制系統(tǒng)中的每個(gè)設(shè)備都運(yùn)行有一套故障檢測(cè)與日志系統(tǒng),在設(shè) 備發(fā)生故障時(shí)記錄故障發(fā)生的類型、日期、次數(shù)等信息,并實(shí)時(shí)地更新當(dāng)前設(shè)備所處的故障 級(jí)別。上位機(jī)監(jiān)控接口,是一個(gè)為運(yùn)行在監(jiān)控計(jì)算機(jī)中的通信軟件提供通信響應(yīng)的報(bào)文 服務(wù)程序。根據(jù)系統(tǒng)提供的訪問(wèn)接口,在系統(tǒng)運(yùn)行過(guò)程中,上位機(jī)可以實(shí)時(shí)地讀取系統(tǒng)的運(yùn) 行狀態(tài)。在發(fā)生故障時(shí),用戶可以通過(guò)上位機(jī)查看相應(yīng)設(shè)備的故障信息。并在需要時(shí),用戶 能夠通過(guò)相應(yīng)的輸入操作直接控制整個(gè)冗余系統(tǒng)的運(yùn)行。本發(fā)明的有益效果是本發(fā)明的主控器冗余系統(tǒng)通過(guò)集線器接入以太網(wǎng),并通過(guò)傳輸特定的報(bào)文來(lái)進(jìn)行 資源的同步和組態(tài)程序運(yùn)行的同步。通過(guò)將主控設(shè)備連接到集線器后再接入以太網(wǎng)絡(luò)的這 種方式成功地解決了互為冗余的兩個(gè)主控器因IP、MAC完全相同而引發(fā)的網(wǎng)絡(luò)沖突。從設(shè)備冗余對(duì)連接到主控器上,與主控器一同構(gòu)成了從設(shè)備冗余系統(tǒng)。主控器與 從設(shè)備對(duì)之間的連接媒體可以是485總線、MB+總線或者是Zigbee。這種多種媒體統(tǒng)一管 理的方式有效地解決了不同網(wǎng)絡(luò)媒體之間的冗余問(wèn)題,使得應(yīng)用更加靈活。在這個(gè)由多個(gè)設(shè)備、多種冗余類型、多種通信媒體所構(gòu)成的多級(jí)控制網(wǎng)絡(luò)中,每個(gè) 設(shè)備內(nèi)部都運(yùn)行有故障檢測(cè)、處理與日志系統(tǒng)。同時(shí)主控設(shè)備還具有檢測(cè)與之連接的控制 網(wǎng)絡(luò)是否發(fā)生故障的能力。通過(guò)系統(tǒng)對(duì)故障的分布式自動(dòng)檢測(cè)與處理,使用者只需要在使 用之初對(duì)系統(tǒng)進(jìn)行正確配置,在整個(gè)運(yùn)行過(guò)程用戶都不需要針對(duì)冗余功能進(jìn)行任何特殊的 操作,解決了目前行業(yè)中部署冗余系統(tǒng)復(fù)雜度高的問(wèn)題,也使得從現(xiàn)有控制系統(tǒng)升級(jí)為冗 余控制系統(tǒng)更加容易。
圖1是主設(shè)備冗余系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖。圖2是冗余通信層在協(xié)議棧中的部署圖。圖3是主設(shè)備冗余系統(tǒng)狀態(tài)機(jī)轉(zhuǎn)換圖。圖4是主設(shè)備冗余系統(tǒng)活動(dòng)設(shè)備與備份設(shè)備運(yùn)行過(guò)程協(xié)作圖。圖5是功能塊同步運(yùn)行示意圖。圖6是從設(shè)備冗余系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖。圖7是從設(shè)備冗余系統(tǒng)通訊路徑示意圖。圖8是主設(shè)備管理結(jié)構(gòu)與從設(shè)備映射部署圖。圖9是從設(shè)備冗余系統(tǒng)主控設(shè)備運(yùn)行流程圖。圖10是冗余系統(tǒng)在控制網(wǎng)絡(luò)中的應(yīng)用效果圖。
具體實(shí)施例方式以下結(jié)合技術(shù)方案和附圖詳細(xì)敘述本發(fā)明的具體實(shí)施例。(一 )主設(shè)備冗余系統(tǒng)在主設(shè)備冗余系統(tǒng)中有IP、MAC完全一樣的兩塊設(shè)備,一塊為活動(dòng)設(shè)備、另一塊為 備份設(shè)備。本發(fā)明設(shè)計(jì)了一種將兩塊地址完全相同的冗余主控設(shè)備通過(guò)HUB接入上級(jí)以太 網(wǎng)絡(luò)的連接方法,解決了以太網(wǎng)中設(shè)備地址沖突引發(fā)的問(wèn)題。圖1舉例描述了主設(shè)備冗余 系統(tǒng)的網(wǎng)絡(luò)接入方式。主控設(shè)備冗余系統(tǒng)中,兩塊設(shè)備通過(guò)由本發(fā)明的冗余通訊層來(lái)進(jìn)行通信。在主設(shè) 備冗余系統(tǒng)中,兩個(gè)冗余設(shè)備間的所有通訊均通過(guò)這個(gè)冗余通訊層來(lái)進(jìn)行。冗余通訊層協(xié) 議在TCP/IP協(xié)議棧中部署在MAC層協(xié)議之上,屬于網(wǎng)絡(luò)層協(xié)議。圖2描述了冗余通訊層協(xié)議在協(xié)議棧中的部署圖。冗余通訊層協(xié)議報(bào)文在物理層的封裝仍然使用RFC894的MAC層協(xié)議報(bào)文頭,源地 址填寫冗余設(shè)備自身的MAC地址,目的地址使用全網(wǎng)段廣播地址(FF. FF. FF. FF. FF. FF)。冗 余層通訊報(bào)文,使用0x88BC作為MAC報(bào)文頭type字段的值,同時(shí)從報(bào)文格式的設(shè)計(jì)上保留 了很多與原有IP層兼容的字段,避免與同樣使用0x88BC的EPA報(bào)文相沖突。運(yùn)行過(guò)程中當(dāng)MAC層解析報(bào)文頭時(shí),發(fā)現(xiàn)type字段值為0x88BC,則將報(bào)文回調(diào)給 工作在數(shù)據(jù)鏈路層的冗余層報(bào)文解析接口。冗余通訊層報(bào)文格式設(shè)計(jì)如下 報(bào)文中開始的6Byte數(shù)據(jù)與IP報(bào)文頭中的結(jié)構(gòu)相同。包括4bit的版本號(hào)、4bit 的首部長(zhǎng)度、8bit保留位、16bit報(bào)文總長(zhǎng)度和16bit的報(bào)文標(biāo)識(shí)。接下來(lái)的4個(gè)字節(jié),分別是控制域和值域。冗余層通訊報(bào)文就是依靠這兩項(xiàng)來(lái)區(qū) 分報(bào)文的類別與用途。報(bào)文中的數(shù)據(jù)區(qū)是可選的,根據(jù)報(bào)文類型的不同數(shù)據(jù)區(qū)長(zhǎng)度不同或者為0。
主設(shè)備冗余系統(tǒng)在運(yùn)行的過(guò)程中,對(duì)于不同的輸入,系統(tǒng)會(huì)做出不同的響應(yīng)以及 相應(yīng)的動(dòng)作,這種特定的響應(yīng)與動(dòng)作的集合為一個(gè)狀態(tài)。本發(fā)明將冗余系統(tǒng)運(yùn)行過(guò)程中可 能出現(xiàn)的狀態(tài)劃分為7種開始、啟動(dòng)、就緒、同步、運(yùn)行、切換、出錯(cuò),并通過(guò)一套狀態(tài)機(jī)來(lái) 控制這7種狀態(tài)的變遷。對(duì)于這7種狀態(tài)的具體描述,詳見下表 狀態(tài)機(jī)轉(zhuǎn)換過(guò)程如下>設(shè)備上電后首先掃描網(wǎng)絡(luò)中是否存在與自己IP、MAC相同的活動(dòng)設(shè)備;>如果沒有掃描到活動(dòng)設(shè)備則將自身設(shè)置為活動(dòng)設(shè)備,并向網(wǎng)絡(luò)中定時(shí)發(fā)送活動(dòng) 設(shè)備在線聲明,并進(jìn)入啟動(dòng)狀態(tài);>如果掃描到了活動(dòng)設(shè)備,則將自身設(shè)置為備份設(shè)備,并向網(wǎng)絡(luò)中定時(shí)發(fā)送備份設(shè) 備在線聲明,并進(jìn)入啟動(dòng)狀態(tài);>當(dāng)活動(dòng)設(shè)備檢測(cè)到備份設(shè)備上線后轉(zhuǎn)移到就緒狀態(tài),并通知活動(dòng)設(shè)備也轉(zhuǎn)移到 就緒狀態(tài);>備份設(shè)備確認(rèn)就緒后,活動(dòng)設(shè)備與備份設(shè)備一同轉(zhuǎn)入同步狀態(tài),開始一致性檢測(cè) 與資源同步;>如果檢測(cè)與同步過(guò)程出錯(cuò)則轉(zhuǎn)移到錯(cuò)誤狀態(tài)進(jìn)行錯(cuò)誤處理;>同步完畢后活動(dòng)設(shè)備與備份設(shè)備轉(zhuǎn)入運(yùn)行狀態(tài);>在運(yùn)行過(guò)程中,活動(dòng)設(shè)備定時(shí)發(fā)送心跳報(bào)文,備份設(shè)備定時(shí)檢測(cè)活動(dòng)設(shè)備的心跳 報(bào)文;
>如果活動(dòng)設(shè)備運(yùn)行過(guò)程中發(fā)生故障則轉(zhuǎn)入切換狀態(tài);>在切換狀態(tài)下,活動(dòng)設(shè)備變?yōu)閭浞菰O(shè)備,備份設(shè)備變?yōu)榛顒?dòng)設(shè)備,并自動(dòng)重啟狀 態(tài)機(jī)。圖3描述了狀態(tài)機(jī)的轉(zhuǎn)換過(guò)程。在以太網(wǎng)冗余系統(tǒng)運(yùn)行過(guò)程活動(dòng)設(shè)備與備份設(shè)備之間共需要交換三種信息>時(shí)鐘同步信息。因?yàn)閮蓚€(gè)設(shè)備晶振的物理偏差必然存在,導(dǎo)致兩個(gè)設(shè)備運(yùn)行一段 時(shí)間過(guò)后,系統(tǒng)時(shí)鐘就需要重新同步;>狀態(tài)同步信息。當(dāng)活動(dòng)設(shè)備因?yàn)樯衔粰C(jī)或者用戶的操作,某個(gè)需要同步的寄存器 狀態(tài)發(fā)生了改變,則需要重新同步該狀態(tài);>健康報(bào)文?;顒?dòng)設(shè)備需要實(shí)時(shí)發(fā)送健康報(bào)文,當(dāng)備份設(shè)備一段時(shí)間內(nèi)檢測(cè)不到 活動(dòng)設(shè)備的健康報(bào)文時(shí),就會(huì)發(fā)送健康報(bào)文請(qǐng)求,如果仍沒有反映,則認(rèn)為活動(dòng)設(shè)備已經(jīng)離 線,自動(dòng)執(zhí)行系統(tǒng)切換。當(dāng)活動(dòng)設(shè)備運(yùn)行過(guò)程中發(fā)現(xiàn)自身存在故障影響系統(tǒng)運(yùn)行但卻不影響通訊,則發(fā)送 故障聲明通知備份設(shè)備執(zhí)行切換;備份設(shè)備接收到聲明并執(zhí)行切換,同時(shí)通知活動(dòng)設(shè)備停機(jī)。圖4描述了活動(dòng)設(shè)備與備份設(shè)備在運(yùn)行過(guò)程中的交互關(guān)系圖。為了實(shí)現(xiàn)備份設(shè)備與活動(dòng)設(shè)備之間的平滑切換,本發(fā)明設(shè)計(jì)了一種通過(guò)將時(shí)鐘同 步與時(shí)間片劃分相結(jié)合的算法,使活動(dòng)設(shè)備與備份設(shè)備功能塊組態(tài)程序能夠同步運(yùn)行,從 而最大程度地保證了兩塊設(shè)備在運(yùn)行過(guò)程中資源的一致性。這種分時(shí)的功能塊程序運(yùn)行算法,將每個(gè)功能塊的執(zhí)行過(guò)程看作一個(gè)原子的過(guò) 程。每個(gè)功能塊都能在一個(gè)約定好的時(shí)刻啟動(dòng)執(zhí)行,將功能塊的執(zhí)行和系統(tǒng)時(shí)鐘對(duì)應(yīng)了起 來(lái)。同時(shí)通過(guò)IEEE1588的時(shí)鐘同步算法,將兩個(gè)模塊的系統(tǒng)時(shí)鐘同步,從而完成了兩塊設(shè) 備功能塊組態(tài)程序的同步運(yùn)行。在功能塊組態(tài)程序啟動(dòng)同步之前,時(shí)鐘首先要完成同步。>活動(dòng)設(shè)備上線時(shí),發(fā)送功能塊組態(tài)程序同步啟動(dòng)請(qǐng)求報(bào)文,報(bào)文中封裝了預(yù)期啟 動(dòng)的時(shí)間戳;>備份設(shè)備接收?qǐng)?bào)文,記錄時(shí)間戳,并做出響應(yīng);>當(dāng)共同約定的時(shí)刻到來(lái)的時(shí)候,兩個(gè)設(shè)備同時(shí)啟動(dòng)運(yùn)行程序,并計(jì)算當(dāng)前功能塊 的時(shí)間片長(zhǎng)度;>不同功能塊的時(shí)間片長(zhǎng)度都是預(yù)先定義好的;>當(dāng)前功能塊時(shí)間片超時(shí),則開始運(yùn)行下一個(gè)功能塊;圖5描述了活動(dòng)設(shè)備與備份設(shè)備功能塊組態(tài)程序同步運(yùn)行的過(guò)程。(二)從設(shè)備冗余系統(tǒng)上文描述的主控設(shè)備或主控設(shè)備冗余系統(tǒng)中的活動(dòng)設(shè)備與互為冗余的從設(shè)備對(duì) 組成了從設(shè)備冗余系統(tǒng)。從設(shè)備冗余對(duì)又分為活動(dòng)設(shè)備與備份設(shè)備。本節(jié)中提到的活動(dòng)設(shè) 備如無(wú)特定說(shuō)明均指從設(shè)備冗余對(duì)中的活動(dòng)設(shè)備,備份設(shè)備如無(wú)特定說(shuō)明均指從設(shè)備冗余 對(duì)中的備份設(shè)備。圖6舉例描述了從設(shè)備冗余系統(tǒng)的結(jié)構(gòu)。本發(fā)明所設(shè)計(jì)的主控設(shè)備與從設(shè)備冗余對(duì)之間的通訊方式共有兩種串行通訊和 ZigBee無(wú)線通訊??蛇x的連接方式共有四種
>主控設(shè)備與活動(dòng)設(shè)備通過(guò)串口建立連接;>主控設(shè)備與活動(dòng)設(shè)備通過(guò)無(wú)線建立連接;>主控設(shè)備與備份設(shè)備通過(guò)串口建立連接;>主控設(shè)備與備份設(shè)備通過(guò)無(wú)線建立連接。這四種連接方式可以同時(shí)使用,也可以僅使用其中的幾種。圖7給出了這四種通信方式的示意圖。在從設(shè)備冗余系統(tǒng)中,每一個(gè)主控設(shè)備最多可以管理16個(gè)從設(shè)備冗余對(duì),并對(duì)這 些冗余的從設(shè)備分別進(jìn)行管理。主控設(shè)備為每一個(gè)從設(shè)備冗余對(duì)都維護(hù)一個(gè)管理結(jié)構(gòu)體, 在這個(gè)結(jié)構(gòu)中包含了上文中描述的主控設(shè)備可以使用的四種連接方式的具體屬性。圖8描述的是主控設(shè)備中這四種連接方式對(duì)應(yīng)從設(shè)備的示意圖。主控設(shè)備在運(yùn)行的過(guò)程中,會(huì)掃描16個(gè)從設(shè)備,查看是否啟動(dòng)了從設(shè)備冗余系 統(tǒng);如果主控設(shè)備發(fā)現(xiàn)從設(shè)備啟動(dòng)了冗余系統(tǒng),則查詢?cè)撊哂嘞到y(tǒng)都使用了那些可選 擇的連接方式,并且選擇的連接是否已經(jīng)成功建立了通訊。主控設(shè)備針對(duì)四種連接方式提供了一個(gè)默認(rèn)的優(yōu)先級(jí)別,活動(dòng)設(shè)備串口的優(yōu)先級(jí) 最高,其次是活動(dòng)設(shè)備的無(wú)線端口,再次是備份設(shè)備的串口,最后是備份設(shè)備的無(wú)線端口。主控設(shè)備會(huì)優(yōu)先地選擇當(dāng)前可選擇連接中處于最高優(yōu)先級(jí)的通訊連接方式。當(dāng)處于最高優(yōu)先級(jí)的通訊連接方式發(fā)生故障的時(shí)候,主控設(shè)備會(huì)尋找次一級(jí)的連 接方式,并在之后的運(yùn)行中不斷地嘗試恢復(fù)與較高通訊方式的連接。圖9描述了主控設(shè)備管理從設(shè)備冗余系統(tǒng)的執(zhí)行流程。同時(shí)從設(shè)備冗余對(duì)中的活動(dòng)設(shè)備也會(huì)在運(yùn)行過(guò)程中對(duì)自身進(jìn)行故障診斷,當(dāng)發(fā)現(xiàn) 設(shè)備發(fā)生故障時(shí),寫入故障日志,進(jìn)入故障處理。(三)故障日志系統(tǒng)本發(fā)明所設(shè)計(jì)的故障日志系統(tǒng)記錄當(dāng)前運(yùn)行模塊運(yùn)行過(guò)程中發(fā)生的所有可識(shí)別 故障或錯(cuò)誤。為冗余系統(tǒng)的管理與切換判斷提供依據(jù)。故障日志系統(tǒng)采用鏈表式結(jié)構(gòu)設(shè)計(jì),日志信息儲(chǔ)存在非易失性存儲(chǔ)器中。日志系 統(tǒng)中每條日志的信息需要包含>錯(cuò)誤日志的索引值>錯(cuò)誤出現(xiàn)次數(shù)>最后一次錯(cuò)誤發(fā)生的時(shí)間戳日志索引值,用于區(qū)別每條日志所屬的故障類型,同時(shí)也用于方便的在日志系統(tǒng) 中查找某個(gè)專門的故障。本發(fā)明所設(shè)計(jì)的故障日志系統(tǒng)可識(shí)別的故障共分四個(gè)級(jí)別。最高級(jí)別的故障為硬 件類故障,此類故障會(huì)影響系統(tǒng)的性能或直接導(dǎo)致停機(jī)。其次是系統(tǒng)級(jí)別故障,此類故障會(huì) 導(dǎo)致系統(tǒng)進(jìn)入看門狗中斷并重新啟動(dòng)。再次是軟件級(jí)別故障,此類故障可以在不停止運(yùn)行 的情況下通過(guò)軟件的方式進(jìn)行修復(fù)。最低級(jí)別的是應(yīng)用級(jí)別的錯(cuò)誤,對(duì)系統(tǒng)功能影響很小。日志系統(tǒng)通過(guò)日志索引分別對(duì)上文的各級(jí)別故障加以編號(hào)。本發(fā)明設(shè)計(jì)的故障日志系統(tǒng)每條日志中記錄了相同故障出現(xiàn)的次數(shù),對(duì)于相同的 故障只需增加故障的計(jì)數(shù)并更新最后一次發(fā)生時(shí)間即可。
11
本發(fā)明為故障日志系統(tǒng)設(shè)計(jì)了一個(gè)32位的時(shí)間表示法,用來(lái)表示故障發(fā)生時(shí)的 年、月、日、時(shí)、分、秒。位由低到高年以2010年為基數(shù)占用6個(gè)位,共可表示從2010到2074 年共計(jì)64年;使用4位表示1年中的1到12月;使用5位來(lái)表示每個(gè)月的1到最多31號(hào); 使用5位來(lái)表示0到23小時(shí);使用6位來(lái)表示0到59分鐘;使用6位來(lái)表示0到59秒。在本發(fā)明設(shè)計(jì)的故障日志系統(tǒng)中,存放在非易失性存儲(chǔ)器中的不僅有日志信息, 還有關(guān)于日志信息的索引結(jié)構(gòu),這個(gè)索引結(jié)構(gòu)采用順序結(jié)構(gòu)存儲(chǔ),其內(nèi)容包含>錯(cuò)誤日志的索引;>日志信息存放的地址指針這個(gè)順序的結(jié)構(gòu)可以使得對(duì)日志系統(tǒng)中日志的查找更加方便。(四)上位機(jī)監(jiān)控接口1、故障信息訪問(wèn)接口本發(fā)明設(shè)計(jì)了一組故障日志系統(tǒng)的訪問(wèn)接口,這些接口基于EPA協(xié)議制定。用戶可以一次性地讀取日志系統(tǒng)中所有的日志信息的索引,通訊命令的EPA報(bào)文 格式為APPID = 15000 ;OBJID = 2。正響應(yīng)報(bào)文中的內(nèi)容為一張故障信息表,本發(fā)明所設(shè)計(jì)的故障信息表分為四個(gè)部 分,每個(gè)部分在報(bào)文中所占的長(zhǎng)度相同,即報(bào)文正文總長(zhǎng)度的1/4。從報(bào)文開始到結(jié)束,故障 級(jí)別的順序由高到低。根據(jù)上文對(duì)故障日志系統(tǒng)的描述,所有故障類型共分為四個(gè)級(jí)別,所 以故障信息表中為每個(gè)級(jí)別的故障分配了一個(gè)部分,這個(gè)部分的每一個(gè)位分別代表該級(jí)別 中一種可識(shí)別的故障。例如故障信息表的長(zhǎng)度為16個(gè)字節(jié),則每個(gè)故障級(jí)別占4個(gè)字節(jié)共計(jì)64位。假設(shè)故 障信息表的開始四個(gè)字節(jié)內(nèi)容為0X0000000C,則在這個(gè)64位的表中第2和第3兩個(gè)位被置 位,最開始的這個(gè)部分代表的是最高優(yōu)先級(jí)的故障,所以這個(gè)信息表示日志系統(tǒng)中存在兩 條最高優(yōu)先級(jí)的故障編號(hào)分別是0x0002和0x0003。負(fù)響應(yīng)為標(biāo)準(zhǔn)的EPA負(fù)響應(yīng)。本發(fā)明提供了一個(gè)根據(jù)故障編號(hào)來(lái)查找日志信息的接口,該接口基于EPA協(xié)議制定。通過(guò)這個(gè)接口用戶可以根據(jù)具體的日志編號(hào)來(lái)讀取日志的詳細(xì)內(nèi)容,包括發(fā)生次 數(shù)、發(fā)生時(shí)間。通訊命令的EPA報(bào)文格式為APPID = 15000 ;OBJID = 3。命令報(bào)文正文部 分有兩個(gè)字節(jié),用來(lái)寫入想要讀取的日志的索引值。正響應(yīng)報(bào)文返回三部分內(nèi)容日志索引值、故障出現(xiàn)次數(shù)、故障發(fā)生的最后一次時(shí) 間。負(fù)響應(yīng)為標(biāo)準(zhǔn)的EPA負(fù)響應(yīng)。2、運(yùn)行狀態(tài)訪問(wèn)接口本發(fā)明針對(duì)冗余系統(tǒng)的運(yùn)行過(guò)程提供了一套狀態(tài)訪問(wèn)接口,方便用戶在需要的時(shí) 候查詢系統(tǒng)運(yùn)行的狀態(tài)。訪問(wèn)命令采用EPA格式封裝報(bào)文。訪問(wèn)接口集合中包含主設(shè)備冗余系統(tǒng)狀態(tài)訪問(wèn)通訊命令=APPID = 15000 ;OBJID = 4。正響應(yīng)報(bào)文正文部分共計(jì)3個(gè)字節(jié),具體內(nèi)容如下表所示 從設(shè)備冗余系統(tǒng)主控設(shè)備狀態(tài)訪問(wèn)通訊命令=APPID = 15000 ;OBJID = 5。正響應(yīng) 報(bào)文正文部分共計(jì)3個(gè)字節(jié),具體內(nèi)容如下表所示
根據(jù)上文對(duì)整個(gè)控制網(wǎng)絡(luò)的描述,附圖10中給出了工業(yè)控制網(wǎng)絡(luò)冗余容錯(cuò)系統(tǒng) 在具體應(yīng)用中的運(yùn)行效果圖。 以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),根據(jù)本發(fā)明的技術(shù)方案及其 發(fā)明構(gòu)思加以等同替換或改變,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種工業(yè)控制網(wǎng)絡(luò)冗余容錯(cuò)系統(tǒng),其特征在于,該工業(yè)控制網(wǎng)絡(luò)冗余容錯(cuò)系統(tǒng)包含主控器冗余系統(tǒng)、從設(shè)備冗余系統(tǒng)、故障日志系統(tǒng)和上位機(jī)監(jiān)控接口四個(gè)部分。主控器冗余系統(tǒng),由兩個(gè)互為冗余的主控器以及它們所攜帶的控制網(wǎng)絡(luò)組成;兩個(gè)主控設(shè)備通過(guò)一塊集線器與上級(jí)網(wǎng)絡(luò)設(shè)備進(jìn)行連接;兩個(gè)主控器各自攜帶一片控制網(wǎng)絡(luò)形成網(wǎng)絡(luò)冗余或共享同一片控制網(wǎng)絡(luò);從設(shè)備冗余系統(tǒng),由一個(gè)主控器和一對(duì)從設(shè)備組成;在冗余的從設(shè)備與主控器所構(gòu)成的網(wǎng)絡(luò)中,由主控器監(jiān)控當(dāng)前線路通信情況,并從根據(jù)用戶的配置,實(shí)時(shí)地選擇最優(yōu)的通訊路徑進(jìn)行通信;故障日志系統(tǒng)控制系統(tǒng)中的每個(gè)設(shè)備都運(yùn)行有一套故障檢測(cè)與日志系統(tǒng),在設(shè)備發(fā)生故障時(shí)記錄信息,并實(shí)時(shí)地更新當(dāng)前設(shè)備所處的故障級(jí)別;上位機(jī)監(jiān)控接口,是一個(gè)為運(yùn)行在監(jiān)控計(jì)算機(jī)中的通信軟件提供通信響應(yīng)的報(bào)文服務(wù)程序;根據(jù)系統(tǒng)提供的訪問(wèn)接口,在系統(tǒng)運(yùn)行過(guò)程中,上位機(jī)實(shí)時(shí)地讀取系統(tǒng)的運(yùn)行狀態(tài);在發(fā)生故障時(shí),用戶通過(guò)上位機(jī)查看相應(yīng)設(shè)備的故障信息;并在需要時(shí),用戶能夠通過(guò)相應(yīng)的輸入操作直接控制整個(gè)冗余系統(tǒng)的運(yùn)行。
2.權(quán)利要求1所述的工業(yè)控制網(wǎng)絡(luò)冗余容錯(cuò)系統(tǒng),其特征還在于主設(shè)備冗余系統(tǒng)中有IP、MAC完全一樣的兩塊設(shè)備,一塊為活動(dòng)設(shè)備、另一塊為備 份設(shè)備,兩塊設(shè)備通過(guò)冗余通訊層來(lái)進(jìn)行通信;冗余通訊層協(xié)議在TCP/IP協(xié)議棧中部署 在MAC層協(xié)議之上,屬于網(wǎng)絡(luò)層協(xié)議;冗余通訊層協(xié)議報(bào)文在物理層的封裝使用RFC894 的MAC層協(xié)議報(bào)文頭,源地址為冗余設(shè)備自身的MAC地址,目的地址使用全網(wǎng)段廣播地址 (FF FF FF FF FF FF);冗余層通訊報(bào)文,使用0x88BC作為MAC報(bào)文頭type字段的值,同時(shí) 從報(bào)文格式的設(shè)計(jì)上保留了很多與原有IP層兼容的字段;冗余通訊層報(bào)文格式設(shè)計(jì)如下 冗余層通訊報(bào)文依靠控制域和值域來(lái)區(qū)分報(bào)文的類別與用途;報(bào)文中的數(shù)據(jù)區(qū)是選 的,根據(jù)報(bào)文類型的不同數(shù)據(jù)區(qū)長(zhǎng)度不同或者為0。主設(shè)備冗余系統(tǒng)在運(yùn)行的過(guò)程中,對(duì)于不同的輸入,系統(tǒng)會(huì)做出不同的響應(yīng)以及相應(yīng) 的動(dòng)作,這種特定的響應(yīng)與動(dòng)作的集合為一個(gè)狀態(tài);本發(fā)明將冗余系統(tǒng)運(yùn)行過(guò)程中能出現(xiàn) 的狀態(tài)劃分為7種開始、啟動(dòng)、就緒、同步、運(yùn)行、切換、出錯(cuò),并通過(guò)一套狀態(tài)機(jī)來(lái)控制這7 種狀態(tài)的變遷;對(duì)于這7種狀態(tài)的具體描述,詳見下表 狀態(tài)項(xiàng)動(dòng)作描述開始開始狀態(tài),是冗余系統(tǒng)運(yùn)行的最初狀態(tài); 此時(shí)冗余系統(tǒng)剛剛初始化數(shù)據(jù)初始化完畢,僅接收冗余設(shè)備上線聲明報(bào)文;啟動(dòng)啟動(dòng)狀態(tài),冗余系統(tǒng)設(shè)備交換存在信息;就緒在就緒狀態(tài),參與冗余系統(tǒng)的兩個(gè)設(shè)備已經(jīng)確認(rèn)了彼此的存在,此時(shí)通過(guò)命令報(bào)文通知 對(duì)方以為冗余系統(tǒng)的運(yùn)行進(jìn)行進(jìn)一步的準(zhǔn)備工作 ’同步同步狀態(tài)下,系統(tǒng)首先判斷參與冗余的兩個(gè)設(shè)備狀態(tài)是否一致;然后對(duì)需要保持一致的 用戶變量區(qū)進(jìn)行完全備份,以保證冗余系統(tǒng)在發(fā)生故障的時(shí)候能實(shí)現(xiàn)平滑的切換;運(yùn)行在運(yùn)行狀態(tài)中,下位機(jī)功能塊組態(tài)程序開始運(yùn)行,冗余系統(tǒng)同步功能塊的運(yùn)行輪次,以 及進(jìn)行故障檢測(cè)、在線狀態(tài)檢測(cè),如果發(fā)現(xiàn)故障則進(jìn)行相應(yīng)處理,或進(jìn)入切換狀態(tài)切換切換狀態(tài)主要在冗余系統(tǒng)發(fā)生故障的時(shí)候進(jìn)行數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換,錯(cuò)誤報(bào)告,以及發(fā)送命 令報(bào)文以協(xié)調(diào)冗余系統(tǒng)中的兩塊設(shè)備進(jìn)行切換 ’出錯(cuò)在冗余系統(tǒng)的運(yùn)行過(guò)程中,因?yàn)槟撤N未知原因?qū)е聽顟B(tài)機(jī)混亂,則系統(tǒng)轉(zhuǎn)入出錯(cuò)狀態(tài) ’狀態(tài)機(jī)轉(zhuǎn)換過(guò)程如下>設(shè)備上電后首先掃描網(wǎng)絡(luò)中是否存在與自己IP、MAC相同的活動(dòng)設(shè)備; >如果沒有掃描到活動(dòng)設(shè)備則將自身設(shè)置為活動(dòng)設(shè)備,并向網(wǎng)絡(luò)中定時(shí)發(fā)送活動(dòng)設(shè)備在線聲明,并進(jìn)入啟動(dòng)狀態(tài);>如果掃描到了活動(dòng)設(shè)備,則將自身設(shè)置為備份設(shè)備,并向網(wǎng)絡(luò)中定時(shí)發(fā)送備份設(shè)備在 線聲明,并進(jìn)入啟動(dòng)狀態(tài);>當(dāng)活動(dòng)設(shè)備檢測(cè)到備份設(shè)備上線后轉(zhuǎn)移到就緒狀態(tài),并通知活動(dòng)設(shè)備也轉(zhuǎn)移到就緒 狀態(tài);>備份設(shè)備確認(rèn)就緒后,活動(dòng)設(shè)備與備份設(shè)備一同轉(zhuǎn)入同步狀態(tài),開始一致性檢測(cè)與資 源同步;>如果檢測(cè)與同步過(guò)程出錯(cuò)則轉(zhuǎn)移到錯(cuò)誤狀態(tài)進(jìn)行錯(cuò)誤處理; >同步完畢后活動(dòng)設(shè)備與備份設(shè)備轉(zhuǎn)入運(yùn)行狀態(tài);>在運(yùn)行過(guò)程中,活動(dòng)設(shè)備定時(shí)發(fā)送心跳報(bào)文,備份設(shè)備定時(shí)檢測(cè)活動(dòng)設(shè)備的心跳報(bào)文;3>如果活動(dòng)設(shè)備運(yùn)行過(guò)程中發(fā)生故障則轉(zhuǎn)入切換狀態(tài);>在切換狀態(tài)下,活動(dòng)設(shè)備變?yōu)閭浞菰O(shè)備,備份設(shè)備變?yōu)榛顒?dòng)設(shè)備,并自動(dòng)重啟狀態(tài)機(jī); 冗余系統(tǒng)功能塊同步啟動(dòng)之前,時(shí)鐘首先要完成同步;>活動(dòng)設(shè)備上線時(shí),發(fā)送功能塊組態(tài)程序同步啟動(dòng)請(qǐng)求報(bào)文,報(bào)文中封裝了預(yù)期啟動(dòng)的 時(shí)間戳;>備份設(shè)備接收?qǐng)?bào)文,記錄時(shí)間戳,并做出響應(yīng);>當(dāng)共同約定的時(shí)刻到來(lái)的時(shí)候,兩個(gè)設(shè)備同時(shí)啟動(dòng)運(yùn)行程序,并計(jì)算當(dāng)前功能塊的時(shí) 間片長(zhǎng)度;>不同功能塊的時(shí)間片長(zhǎng)度都是預(yù)先定義好的; >當(dāng)前功能塊時(shí)間片超時(shí),則開始運(yùn)行下一個(gè)功能塊; 從而達(dá)到冗余設(shè)備的同步運(yùn)行。主控設(shè)備與互為冗余的從設(shè)備對(duì)組成了從設(shè)備冗余系統(tǒng);從設(shè)備冗余對(duì)又分為活動(dòng)設(shè) 備與備份設(shè)備;主控設(shè)備與從設(shè)備冗余對(duì)之間的通訊方式共有兩種串行通訊和ZigBee無(wú) 線通訊;連接方式共有四種主控設(shè)備與活動(dòng)設(shè)備通過(guò)串口建立連接;主控設(shè)備與活動(dòng)設(shè) 備通過(guò)無(wú)線建立連接;主控設(shè)備與備份設(shè)備通過(guò)串口建立連接;主控設(shè)備與備份設(shè)備通過(guò) 無(wú)線建立連接;這四種連接方式同時(shí)使用或使用其中的幾種;每一個(gè)主控設(shè)備能夠管理多個(gè)從設(shè)備冗余對(duì),并對(duì)這些冗余的從設(shè)備分別進(jìn)行管理; 主控設(shè)備在運(yùn)行的過(guò)程中,會(huì)掃描所有冗余的從設(shè)備;查詢?cè)撊哂嘞到y(tǒng)都使用了那些選擇 的連接方式,并且選擇的連接是否已經(jīng)成功建立了通訊;主控設(shè)備會(huì)優(yōu)先地選擇當(dāng)前選擇 連接中處于最高優(yōu)先級(jí)的并可用的通訊連接方式。故障日志系統(tǒng)記錄當(dāng)前運(yùn)行模塊運(yùn)行過(guò)程中發(fā)生的所有識(shí)別故障或錯(cuò)誤;故障日志系 統(tǒng)采用鏈表式結(jié)構(gòu)設(shè)計(jì),日志信息儲(chǔ)存在非易失性存儲(chǔ)器中;日志系統(tǒng)中每條日志的信息 需要包含錯(cuò)誤日志的索引值;錯(cuò)誤出現(xiàn)次數(shù);最后一次錯(cuò)誤發(fā)生的時(shí)間戳;日志索引值, 用于區(qū)別每條日志所屬的故障類型,同時(shí)也用于方便的在日志系統(tǒng)中查找某個(gè)專門的故 障;本發(fā)明所設(shè)計(jì)的故障日志系統(tǒng)識(shí)別的故障共分四個(gè)級(jí)別;最高級(jí)別的故障為硬件類故 障,此類故障會(huì)影響系統(tǒng)的性能或直接導(dǎo)致停機(jī);其次是系統(tǒng)級(jí)別故障,此類故障會(huì)導(dǎo)致系 統(tǒng)進(jìn)入看門狗中斷并重新啟動(dòng);再次是軟件級(jí)別故障,此類故障在不停止運(yùn)行的情況下通 過(guò)軟件的方式進(jìn)行修復(fù);最低級(jí)別的是應(yīng)用級(jí)別的錯(cuò)誤,對(duì)系統(tǒng)功能影響很??;日志系統(tǒng) 通過(guò)日志索引分別對(duì)上文的各級(jí)別故障加以編號(hào);本發(fā)明為故障日志系統(tǒng)設(shè)計(jì)了一個(gè)32位的時(shí)間表示法,用來(lái)表示故障發(fā)生時(shí)的年、 月、日、時(shí)、分、秒;位由低到高年以2010年為基數(shù)占用6個(gè)位,共表示從2010到2074年共 計(jì)64年;使用4位表示1年中的1到12月;使用5位來(lái)表示每個(gè)月的1到最多31號(hào);使 用5位來(lái)表示0到23小時(shí);使用6位來(lái)表示0到59分鐘;使用6位來(lái)表示0到59秒;在本發(fā)明設(shè)計(jì)的故障日志系統(tǒng)中,存放在非易失性存儲(chǔ)器中的不僅有日志信息,還有 關(guān)于日志信息的索引結(jié)構(gòu),這個(gè)索引結(jié)構(gòu)采用順序結(jié)構(gòu)存儲(chǔ),其內(nèi)容包含錯(cuò)誤日志的索 引;日志信息存放的地址指針。故障日志系統(tǒng)的訪問(wèn)接口基于EPA協(xié)議制定;用戶一次性地讀取日志系統(tǒng)中所有的日 志信息的索引;正響應(yīng)報(bào)文中的內(nèi)容為一張故障信息表,本發(fā)明所設(shè)計(jì)的故障信息表分為四個(gè)部分,每個(gè)部分在報(bào)文中所占的長(zhǎng)度相同,即報(bào)文正文總長(zhǎng)度的1/4 ;從報(bào)文開始到結(jié) 束,故障級(jí)別的順序由高到低;故障信息表中為每個(gè)級(jí)別的故障分配了一個(gè)部分,這個(gè)部分 的每一個(gè)位分別代表該級(jí)別中一種識(shí)別的故障;負(fù)響應(yīng)為標(biāo)準(zhǔn)的EPA負(fù)響應(yīng)。本發(fā)明提供了一個(gè)根據(jù)故障編號(hào)來(lái)查找日志信息的接口,該接口基于EPA協(xié)議制定; 用戶根據(jù)具體的日志編號(hào)來(lái)讀取日志的詳細(xì)內(nèi)容;命令報(bào)文正文部分有兩個(gè)字節(jié),用來(lái)寫 入想要讀取的日志的索引值;正響應(yīng)報(bào)文返回三部分內(nèi)容日志索引值、故障出現(xiàn)次數(shù)、故 障發(fā)生的最后一次時(shí)間;負(fù)響應(yīng)為標(biāo)準(zhǔn)的EPA負(fù)響應(yīng)。 狀態(tài)訪問(wèn)命令采用EPA格式封裝報(bào)文;主設(shè)備冗余系統(tǒng)狀態(tài)訪問(wèn)正響應(yīng)報(bào)文正文部分 共計(jì)3個(gè)字節(jié),具體內(nèi)容如下表所示
全文摘要
本發(fā)明公開了一種工業(yè)控制網(wǎng)絡(luò)冗余容錯(cuò)系統(tǒng),屬于工業(yè)控制領(lǐng)域。本發(fā)明所述的系統(tǒng)包含主控器冗余系統(tǒng)、從設(shè)備冗余系統(tǒng)、故障日志系統(tǒng)和上位機(jī)監(jiān)控接口四個(gè)部分;主控器冗余系統(tǒng)由兩個(gè)互為冗余的主控器組成,兩個(gè)主控器各自攜帶一片控制網(wǎng)絡(luò)形成網(wǎng)絡(luò)冗余或共享同一片控制網(wǎng)絡(luò);從設(shè)備冗余系統(tǒng)由一個(gè)主控器和一對(duì)從設(shè)備組成,主控器監(jiān)控當(dāng)前線路通信情況并實(shí)時(shí)地選擇最優(yōu)的通訊路徑;故障日志系統(tǒng)記錄設(shè)備發(fā)生的故障信息;上位機(jī)監(jiān)控接口為監(jiān)控計(jì)算機(jī)提供通信響應(yīng),并通過(guò)處理輸入操作控制冗余系統(tǒng)的運(yùn)行。本發(fā)明所述的系統(tǒng)可自動(dòng)同步兩個(gè)冗余的控制網(wǎng)絡(luò)中的資源;自動(dòng)判斷是否發(fā)生故障;故障時(shí)可以在三百毫秒內(nèi)切換到備份的控制網(wǎng)絡(luò)中繼續(xù)運(yùn)行。
文檔編號(hào)G05B19/418GK101907879SQ20101012364
公開日2010年12月8日 申請(qǐng)日期2010年3月12日 優(yōu)先權(quán)日2010年3月12日
發(fā)明者喬國(guó)衛(wèi), 付樹東, 仲崇權(quán), 師文匯, 董智超 申請(qǐng)人:大連理工大學(xué)