麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

舵機的分布式控制系統及方法與流程

文檔序號:12360888閱讀:761來源:國知局
舵機的分布式控制系統及方法與流程

本發明涉及自動化機器人技術領域,尤其涉及一種舵機的分布式控制系統及方法。



背景技術:

舵機最早應用于船舶上,由于其轉角可連續控制,被廣泛應用于智能小車及機器人等領域。大多數舵機控制系統采用的是集中式控制方法,即通過一個控制器產生一路或多路PWM信號驅動舵機轉動。控制器需要執行路徑規劃,計算每個舵機的目標位置、運動速度等控制參數,并產生相應的PWM信號驅動舵機轉動,同時需要采集各路舵機的反饋信號方便實時跟蹤調節,使各舵機以最佳性能達到指定的目標位置。

但是,集中式控制方法存在如下不足:1.當舵機數量較多時系統控制難度增加、接線復雜;2.當舵機安裝位置遠時,控制系統抗干擾能力降低等;3.控制系統的控制器處理所有的控制功能,占用資源較多、負擔重;4.控制系統控制的舵機數量有限,不易擴展,當舵機數量比較多時,無法滿足要求。



技術實現要素:

發明目的:本發明針對現有技術存在的問題,提供一種舵機的分布式控制系統。

技術方案:本發明所述的舵機的分布式控制系統包括:

上位機,用于當上位機對舵機需要進行控制時,向通訊控制器發送舵機控制參數和對應的通訊ID,還用于當上位機需要獲取舵機狀態時,向通訊控制器發送舵機狀態獲取指令和對應的通訊ID,以及用于在接收到舵機狀態數據后根據通訊ID更新舵機狀態;

通訊控制器,設有若干個通訊端口,用于根據通訊ID映射出目的端口ID和目的舵機ID號,并將目的舵機ID號和上位機發送的數據發送至映射出的目的端口ID對應的通訊端口,還用于將舵機返回的舵機狀態數據和對應的通訊ID上傳至上位機;

若干組舵機,一組舵機通過一個通訊端口連接至通訊控制器,舵機用于根據通訊控制器發送的目的舵機ID號進行匹配,當匹配成功時根據舵機控制參數進行舵機控制,還用于根據通訊控制器發送的舵機狀態獲取指令返回當前狀態數據。

進一步的,所述上位機包括:

路徑規劃單元,用于對需要控制的舵機執行路徑規劃;

指令生成單元,用于對需要獲取狀態的舵機生成狀態獲取指令;

控制參數生成單元,用于根據規劃的路徑生成舵機控制參數;

數據包生成單元,用于將控制參數生成單元生成的舵機控制參數,加上其對應的通訊ID生成數據包,還用于將指令生成單元生成的狀態獲取指令,加上其對應的通訊ID生成數據包;

數據傳輸單元,用于將數據包生成單元生成的數據包發送至通訊控制器,還用于接收通訊控制器返回的舵機狀態數據和對應的通訊ID;

匹配單元,用于將數據傳輸單元接收的通訊ID,與向通訊控制器發送舵機狀態獲取指令對應的通訊ID進行匹配,若一致,則匹配成功,否則匹配失敗;

狀態更新的單元,用于在匹配單元匹配成功時,更新通訊ID對應的舵機的狀態。

進一步的,所述通訊控制器包括:

第一傳輸單元,用于上位機和通訊控制器的數據傳輸;

第一映射單元,用于從第一傳輸單元接收的數據包中,提取出通訊ID,并根據通訊ID映射出目的端口ID和目的舵機ID號;

第一數據包生成單元,用于將上位機發送的數據和目的舵機ID號生成數據包,并發送至第二數據傳輸單元;

第二傳輸單元,用于將第一數據包生成單元的數據包發送至映射出的目的端口ID對應的通訊端口,還用于接收舵機通過通訊端口返回的舵機狀態數據和對應的舵機ID;

第二映射單元,用于將第二傳輸單元接收的舵機ID和接收時采用的通訊端口的端口ID,映射為通訊ID;

第二數據包生成單元,用于將映射的通訊ID和接收的舵機狀態數據打包生成數據包,并發送至第一傳輸單元。

進一步的,所述舵機包括:

數據傳輸單元,用于接收通訊控制器發送的數據,以及向通訊控制器返回舵機狀態數據和對應的舵機ID;

