一模型實體圖和工作原理_第1頁
一模型實體圖和工作原理_第2頁
一模型實體圖和工作原理_第3頁
一模型實體圖和工作原理_第4頁
一模型實體圖和工作原理_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、一.模型實體圖和工作原理1.模型實體圖:圖(1)圖(2)圖(3)圖(4)圖(5)圖(6)2.工作原理:1. 開始:圖(1)按開始按鈕后機器人由電機1轉(zhuǎn)動而向前運動,機器人一直動到行程開關(guān)5碰撞到樓梯.2. 機構(gòu)上升:圖(2)當(dāng)行程開關(guān)5碰撞到樓梯后,電機1停止運動;電機2和電機3正轉(zhuǎn)而令機構(gòu)上升!當(dāng)機構(gòu)上升到最頂端時機構(gòu)碰撞到行程開關(guān)1和3令電機2和電機3停止轉(zhuǎn)動,機構(gòu)上升結(jié)束.3. 前進(jìn):圖(3)機構(gòu)上升結(jié)束后最頂端碰撞到行程開關(guān)1和3時指令電機4轉(zhuǎn)動.機器人向前運動.4. 機構(gòu)下降: 圖(4)機器人向前運動到一定距離后程開關(guān)6碰撞到樓梯后指令電機4停止轉(zhuǎn)動.并開啟電機2和3反轉(zhuǎn)從而機構(gòu)下降

2、,下降到最底時碰撞到行程開關(guān)2和4令電機2和電機3停止轉(zhuǎn)動,回復(fù)到爬梯前狀態(tài),準(zhǔn)備下一次爬梯動作.5. 前進(jìn): 圖(5)這步和開始的一樣功能.6. 停止: 當(dāng)完成爬梯梯任務(wù)后機器人繼續(xù)向前運動直到行程開關(guān)7碰撞到終點擋板,機器人停止工作.二.遠(yuǎn)程控制系統(tǒng)工作原理1.系統(tǒng)組成:1. 服務(wù)器端:直接控制模型運動的控制中心,這里指直接控制模型的計算機,通過串口(COM)與接口板進(jìn)行信息交流,以及在計算機內(nèi)部進(jìn)行算法運算,以此來控制模型運動2. 客戶端:間接控制模型運動的控制平臺,這里指間接控制模型的計算機,通過TCP協(xié)議與服務(wù)器端進(jìn)行信息交流,以及通過服務(wù)器對模型運動進(jìn)行控制這里的信息交流是指最低層

3、的二進(jìn)制數(shù)據(jù)(byte)傳輸(模擬量和數(shù)字量之間的轉(zhuǎn)換),具體通過程序來控制,因為主要的原理是通過類似于單片機的控制,所以對模型的控制不一定只使用串口(COM),可采用其他連接手段,只要最后合乎慧魚公司的控制要求就行了通過TCP協(xié)議來做遠(yuǎn)程控制,是采用類似于互聯(lián)網(wǎng)的信息交流,通過客戶端和服務(wù)器端的bytes 傳輸和服務(wù)器端的算法運算就可以實現(xiàn)基本的模型控制功能了在不同的信息傳輸之間,存在緩沖區(qū),緩沖區(qū)的作用是將輸入輸出的數(shù)據(jù)暫時儲存,等待傳輸,因為例如在進(jìn)行COM 口兩端的信息交流時,數(shù)據(jù)流的轉(zhuǎn)換和計算機本身傳輸不同步,如果沒有緩沖區(qū)就出現(xiàn)數(shù)據(jù)傳輸?shù)膩G失和覆蓋,所以開發(fā)程序和通過接口板控制模型

4、的時候要注意數(shù)據(jù)流的傳輸3. 模型運動:可以通過遠(yuǎn)程控制實現(xiàn)當(dāng)機器人撞到樓梯后能自動進(jìn)行爬樓梯,達(dá)到目的之后能自動停止工作.2.遠(yuǎn)程控制系統(tǒng)圖:三.計算機與接口板的通訊1.接口板處理器操作模式:接口板的微處理器有兩種操作模式:1.被動模式:程序的處理由計算機完成,接口與計算機的連接電纜不能斷開,在每個程序周期中,接口采集來自數(shù)字量和模擬量輸入端的數(shù)值然后送給計算機,計算機再把數(shù)字量的輸出值傳送給接口板,接口板上的微處理器按要求操作相連的電機、燈和電磁鐵2.主動模式:程序由接口板的微處理器進(jìn)行處理,而接口板與計算機的連線要斷開。接口板的微處理器的計算能力遠(yuǎn)小于計算機的計算能力,對于旨在捕獲快速計

