一種運動控制系統(tǒng)及方法
【專利摘要】本發(fā)明適用于計算機應(yīng)用領(lǐng)域,提供了一種運動控制系統(tǒng)及方法,所述系統(tǒng)包括:人機交互模塊,用于通過人機交互界面獲得用戶輸入的運動指令;運動指令執(zhí)行模塊,用于通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令;通訊模塊,用于通過MODBUS通訊協(xié)議實現(xiàn)人機交互模塊及運動指令執(zhí)行模塊的通信及數(shù)據(jù)傳輸。
【專利說明】一種運動控制系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機應(yīng)用領(lǐng)域,尤其涉及一種運動控制系統(tǒng)及方法。
【背景技術(shù)】
[0002]目前的開放式運動控制系統(tǒng),多為基于PLCOpen (獨立于生產(chǎn)商和產(chǎn)品的全球性協(xié)會)這個標(biāo)準(zhǔn),而該標(biāo)準(zhǔn)目前基本都是由國外的軟件支持的,國內(nèi)的軟件還沒法較好的支持基于PLCOpen標(biāo)準(zhǔn)的開放式運動系統(tǒng)。然而,國外的軟件價格都較為昂貴,且由于開發(fā)難度較大,用戶難以進行二次開發(fā)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例的目的在于提供一種運動控制系統(tǒng)及方法,旨在解決現(xiàn)有的國外軟件價格昂貴且難以實現(xiàn)二次開發(fā)的問題。
[0004]本發(fā)明實施例是這樣實現(xiàn)的,一種運動控制系統(tǒng),所述系統(tǒng)包括:
[0005]人機交互模塊,用于通過人機交互界面獲得用戶輸入的運動指令;
[0006]運動指令執(zhí)行模塊,用于通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令;
[0007]通訊模塊,用于通過MODBUS通訊協(xié)議實現(xiàn)人機交互模塊及運動指令執(zhí)行模塊的通信及數(shù)據(jù)傳輸。
[0008]本發(fā)明實施例的另一目的在于提供一種運動控制方法,所述方法包括:
[0009]通過人機交互界面獲得用戶輸入的運動指令;
[0010]通過MODBUS通訊協(xié)議傳輸所述運動指令;
[0011]通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令。
[0012]在本發(fā)明實施例中,人機交互界面接收到用戶輸入的運動指令后,運動指令執(zhí)行模塊通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令。由于已經(jīng)封裝了很多的函數(shù)供用戶調(diào)用,降低了用戶二次開發(fā)的難度,且能夠多任務(wù)處理多個運動指令。
【專利附圖】
【附圖說明】
[0013]圖1是本發(fā)明實施例提供的運動控制系統(tǒng)的結(jié)構(gòu)圖;
[0014]圖2為客服端訪問的自定義MODBUS數(shù)據(jù)包的格式的示意圖;
[0015]圖3為服務(wù)端訪問的自定義MODBUS數(shù)據(jù)包的格式的示意圖;
[0016]圖4是本發(fā)明實施例提供的運動控制方法的流程圖。
【具體實施方式】
[0017]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。[0018]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進行說明。
[0019]實施例一:
[0020]如圖1所示為本發(fā)明實施例提供的一種運動控制系統(tǒng)的結(jié)構(gòu)圖,為了便于說明,僅不出了與本發(fā)明實施例相關(guān)的部分。
[0021]在本發(fā)明實施例中,運動控制系統(tǒng)包括:人機交互模塊11,運動指令執(zhí)行模塊12,及與所述人機交互模塊11和運動指令執(zhí)行模塊12相連的通訊模塊13。
[0022]其中:
[0023]人機交互模塊11,用于通過人機交互界面獲得用戶輸入的運動指令。
[0024]在本發(fā)明實施例中,人機交互模塊11 一般部署于客戶端,為用戶提供人機交互界面,用戶可根據(jù)實際應(yīng)用在人機交互界面輸入各種運動指令。
[0025]優(yōu)選的,人機交互模塊11中的人機交互界面還可用于用戶修改參數(shù),監(jiān)控系統(tǒng)運行狀態(tài)等。
[0026]需要說明的是,人機交互模塊11可以同時部署于多個客戶端,實現(xiàn)多個人機交互。
[0027]運動指令執(zhí)行模塊12,用于通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行運動指令。
[0028]在本發(fā)明實施例中,運動指令執(zhí)行模塊12用于執(zhí)行用戶通過人機交互界面輸入的運動指令。具體有兩種指令執(zhí)行方式,其一是通過指令表中定義好的指令來執(zhí)行用戶輸入的運動指令,另一是通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)執(zhí)行用戶輸入的運動指令。為了能夠處理各種運動指令,已經(jīng)預(yù)先封裝了多個不同功能的函數(shù)。
[0029]在本發(fā)明實施例中,運動指令執(zhí)行模塊12包括兩個子模塊,分別為指令表執(zhí)行模塊121或腳本執(zhí)行模塊122,其中:
[0030]指令表執(zhí)行模塊121,用于通過指令表中的指令單任務(wù)執(zhí)行運動指令。
[0031]在本發(fā)明實施例中,指令表中包括有多個不同的指令,可以用于執(zhí)行不同的運動指令。由于指令表只能串行執(zhí)行各種指令,因此只能通過指令表中的指令單任務(wù)順序執(zhí)行運動指令,但是執(zhí)行效率較高。指令表中的指令包括開發(fā)者預(yù)先定義好的指令,以及用戶在系統(tǒng)使用過程中自行添加的宏指令。
[0032]需要說明的是,為用戶提供了宏指令編輯接口后,用戶在實際使用該運動控制系統(tǒng)的過程中,便可根據(jù)實際的使用需要,通過腳本編輯滿足實際功能需求的自定義宏指令,并編輯執(zhí)行宏指令的函數(shù)腳本。當(dāng)執(zhí)行到宏指令時,便調(diào)用對應(yīng)執(zhí)行該宏指令的函數(shù)腳本來執(zhí)行該宏指令。使得該運動控制系統(tǒng)的應(yīng)用更加靈活,適宜不同需求的用戶使用。
[0033]腳本執(zhí)行模塊122,用于通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行運動指令。
[0034]在本發(fā)明實施例中,預(yù)先通過軟件編輯語言將常用的功能封裝為LUA (—種腳本語言)函數(shù),因此腳本執(zhí)行模塊122每次收到用戶輸入的運動指令,便可通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)執(zhí)行運動指令。其中,封裝的常用函數(shù)包括但不限于:10 (Input/Output,輸入輸出)輸出、單軸運動、直線插補、速度控制、延時、啟動、停止、復(fù)位、串口通訊、網(wǎng)絡(luò)通訊、MODBUS (—種總線協(xié)議)地址訪問等。由于已經(jīng)封裝了很多的函數(shù)供用戶調(diào)用,因此降低了用戶二次開發(fā)的難度。[0035]需要說明的是,由于人機交互界面可以部署于多個客戶端中,因此可能同時收到用戶輸入的多個運動指令,因此當(dāng)腳本執(zhí)行模塊122收到用戶輸入的多個運動指令時,通過腳本分別從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)并行多任務(wù)執(zhí)行所述多個運動指令,實現(xiàn)了多個運動指令的同時執(zhí)行。例如在控制左邊的運動控制平臺加工的時候,右邊的上下料平臺可以同時進行搬運、上下料等動作。
[0036]在本發(fā)明實施例中,由于運動指令的觸發(fā)方式不同,根據(jù)不同的指令觸發(fā)方式,有三種不同的指令執(zhí)行方式,因此腳本執(zhí)行模塊122包括三個子模塊,分別為定時執(zhí)行模塊1221,或指令觸發(fā)模塊1222,或條件觸發(fā)模塊1223,其中:
[0037]定時執(zhí)行模塊1221,用于當(dāng)定時器觸發(fā)時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行運動指令。
[0038]在本發(fā)明實施例中,當(dāng)指令是由定時器觸發(fā)時,通過定時執(zhí)行指令。如main_task這個腳本函數(shù)是每N毫秒執(zhí)行一次,N為開發(fā)者預(yù)先設(shè)置的正整數(shù)。
[0039]指令觸發(fā)模塊1222,用于運動指令被觸發(fā)時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行運動指令。
[0040]在本發(fā)明實施例中,如當(dāng)執(zhí)行到宏指令時,便可調(diào)用對應(yīng)的函數(shù)腳本執(zhí)行宏指令。
[0041]條件觸發(fā)模塊1223,用于當(dāng)運動指令觸發(fā)了預(yù)設(shè)的條件時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行運動指令。例如當(dāng)用戶按下了停止按鈕、加工之前、加工完畢、復(fù)位之前、復(fù)位完畢等,都會調(diào)用相應(yīng)的腳本。
[0042]通訊模塊13,用于通過MODBUS通訊協(xié)議實現(xiàn)人機交互模塊11及運動指令執(zhí)行模塊12的通信及數(shù)據(jù)傳輸。
[0043]在本發(fā)明實施例中,通訊模塊13負(fù)責(zé)通過串口或網(wǎng)口實現(xiàn)人機交互模塊11及運動指令執(zhí)行模塊12的通信及數(shù)據(jù)傳輸。本發(fā)明中的數(shù)據(jù)通訊使用的是MODBUS通訊協(xié)議。
[0044]優(yōu)選的,由于標(biāo)準(zhǔn)MODBUS通訊協(xié)議的數(shù)據(jù)包必須小于256個字節(jié),沒有連續(xù)多幀的發(fā)送方式。因此,為了更為方便的處理大批量的數(shù)據(jù)交互,在MODBUS基礎(chǔ)上擴展了文件通訊功能。通訊模塊13還可用于通過在M0DBUSPDU數(shù)據(jù)包內(nèi)再封裝了一層自定義的協(xié)議以用來自定義MODBUS數(shù)據(jù)包,及按照所述自定義MODBUS數(shù)據(jù)包格式解析接收到的MODBUS數(shù)據(jù)包。自定義MODBUS數(shù)據(jù)包的格式如圖2及圖3所示。圖2為客服端訪問的自定義MODBUS數(shù)據(jù)包的格式,圖3為服務(wù)端訪問的自定義MODBUS數(shù)據(jù)包的格式。每當(dāng)通訊模塊13接收到MODBUS數(shù)據(jù)包時,先判斷是否是自定義MODBUS數(shù)據(jù)包,是則可以批量按照自定義的MODBUS數(shù)據(jù)包格式處理。
[0045]在本發(fā)明實施例中,人機交互界面接收到用戶輸入的運動指令后,運動指令執(zhí)行模塊通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令。由于已經(jīng)封裝了很多的函數(shù)供用戶調(diào)用,降低了用戶二次開發(fā)的難度,且能夠多任務(wù)處理多個運動指令。指令表中添加了用戶自定義的宏指令,也使得系統(tǒng)更加靈活。此外,由于本發(fā)明都是使用LUA腳本語言,因此代碼開源,具有較高的開放性,且便于嵌入系統(tǒng)軟件。腳本文件在執(zhí)行時又是編譯成二進制文件再解釋執(zhí)行,具有較好的保密性。
[0046]實施例二:
[0047]圖4為本發(fā)明實施例提供的一種運動控制方法的流程圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部份。[0048]在步驟S401中,通過人機交互界面獲得用戶輸入的運動指令。
[0049]在本發(fā)明實施例中,機交互界面還可用于用戶修改參數(shù),監(jiān)控系統(tǒng)運行狀態(tài)等。人機交互界面可以同時部署于多個客戶端,實現(xiàn)多個人機交互。
[0050]在步驟S402中,通過MODBUS通訊協(xié)議傳輸運動指令。
[0051 ] 在本發(fā)明實施例中,為了更為方便的處理大批量的數(shù)據(jù)交互,在MODBUS基礎(chǔ)上擴展了文件通訊功能。通過在MODBUS PDU數(shù)據(jù)包內(nèi)再封裝了一層自定義的協(xié)議以用來自定義MODBUS數(shù)據(jù)包,及按照所述自定義MODBUS數(shù)據(jù)包格式解析接收到的MODBUS數(shù)據(jù)包。
[0052]在步驟S403中,通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行運動指令。
[0053]在本發(fā)明實施例中,具體有兩種指令執(zhí)行方式,其一是通過指令表中定義好的指令來單任務(wù)執(zhí)行用戶輸入的運動指令,另一是通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)執(zhí)行用戶輸入的運動指令。為了能夠處理各種運動指令,已經(jīng)預(yù)先封裝了多個不同功能的函數(shù)。
[0054]在本發(fā)明實施例中,指令表中包括有多個不同的指令,可以用于執(zhí)行不同的運動指令。由于指令表只能串行執(zhí)行各種指令,因此只能通過指令表中的指令單任務(wù)順序執(zhí)行運動指令,但是執(zhí)行效率較高。指令表中的指令包括開發(fā)者預(yù)先定義好的指令,以及用戶在系統(tǒng)使用過程中自行添加的宏指令。
[0055]在本發(fā)明實施例中,由于人機交互界面可以部署于多個客戶端中,因此可能同時收到用戶輸入的多個運動指令,因此當(dāng)腳本執(zhí)行模塊收到用戶輸入的多個運動指令時,通過腳本分別從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)并行多任務(wù)執(zhí)行所述多個運動指令,實現(xiàn)了多個運動指令的同時執(zhí)行。
[0056]在本發(fā)明實施例中,由于運動指令的觸發(fā)方式不同,根據(jù)不同的指令觸發(fā)方式,有三種不同的指令執(zhí)行方式,其中:
[0057]其一,當(dāng)定時器觸發(fā)時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行運動指令。
[0058]其二,運動指令被觸發(fā)時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行運動指令。
[0059]其三,當(dāng)運動指令觸發(fā)了預(yù)設(shè)的條件時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行運動指令。
[0060]在本發(fā)明實施例中,人機交互界面接收到用戶輸入的運動指令后,運動指令執(zhí)行模塊通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令。由于已經(jīng)封裝了很多的函數(shù)供用戶調(diào)用,降低了用戶二次開發(fā)的難度,且能夠多任務(wù)處理多個運動指令。指令表中添加了用戶自定義的宏指令,也使得系統(tǒng)更加靈活。此外,由于本發(fā)明都是使用LUA腳本語言,因此代碼開源,具有較高的開放性,且便于嵌入系統(tǒng)軟件。腳本文件在執(zhí)行時又是編譯成二進制文件再解釋執(zhí)行,具有較好的保密性。
[0061]本領(lǐng)域普通技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以在存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如R0M/RAM、磁盤、光盤等。
[0062]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種運動控制系統(tǒng),其特征在于,所述系統(tǒng)包括: 人機交互模塊,用于通過人機交互界面獲得用戶輸入的運動指令; 運動指令執(zhí)行模塊,用于通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令;通訊模塊,用于通過MODBUS通訊協(xié)議實現(xiàn)人機交互模塊及運動指令執(zhí)行模塊的通信及數(shù)據(jù)傳輸。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述運動指令執(zhí)行模塊包括: 指令表執(zhí)行模塊,用于通過指令表中的指令單任務(wù)執(zhí)行所述運動指令;或 腳本執(zhí)行模塊,用于通過腳本從封裝 的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述指令表執(zhí)行模塊的指令表中的指令包括用戶自定義的宏指令。
4.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述腳本執(zhí)行模塊還可用于,當(dāng)用戶輸入多個運動指令時,通過腳本分別從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來并行執(zhí)行所述多個運動指令。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述腳本執(zhí)行模塊包括: 定時執(zhí)行模塊,用于當(dāng)定時器觸發(fā)時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令; 指令觸發(fā)模塊,用于所述運動指令被觸發(fā)時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令; 條件觸發(fā)模塊,用于當(dāng)所述運動指令觸發(fā)了預(yù)設(shè)的條件時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述通訊模塊還可用于自定義MODBUS數(shù)據(jù)包,及按照所述自定義MODBUS數(shù)據(jù)包格式解析接收到的MODBUS數(shù)據(jù)包。
7.—種運動控制方法,其特征在于,所述方法包括: 通過人機交互界面獲得用戶輸入的運動指令; 通過MODBUS通訊協(xié)議傳輸所述運動指令; 通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令。
8.如權(quán)利要求7所述的方法,其特征在于,所述通過指令表或封裝有多個函數(shù)的腳本來執(zhí)行所述運動指令包括: 通過指令表中的指令單任務(wù)執(zhí)行所述運動指令,所述指令表中的指令包括用戶自定義的宏指令;或 通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令,當(dāng)用戶輸入多個運動指令時,通過腳本分別從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來并行執(zhí)行所述多個運動指令。
9.如權(quán)利要求8所述的方法,其特征在于,所述通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令包括: 當(dāng)定時器觸發(fā)時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令; 所述運動指令被觸發(fā)時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令; 當(dāng)所述運動指令觸發(fā)了預(yù)設(shè)的條件時,通過腳本從封裝的函數(shù)中調(diào)用對應(yīng)的函數(shù)來執(zhí)行所述運動指令。
10.如權(quán)利要求7至9任一權(quán)利要求所述的方法,其特征在于,所述方法還包括: 自定義MODBUS數(shù)據(jù)包,及按照所述自定義MODBUS數(shù)據(jù)包格式解析接收到的MODBUS數(shù)據(jù)包。
【文檔編號】G05B19/042GK103955153SQ201410151765
【公開日】2014年7月30日 申請日期:2014年4月15日 優(yōu)先權(quán)日:2014年4月15日
【發(fā)明者】湯功義, 王曉剛, 曾逸 申請人:深圳眾為興技術(shù)股份有限公司