匹配單元,用于從接收的數據中提取出目的舵機ID號,并與當前舵機的ID號進行匹配,若一致,則匹配成功,否則匹配失敗;

舵機控制單元,用于在匹配單元匹配成功,且接收的數據是舵機控制參數時,根據該舵機控制參數對舵機進行控制;

舵機狀態獲取單元,用于在匹配單元匹配成功,且接收的數據是舵機狀態獲取指令時,將當前舵機的狀態數據發送至數據傳輸單元。

進一步的,所述上位機通過RS422連接通訊控制器,每組舵機通過一個RS485總線連接通訊控制器。

本發明所述的舵機的分布式控制方法包括步驟:

S1、當上位機對舵機需要進行控制時,向通訊控制器發送舵機控制參數和對應的通訊ID;

S2、通訊控制器根據通訊ID映射出目的端口ID和目的舵機ID號,并將目的舵機ID號和上位機發送的數據發送至映射出的目的端口ID對應的通訊端口,其中,通訊控制器設有若干個通訊端口;

S3、舵機根據通訊控制器發送的目的舵機ID號進行匹配,當匹配成功時根據舵機控制參數進行舵機控制,其中,舵機一共有若干組,一組舵機通過一個通訊端口連接至通訊控制器;

S4、當上位機需要獲取舵機狀態時,向通訊控制器發送舵機狀態獲取指令和對應的通訊ID;

S5、通訊控制器根據通訊ID映射出目的端口ID和目的舵機ID號,并將目的舵機ID號和上位機發送的數據發送至映射出的目的端口ID對應的通訊端口;

S6、舵機根據通訊控制器發送的目的舵機ID號進行匹配,當匹配成功時根據通訊控制器發送的舵機狀態獲取指令返回當前狀態數據;

S7、通訊控制器將舵機返回的舵機狀態數據和對應的通訊ID上傳至上位機;

S8、上位機接收到舵機狀態數據后根據通訊ID更新舵機狀態。

進一步的,步驟S1具體包括:

S11、當上位機對舵機需要進行控制時,對需要控制的舵機執行路徑規劃;

S12、根據規劃的路徑生成舵機控制參數;

S13、將生成的舵機控制參數加上其對應的通訊ID生成數據包;

S14、將數生成的數據包發送至通訊控制器;

步驟S4具體包括:

S41、當上位機需要獲取舵機狀態時,生成舵機狀態獲取指令;

S42、將舵機狀態獲取指令和對應的通訊ID生成數據包;

S43、將數生成的數據包發送至通訊控制器;

步驟S8具體包括:

S81、將接收的通訊ID,與向通訊控制器發送舵機狀態獲取指令時對應的通訊ID進行匹配,若一致,則匹配成功,否則匹配失敗;

S82、在匹配成功時,更新通訊ID對應的舵機的狀態。

進一步的,步驟S2具體包括:

S21、通訊控制器接收上位機傳輸的數據;

S22、從接收的數據包中,提取出通訊ID,并根據通訊ID映射出目的端口ID和目的舵機ID號;

S23、將上位機發送的舵機控制參數和目的舵機ID號生成數據包;

S24、將生成的數據包發送至映射出的目的端口ID對應的通訊端口;

步驟S5具體包括:

S51、通訊控制器接收上位機傳輸的數據;

S52、從接收的數據包中,提取出通訊ID,并根據通訊ID映射出目的端口ID和目的舵機ID號;

S53、將上位機發送的舵機狀態獲取指令和目的舵機ID號生成數據包;

S54、將生成的數據包發送至映射出的目的端口ID對應的通訊端口;

步驟S7具體包括:

S71、通訊控制器接收舵機通過通訊端口返回的舵機狀態數據和對應的舵機ID;

S72、通訊控制器將接收的舵機ID和接收時采用的通訊端口的端口ID,映射為通訊ID;

S73、通訊控制器將映射的通訊ID和接收的舵機狀態數據打包生成數據包,并發送至上位機。

進一步的,步驟S3具體包括:

S31、舵機接收通訊控制器發送的數據;

S32、舵機從接收的數據中提取出目的舵機ID號,并與當前舵機的ID號進行匹配,若一致,則匹配成功,否則匹配失敗;

S33、在匹配成功,且接收的數據是舵機控制參數時,根據該舵機控制參數對舵機進行控制;

步驟S6具體包括:

S61、舵機接收通訊控制器發送的數據;