5、算脈沖的大程序,微處理器便無法累計全部脈沖,這樣的程序只能在被動模式下進(jìn)行處理本設(shè)計是實現(xiàn)爬樓梯機器人的自動和手動控制,所以有較大的程序處理,接口板處理器操作模式應(yīng)采用被動模式,并且不設(shè)定程序掉電保護(hù)功能2.計算機與接口板的通訊:1. 計算機通過COM 口與 接口板進(jìn)行信息交流,慧魚公司規(guī)定控制端口的參數(shù)為波特率為9600,位數(shù)為8位,效驗為無,停止位為1,參數(shù)的設(shè)定在程序開發(fā)的時候會編寫確定2. 慧魚公司規(guī)定COM 口與接口板的通信格式為兩個字節(jié),第一字節(jié)是接口命令,控制接口發(fā)送內(nèi)容作為應(yīng)答,第二個字節(jié)規(guī)定哪個電機以什么方向轉(zhuǎn)動,簡單的說就是第一個字節(jié)是當(dāng)行程開關(guān)、感應(yīng)器等有反應(yīng)而發(fā)出信號給

6、接口板,接口板接收并且記錄,等待計算機的查詢;而第二個字節(jié)是計算機發(fā)送命令到接口板,接口板微處理器分析并且向電機、燈等發(fā)送信息,控制它們工作3.接口板有接收第一字節(jié)命令的E1-E8 ,模擬量EX和EY的接口,選擇E1-E8時,應(yīng)答為一字節(jié),而選擇E1-E8 ,和模擬量EX或EY時,應(yīng)答為三字節(jié),其中1字節(jié)為E1-E8輸入,2,3字節(jié)為EX或EY,在本設(shè)計中只需選擇E1-E8,應(yīng)答為一字節(jié)4. 在程序開發(fā)中,主要是使用byte 數(shù)組來實現(xiàn)2中的兩個字節(jié)控制和3中的接收應(yīng)答,簡言之:定義一個一維二項數(shù)組 ACT(2),其中ACT(0)來告訴接口板使用E1-E8接口,ACT(1)來告訴接口板控制什么

7、電機,怎樣控制定義一個一維不定數(shù)組 RTC(),其中從E1-E8接收到的命令儲存在RTC()中具體數(shù)據(jù)定義見下表:十六進(jìn)制規(guī)定(回送內(nèi)容)ACT()C1E1-E8&HC1位(n)規(guī)定ACT()1開始(M1)24機構(gòu)上升(M2)162機構(gòu)上升(M3)47上升后前進(jìn)(M4)1285機構(gòu)上升(M2)163機構(gòu)上升(M3)8如果同時控制多個電機,可將ACT()相應(yīng)值相加,或者制造多個數(shù)組分別發(fā)送位(n)RTC()11223448516632764注:行程開關(guān)的具體控制功能請看下面程序說明同理如果多個接口同時回送內(nèi)容,則RTC()的值為相應(yīng)值相加接口板每300 ms需要一次命令的刷新,否則電機會停止,所

8、以要不斷地向接口板發(fā)信號四.服務(wù)器端程序開發(fā)1.程序開發(fā)軟件:Visual Basic 6.0 ,VB是一種面向過程的解釋性編程語言,是較高級的編程語言,在進(jìn)行程序開發(fā)時,對模型控制使用了MSCOMM 控件,對遠(yuǎn)程控制使用了WINSOCK 控件,下面會有詳細(xì)介紹.2.程序由三個主要普通窗體組成1 迎窗體,主要用來介紹軟件的制作成員和模型名稱。2模型操作面板(主窗體)和設(shè)置面板,主要用來控制模型運動和信息反饋。3.關(guān)閉系統(tǒng)時的感謝面板3.服務(wù)端程序設(shè)計和注釋1.為了提高程序的開發(fā)和維護(hù)效率,所以創(chuàng)建了兩個模塊:運算模塊Module1和函數(shù)模塊Module2a. 運算模塊Module1Global

9、 COMP As IntegerGlobal Rtr() As Byte是接收應(yīng)答的函數(shù)數(shù)組Global Act1(2) As Byte控制電機1運動Global Act2(2) As Byte控制電機2正轉(zhuǎn)Global Act3(2) As Byte控制電機3正轉(zhuǎn)Global Act20(2) As Byte控制電機2反轉(zhuǎn)Global Act30(2) As Byte控制電機3反轉(zhuǎn)Global Act4(2) As Byte控制電機4運動Global Const Controltime = 20時鐘控件值Global strData As Stringb. 運算模塊Module1Public

