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