S62、舵機從接收的數據中提取出目的舵機ID號,并與當前舵機的ID號進行匹配,若一致,則匹配成功,否則匹配失敗;

S63、在匹配成功,且接收的數據是舵機狀態獲取指令時,將當前舵機的狀態數據發送至數據傳輸單元。

進一步的,所述上位機通過RS422連接通訊控制器,每組舵機通過一個RS485總線連接通訊控制器。

有益效果:本發明與現有技術相比,其顯著優點是:

1.控制難度低、接線簡單;

2.傳輸距離遠、抗干擾能力強;

3.上位機被占資源少,負擔輕;

4.可控制舵機數量多且易于擴展;

5.中繼成本低。

附圖說明

圖1是本發明提供的舵機的分布式控制系統的一個實施例的系統框圖;

圖2是圖1中上位機的單元示意圖;

圖3是圖1中通訊控制器的單元示意圖;

圖4是圖1中舵機的單元示意圖;

圖5是本發明提供的舵機的分布式控制方法的一個實施例的流程示意圖;

圖6是舵機控制流程示意圖;

圖7是舵機狀態數據獲取的流程示意圖。

具體實施方式

如圖1所示,本實施例的舵機的分布式控制系統包括:上位機、通訊控制器和若干組舵機(圖中有三組,每組有N個舵機)。上位機通過RS422連接通訊控制器,每組舵機通過一個RS485總線連接通訊控制器。其中,上位機用于當上位機對舵機需要進行控制時,向通訊控制器發送舵機控制參數和對應的通訊ID,還用于當上位機需要獲取舵機狀態時,向通訊控制器發送舵機狀態獲取指令和對應的通訊ID,以及用于在接收到舵機狀態數據后根據通訊ID更新舵機狀態;通訊控制器設有若干個通訊端口,用于根據通訊ID映射出目的端口ID和目的舵機ID號,并將目的舵機ID號和上位機發送的數據發送至映射出的目的端口ID對應的通訊端口,還用于將舵機返回的舵機狀態數據和對應的通訊ID上傳至上位機;一組舵機通過一個通訊端口連接至通訊控制器,舵機用于根據通訊控制器發送的目的舵機ID號進行匹配,當匹配成功時根據舵機控制參數進行舵機控制,還用于根據通訊控制器發送的舵機狀態獲取指令返回當前狀態數據。本系統中,上位機并不直接參與舵機的實際控制,而是將舵機的控制由舵機本身的控制電路獨立實現,所以舵機控制占用上位機的資源大大減少,減輕了上位機的負擔。

如圖2所示,上位機包括路徑規劃單元、指令生成單元、控制參數生成單元、數據包生成單元、數據傳輸單元、匹配單元和狀態更新的單元。其中,路徑規劃單元用于對需要控制的舵機執行路徑規劃;指令生成單元用于對需要獲取狀態的舵機生成狀態獲取指令;控制參數生成單元用于根據規劃的路徑生成舵機控制參數;數據包生成單元用于將控制參數生成單元生成的舵機控制參數,加上其對應的通訊ID生成數據包(例如,圖1中,1-1表示通訊ID,前面的1表示通訊端口的端口ID,后面的1表示舵機ID),還用于將指令生成單元生成的狀態獲取指令,加上其對應的通訊ID生成數據包;數據傳輸單元用于將數據包生成單元生成的數據包發送至通訊控制器,還用于接收通訊控制器返回的舵機狀態數據和對應的通訊ID;匹配單元用于將數據傳輸單元接收的通訊ID,與向通訊控制器發送舵機狀態獲取指令對應的通訊ID進行匹配,若一致,則匹配成功,否則匹配失敗;狀態更新的單元用于在匹配單元匹配成功時,更新通訊ID對應的舵機的狀態,匹配失敗時丟棄數據。

如圖3所示,通訊控制器包括第一傳輸單元、第一映射單元、第一數據包生成單元、第二傳輸單元、第二映射單元、第二數據包生成單元。其中,第一傳輸單元用于上位機和通訊控制器的數據傳輸;第一映射單元用于從第一傳輸單元接收的數據包中,提取出通訊ID,并根據通訊ID映射出目的端口ID和目的舵機ID號(例如,通訊ID為2-1,映射出通訊端口的端口ID為2,目的舵機ID號為1);第一數據包生成單元用于將上位機發送的數據和目的舵機ID號生成數據包,并發送至第二數據傳輸單元;第二傳輸單元用于將第一數據包生成單元的數據包發送至映射出的目的端口ID對應的通訊端口,還用于接收舵機通過通訊端口返回的舵機狀態數據和對應的舵機ID;第二映射單元用于將第二傳輸單元接收的舵機ID和接收時采用的通訊端口的端口ID,映射為通訊ID;第二數據包生成單元用于將映射的通訊ID和接收的舵機狀態數據打包生成數據包,并發送至第一傳輸單元。