10、 Declare Function GetTickCount Lib kernel32 () As Long用于延時Sub timedelay(DT As Long)Dim TT As LongTT = GetTickCount()Do DoEvents If GetTickCount - TT = DTEnd Sub2. 控制系統(tǒng)一共有三個窗體:a. 歡迎窗體程序設(shè)計Private Sub Form_Click()Unload Meserver.ShowEnd SubPrivate Sub Form_Unload(Cancel As Integer)server.ShowEnd SubPri

11、vate Sub Timer1_Timer()Unload MeEnd Subb. 感謝窗體程序設(shè)計Private Sub Form_Click()Unload MeEnd SubPrivate Sub Timer1_Timer()Unload MeEnd Subc. 控制窗體程序設(shè)計Private Sub Command1_Click()用于清除接受命令的內(nèi)容txtReceive.Text = End SubPrivate Sub Form_Unload(Cancel As Integer)關(guān)閉遠(yuǎn)程控制并打開感謝窗Winsock2.Closethank.ShowEndEnd SubPriva

12、te Sub listen_Click()遠(yuǎn)程控制的聯(lián)接If Winsock2.State sckClosed Then Winsock2.CloseWinsock2.LocalPort = Val(txtport.Text) 設(shè)置通訊端口號碼Winsock2.listen 開始聆聽ControlComm.Settings = 9600,n,8,1ControlComm.CommPort = Val(txtcom.Text)ControlComm.PortOpen = Truetimedelay 100Me.Caption = oldCaption & 聆聽中。listen.Enabled =

13、 FalseIf txtport.Text = ThenMsgBox 請輸入端口號!, vbOKOnly, 提示listen.Enabled = TrueEnd IfEnd SubPrivate Sub stop_Click()Winsock2.Close 關(guān)閉連接End 結(jié)束系統(tǒng)End SubPrivate Sub Winsock2_Close()當(dāng)客戶端中斷時txtReceive.Text = txtReceive.Text & 對方執(zhí)行中斷! & vbCrLftxtReceive.SelLength = Len(txtReceive.Text)Winsock2.CloseWinsock2

14、.listenMe.Caption = oldCaption & -聆聽中。passion.Enabled = FalseEnd SubPrivate Sub Winsock2_ConnectionRequest(ByVal requestID As Long)If Winsock2.State sckClosed Then Winsock2.CloseWinsock2.Accept requestIDMe.Caption = oldCaption & 連接中。passion.Enabled = TrueEnd SubPrivate Sub Form_Load()passion.AddItem

15、 開始passion.AddItem 機構(gòu)上升passion.AddItem 一次前進(jìn)passion.AddItem 機構(gòu)下降passion.AddItem 二次前進(jìn)passion.AddItem 停止passion.Enabled = FalsetxtReceive.Enabled = TrueEnd SubPrivate Sub Winsock2_DataArrival(ByVal bytesTotal As Long)Winsock2.GetData strDataSelect Case strDataCase Is = 自動控制選擇AutotxtReceive.Text = txtRe

16、ceive.Text & 自動控制選擇 & vbCrLfCase Is = 手動控制選擇txtReceive.Text = txtReceive.Text & 手動控制選擇 & vbCrLfManupassion.Enabled = TrueCase Is = 開始 電機1工作,車向前走passion.Selected(0) = TrueAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.Enabled = TrueCase 機構(gòu)上升 設(shè)電機2和3正轉(zhuǎn),機構(gòu)上升,實現(xiàn)爬梯Timer01.Interval = Controlt

17、imepassion.Selected(1) = TrueAct2(0) = &HC1Act3(0) = &HC1Act2(1) = 16Act3(1) = 4Timer2.Interval = ControltimeTimer3.Interval = ControltimeTimer1.Enabled = FalseTimer2.Enabled = TrueTimer3.Enabled = TrueCase 一次前進(jìn) 電機4工作,車向前走passion.Selected(2) = TrueAct4(0) = &HC1Act4(1) = 128Timer4.Interval = Control

18、timeTimer4.Enabled = TrueTimer2.Enabled = FalseTimer3.Enabled = FalseCase 機構(gòu)下降 電機2和3反轉(zhuǎn),機構(gòu)下降,回復(fù)到爬梯前狀態(tài)passion.Selected(3) = TrueAct20(0) = &HC1Act30(0) = &HC1Act20(1) = 32Act30(1) = 8Timer20.Interval = ControltimeTimer30.Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueTimer4.Enabled

