專利名稱::一種采用緩沖模式的生產(chǎn)線實(shí)時(shí)數(shù)據(jù)采集方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種工業(yè)領(lǐng)域中現(xiàn)場(chǎng)實(shí)時(shí)信息數(shù)據(jù)采集方法,尤旨一種在現(xiàn)場(chǎng)數(shù)據(jù)采集過(guò)程中采用在可編程邏輯控制器PLC(ProgrammableLogicController)中做緩存、人機(jī)界面HMI(HumanMachineInterface)上位機(jī)輪詢的方法,主要應(yīng)用于工業(yè)現(xiàn)場(chǎng)環(huán)境下確保其數(shù)據(jù)不丟失的實(shí)時(shí)采集PLC中的重要數(shù)據(jù)。
背景技術(shù):
:隨著科學(xué)技術(shù)的發(fā)展,在工業(yè)領(lǐng)域中機(jī)器的運(yùn)作不再是密閉的黑匣子,越來(lái)越多的自動(dòng)控制核心處理單元已經(jīng)變得可監(jiān)控化和可記錄化。目前,自動(dòng)化程度較高的工廠都采用大大小小的PLC作為其某個(gè)生產(chǎn)單元的主控制器,伴隨著這些PLC—般都會(huì)有功能強(qiáng)弱不同的專用HMI上位機(jī)軟件,用來(lái)監(jiān)控PLC的運(yùn)作和關(guān)鍵數(shù)據(jù)的采集記錄。一般典型的HMI的數(shù)據(jù)采集方法都是為某個(gè)所要發(fā)生的數(shù)據(jù)建立一個(gè)事件(Event),如為某個(gè)PLC中的寄存器綁定一個(gè)事件,該事件觸發(fā)(Trigger)的條件是這個(gè)寄存器的值發(fā)生變化,事件觸發(fā)以后一般都是執(zhí)行一段腳本,將相應(yīng)的信息作為監(jiān)控或記入到數(shù)據(jù)庫(kù)中,如下表5.2所示意的點(diǎn)值變化和觸發(fā)的情況。數(shù)據(jù)值變化觸發(fā)示意表<table>tableseeoriginaldocumentpage6</column></row><table>很明顯,理論上當(dāng)值0208在時(shí)間點(diǎn)3和時(shí)間點(diǎn)5的時(shí)候,分別變?yōu)?209和0210,因此先后二次觸發(fā)這個(gè)綁定的事件。但事實(shí)上,由于HMI上位機(jī)軟件時(shí)常會(huì)因?yàn)镻LC與HMI上位機(jī)通訊中斷、PLC中數(shù)值變化過(guò)快、基于PC的HMI上位機(jī)自身系統(tǒng)不穩(wěn)定等等原因錯(cuò)過(guò)某些變化的值,以致造成大量關(guān)鍵性數(shù)據(jù)的丟失。如下表當(dāng)PLC與HMI上位機(jī)通訊中斷時(shí),時(shí)間點(diǎn)3數(shù)據(jù)變化的某個(gè)值將被丟失-<table>tableseeoriginaldocumentpage7</column></row><table>因此,在這種情況下,研究開(kāi)發(fā)一種不丟失數(shù)據(jù)的可編程邏輯控制器PLC中的重要數(shù)據(jù)實(shí)時(shí)采集的方法就顯得具有非常重要的實(shí)用
發(fā)明內(nèi)容為了克服上述不足之處,本發(fā)明的主要目的旨在提供一種確保數(shù)據(jù)不丟失的實(shí)時(shí)采集可編程邏輯控制器PLC中的數(shù)據(jù)的方法;該方法通過(guò)利用可編程邏輯控制器PLC多余的寄存器作為數(shù)據(jù)緩沖池,將發(fā)生的數(shù)據(jù)先不讓人機(jī)界面HMI讀到,而是按次序,加上時(shí)間、生產(chǎn)線、工位等信息,一一放入緩沖池;然后按先進(jìn)先出的原則,把數(shù)據(jù)放入與人機(jī)界面HMI的接口處;并與人機(jī)界面HMI取數(shù)據(jù)約定控制信號(hào),即一些狀態(tài)的標(biāo)志位,用PLC的位寄存器,使人機(jī)界面HMI與可編程邏輯控制器PLC雙方均可讀寫;并可以避免數(shù)據(jù)丟失的一種采用緩沖模式的生產(chǎn)線實(shí)時(shí)數(shù)據(jù)采集方法。本發(fā)明要解決的技術(shù)問(wèn)題是主要解決如何采集PLC中的實(shí)時(shí)數(shù)據(jù),確保在通訊網(wǎng)絡(luò)中斷或上位機(jī)HMI出現(xiàn)故障時(shí)數(shù)據(jù)不丟失等有關(guān)技術(shù)問(wèn)題。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是該方法通過(guò)可編程邏輯控制器PLC為生產(chǎn)單元的主控制器,和專用人機(jī)界面HMI為上位機(jī)軟件,用來(lái)監(jiān)控PLC的運(yùn)作和關(guān)鍵數(shù)據(jù)的采集記錄,完成自動(dòng)控制核心處理單元的監(jiān)控化和記錄化,該方法利用可編程邏輯控制器PLC多余的寄存器作為數(shù)據(jù)緩沖池,分別在人機(jī)界面HMI和可編程邏輯控制器PLC二端都開(kāi)發(fā)一段程序,并定義通訊接口,然后,可編程邏輯控制器PLC端不停的把變化的數(shù)據(jù)存入緩沖中去,人機(jī)界面HMI端則不停讀取通訊接口上的數(shù)據(jù);該實(shí)時(shí)數(shù)據(jù)采集方法至少包括可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)和人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)兩大部分;其中A)、所述可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)是用可編程邏輯控制器PLC多余的寄存器作為數(shù)據(jù)緩沖池,將發(fā)生的數(shù)據(jù)先不讓人機(jī)界面HMI讀到,而是按次序,加上時(shí)間、生產(chǎn)線、工位信息,一一放入緩沖池;然后按先進(jìn)先出的原則,把數(shù)據(jù)放入與人機(jī)界面HMI的接口處;并與人機(jī)界面HMI取數(shù)據(jù)約定控制信號(hào),為狀態(tài)的標(biāo)志位,用可編程邏輯控制器PLC的位寄存器,達(dá)到人機(jī)界面HMI與可編程邏輯控制器PLC雙方均可讀寫;當(dāng)有數(shù)據(jù)變化時(shí),記錄到數(shù)據(jù)緩沖池中去,不停的判別到數(shù)據(jù)緩沖池是否有數(shù)據(jù),同時(shí)判別通訊接口處數(shù)據(jù)是否被取走;如果數(shù)據(jù)緩沖池中有數(shù)據(jù)且通訊接口處數(shù)據(jù)被取走,則立即往通訊接口處送上數(shù)據(jù)緩沖池中的最先進(jìn)來(lái)的數(shù)據(jù);該可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)的具體工作步驟是-步驟1.開(kāi)始A初始化開(kāi)始A;步驟2.判斷是否有變化的新數(shù)據(jù)執(zhí)行完幵始A模塊后,則進(jìn)入判斷是否有變化的新數(shù)據(jù)模塊;如果是有變化的新數(shù)據(jù),則進(jìn)入將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi);如果沒(méi)有變化的新數(shù)據(jù),則進(jìn)入清控制段寄存器R1-R5和清數(shù)據(jù)段寄存器R6-R30模塊;步驟3.將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi)執(zhí)行完將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi)模塊后,則進(jìn)入清控制段寄存器R1-R5和清數(shù)據(jù)段寄存器R6-R30模塊;步驟4.判斷緩沖池內(nèi)有數(shù)據(jù)?執(zhí)行完清控制段寄存器Rl-R5和清數(shù)據(jù)段寄存器R6-R30模塊后,則進(jìn)入判斷緩沖池內(nèi)有數(shù)據(jù)模塊;如果緩沖池內(nèi)有數(shù)據(jù),則進(jìn)入判斷標(biāo)志位Rl為"1"A模塊;如果緩沖池內(nèi)沒(méi)有數(shù)據(jù),則進(jìn)入結(jié)束A模塊;步驟5.判斷標(biāo)志位Rl為"1"A如果標(biāo)志位R1是"1",則進(jìn)入結(jié)束B(niǎo)模塊;如果標(biāo)志位R1不是"1",則進(jìn)入將緩沖池內(nèi)數(shù)據(jù)復(fù)制到寄存器R6-R30中模塊;.步驟6.置控制段寄存器R1值為"1"執(zhí)行完將緩沖池內(nèi)數(shù)據(jù)復(fù)制到寄存器R6-R30中模塊后,則進(jìn)入置控制段寄存器R1值為"1"模塊;步驟7.將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址執(zhí)行完置控制段寄存器Rl值為"1"模塊后,則進(jìn)入將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址模塊;步驟8.結(jié)束C執(zhí)行完將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址(20)模塊后,則進(jìn)入結(jié)束C(21)模塊;B)、所述人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)是用循環(huán)程序完成的,循環(huán)體內(nèi)程序是被不停的執(zhí)行的,一旦判別標(biāo)志位已置,表明數(shù)據(jù)已準(zhǔn)備好,判別數(shù)據(jù)的有效性,若有效則將數(shù)據(jù)記入數(shù)據(jù)庫(kù),如無(wú)效,則記入事務(wù)日志,為維護(hù)人員日后分析;該人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)的具體工作步驟是步驟l.開(kāi)始B初始化開(kāi)始B;歩驟2.初始化各變量參數(shù)狀態(tài)執(zhí)行完開(kāi)始B模塊后,則進(jìn)入初始化各變量參數(shù)狀態(tài);步驟3.判變量X,是否循環(huán)?執(zhí)行完初始化各變量參數(shù)狀態(tài)模塊后,則進(jìn)入循環(huán)體中的判變量X,是否循環(huán)模塊;如果變量X,是循環(huán),則進(jìn)入判斷標(biāo)志位R1為"1"B模塊;如果變量X,不是循環(huán),則進(jìn)入結(jié)束D模塊;步驟4.判斷標(biāo)志位R1為"1"B如果標(biāo)志位Rl是"1",則進(jìn)入判別數(shù)據(jù)是否有效模塊;如果標(biāo)志位Rl不是"1",則進(jìn)入無(wú)條件延時(shí)一秒模塊;步驟5.判別數(shù)據(jù)是否有效?如果數(shù)據(jù)是有效,則進(jìn)入將數(shù)據(jù)記入數(shù)據(jù)庫(kù)中模塊,如果數(shù)據(jù)無(wú)效,則進(jìn)入將存入事務(wù)日志,待日后維護(hù)人員分析模塊;步驟6.將存入事務(wù)日志,待日后維護(hù)人員分析執(zhí)行完將存入事務(wù)日志,待日后維護(hù)人員分析模塊后,則進(jìn)入無(wú)條件延時(shí)一秒模塊;步驟7.置控制段寄存器R1值為"0"執(zhí)行完將數(shù)據(jù)記入數(shù)據(jù)庫(kù)中模塊后,則進(jìn)入置控制段寄存器Rl值為"0"模塊;步驟8.無(wú)條件延時(shí)一秒執(zhí)行完置控制段寄存器Rl值為"0"模塊后,則進(jìn)入無(wú)條件延時(shí)一秒模塊;步驟9.循環(huán)執(zhí)行完無(wú)條件延時(shí)一秒模塊后,則反饋進(jìn)入循環(huán)體中的判變量x,是否循環(huán)模塊。本發(fā)明的有益效果是該方法利用可編程邏輯控制器PLC多余的寄存器作為數(shù)據(jù)緩沖池,分別在人機(jī)界面HMI和可編程邏輯控制器PLC二端都開(kāi)發(fā)一段程序,并定義通訊接口,實(shí)現(xiàn)了采集PLC中的實(shí)時(shí)數(shù)據(jù),具有在遇通訊網(wǎng)絡(luò)中斷或上位機(jī)人機(jī)界面HMI出現(xiàn)故障時(shí)數(shù)據(jù)不丟失等優(yōu)點(diǎn)。下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。附圖1為本發(fā)明可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)流程示意圖;附圖2為本發(fā)明人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)流程示意圖;附圖3為本發(fā)明數(shù)據(jù)緩沖池監(jiān)控界面示意圖;附圖中標(biāo)號(hào)說(shuō)明-IO—開(kāi)始A;ll一是否有變化的新數(shù)據(jù);12—清控制段寄存器Rl-R5和清數(shù)據(jù)段寄存器R6-R30;13—將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi);14一緩沖池內(nèi)有數(shù)據(jù);15—結(jié)束A;16—標(biāo)志位Rl為"1"A;17—將緩沖池內(nèi)數(shù)據(jù)復(fù)制到寄存器R6-R30中;18—結(jié)束B(niǎo);19一置控制段寄存器Rl值為"1";20—將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址;21—結(jié)束C;、30—開(kāi)始B;31—初始化各變量參數(shù)狀態(tài);32—判變量X,是否循環(huán);33—結(jié)束D;34—標(biāo)志位Rl為TB;35—判別數(shù)據(jù)是否有效;36—將存入事務(wù)日志,待日后維護(hù)人員分析;37—將數(shù)據(jù)記入數(shù)據(jù)庫(kù)中;38—置控制段寄存器R1值為"0";39—無(wú)條件延時(shí)一秒;具體實(shí)施方式請(qǐng)參閱附圖1、2、3所示,本發(fā)明的方法通過(guò)可編程邏輯控制器PLC為生產(chǎn)單元的主控制器,和專用人機(jī)界面HMI為上位機(jī)軟件,用來(lái)監(jiān)控PLC的運(yùn)作和關(guān)鍵數(shù)據(jù)的采集記錄,完成自動(dòng)控制核心處理單元的監(jiān)控化和記錄化,該方法利用可編程邏輯控制器PLC多余的寄存器作為數(shù)據(jù)緩沖池,分別在人機(jī)界面HMI和可編程邏輯控制器PLC二端都開(kāi)發(fā)一段程序,并定義通訊接口,然后,可編程邏輯控制器PLC端不停的把變化的數(shù)據(jù)存入緩沖中去,人機(jī)界面HMI端則不停讀取通訊接口上的數(shù)據(jù);該實(shí)時(shí)數(shù)據(jù)采集方法至少包括可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)和人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)兩大部分;其中-A)、所述可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)是用可編程邏輯控制器PLC多余的寄存器作為數(shù)據(jù)緩沖池,將發(fā)生的數(shù)據(jù)先不讓人機(jī)界面HMI讀到,而是按次序,加上時(shí)間、生產(chǎn)線、工位信息,一一放入緩沖池;然后按先進(jìn)先出的原則,把數(shù)據(jù)放入與人機(jī)界面HMI的接口處;并與人機(jī)界面HMI取數(shù)據(jù)約定控制信號(hào),為狀態(tài)的標(biāo)志位,用可編程邏輯控制器PLC的位寄存器,達(dá)到人機(jī)界面HMI與可編程邏輯控制器PLC雙方均可讀寫;當(dāng)有數(shù)據(jù)變化時(shí),記錄到數(shù)據(jù)緩沖池中去,不停的判別到數(shù)據(jù)緩沖池是否有數(shù)據(jù),同時(shí)判別通訊接口處數(shù)據(jù)是否被取走;如果數(shù)據(jù)緩沖池中有數(shù)據(jù)且通訊接口處數(shù)據(jù)被取走,則立即往通訊接口處送上數(shù)據(jù)緩沖池中的最先進(jìn)來(lái)的數(shù)據(jù);該可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)的具體工作步驟是步驟1.井始A10初始化開(kāi)始A10;步驟2.判斷是否有變化的新數(shù)據(jù)11執(zhí)行完開(kāi)始A10模塊后,則進(jìn)入判斷是否有變化的新數(shù)據(jù)11模塊;如果是有變化的新數(shù)據(jù),則進(jìn)入將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi)13;如果沒(méi)有變化的新數(shù)據(jù),則進(jìn)入清控制段寄存器R1-R5和清數(shù)據(jù)段寄存器R6-R3012模塊;步驟3.將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi)13執(zhí)行完將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi)13模塊后,則進(jìn)入清控制段寄存器Rl-R5和清數(shù)據(jù)段寄存器R6-R3012模塊;步驟4.判斷緩沖池內(nèi)有數(shù)據(jù)14執(zhí)行完清控制段寄存器Rl-R5和清數(shù)據(jù)段寄存器R6-R3012模塊后,則進(jìn)入判斷緩沖池內(nèi)有數(shù)據(jù)14模塊;如果緩沖池內(nèi)有數(shù)據(jù),則進(jìn)入判斷標(biāo)志位Rl為"1"A16模塊;如果緩沖池內(nèi)沒(méi)有數(shù)據(jù),則進(jìn)入結(jié)束A15模塊;步驟5.判斷標(biāo)志位Rl為"1"A16如果標(biāo)志位Rl是"1",則進(jìn)入結(jié)束B(niǎo)18模塊;如果標(biāo)志位Rl不是"1",則進(jìn)入將緩沖池內(nèi)數(shù)據(jù)復(fù)制到寄存器R6-R30中17模塊;步驟6.置控制段寄存器R1值為"1"19執(zhí)行完將緩沖池內(nèi)數(shù)據(jù)復(fù)制到寄存器R6-R30中17模塊后,則進(jìn)入置控制段寄存器R1值為"1"19模塊;步驟7.將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址20執(zhí)行完置控制段寄存器R1值為"1"19模塊后,則進(jìn)入將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址20模塊;步驟8.結(jié)束C21B)、所述人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)是用循環(huán)程序完成的,循環(huán)體內(nèi)程序是被不停的執(zhí)行的,一旦判別標(biāo)志位己置,表明數(shù)據(jù)已準(zhǔn)備好,判別數(shù)據(jù)的有效性,若有效則將數(shù)據(jù)記入數(shù)據(jù)庫(kù),如無(wú)效,則記入事務(wù)日志,為維護(hù)人員日后分析;該人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)的具體工作步驟是步驟l.開(kāi)始B30初始化開(kāi)始B30;步驟2.初始化各變量參數(shù)狀態(tài)31執(zhí)行完開(kāi)始B30模塊后,則進(jìn)入初始化各變量參數(shù)狀態(tài)31;步驟3.判變量X,是否循環(huán)32執(zhí)行完初始化各變量參數(shù)狀態(tài)31模塊后,則進(jìn)入循環(huán)體中的判變量X,是否循環(huán)32模塊;如果變量X,是循環(huán),則進(jìn)入判斷標(biāo)志位R1為"1"B34模塊;如果變量X,不是循環(huán),則進(jìn)入結(jié)束D33模塊;步驟4.判斷標(biāo)志位R1為"1"B34如果標(biāo)志位Rl是"1",則進(jìn)入判別數(shù)據(jù)是否有效35模塊;如果標(biāo)志位Rl不是"1",則進(jìn)入無(wú)條件延時(shí)一秒39模塊;步驟5.判別數(shù)據(jù)是否有效35如果數(shù)據(jù)是有效,則進(jìn)入將數(shù)據(jù)記入數(shù)據(jù)庫(kù)中37模塊,如果數(shù)據(jù)無(wú)效,則進(jìn)入將存入事務(wù)日志,待日后維護(hù)人員分析36模塊;步驟6.將存入事務(wù)日志,待日后維護(hù)人員分析36執(zhí)行完將存入事務(wù)日志,待日后維護(hù)人員分析36模塊后,則進(jìn)入無(wú)條件延時(shí)一秒39模塊;步驟7.置控制段寄存器Rl值為"0"38執(zhí)行完將數(shù)據(jù)記入數(shù)據(jù)庫(kù)中37模塊后,則進(jìn)入置控制段寄存器R1值為"0"38模塊;'步驟8.無(wú)條件延時(shí)一秒39執(zhí)行完置控制段寄存器R1值為"0"38模塊后,則進(jìn)入無(wú)條件延時(shí)一秒39模塊;步驟9.循環(huán)執(zhí)行完無(wú)條件延時(shí)一秒39模塊后,則反饋進(jìn)入循環(huán)體中的判變量X,是否循環(huán)32模塊。本發(fā)明的系統(tǒng)組成與工作原理本發(fā)明提供一種確保數(shù)據(jù)不丟失的實(shí)時(shí)采集PLC中的數(shù)據(jù)的方法,該方法通過(guò)利用PLC多余的寄存器作為數(shù)據(jù)緩沖池,將發(fā)生的數(shù)據(jù)先不讓HMI讀到,而是按次序,加上時(shí)間、生產(chǎn)線、工位等信息,一一放入緩沖池;然后按先進(jìn)先出的原則,把數(shù)據(jù)放入與HMI的接口處;并與HMI取數(shù)據(jù)約定控制信號(hào),即一些狀態(tài)的標(biāo)志位,用PLC的位寄存器,使HMI與PLC雙方均可讀寫;這樣,可以避免數(shù)據(jù)的丟失。本發(fā)明利用PLC多余的寄存器作為數(shù)據(jù)緩沖池,分別在HMI和PLC二端都開(kāi)發(fā)一段程序,并定義通訊接口。然后,PLC端不停的把變化的數(shù)據(jù)存入緩沖中去,HMI端則不停讀取通訊接口上的數(shù)據(jù)。HMI部分程序設(shè)計(jì)的指導(dǎo)思想概括為循環(huán)體內(nèi)程序是被不停的執(zhí)行的,一旦判別標(biāo)志位已置,表明數(shù)據(jù)已準(zhǔn)備好,判別數(shù)據(jù)的有效性,若有效則將數(shù)據(jù)記入數(shù)據(jù)庫(kù),如無(wú)效,則記入事務(wù)日志,供維護(hù)人員日后分析。PLC的該部分程序設(shè)計(jì)的指導(dǎo)思想概括為一旦判別到數(shù)據(jù)緩沖池有數(shù)據(jù),且上一筆數(shù)據(jù)己被取走,立即送上數(shù)據(jù)緩沖池中的最先進(jìn)來(lái)的數(shù)據(jù)。實(shí)現(xiàn)方法軟件平臺(tái)分析在采集數(shù)據(jù)之前,先來(lái)分析一下軟件開(kāi)發(fā)的平臺(tái)。按二部分來(lái)考慮一是,被采集的對(duì)象PLC的軟件環(huán)境;二是,采集的數(shù)據(jù)庫(kù)服務(wù)器的軟件環(huán)境。PLC的軟件環(huán)境PLC的品牌是美國(guó)GEFANUC,型號(hào)是9030系列,MDL374的CPU,這些決定了PLC的編程工具必須采用GEFANUCProficyMachineEdition,我們此次開(kāi)發(fā)所用的版本號(hào)為Ver.5.50。數(shù)據(jù)庫(kù)服務(wù)器的軟件環(huán)境數(shù)據(jù)庫(kù)服務(wù)器是要通過(guò)以太網(wǎng)讀取PLC中寄存器的數(shù)據(jù)。因此,采用了GEFANUC公司出品的,與PLC配套的專用軟件CIMPLICITYHMI(下文簡(jiǎn)稱HMI)。我們此次開(kāi)發(fā)所用的版本號(hào)為Ver.6.1。這套軟件中既有專為讀取PLC寄存器的通訊協(xié)議,又提供了可以開(kāi)發(fā)人機(jī)友好界面的平臺(tái),其編程語(yǔ)法類似微軟的VisualBasic。所以,在工控行業(yè)比較受開(kāi)發(fā)者的青睞。數(shù)據(jù)寄存器PLC中根據(jù)CPU的型號(hào)不同,所擁有的寄存器的類型、數(shù)量都不同。寄存器,其實(shí)可以理解為高級(jí)語(yǔ)言里各種類型的變量。所不同的是高級(jí)語(yǔ)言里往往是先定義后使用,變量多少、大小一般不受限制。而GEFANUC系列的PLC的寄存器是固定的,即只有規(guī)定的幾種類型和規(guī)定的最大的數(shù)量限制。我們此次采用MDL374的CPU,它擁有I、Q、M、R、AI、AQ等主要的寄存器,其中*I為位寄存器,即BIT,用于設(shè)備輸入映射,只讀;最多可達(dá)2048個(gè)Bit。項(xiàng)目中所有數(shù)字量輸入的位信號(hào)都采用該類寄存器。*Q為位寄存器,即BIT,用于設(shè)備輸出映射,可讀寫;最多可達(dá)2048個(gè)Bit。項(xiàng)目中所有數(shù)字量輸出的位信號(hào)都采用該類寄存器。*M為位寄存器,即BIT,用于編程時(shí)狀態(tài)存儲(chǔ),可讀寫;最多可達(dá)4096個(gè)Bit。*R為雙字節(jié)寄存器,即二個(gè)字節(jié)或稱為一個(gè)Word,其值范圍為0-FFFF(Hex),是編程時(shí)狀態(tài)存儲(chǔ)的主要寄存器,可讀寫;最多可達(dá)32767個(gè)。*AI為雙字節(jié)寄存器,即二個(gè)字節(jié)或稱為一個(gè)Word,其值范圍為0-FFFF(Hex),可用于設(shè)備輸入映射,亦可用于編程時(shí)數(shù)值存儲(chǔ),可讀寫;最多可達(dá)32767個(gè)。項(xiàng)目中串口輸入地址即采用該類寄存器。*AQ為雙字節(jié)寄存器,即二個(gè)字節(jié)或稱為一個(gè)Word,其值范圍為0-FFFF(Hex),可用于設(shè)備輸出映射,亦可用于編程時(shí)數(shù)值存儲(chǔ),可讀寫;最多可達(dá)32767個(gè)。項(xiàng)目中串口輸出地址即采用該類寄存器。這些寄存器無(wú)論在PLC還是在HMI中,都被稱為點(diǎn),一個(gè)類型加一個(gè)具體的地址稱為一個(gè)點(diǎn),如"I0001","10002"稱為二個(gè)輸入點(diǎn);如果連續(xù)的地址也可被成為數(shù)組點(diǎn),如"R0301"到"R0310",從R301首地址開(kāi)始的10個(gè)點(diǎn)的數(shù)組點(diǎn)。經(jīng)過(guò)我們的分析,雙字節(jié)寄存器可以用來(lái)存儲(chǔ)ASCII碼字符串,每個(gè)雙字節(jié)寄存器可以存儲(chǔ)2個(gè)ASCII字符,如Rl的值為4131(Hex),其代表著字母和數(shù)字"A1"。HMI通過(guò)組態(tài)、建單點(diǎn)、數(shù)組點(diǎn)等方式,數(shù)據(jù)庫(kù)服務(wù)器就可以方便的讀取上述各種類型的寄存器的值。因此,在PLC寄存器中相同類型的連續(xù)地址,采用ASCII碼值的方式可以讓HMI讀取到一串字符串,如在PLC中Rl-R5連續(xù)地址,其值如下表所示。數(shù)據(jù)存儲(chǔ)示意表<table>tableseeoriginaldocumentpage17</column></row><table>這正好用來(lái)傳送掃描所得的二維碼數(shù)據(jù)以及其他一些信息。在實(shí)現(xiàn)這一切之前,不得不先考慮一下PLC的寄存器資源問(wèn)題。因?yàn)?,PLC寄存器的資源畢竟是有限的。寄存器資源的規(guī)劃上文已經(jīng)對(duì)項(xiàng)目使用型號(hào)的PLC的主要寄存器進(jìn)行詳細(xì)的解釋,接下來(lái)就對(duì)寄存器進(jìn)行分析,選出可作緩沖池的寄存器類型和計(jì)算最大容量。.首先,我們認(rèn)為I、Q、M等位寄存器顯然不適合用作存儲(chǔ)字符串?dāng)?shù)據(jù),而且數(shù)量極少,又要被程序使用,故放棄。接著,R寄存器為雙字節(jié)類型,可以存儲(chǔ)字符串?dāng)?shù)據(jù)。雖然有3.2萬(wàn)余,但是,編程本身需要使用,而且使用量不確定,故我們將其作為可考慮的備選方案。最后,AI、AQ寄存器也是雙字節(jié)類型,可以存儲(chǔ)字符串?dāng)?shù)據(jù),各有32767個(gè),加起來(lái)有6.5萬(wàn)之多。但是,要用它作為串口的映射地址,故我們也將其作為可考慮的備選方案。通過(guò)我們的計(jì)算,發(fā)現(xiàn)一個(gè)串口用掉8個(gè)AI寄存器和8個(gè)AQ寄存器。一臺(tái)PLC管理一條生產(chǎn)線,一條生產(chǎn)線十幾、三十個(gè)工位不等。而且,并不是所有工位都需要掃描二維碼。目前,只有關(guān)鍵工位才需要。因此,假設(shè)每條生產(chǎn)線有最多有100個(gè)工位,每個(gè)工位都需要掃描二維碼,即都需要8個(gè)AI寄存器和8個(gè)AQ寄存器作為串口地址的映射,這樣最多也就消耗掉800個(gè)AI寄存器和800個(gè)AQ寄存器,這根本用不完AI寄存器和AQ寄存器。所以,我們?nèi)缦卤磉@樣設(shè)計(jì)。表AI、AQ寄存器使用設(shè)計(jì)<table>tableseeoriginaldocumentpage18</column></row><table>這樣,就有了60K的雙字節(jié)寄存器可以用于數(shù)據(jù)緩沖池。HMI與PLC的接口定義有了數(shù)據(jù)緩沖池,我們還需要定義一個(gè)HMI和PLC之間逐條傳輸數(shù)據(jù)的接口。為了滿足HMI和PLC都可以讀寫的要求,我們?cè)赑LC中劃分出一段連續(xù)的地址作為接n的實(shí)際地址。假設(shè)R1-R5做控制位,即上文提到的標(biāo)志位,而R6-R20作為數(shù)據(jù),存二維碼、生產(chǎn)線、工位等字符串信息,數(shù)據(jù)結(jié)構(gòu)定義如下表所示。表HMI與PLC的接口定義<table>tableseeoriginaldocumentpage19</column></row><table>參照這樣一個(gè)接口定義,每條數(shù)據(jù)占用25個(gè)寄存器,可以計(jì)算一下60,000(總寄存器數(shù)量)+25(每條數(shù)據(jù)占用數(shù)量)二2,400(條數(shù)據(jù))所以,最多可以存儲(chǔ)2400條數(shù)據(jù),從實(shí)際情況來(lái)估算,每條生產(chǎn)線最多也就十個(gè)工位需要追溯,這些工位每分鐘都發(fā)生一條數(shù)據(jù),則2,400(條數(shù)據(jù))+10(工位數(shù)量)=240(分鐘)240(分鐘)+60=4(小時(shí))因此,參照我們?cè)O(shè)計(jì)的這套方式,系統(tǒng)的每條生產(chǎn)線的PLC可以緩沖4小時(shí)數(shù)據(jù),即網(wǎng)絡(luò)可以中斷長(zhǎng)達(dá)四小時(shí),系統(tǒng)可以保證不丟數(shù)據(jù),完全能實(shí)現(xiàn)設(shè)計(jì)目標(biāo),滿足用戶的此項(xiàng)要求。程序結(jié)構(gòu)方式、方案、接口等指導(dǎo)了程序的設(shè)計(jì)與編程,我們就上述思想,設(shè)計(jì)了PLC數(shù)據(jù)供應(yīng)的程序、HMI輪詢的程序、緩沖池的監(jiān)控界面。PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)我們把PLC的該部分程序設(shè)計(jì)的指導(dǎo)思想概括為當(dāng)有數(shù)據(jù)變化時(shí),記錄到數(shù)據(jù)緩沖池中去。不停的判別到數(shù)據(jù)緩沖池是否有數(shù)據(jù),同時(shí)判別通訊接口處數(shù)據(jù)是否被取走。如果數(shù)據(jù)緩沖池中有數(shù)據(jù)且通訊接口處數(shù)據(jù)被取走,則立即往通訊接口處送上數(shù)據(jù)緩沖池中的最先進(jìn)來(lái)的數(shù)據(jù)。由于PLC的原理關(guān)系,圖1程序是被從開(kāi)始到結(jié)束、再有開(kāi)始到結(jié)束……如此一遍遍不停的反復(fù)執(zhí)行的。HMI數(shù)據(jù)輪詢程序設(shè)計(jì)我們把HMI的該部分程序設(shè)計(jì)的指導(dǎo)思想概括為循環(huán)體內(nèi)程序是被不停的執(zhí)行的,一旦判別標(biāo)志位已置,表明數(shù)據(jù)已準(zhǔn)備好,判別數(shù)據(jù)的有效性,若有效則將數(shù)據(jù)記入數(shù)據(jù)庫(kù),如無(wú)效,則記入事務(wù)日志,供維護(hù)人員日后分析。有效性主要判別年份應(yīng)為數(shù)字、月份應(yīng)在01-12之間的數(shù)字,再根據(jù)年份月份判別日期的正確性,以及生產(chǎn)線代號(hào)、工位代號(hào)等是否正確,最后按照編碼原則判別編碼的正確性。如圖2所示,我們所設(shè)計(jì)的這部分的程序結(jié)構(gòu)框圖,由于是高級(jí)語(yǔ)言程序,所以要做一個(gè)始終循環(huán)的結(jié)構(gòu)。其中,變量X控制循環(huán)體是否繼續(xù)循環(huán)。其類型是全局性的,通過(guò)另外的程序控制其值,主要是提供一個(gè)循環(huán)控制開(kāi)關(guān),目的是為了方便維護(hù),如更修改程序等。在最后的,無(wú)條件延時(shí)一秒,是為了緩解程序執(zhí)行速度,在此期間,可以釋放計(jì)算機(jī)CPU來(lái)計(jì)算其他程序。實(shí)踐證明,不加這一秒時(shí),CPU使用率為100。/。,而增加這一秒CPU的使用率只比平時(shí)多了2%。同時(shí),為了可以監(jiān)控到該程序在時(shí)刻不停的運(yùn)行,在循環(huán)體內(nèi)可以做一個(gè)標(biāo)志位,在每次循環(huán)時(shí),置相反狀態(tài)值,增加類似下面的代碼IFbooRunStatethen,假設(shè)booRunState為Boolean類型,代表程序運(yùn)行的狀態(tài)BooRunState=0ElseBooRunState=lEndIf這樣配合一秒的延時(shí),可以制造出一秒的方波來(lái)。在界面上做一個(gè)指示燈,根據(jù)該值的變化使指示燈一亮一滅,維護(hù)人員可以方便監(jiān)控到該程序的狀態(tài)。HMI緩沖池監(jiān)控界面設(shè)計(jì)請(qǐng)參閱附圖3所示,在PLC中有了緩沖池,有效降低數(shù)據(jù)丟失發(fā)生幾率。但是,緩沖池相對(duì)維護(hù)人員來(lái)說(shuō)是不可見(jiàn)的。所以,為了更直觀的表示PLC中數(shù)據(jù)緩沖池的使用情況,我們開(kāi)發(fā)了簡(jiǎn)單圖示比例界面,如圖3所示為AI寄存器的緩沖池使用情況。其中,它的讀指針值為1501,即指向以AI1501為首地址的數(shù)據(jù)段開(kāi)始讀,而寫指針值為7501,即指向以AI7501為首地址的數(shù)據(jù)段開(kāi)始寫,所以它的使用率是7501-1501=6000,6000+25(每條數(shù)據(jù)占用數(shù)量)=240(條數(shù)據(jù))6000+30000=0.2,即20%的使用率。同樣的,AQ寄存器的使用我們也設(shè)計(jì)這樣的圖示來(lái)表達(dá)其緩沖池使用情況,本文不再?gòu)?fù)述。項(xiàng)目概要介紹系統(tǒng)結(jié)構(gòu)的每一條線生產(chǎn)線采用一套PLC單獨(dú)控制。各生產(chǎn)線PLC分為主站和從站主站最為簡(jiǎn)單,只有CPU模塊和ProfibusDP網(wǎng)卡及一些輔助設(shè)備;從站設(shè)置在工位附近,它們通過(guò)ProfibusDP總線與主站相連。數(shù)據(jù)庫(kù)服務(wù)器和維護(hù)計(jì)算機(jī)放置在機(jī)房中。數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行數(shù)據(jù)采集程序,采集各條生產(chǎn)PLC中的數(shù)據(jù),存入數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)服務(wù)器是系統(tǒng)中最重要的部分,是系統(tǒng)的意義所在,故采用了雙機(jī)冷備份、磁盤陣列等多種方式保護(hù)該單元的運(yùn)行。維護(hù)計(jì)算機(jī)主要用來(lái)設(shè)置參數(shù)、數(shù)據(jù)維護(hù)、監(jiān)控各生產(chǎn)線PLC等,用戶可按實(shí)際使用情況增減維護(hù)計(jì)算機(jī)的數(shù)量。根據(jù)用戶需求,在辦公室的固定幾個(gè)點(diǎn)擺放了一些計(jì)算機(jī),用于數(shù)據(jù)查詢。將數(shù)據(jù)庫(kù)服務(wù)器、維護(hù)計(jì)算、查詢計(jì)算機(jī)和各生產(chǎn)線的PLC都通過(guò)以太網(wǎng)相連。由于地域較大,所以物理上,需要經(jīng)過(guò)多個(gè)交換機(jī)、路由器等,而邏輯上采用不同網(wǎng)段、防火墻等技術(shù),使連通與隔離都作了適當(dāng)設(shè)置。數(shù)據(jù)產(chǎn)生于各個(gè)工位,自動(dòng)映射到PLC的CPU的內(nèi)存里,上位計(jì)算機(jī)運(yùn)行HMI程序讀取各個(gè)生產(chǎn)線PLC的CPU的內(nèi)存里采集相應(yīng)的數(shù)據(jù),并記錄到數(shù)據(jù)庫(kù)中??蛻舳藮嗽?cè)L問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。權(quán)利要求1、一種采用緩沖模式的生產(chǎn)線實(shí)時(shí)數(shù)據(jù)采集方法,該方法通過(guò)可編程邏輯控制器PLC為生產(chǎn)單元的主控制器,和專用人機(jī)界面HMI為上位機(jī)軟件,用來(lái)監(jiān)控PLC的運(yùn)作和關(guān)鍵數(shù)據(jù)的采集記錄,完成自動(dòng)控制核心處理單元的監(jiān)控化和記錄化,其特征在于該方法利用可編程邏輯控制器PLC多余的寄存器作為數(shù)據(jù)緩沖池,分別在人機(jī)界面HMI和可編程邏輯控制器PLC二端都開(kāi)發(fā)一段程序,并定義通訊接口,然后,可編程邏輯控制器PLC端不停的把變化的數(shù)據(jù)存入緩沖中去,人機(jī)界面HMI端則不停讀取通訊接口上的數(shù)據(jù);該實(shí)時(shí)數(shù)據(jù)采集方法至少包括可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)和人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)兩大部分;其中A)、所述可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)是用可編程邏輯控制器PLC多余的寄存器作為數(shù)據(jù)緩沖池,將發(fā)生的數(shù)據(jù)先不讓人機(jī)界面HMI讀到,而是按次序,加上時(shí)間、生產(chǎn)線、工位信息,一一放入緩沖池;然后按先進(jìn)先出的原則,把數(shù)據(jù)放入與人機(jī)界面HMI的接口處;并與人機(jī)界面HMI取數(shù)據(jù)約定控制信號(hào),為狀態(tài)的標(biāo)志位,用可編程邏輯控制器PLC的位寄存器,達(dá)到人機(jī)界面HMI與可編程邏輯控制器PLC雙方均可讀寫;當(dāng)有數(shù)據(jù)變化時(shí),記錄到數(shù)據(jù)緩沖池中去,不停的判別到數(shù)據(jù)緩沖池是否有數(shù)據(jù),同時(shí)判別通訊接口處數(shù)據(jù)是否被取走;如果數(shù)據(jù)緩沖池中有數(shù)據(jù)且通訊接口處數(shù)據(jù)被取走,則立即往通訊接口處送上數(shù)據(jù)緩沖池中的最先進(jìn)來(lái)的數(shù)據(jù);該可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)的具體工作步驟是步驟1.開(kāi)始A(10)初始化開(kāi)始A(10);步驟2.判斷是否有變化的新數(shù)據(jù)(11)執(zhí)行完開(kāi)始A(10)模塊后,則進(jìn)入判斷是否有變化的新數(shù)據(jù)(11)模塊;如果是有變化的新數(shù)據(jù),則進(jìn)入將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi)(13);如果沒(méi)有變化的新數(shù)據(jù),則進(jìn)入清控制段寄存器R1-R5和清數(shù)據(jù)段寄存器R6-R30(12)模塊;步驟3.將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi)(13)執(zhí)行完將變化的數(shù)據(jù)記錄到數(shù)據(jù)緩沖池內(nèi)(13)模塊后,則進(jìn)入清控制段寄存器R1-R5和清數(shù)據(jù)段寄存器R6-R30(12)模塊;步驟4.判斷緩沖池內(nèi)有數(shù)據(jù)(14)?執(zhí)行完清控制段寄存器R1-R5和清數(shù)據(jù)段寄存器R6-R30(12)模塊后,則進(jìn)入判斷緩沖池內(nèi)有數(shù)據(jù)(14)模塊;如果緩沖池內(nèi)有數(shù)據(jù),則進(jìn)入判斷標(biāo)志位R1為“1”A(16)模塊;如果緩沖池內(nèi)沒(méi)有數(shù)據(jù),則進(jìn)入結(jié)束A(15)模塊;步驟5.判斷標(biāo)志位R1為“1”A(16)?如果標(biāo)志位R1是“1”,則進(jìn)入結(jié)束B(niǎo)(18)模塊;如果標(biāo)志位R1不是“1”,則進(jìn)入將緩沖池內(nèi)數(shù)據(jù)復(fù)制到寄存器R6-R30中(17)模塊;步驟6.置控制段寄存器R1值為“1”(19)執(zhí)行完將緩沖池內(nèi)數(shù)據(jù)復(fù)制到寄存器R6-R30中(17)模塊后,則進(jìn)入置控制段寄存器R1值為“1”(19)模塊;步驟7.將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址(20)執(zhí)行完置控制段寄存器R1值為“1”(19)模塊后,則進(jìn)入將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址(20)模塊;步驟8.結(jié)束C(21)執(zhí)行完將緩沖池內(nèi)剛才已復(fù)制的數(shù)據(jù)刪除,將寄存器讀地址指針減25,下移到下一筆數(shù)據(jù)的首地址(20)模塊后,則進(jìn)入結(jié)束C(21)模塊;B)、所述人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)是用循環(huán)程序完成的,循環(huán)體內(nèi)程序是被不停的執(zhí)行的,一旦判別標(biāo)志位已置,表明數(shù)據(jù)已準(zhǔn)備好,判別數(shù)據(jù)的有效性,若有效則將數(shù)據(jù)記入數(shù)據(jù)庫(kù),如無(wú)效,則記入事務(wù)日志,為維護(hù)人員日后分析;該人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)的具體工作步驟是步驟1.開(kāi)始B(30)初始化開(kāi)始B(30);步驟2.初始化各變量參數(shù)狀態(tài)(31)執(zhí)行完開(kāi)始B(30)模塊后,則進(jìn)入初始化各變量參數(shù)狀態(tài)(31);步驟3.判變量X,是否循環(huán)(32)?執(zhí)行完初始化各變量參數(shù)狀態(tài)(31)模塊后,則進(jìn)入循環(huán)體中的判變量X,是否循環(huán)(32)模塊;如果變量X,是循環(huán),則進(jìn)入判斷標(biāo)志位R1為“1”B(34)模塊;如果變量X,不是循環(huán),則進(jìn)入結(jié)束D(33)模塊;步驟4.判斷標(biāo)志位R1為“1”B(34)?如果標(biāo)志位R1是“1”,則進(jìn)入判別數(shù)據(jù)是否有效(35)模塊;如果標(biāo)志位R1不是“1”,則進(jìn)入無(wú)條件延時(shí)一秒(39)模塊;步驟5.判別數(shù)據(jù)是否有效(35)?如果數(shù)據(jù)是有效,則進(jìn)入將數(shù)據(jù)記入數(shù)據(jù)庫(kù)中(37)模塊,如果數(shù)據(jù)無(wú)效,則進(jìn)入將存入事務(wù)日志,待日后維護(hù)人員分析(36)模塊;步驟6.將存入事務(wù)日志,待日后維護(hù)人員分析(36)執(zhí)行完將存入事務(wù)日志,待日后維護(hù)人員分析(36)模塊后,則進(jìn)入無(wú)條件延時(shí)一秒(39)模塊;步驟7.置控制段寄存器R1值為“0”(38)執(zhí)行完將數(shù)據(jù)記入數(shù)據(jù)庫(kù)中(37)模塊后,則進(jìn)入置控制段寄存器R1值為“0”(38)模塊;步驟8.無(wú)條件延時(shí)一秒(39)執(zhí)行完置控制段寄存器R1值為“0”(38)模塊后,則進(jìn)入無(wú)條件延時(shí)一秒(39)模塊;步驟9.循環(huán)執(zhí)行完無(wú)條件延時(shí)一秒(39)模塊后,則反饋進(jìn)入循環(huán)體中的判變量X,是否循環(huán)(32)模塊。全文摘要一種涉及工業(yè)領(lǐng)域中現(xiàn)場(chǎng)實(shí)時(shí)信息數(shù)據(jù)采集方法,尤旨一種在現(xiàn)場(chǎng)數(shù)據(jù)采集過(guò)程中采用在可編程邏輯控制器PLC中做緩存、人機(jī)界面HMI上位機(jī)輪詢的方法,主要應(yīng)用于工業(yè)現(xiàn)場(chǎng)環(huán)境下確保其數(shù)據(jù)不丟失的實(shí)時(shí)采集PLC中的重要數(shù)據(jù)的一種采用緩沖模式的生產(chǎn)線實(shí)時(shí)數(shù)據(jù)采集方法。該方法包括可編程邏輯控制器PLC數(shù)據(jù)供應(yīng)程序設(shè)計(jì)和人機(jī)界面HMI數(shù)據(jù)輪詢程序設(shè)計(jì)兩大部分;主要解決如何采集PLC中的實(shí)時(shí)數(shù)據(jù)和數(shù)據(jù)不丟失等有關(guān)技術(shù)問(wèn)題。本發(fā)明的積極效果是實(shí)現(xiàn)了采集PLC中的實(shí)時(shí)數(shù)據(jù),在遇通訊網(wǎng)絡(luò)中斷或上位機(jī)人機(jī)界面HMI出現(xiàn)故障時(shí),數(shù)據(jù)不丟失,具有使用方便、控制簡(jiǎn)捷有效等優(yōu)點(diǎn)。文檔編號(hào)G05B19/048GK101211172SQ20071017296公開(kāi)日2008年7月2日申請(qǐng)日期2007年12月25日優(yōu)先權(quán)日2007年12月25日發(fā)明者章潔明,蔡濟(jì)國(guó),劼許申請(qǐng)人:上海亞太計(jì)算機(jī)信息系統(tǒng)有限公司