如圖4所示,舵機包括數據傳輸單元、匹配單元、舵機控制單元、舵機狀態獲取單元。其中,數據傳輸單元用于接收通訊控制器發送的數據,以及向通訊控制器返回舵機狀態數據和對應的舵機ID;匹配單元用于從接收的數據中提取出目的舵機ID號,并與當前舵機的ID號進行匹配,若一致,則匹配成功,否則匹配失敗;舵機控制單元用于在匹配單元匹配成功,且接收的數據是舵機控制參數時,根據該舵機控制參數對舵機進行控制;舵機狀態獲取單元用于在匹配單元匹配成功,且接收的數據是舵機狀態獲取指令時,將當前舵機的狀態數據發送至數據傳輸單元。

如圖5所示,本實施例的舵機的分布式控制方法包括步驟:

S1、當上位機對舵機需要進行控制時,向通訊控制器發送舵機控制參數和對應的通訊ID。

具體的,步驟S1包括:S11、當上位機對舵機需要進行控制時,對需要控制的舵機執行路徑規劃;S12、根據規劃的路徑生成舵機控制參數,包括目標位置、速度等參數;S13、將生成的舵機控制參數加上其對應的通訊ID生成數據包;S14、將數生成的數據包發送至通訊控制器。

例如,如圖6所示,當上位機需要對通訊ID為2-1的舵機進行控制時,對該舵機執行路徑規劃;根據規劃的路徑生成舵機控制參數;將生成的舵機控制參數加上其對應的通訊ID2-1生成數據包;將數生成的數據包發送至通訊控制器。

S2、通訊控制器根據通訊ID映射出目的端口ID和目的舵機ID號,并將目的舵機ID號和上位機發送的數據發送至映射出的目的端口ID對應的通訊端口,其中,通訊控制器設有若干個通訊端口。

具體的,步驟S2包括:S21、通訊控制器接收上位機傳輸的數據;S22、從接收的數據包中,提取出通訊ID,并根據通訊ID映射出目的端口ID和目的舵機ID號;S23、將上位機發送的舵機控制參數和目的舵機ID號生成數據包;S24、將生成的數據包發送至映射出的目的端口ID對應的通訊端口。

例如,如圖6所示,通訊控制器接收上位機傳輸的數據;從接收的數據包中,提取出通訊ID 2-1,根據2-1映射出目的端口ID為2和目的舵機ID號為1;將上位機發送的舵機控制參數和目的舵機ID號1生成數據包;將生成的數據包發送至通訊端口2。

S3、舵機根據通訊控制器發送的目的舵機ID號進行匹配,當匹配成功時根據舵機控制參數進行舵機控制,其中,舵機一共有若干組,一組舵機通過一個通訊端口連接至通訊控制器。

具體的,步驟S3具體包括:S31、舵機接收通訊控制器發送的數據;S32、舵機從接收的數據中提取出目的舵機ID號,并與當前舵機的ID號進行匹配,若一致,則匹配成功,否則匹配失敗;S33、在匹配成功,且接收的數據是舵機控制參數時,根據該舵機控制參數對舵機進行控制。

例如,如圖6所示,舵機2-1接收通訊控制器發送的數據;從接收的數據中提取出目的舵機ID號為1,并與當前舵機的ID號1進行匹配,若一致,則匹配成功,否則匹配失敗;在匹配成功,且接收的數據是舵機控制參數時,根據該舵機控制參數對舵機進行控制。

S4、當上位機需要獲取舵機狀態時,向通訊控制器發送舵機狀態獲取指令和對應的通訊ID。

具體的,步驟S4具體包括:S41、當上位機需要獲取舵機狀態時,生成舵機狀態獲取指令;S42、將舵機狀態獲取指令和對應的通訊ID生成數據包;S43、將數生成的數據包發送至通訊控制器。