19、= FalseCase 二次前進(jìn) 電機1工作,車向繼續(xù)向前走,準(zhǔn)備下一次爬梯passion.Selected(4) = TrueAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.Enabled = TrueTimer20.Enabled = FalseTimer30.Enabled = FalseCase 停止passion.Selected(5) = TrueTimer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled =

20、 FalseTimer20.Enabled = FalseTimer30.Enabled = FalseCase 急停Timer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalseIf Rtr(0) 10 Then Winsock2.SendData attCase 重置Timer5.Enabled = FalseTimer6.Enabled = TrueAct20(0) = &HC1Act

21、30(0) = &HC1Act20(1) = 32Act30(1) = 8Timer20.Interval = ControltimeTimer30.Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueEnd SelectEnd SubPrivate Sub Timer1_Timer()控制電機1運動With ControlComm.Output = Act1Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer2_Timer()

22、控制電機2正轉(zhuǎn)With ControlComm.Output = Act2Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer20_Timer()控制電機2反轉(zhuǎn)With ControlComm.Output = Act20Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer30_Timer()控制電機3反轉(zhuǎn)With ControlComm.Output = Act30Do While .InBufferCount 1 D

23、oEventsLoopEnd WithEnd SubPrivate Sub Timer3_Timer()控制電機3正轉(zhuǎn)With ControlComm.Output = Act3Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer4_Timer()控制電機4運動With ControlComm.Output = Act4Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer6_Timer() 手動控制時行程開關(guān)的控制Do

24、While ControlComm.InBufferCount 1DoEventsLoopRtr() = ControlComm.InputIf Rtr(0) = 1 Then Timer3.Enabled = False第1個行程開關(guān)的值, 上升結(jié)束后機構(gòu)接觸的行程開關(guān)If Rtr(0) = 2 Then Timer30.Enabled = False第2個行程開關(guān)的值If Rtr(0) = 4 Then Timer2.Enabled = False第3個行程開關(guān)的值, 上升結(jié)束后機構(gòu)接觸的行程開關(guān)If Rtr(0) = 8 Then Timer20.Enabled = False第4個行程

25、開關(guān)的值If Rtr(0) = 26 ThenTimer1.Enabled = FalseWinsock2.SendData 前進(jìn)結(jié)束。End IfIf Rtr(0) = 37 ThenTimer4.Enabled = FalseWinsock2.SendData 二次前進(jìn)結(jié)束。End IfIf Rtr(0) = 5 Then 上升結(jié)束后機構(gòu)接觸的行程開關(guān)1和3值和Timer2.Enabled = FalseTimer3.Enabled = FalseWinsock2.SendData 上升結(jié)束.End IfIf Rtr(0) = 10 Then 下降結(jié)束后機構(gòu)接觸的行程開關(guān)2和4值和Time

26、r30.Enabled = FalseTimer20.Enabled = FalseWinsock2.SendData 下降結(jié)束。End IfIf Rtr(0) = 74 ThenTimer1.Enabled = FalseTimer2.Enabled = FalseTimer4.Enabled = FalseTimer3.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalsesenData1 = manustopWinsock2.SendData senData1End Ifa.Caption = Rtr(0)End Sub

27、Private Sub Timer5_Timer() 自動控制時行程開關(guān)的控制Do While ControlComm.InBufferCount 1DoEventsLoopRtr() = ControlComm.InputIf Rtr(0) = 26 Then Timer1.Enabled = FalseAct2(0) = &HC1Act3(0) = &HC1Act2(1) = 16Act3(1) = 4Timer2.Interval = ControltimeTimer3.Interval = ControltimeTimer2.Enabled = TrueTimer3.Enabled =

28、 TrueTimer4.Enabled = FalseEnd IfIf Rtr(0) = 5 ThenAct4(0) = &HC1Act4(1) = 128Timer4.Interval = ControltimeTimer4.Enabled = TrueTimer2.Enabled = FalseTimer3.Enabled = FalseEnd IfIf Rtr(0) = 37 ThenTimer4.Enabled = FalseAct20(0) = &HC1Act30(0) = &HC1Act20(1) = 32Act30(1) = 8Timer20.Interval = Control

29、timeTimer30.Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueTimer4.Enabled = FalseEnd IfIf Rtr(0) = 10 ThenAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.Enabled = TrueTimer4.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalseEnd IfIf Rtr(0) = 74 ThenTimer1.Enabled = FalseTimer2.Enabled = FalseTimer4.Enabled = FalseTimer3.Enabled = FalseTimer20.Enabl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論