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