本發(fā)明涉及機(jī)電控制技術(shù)領(lǐng)域,尤其涉及一種機(jī)電系統(tǒng)控制方法及裝置。
背景技術(shù):
目前,機(jī)電控制是基于嵌入式微處理器實(shí)現(xiàn)的。具有體積小,成本低、使用靈活的特點(diǎn),廣泛應(yīng)用于數(shù)控機(jī)床、機(jī)器人、定量進(jìn)給、工業(yè)自動(dòng)控制以及各種可控的有定位要求的機(jī)械工具等領(lǐng)域。嵌入式微處理器能夠完成絕大部分運(yùn)動(dòng)控制功能。
由于目前的機(jī)電控制多采用查詢(xún)方式或者簡(jiǎn)單的定時(shí)反饋方式,所以在對(duì)一些運(yùn)動(dòng)過(guò)程控制時(shí),需要用戶(hù)的上位機(jī)(主系統(tǒng))不停地詢(xún)問(wèn)和關(guān)注當(dāng)前的運(yùn)動(dòng)參數(shù),以期當(dāng)電機(jī)到達(dá)一些關(guān)鍵控制點(diǎn)時(shí)能夠及時(shí)作出反應(yīng)。這樣的做法增加了軟件設(shè)計(jì)的復(fù)雜度,并且導(dǎo)致大量上位機(jī)工作被浪費(fèi)在無(wú)謂的反復(fù)查詢(xún)通訊上,同時(shí)也增加了通訊總線(xiàn)上的負(fù)荷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提出一種機(jī)電系統(tǒng)控制方法及裝置,以解決現(xiàn)有技術(shù)中機(jī)電系統(tǒng)控制軟件設(shè)計(jì)復(fù)雜且負(fù)荷高的技術(shù)問(wèn)題。
第一方面,本發(fā)明實(shí)施例提供了一種機(jī)電系統(tǒng)控制方法,包括:
向子系統(tǒng)發(fā)送控制命令,并接收所述子系統(tǒng)返回的與所述控制命令對(duì)應(yīng)的控制過(guò)程中的事件;
注冊(cè)所述事件,將所述事件插入預(yù)設(shè)的事件隊(duì)列中;
在滿(mǎn)足所述事件的觸發(fā)條件時(shí),從所述事件隊(duì)列中讀取所述事件,并將所述事件分發(fā)至所述事件的目的對(duì)象,以使得所述目的對(duì)象根據(jù)所述事件中的信息執(zhí)行控制動(dòng)作。
進(jìn)一步的,將所述事件插入預(yù)設(shè)的事件隊(duì)列中,包括:
在所述機(jī)電系統(tǒng)包括一個(gè)子系統(tǒng)時(shí),按照所述事件的先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
進(jìn)一步的,將所述事件插入預(yù)設(shè)的事件隊(duì)列中,包括:
在所述機(jī)電系統(tǒng)包括至少兩個(gè)子系統(tǒng)時(shí),按照每個(gè)子系統(tǒng)的事件先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
進(jìn)一步的,所述方法還包括:
在控制完成后,從所述事件隊(duì)列中刪除所述事件。
更進(jìn)一步的,所述子系統(tǒng)返回的控制過(guò)程中的事件,包括:
所述事件由對(duì)象根據(jù)所述控制過(guò)程確定,所述對(duì)象由子系統(tǒng)根據(jù)對(duì)所述命令的解釋得到。
第二方面,本發(fā)明實(shí)施例還提供了一種機(jī)電系統(tǒng)控制裝置,包括:
傳送模塊,用于向子系統(tǒng)發(fā)送控制命令,并接收所述子系統(tǒng)返回的與所述控制命令對(duì)應(yīng)的控制過(guò)程中的事件;
注冊(cè)模塊,用于注冊(cè)所述事件,將所述事件插入預(yù)設(shè)的事件隊(duì)列中;
分發(fā)模塊,用于在滿(mǎn)足所述事件的觸發(fā)條件時(shí),從所述事件隊(duì)列中讀取所述事件,并將所述事件分發(fā)至所述事件的目的對(duì)象,以使得所述目的對(duì)象根據(jù)所述事件中的信息執(zhí)行控制動(dòng)作。進(jìn)一步的,所述注冊(cè)模塊用于:
在所述機(jī)電系統(tǒng)包括一個(gè)子系統(tǒng)時(shí),按照所述事件的先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
進(jìn)一步的,所述注冊(cè)模塊用于:
在所述機(jī)電系統(tǒng)包括至少兩個(gè)子系統(tǒng)時(shí),按照每個(gè)子系統(tǒng)的事件先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
進(jìn)一步的,所述裝置還包括:
刪除模塊,用于在控制完成后,從所述事件隊(duì)列中刪除所述事件。
更進(jìn)一步的,所述子系統(tǒng)返回的控制過(guò)程中的事件,包括:
所述事件由對(duì)象根據(jù)所述控制過(guò)程確定,所述對(duì)象由子系統(tǒng)根據(jù)對(duì)所述命令的解釋得到。
本發(fā)明實(shí)施例提供的機(jī)電系統(tǒng)控制方法及裝置,通過(guò)根據(jù)主系統(tǒng)發(fā)送的控制命令,確定該控制命令對(duì)應(yīng)的控制過(guò)程中的事件,并將事件進(jìn)行注冊(cè)和插入預(yù)設(shè)的事件隊(duì)列進(jìn)行存儲(chǔ)。在滿(mǎn)足事件的觸發(fā)條件時(shí),將事件分發(fā)至事件的目的對(duì)象。目的對(duì)象可以根據(jù)事件中的信息完成控制動(dòng)作。由于采用事件觸發(fā)機(jī)制對(duì)對(duì)象進(jìn)行動(dòng)作控制,可以避免主系統(tǒng)通過(guò)輪詢(xún)方式反復(fù)查詢(xún)狀態(tài)信息,減少了通訊總線(xiàn)的負(fù)荷。同時(shí)在軟件實(shí)現(xiàn)上減少了查詢(xún)的使用,減少了軟件設(shè)計(jì)的復(fù)雜度。
附圖說(shuō)明
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1是本發(fā)明實(shí)施例一提供的機(jī)電系統(tǒng)控制方法的流程示意圖;
圖2是本發(fā)明實(shí)施例二提供的機(jī)電系統(tǒng)控制方法的流程示意圖;
圖3是本發(fā)明實(shí)施例三提供的機(jī)電系統(tǒng)控制方法的流程示意圖;
圖4是本發(fā)明實(shí)施例四提供的機(jī)電系統(tǒng)控制方法的流程示意圖;
圖5是本發(fā)明實(shí)施例五提供的機(jī)電系統(tǒng)控制裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實(shí)施例一
圖1為本發(fā)明實(shí)施例一提供的機(jī)電系統(tǒng)控制方法的流程示意圖,本實(shí)施例的方法適用于對(duì)機(jī)電系統(tǒng)進(jìn)行控制的情況。可以由機(jī)電系統(tǒng)控制裝置來(lái)執(zhí)行,該裝置可通過(guò)硬件和/或軟件的方式實(shí)現(xiàn),并一般可以應(yīng)用于機(jī)電系統(tǒng)的主系統(tǒng)中。
參見(jiàn)圖1,所述機(jī)電系統(tǒng)控制方法,包括:
S110,向子系統(tǒng)發(fā)送控制命令,并接收所述子系統(tǒng)返回的與所述控制命令對(duì)應(yīng)的控制過(guò)程中的事件。
在機(jī)電系統(tǒng)中,直接面對(duì)用戶(hù)的上位機(jī)稱(chēng)為主系統(tǒng),而子系統(tǒng)可以是用于執(zhí)行各種操作命令的具體部件。機(jī)電系統(tǒng)中包括至少一個(gè)子系統(tǒng),通常包括多個(gè)子系統(tǒng)。主系統(tǒng)用于接收用戶(hù)的指令,將指令編譯為相應(yīng)的命令,并將該命令向子系統(tǒng)發(fā)送。子系統(tǒng)在接收到命令后,根據(jù)命令控制子系統(tǒng)中的對(duì)象的動(dòng)作。所述對(duì)象可以是具體的部件,例如:傳感器等。示例性的,以ATM機(jī)為例,主系統(tǒng)可以為嵌入操作系統(tǒng)的PC系統(tǒng),子系統(tǒng)可以包括:顯示系統(tǒng)、存\取鈔系統(tǒng)、計(jì)數(shù)系統(tǒng)、打印系統(tǒng)和開(kāi)\關(guān)門(mén)系統(tǒng)等。其中,開(kāi)\關(guān)門(mén)系統(tǒng)可以包括開(kāi)\關(guān)門(mén)機(jī)械對(duì)象和傳感器對(duì)象。
在本實(shí)施例中,主系統(tǒng)可以通過(guò)總線(xiàn)等向子系統(tǒng)發(fā)送控制命令。子系統(tǒng)在接收到控制命令后,根據(jù)對(duì)控制命令的解析,確定完成該控制命令所需要控制的對(duì)象。示例性的,主系統(tǒng)向開(kāi)\關(guān)門(mén)子系統(tǒng)發(fā)送開(kāi)門(mén)控制命令,開(kāi)\關(guān)門(mén)子系統(tǒng)通過(guò)對(duì)開(kāi)門(mén)控制命令的解析,確定開(kāi)門(mén)命令的對(duì)象為鈔門(mén)電機(jī)和鈔門(mén)狀態(tài)傳感器。子系統(tǒng)中的每個(gè)對(duì)象根據(jù)命令啟動(dòng)控制過(guò)程,并根據(jù)控制命令確定在控制過(guò)程中的事件。事件是可以被系統(tǒng)識(shí)別的操作,包括系統(tǒng)事件和用戶(hù)事件。系統(tǒng)事件由系統(tǒng)激發(fā)。使用事件機(jī)制可以實(shí)現(xiàn):當(dāng)對(duì)象的某個(gè)狀態(tài)發(fā)生變化時(shí),系統(tǒng)將會(huì)通過(guò)某種途徑調(diào)用類(lèi)中的有關(guān)處理這個(gè)事件的方法或者觸發(fā)控件事件的對(duì)象就會(huì)調(diào)用該控件所有已注冊(cè)的事件處理程序等。在本實(shí)施例中,所述事件可以包括:控制完成事件、控制超時(shí)事件和傳感器狀態(tài)觸發(fā)事件等。在確定該子系統(tǒng)中對(duì)象在控制過(guò)程中的事件后,將所述事件返回至主系統(tǒng)。
S120,注冊(cè)所述事件,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
在主系統(tǒng)中,需要對(duì)上述事件進(jìn)行注冊(cè)。通過(guò)注冊(cè),可以確定該事件的對(duì)象,事件名稱(chēng),更重要的是,可以確定該事件對(duì)應(yīng)的方法,以在該事件觸發(fā)時(shí),系統(tǒng)能夠調(diào)用對(duì)應(yīng)的方法對(duì)其進(jìn)行處理。并可以在事件處理完成后,對(duì)事件進(jìn)行釋放,方便進(jìn)行內(nèi)存管理。
在本實(shí)施例中,可以預(yù)先建立一個(gè)隊(duì)列,用以存儲(chǔ)事件??梢詫⑺鍪录年?duì)尾插入形參隊(duì)列。
S130,在滿(mǎn)足所述事件的觸發(fā)條件時(shí),從所述事件隊(duì)列中讀取所述事件,并將所述事件分發(fā)至所述事件的目的對(duì)象,以使得所述目的對(duì)象根據(jù)所述事件中的信息執(zhí)行控制動(dòng)作。。
當(dāng)對(duì)象的某個(gè)狀態(tài)發(fā)生變化時(shí),系統(tǒng)將會(huì)通過(guò)某種途徑調(diào)用類(lèi)中的有關(guān)處理這個(gè)事件的方法,或者觸發(fā)控件事件的對(duì)象就會(huì)調(diào)用該控件所有已注冊(cè)的事件處理程序等。對(duì)于每個(gè)注冊(cè)的事件,其存在著與上述狀態(tài)變化對(duì)應(yīng)的的觸發(fā)條件。例如常見(jiàn)的用戶(hù)的點(diǎn)擊操作,或者系統(tǒng)觸發(fā)的,例如基于時(shí)間調(diào)整銀行存款日期的變化。
在滿(mǎn)足所述事件的觸發(fā)條件時(shí),從所述事件隊(duì)列中讀取事件,并將所述事件發(fā)送至事件的目的對(duì)象。其中,所述事件的目的對(duì)象,可以是該事件處理程序所對(duì)應(yīng)的對(duì)象。所述對(duì)象可以根據(jù)所述事件中的信息執(zhí)行控制動(dòng)作。示例性的,所述事件中的信息可以是該事件的參數(shù)和/或調(diào)用程序信息。
示例性的,所述觸發(fā)條件可以是傳感器檢測(cè)到鈔門(mén)完全閉合的狀態(tài),可以從鈔門(mén)完全閉合狀態(tài)事件從事件隊(duì)列中讀取出。并根據(jù)注冊(cè)鈔門(mén)完全閉合狀態(tài)事件確定調(diào)用處理程序的對(duì)象為開(kāi)\關(guān)門(mén)機(jī)械對(duì)象。將鈔門(mén)完全閉合狀態(tài)事件分發(fā)至開(kāi)\關(guān)門(mén)機(jī)械對(duì)象。開(kāi)\關(guān)門(mén)機(jī)械對(duì)象根據(jù)鈔門(mén)完全閉合狀態(tài)事件中的調(diào)用程序信息控制電機(jī)停止工作,完成鈔門(mén)關(guān)閉的控制操作。
本實(shí)施例通過(guò)根據(jù)主系統(tǒng)發(fā)送的控制命令,確定該控制命令對(duì)應(yīng)的控制過(guò)程中的事件,并將事件進(jìn)行注冊(cè)和插入預(yù)設(shè)的事件隊(duì)列進(jìn)行存儲(chǔ)。在滿(mǎn)足事件的觸發(fā)條件時(shí),將事件分發(fā)至事件的目的對(duì)象。目的對(duì)象可以根據(jù)事件中的信息完成控制動(dòng)作。由于采用事件觸發(fā)機(jī)制對(duì)對(duì)象進(jìn)行動(dòng)作控制,可以避免主系統(tǒng)通過(guò)輪詢(xún)方式反復(fù)查詢(xún)狀態(tài)信息,減少了通訊總線(xiàn)的負(fù)荷。同時(shí)在軟件實(shí)現(xiàn)上減少了查詢(xún)的使用,減少了軟件設(shè)計(jì)的復(fù)雜度。
在本實(shí)施例的一個(gè)優(yōu)選實(shí)施方式中,所述方法還包括:在控制完成后,從所述事件隊(duì)列中刪除所述事件。在完成相應(yīng)的控制過(guò)程后,事件隊(duì)列中的事件不會(huì)再觸發(fā)。為了節(jié)省隊(duì)列的存儲(chǔ)空間,可以從所述事件隊(duì)列中刪除所述事件。由于某些事件可能在控制過(guò)程中會(huì)出現(xiàn)不止一次,例如傳感器檢測(cè)鈔門(mén)角度事件,因此,需要在所有控制過(guò)程全部結(jié)束以后刪除所有事件。示例性的,由于所述事件通常都處于隊(duì)列的隊(duì)頭,可以從事件隊(duì)列的隊(duì)頭取出所述事件,實(shí)現(xiàn)對(duì)事件的刪除。
實(shí)施例二
圖2為本發(fā)明實(shí)施例二提供的機(jī)電系統(tǒng)控制方法的流程示意圖。本實(shí)施例以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,將所述事件插入預(yù)設(shè)的事件隊(duì)列中,具體優(yōu)化為:在所述機(jī)電系統(tǒng)包括一個(gè)子系統(tǒng)時(shí),按照所述事件的先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
參見(jiàn)圖2,所述機(jī)電系統(tǒng)控制方法,包括:
S210,向子系統(tǒng)發(fā)送控制命令,并接收所述子系統(tǒng)返回的與所述控制命令對(duì)應(yīng)的控制過(guò)程中的事件。
S220,注冊(cè)所述事件,在所述機(jī)電系統(tǒng)包括一個(gè)子系統(tǒng)時(shí),按照所述事件發(fā)生的先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
如果機(jī)電系統(tǒng)只包括一個(gè)子系統(tǒng),那么對(duì)于該子系統(tǒng)來(lái)說(shuō),其在控制過(guò)程中的事件是存在一定的先后順序的。例如:在一個(gè)存錢(qián)操作過(guò)程中,對(duì)于鈔門(mén)機(jī)械系統(tǒng)來(lái)說(shuō),鈔門(mén)打開(kāi)事件應(yīng)該發(fā)生在鈔門(mén)閉合事件之前。按照事件發(fā)生的先后順序?qū)⑹录嫒胧录?duì)列中。在從事件隊(duì)列中讀取事件時(shí),可以按照隊(duì)列存儲(chǔ)的順序依次讀取事件。而如果不按照事件發(fā)生的先后順序?qū)⑹录嫒胧录?duì)列中,則在讀取事件時(shí),需要采用遍歷或者優(yōu)化的遍歷算法來(lái)從隊(duì)列中選取對(duì)應(yīng)的事件。額外增加了系統(tǒng)的計(jì)算負(fù)荷,增加了系統(tǒng)運(yùn)算的時(shí)間。示例性的,按照事件發(fā)生的先后順序?qū)⑹录嫒胧录?duì)列中,可以采用如下方式,根據(jù)設(shè)定的控制操作順序依次從隊(duì)尾插入事件,所述設(shè)定的控制操作順序可以按照控制過(guò)程來(lái)設(shè)定。
S230,在滿(mǎn)足所述事件的觸發(fā)條件時(shí),從所述事件隊(duì)列中讀取所述事件,并將所述事件分發(fā)至所述事件的目的對(duì)象,以使得所述目的對(duì)象根據(jù)所述事件中的信息執(zhí)行控制動(dòng)作。。
本實(shí)施例通過(guò)將所述事件插入預(yù)設(shè)的事件隊(duì)列中,具體優(yōu)化為:在所述機(jī)電系統(tǒng)包括一個(gè)子系統(tǒng)時(shí),按照所述事件的先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。可以避免主系統(tǒng)不停的遍歷事件隊(duì)列尋找事件,減少了系統(tǒng)的計(jì)算負(fù)荷,縮短了運(yùn)算時(shí)長(zhǎng)。
實(shí)施例三
圖3為本發(fā)明實(shí)施例三提供的機(jī)電系統(tǒng)控制方法的流程示意圖。本實(shí)施例以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,將所述事件插入預(yù)設(shè)的事件隊(duì)列中,具體優(yōu)化為:在所述機(jī)電系統(tǒng)包括至少兩個(gè)子系統(tǒng)時(shí),按照每個(gè)子系統(tǒng)的事件先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
參見(jiàn)圖3,所述機(jī)電系統(tǒng)控制方法,包括:
S310,向子系統(tǒng)發(fā)送控制命令,并接收所述子系統(tǒng)返回的與所述控制命令對(duì)應(yīng)的控制過(guò)程中的事件。
S320,注冊(cè)所述事件,在所述機(jī)電系統(tǒng)包括至少兩個(gè)子系統(tǒng)時(shí),按照每個(gè)子系統(tǒng)的事件先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
機(jī)電系統(tǒng)中通常包括至少兩個(gè)子系統(tǒng),通常來(lái)說(shuō)每個(gè)子系統(tǒng)之間的控制操作是可以并行的,但每個(gè)子系統(tǒng)在其控制過(guò)程中的事件是存在一定的先后順序的。例如:在一個(gè)存錢(qián)操作過(guò)程中,點(diǎn)鈔機(jī)械子系統(tǒng)和驗(yàn)鈔機(jī)械子系統(tǒng)可以并行進(jìn)行控制操作。點(diǎn)鈔機(jī)械子系統(tǒng)和驗(yàn)鈔機(jī)械子系統(tǒng)的控制操作過(guò)程中的事件是存在先后順序的??梢苑謩e為每個(gè)子系統(tǒng)建立一個(gè)相應(yīng)的事件隊(duì)列。按照事件發(fā)生的先后順序?qū)⑹录嫒胧录?duì)列中。但在子系統(tǒng)較多時(shí),必然需要消耗更多的存儲(chǔ)空間來(lái)存儲(chǔ)事件。在本實(shí)施例中,只預(yù)設(shè)設(shè)置一個(gè)事件隊(duì)列,按照每個(gè)子系統(tǒng)的事件先后順序,將多個(gè)子系統(tǒng)的事件按照事件發(fā)生的先后順序插入預(yù)設(shè)的事件隊(duì)列中??梢杂行Ч?jié)約存儲(chǔ)空間。在從事件隊(duì)列中讀取事件時(shí),可以按照隊(duì)列存儲(chǔ)的順序依次讀取事件。避免采用遍歷或者優(yōu)化的遍歷算法來(lái)從隊(duì)列中選取對(duì)應(yīng)的事件。
S330,在滿(mǎn)足所述事件的觸發(fā)條件時(shí),從所述事件隊(duì)列中讀取所述事件,并將所述事件分發(fā)至所述事件的目的對(duì)象,以使得所述目的對(duì)象根據(jù)所述事件中的信息執(zhí)行控制動(dòng)作。。
本實(shí)施例通過(guò)將所述事件插入預(yù)設(shè)的事件隊(duì)列中,具體優(yōu)化為:在所述機(jī)電系統(tǒng)包括至少兩個(gè)子系統(tǒng)時(shí),按照每個(gè)子系統(tǒng)的事件先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。在存在多個(gè)子系統(tǒng)時(shí),可以并行控制操作多個(gè)子系統(tǒng),能夠提高整個(gè)系統(tǒng)的控制操作的速度,減少控制操作的時(shí)間。
實(shí)施例四
圖4為本發(fā)明實(shí)施例四提供的機(jī)電系統(tǒng)控制方法的流程示意圖。本實(shí)施例以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,將所述子系統(tǒng)返回的控制過(guò)程中的事件,具體優(yōu)化為:所述事件由對(duì)象根據(jù)所述控制過(guò)程確定,所述對(duì)象由子系統(tǒng)根據(jù)對(duì)所述命令的解釋得到。
參見(jiàn)圖4,所述機(jī)電系統(tǒng)控制方法,包括:
S410,向子系統(tǒng)發(fā)送控制命令。
S420,子系統(tǒng)接收所述控制命令,根據(jù)所述控制命令的解釋得到控制對(duì)象。
通常主系統(tǒng)采用計(jì)算機(jī),以方便同用戶(hù)的交互,其運(yùn)行的控制程序?yàn)槊嫦驅(qū)ο蟮恼Z(yǔ)言程序,注重邏輯判斷和數(shù)據(jù)處理。而子系統(tǒng)則對(duì)命令進(jìn)行解釋?zhuān)瑢⑵滢D(zhuǎn)換為機(jī)械控制結(jié)構(gòu)所能接受的語(yǔ)言,控制硬件對(duì)象的動(dòng)作。即將語(yǔ)言程序最終轉(zhuǎn)換為高低電平的控制信號(hào),實(shí)現(xiàn)對(duì)機(jī)械結(jié)構(gòu)的動(dòng)作控制。在本實(shí)施例中,預(yù)先建立主系統(tǒng)命令與子系統(tǒng)的控制信號(hào)的對(duì)應(yīng)關(guān)系,通過(guò)對(duì)主系統(tǒng)命令的解釋?zhuān)_定子系統(tǒng)的控制信號(hào),并根據(jù)所述控制信號(hào)得到控制對(duì)象。
S430,所述控制對(duì)象根據(jù)控制過(guò)程確定事件,并將所述事件通過(guò)子系統(tǒng)返回主系統(tǒng)。
對(duì)于控制對(duì)象,由于其動(dòng)作過(guò)程是根據(jù)控制需要產(chǎn)生的,而對(duì)控制對(duì)象來(lái)說(shuō),每一種控制需要對(duì)應(yīng)的動(dòng)作過(guò)程都是固定不變的。因此,在其控制過(guò)程中的事件也是不變的??梢愿鶕?jù)命令確定控制需要對(duì)應(yīng)的控制過(guò)程,進(jìn)而確定控制過(guò)程中的事件。示例性的,可以預(yù)先建立命令與控制過(guò)程之間和控制過(guò)程與事件之間的對(duì)應(yīng)關(guān)系。通過(guò)上述對(duì)應(yīng)關(guān)系確定事件,并通過(guò)子系統(tǒng)將確定的事件返回至主系統(tǒng)。
S440,注冊(cè)所述事件,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
S450,在滿(mǎn)足所述事件的觸發(fā)條件時(shí),從所述事件隊(duì)列中讀取所述事件,并將所述事件分發(fā)至所述事件的目的對(duì)象,以使得所述目的對(duì)象根據(jù)所述事件中的信息執(zhí)行控制動(dòng)作。
本實(shí)施例通過(guò)將所述子系統(tǒng)返回的控制過(guò)程中的事件,具體優(yōu)化為:對(duì)象根據(jù)控制過(guò)程確定的事件,所述對(duì)象由子系統(tǒng)根據(jù)對(duì)所述命令的解釋得到。通過(guò)解釋命令確定與事件相關(guān)的對(duì)象,并且根據(jù)該對(duì)象的控制過(guò)程確定事件。可以保證獲取到的事件準(zhǔn)確,避免事件遺漏,使得基于事件對(duì)機(jī)電結(jié)構(gòu)進(jìn)行控制能夠?qū)崿F(xiàn)。
實(shí)施例五
圖5是本發(fā)明實(shí)施例五提供的機(jī)電系統(tǒng)控制裝置的結(jié)構(gòu)示意圖,如圖5所示,所述裝置包括:
傳送模塊510,用于向子系統(tǒng)發(fā)送控制命令,并接收所述子系統(tǒng)返回的與所述控制命令對(duì)應(yīng)的控制過(guò)程中的事件;
注冊(cè)模塊520,用于注冊(cè)所述事件,將所述事件插入預(yù)設(shè)的事件隊(duì)列中;
分發(fā)模塊530,用于在滿(mǎn)足所述事件的觸發(fā)條件時(shí),從所述事件隊(duì)列中讀取所述事件,并將所述事件分發(fā)至所述事件的目的對(duì)象,以使得所述目的對(duì)象根據(jù)所述事件中的信息執(zhí)行控制動(dòng)作。
本發(fā)明實(shí)施例提供的機(jī)電系統(tǒng)控制裝置,通過(guò)根據(jù)主系統(tǒng)發(fā)送的控制命令,確定該控制命令對(duì)應(yīng)的控制過(guò)程中的事件,并將事件進(jìn)行注冊(cè)和插入預(yù)設(shè)的事件隊(duì)列進(jìn)行存儲(chǔ)。在滿(mǎn)足事件的觸發(fā)條件時(shí),將事件分發(fā)至事件的目的對(duì)象。目的對(duì)象可以根據(jù)事件中的信息完成控制動(dòng)作。由于采用事件觸發(fā)機(jī)制對(duì)對(duì)象進(jìn)行動(dòng)作控制,可以避免主系統(tǒng)通過(guò)輪詢(xún)方式反復(fù)查詢(xún)狀態(tài)信息,減少了通訊總線(xiàn)的負(fù)荷。同時(shí)在軟件實(shí)現(xiàn)上減少了查詢(xún)的使用,減少了軟件設(shè)計(jì)的復(fù)雜度。
在上述各實(shí)施例的基礎(chǔ)上,所述注冊(cè)模塊用于:
在所述機(jī)電系統(tǒng)包括一個(gè)子系統(tǒng)時(shí),按照所述事件的先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
在上述各實(shí)施例的基礎(chǔ)上,所述注冊(cè)模塊用于:
在所述機(jī)電系統(tǒng)包括至少兩個(gè)子系統(tǒng)時(shí),按照每個(gè)子系統(tǒng)的事件先后順序,將所述事件插入預(yù)設(shè)的事件隊(duì)列中。
在上述各實(shí)施例的基礎(chǔ)上,所述裝置還包括:
刪除模塊,用于在控制完成后,從所述事件隊(duì)列中刪除所述事件。
在上述各實(shí)施例的基礎(chǔ)上,所述子系統(tǒng)返回的控制過(guò)程中的事件,包括:
所述事件由對(duì)象根據(jù)所述控制過(guò)程確定,所述對(duì)象由子系統(tǒng)根據(jù)對(duì)所述命令的解釋得到。
本發(fā)明實(shí)施例所提供機(jī)電系統(tǒng)控制裝置可用于執(zhí)行本發(fā)明任意實(shí)施例提供的機(jī)電系統(tǒng)控制方法,具備相應(yīng)的功能模塊,實(shí)現(xiàn)相同的有益效果。
顯然,本領(lǐng)域技術(shù)人員應(yīng)該明白,上述本發(fā)明的各模塊或各步驟可以通過(guò)如上所述的設(shè)備實(shí)施??蛇x地,本發(fā)明實(shí)施例可以用計(jì)算機(jī)裝置可執(zhí)行的程序來(lái)實(shí)現(xiàn),從而可以將它們存儲(chǔ)在存儲(chǔ)裝置中由處理器來(lái)執(zhí)行,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等;或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件的結(jié)合。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過(guò)以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說(shuō)明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。