例如,如圖7所示,當上位機需要獲取通訊ID為2-1的舵機狀態時,生成舵機狀態獲取指令;將舵機狀態獲取指令和2-1生成數據包;將數生成的數據包發送至通訊控制器。

S5、通訊控制器根據通訊ID映射出目的端口ID和目的舵機ID號,并將目的舵機ID號和上位機發送的數據發送至映射出的目的端口ID對應的通訊端口。

具體的,步驟S5具體包括:S51、通訊控制器接收上位機傳輸的數據;S52、從接收的數據包中,提取出通訊ID,并根據通訊ID映射出目的端口ID和目的舵機ID號;S53、將上位機發送的舵機狀態獲取指令和目的舵機ID號生成數據包;S54、將生成的數據包發送至映射出的目的端口ID對應的通訊端口。

例如,如圖7所示,通訊控制器接收上位機傳輸的數據;從接收的數據包中,提取出通訊ID為2-1,根據通訊ID 2-1映射出目的端口ID為2和目的舵機ID號為1;將上位機發送的舵機狀態獲取指令和目的舵機ID號1生成數據包;將生成的數據包發送至通訊端口2。

S6、舵機根據通訊控制器發送的目的舵機ID號進行匹配,當匹配成功時根據通訊控制器發送的舵機狀態獲取指令返回當前狀態數據。

具體的,步驟S6具體包括:S61、舵機接收通訊控制器發送的數據;S62、舵機從接收的數據中提取出目的舵機ID號,并與當前舵機的ID號進行匹配,若一致,則匹配成功,否則匹配失敗,丟棄數據;S63、在匹配成功,且接收的數據是舵機狀態獲取指令時,將當前舵機的狀態數據和當前舵機的ID發送至數據傳輸單元。

例如,如圖7所示,舵機接收通訊控制器發送的數據;從接收的數據中提取出目的舵機ID號為1,與當前舵機的ID號進行匹配,若一致,則匹配成功,否則匹配失敗,丟棄數據;在匹配成功,且接收的數據是舵機狀態獲取指令時,將當前舵機的狀態數據和舵機ID號1發送至數據傳輸單元。

S7、通訊控制器將舵機返回的舵機狀態數據和對應的通訊ID上傳至上位機。

具體的,步驟S7具體包括:S71、通訊控制器接收舵機通過通訊端口返回的舵機狀態數據和對應的舵機ID;S72、通訊控制器將接收的舵機ID和接收時采用的通訊端口的端口ID,映射為通訊ID;S73、通訊控制器將映射的通訊ID和接收的舵機狀態數據打包生成數據包,并發送至上位機。

例如,如圖7所示,通訊控制器接收舵機通過通訊端口2返回的舵機狀態數據和舵機ID 1;通訊控制器將接收的舵機ID 1和接收時采用的通訊端口的端口ID 2,映射為通訊ID 2-1;通訊控制器將映射的通訊ID2-1和接收的舵機狀態數據打包生成數據包,并發送至上位機。

S8、上位機接收到舵機狀態數據后根據通訊ID更新舵機狀態。

具體的,步驟S8具體包括:S81、上位機將接收的通訊ID,與向通訊控制器發送舵機狀態獲取指令時對應的通訊ID進行匹配,若一致,則匹配成功,否則匹配失敗,丟棄數據;S82、在匹配成功時,更新通訊ID對應的舵機的狀態。

例如,如圖7所示,上位機將接收的通訊ID 2-1,與向通訊控制器發送舵機狀態獲取指令時對應的通訊ID 2-1進行匹配,若一致,則匹配成功,否則匹配失敗;在匹配成功時,更新通訊ID 2-1對應的舵機的狀態。

以上所揭露的僅為本發明一種較佳實施例而已,不能以此來限定本發明之權利范圍,因此依本發明權利要求所作的等同變化,仍屬本發明所涵蓋的范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 大田县| 博罗县| 邹平县| 衡水市| 喀喇| 桓仁| 孙吴县| 汕头市| 都兰县| 扬州市| 济源市| 雅安市| 同心县| 兰州市| 宁波市| 邵阳市| 西吉县| 河西区| 新津县| 松滋市| 花垣县| 田阳县| 涪陵区| 亚东县| 青铜峡市| 芮城县| 扶余县| 宁明县| 电白县| 北流市| 嘉黎县| 昭苏县| 特克斯县| 铁力市| 睢宁县| 新宁县| 海伦市| 宁强县| 沙田区| 威信县| 加查县|