Chọn chƣơng trình viết giao diện của máy đo áp suất thủy động

Một phần của tài liệu Luận văn: Nghiên cứu thiết kế và chế tạo máy đo áp suất của ổ đỡ thuỷ động có kết nối máy tính. pptx (Trang 162 - 178)

2. Tính toán và thiết kế các chi tiết bộ phạn của máy BKM-10

4.2. Chọn chƣơng trình viết giao diện của máy đo áp suất thủy động

Một số lý do để chọn Visual Basic làm ngôn ngữ thảo chƣơng trình: - Dễ học

- Thíc hợp cho MS WINDOWS

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 162

a. Hộp công cụ

Hộp công cụ là bảng chứa các điều khiển và ta thiết kế giao diện ngƣời sử dụng bằng cách chọn các điều khiển từ hộp công cụ và đƣa chúng vào các biểu mẫu.

Một số điều khiển có sẵn trong Visual basic và không thể gỡ bỏ khỏi hộp công cụ. Một số khác nằm bên ngoài Visual basicvà chứa trong các tập tin mà có phần mở rộng là. ocx. Các điều khiển này có thể đƣợc thêm vào hoặc gỡ bỏ khỏi thanh công cụ.

Trong chƣơng trình của đề tài cần tập tin mở rộng là NTgraph.ocx điều khiển này cho phép tạo một đồ thị trên form chính. Ngoài ra cần thêm vào thanh công cụ phần Mscomm1. Để sử dụng ta tìm file Ntgraph.ocx trên trang chủ sau đó paste và system32 trên giao diện của VB chọn menu project -> components cửa sổ components hiện ra ta sẽ tìm và chọn các công cụ trên.

Bộ môn: Máy và ma sát học Đồ án tốt nghiệp

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 163

b. Vẽ đồ thị với NTgraph.

Đây là một điều khiển OCX tạo ra một đồ thị 2D với tọa độ X,Y đƣợc tính toán, điều chỉnh nhập vào từ bên ngoài có thể lấy từ tín hiệu qua cổng COM, LPT, Card giao tiếp PC.

Hình 4.4 NTgraph active

Để vẽ đồ thị ta cũng có thể dùng Teechart nhƣng phức tạp hơn mà phải trả phí. Với NTgraph thì giao thức đơn giản và phù hợp với tín hiệu 2 trục mà ta cần trong đề tài này.

Trong NTgraph ta có thể đặt các thuộc tính màu sắc đƣờng nét, trục tọa độ, tạo thêm nhiều đƣờng hiển thị khác…

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 164

Hình 4.5 Bảng lựa chọn chế độ vẽ đồ thị

Ta có thể sử dụng code để áp đặt thuộc tính cho đồ thị: Graph.Caption = “ ” - tiêu đề của đồ thị.

.Xlabel = “ ” – tiêu đề trục X. .Ylabel = “ ” – tiêu đề trục Y.

.PlotAreaColor = (red, green, black, white) - màu nền đồ thị. .XgridNumber - vạch chia trên trục X.

.YgridNumber - vạch chia trên trục Y.

.SetRange(xmin, xmax, ymin, ymax) – đặt dải tọa độ trên các trục.

Bộ môn: Máy và ma sát học Đồ án tốt nghiệp

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 165

.ClearGraph – xóa đồ thị.

Để nhận và vẽ đồ thị từ tín hiệu cảm biến chuột máy tính ta cần khai báo các hàm, lệnh liên kết với windows.

c. Code chƣơng trình giao diện máy đo áp suất

Dim MotorDir As Boolean Dim AD As FIFO

Dim PD As FIFO

Dim InputData As BYTEFIFO Dim NumberStepValue As String Dim Vel As String

Private Sub ExcelSave_Click() 'oXL.oWB.ORng

Dim oXL As Excel.Application Dim oWB As Excel.Workbook Dim oSheet As Excel.Worksheet Dim oRng As Excel.Range Vel = "0"

' Start Excel and get Application object.

Set oXL = CreateObject("Excel.Application") oXL.Visible = True

' Get a new workbook.

Set oWB = oXL.Workbooks.Add Set oSheet = oWB.ActiveSheet

' Add table headers going cell by cell. oSheet.Cells(1, 1).Value = "Lan Do" oSheet.Cells(1, 2).Value = "Goc" oSheet.Cells(1, 3).Value = "Ap Suat"

' Format A1:D1 as bold, vertical alignment = center. With oSheet.Range("A1", "C1")

.Font.Bold = True

.VerticalAlignment = xlVAlignCenter End With

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 166

' Create an array to set multiple values at once. Dim size As Integer

Dim i As Integer AD.ResetReadIndex PD.ResetReadIndex i = 2

Do While Not AD.IsEmpty oSheet.Cells(i, 1).Value = i - 1 oSheet.Cells(i, 2).Value = AD.Pop oSheet.Cells(i, 3).Value = PD.Pop i = i + 1

Loop

' Fill A2:B6 with an array of values (First and Last Names). 'oSheet.Range("A2", "C6").Value = Result

Set oRng = oSheet.Range("A1", "C1") oRng.EntireColumn.AutoFit

' Make sure you release object references. Set oRng = Nothing

Set oSheet = Nothing Set oWB = Nothing Set oXL = Nothing

Exit Sub Err_Handler:

MsgBox Err.Description, vbCritical, "Error: " & Err.Number End Sub

Private Sub CandyButton1_Click() Unload Me

End End Sub

Private Sub ClearCmd_Click() CmdText.Text = ""

Bộ môn: Máy và ma sát học Đồ án tốt nghiệp

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 167

Private Sub Excel_Click() 'oXL.oWB.ORng

Dim oXL As Excel.Application Dim oWB As Excel.Workbook Dim oSheet As Excel.Worksheet Dim oRng As Excel.Range

' Start Excel and get Application object.

Set oXL = CreateObject("Excel.Application") oXL.Visible = True

' Get a new workbook.

Set oWB = oXL.Workbooks.Add Set oSheet = oWB.ActiveSheet

' Add table headers going cell by cell. oSheet.Cells(1, 1).Value = "Lan Do" oSheet.Cells(1, 2).Value = "Goc" oSheet.Cells(1, 3).Value = "Ap Suat"

' Format A1:D1 as bold, vertical alignment = center. With oSheet.Range("A1", "C1") .Font.Bold = True .VerticalAlignment = xlVAlignCenter End With Dim i As Integer AD.ResetReadIndex PD.ResetReadIndex i = 2

Do While Not AD.IsEmpty oSheet.Cells(i, 1).Value = i - 1

oSheet.Cells(i, 2).Value = AD.Pop * 0.9 oSheet.Cells(i, 3).Value = PD.Pop * 25 / 1023 i = i + 1

Loop

' Fill A2:B6 with an array of values (First and Last Names). 'oSheet.Range("A2", "C6").Value = Result

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 168

Set oRng = oSheet.Range("A1", "C1") oRng.EntireColumn.AutoFit

' Make sure you release object references. Set oRng = Nothing

Set oSheet = Nothing Set oWB = Nothing Set oXL = Nothing Exit Sub

Err_Handler:

MsgBox Err.Description, vbCritical, "Error: " & Err.Number End Sub

Private Sub Form_Load() Set PD = New FIFO Set AD = New FIFO

Set InputData = New BYTEFIFO Dim cnttemp As Integer

PD.Reinitialize AD.Reinitialize InputData.Reinitialize InputData.SetSpecialData ("z") NumberStepValue = "1" PWMScroll.Enabled = True PWMScroll.Min = 0 PWMScroll.Max = 255 PWMScroll.Value = 0 ComList.AddItem "COM1" ComList.AddItem "COM2" ComList.AddItem "COM3" ComList.AddItem "COM4" ComList.AddItem "COM5" ComList.ListIndex = 0 For cnttemp = 0 To 255 PWMValue.AddItem Str(cnttemp) Next cnttemp PWMValue.ListIndex = 0 For cnttemp = 1 To 400

Bộ môn: Máy và ma sát học Đồ án tốt nghiệp

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 169

StepNumber.AddItem Str(cnttemp * 0.9) Next cnttemp

StepNumber.ListIndex = 0

MotorDir = True

'ConnectStt.Caption = "Chua Ket Noi"

With Graph

.PlotAreaColor = vbBlack .FrameStyle = BITMAP

.Caption = " Do Thi Goc-Apsuat" .XLabel = "Goc (Do)"

.YLabel = "Ap Suat (mBar)" .ClearGraph .ElementLineColor = RGB(255, 255, 0) .XGridNumber = 19 .YGridNumber = 15 .GridColor = RGB(100, 100, 100) .ShowGrid = True .ElementWidth = 1 .ElementLinetype = Solid .SetRange 0, 380, 0, 30 End With Timer1.Interval = 50

' disable all button when the comport is not already connected Timer1.Enabled = False PWM.Enabled = False Direction.Enabled = False Dir.Enabled = False PWMValue.Enabled = False Command.Enabled = False SaveGraph.Enabled = False ClearGraph.Enabled = False PWMScroll.Enabled = False StartProcess.Enabled = False StepButton.Enabled = False StopMove.Enabled = False

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 170 Excel.Enabled = False CmdText.Enabled = False PWMValue.Enabled = False Label2.Enabled = False SendStt.Enabled = False StepNumber.Enabled = False Connect.ColorButtonUp = &HFF& RefreshGraph.Enabled = False ClearCmd.Enabled = False End Sub

Private Sub PWM_Click()

Vel = Trim$(PWMValue.Text) PWMScroll.Value = Val(Vel) End Sub

Private Sub CmdText_Click() On Error GoTo ErrHandle SendStt = "Wait"

Exit Sub ErrHandle:

If Err.Number = 8018 Then MsgBox "Loi: Chua chon cong COM!" End Sub

Private Sub ClearGraph_Click() With Graph

.ClearGraph End With

End Sub

Private Sub Command_Click() On Error GoTo ErrHandle If CmdText.Text = "" Then SendStt = "Error"

MsgBox ("Error:Khong Co du lieu") Exit Sub Else Me.RS232Com.Output = CmdText.Text SendStt = "Done" End If Exit Sub

Bộ môn: Máy và ma sát học Đồ án tốt nghiệp

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 171

ErrHandle:

If Err.Number = 8018 Then MsgBox "Loi: Chua chon cong COM!" End Sub

Private Sub Connect_Click() Dim Rs232ComId As Byte Rs232ComId = 0

If ComList.Text = "COM1" Then Rs232ComId = 1

ElseIf ComList.Text = "COM2" Then Rs232ComId = 2

ElseIf ComList.Text = "COM3" Then Rs232ComId = 3

ElseIf ComList.Text = "COM4" Then Rs232ComId = 4

ElseIf ComList.Text = "COM5" Then Rs232ComId = 5

End If

If RS232Com.PortOpen Then RS232Com.PortOpen = False On Error GoTo ErrHandle

If Not Rs232ComId = 0 Then

RS232Com.CommPort = Rs232ComId RS232Com.Settings = "9600,N,8,1" Me.RS232Com.RThreshold = 1 RS232Com.InputLen = 1 RS232Com.PortOpen = True Me.RS232Com.Output = "a" Timer1.Enabled = True PWM.Enabled = True Direction.Enabled = True Dir.Enabled = True PWMValue.Enabled = True Command.Enabled = True SaveGraph.Enabled = True ClearGraph.Enabled = True PWMScroll.Enabled = True StartProcess.Enabled = True StepButton.Enabled = True StopMove.Enabled = True Excel.Enabled = True

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 172 CmdText.Enabled = True PWMValue.Enabled = True Label2.Enabled = True SendStt.Enabled = True StepNumber.Enabled = True Connect.ColorButtonUp = &H404000 RefreshGraph.Enabled = True ClearCmd.Enabled = True Else

MsgBox ("Chua Chon Cong Com") 'ConnectStt.Caption = "Chua Ket Noi" Timer1.Enabled = False PWM.Enabled = False Direction.Enabled = False Dir.Enabled = False PWMValue.Enabled = False Command.Enabled = False SaveGraph.Enabled = False ClearGraph.Enabled = False PWMScroll.Enabled = False StartProcess.Enabled = False StepButton.Enabled = False StopMove.Enabled = False Excel.Enabled = False CmdText.Enabled = False PWMValue.Enabled = False Label2.Enabled = False SendStt.Enabled = False StepNumber.Enabled = False Connect.ColorButtonUp = &HFF& ClearCmd.Enabled = False End If Exit Sub ErrHandle:

'ConnectStt.Caption = "Chua Ket Noi"

If Err.Number = 8002 Then MsgBox "Error: Thiet bi chua ket noi hoac chua bat nguon !"

If Err.Number = 8018 Then MsgBox "Error: Chi gui duoc khi thiet di da san sang!"

Bộ môn: Máy và ma sát học Đồ án tốt nghiệp

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 173

Timer1.Enabled = False PWM.Enabled = False Direction.Enabled = False Dir.Enabled = False PWMValue.Enabled = False Command.Enabled = False SaveGraph.Enabled = False ClearGraph.Enabled = False PWMScroll.Enabled = False StartProcess.Enabled = False StepButton.Enabled = False StopMove.Enabled = False Excel.Enabled = False CmdText.Enabled = False PWMValue.Enabled = False Label2.Enabled = False SendStt.Enabled = False Connect.ColorButtonUp = &HFF& RefreshGraph.Enabled = False ClearCmd.Enabled = False End Sub

Private Sub Direction_Click() On Error GoTo ErrHandle MotorDir = Not MotorDir If Not MotorDir Then Dir.Text = "Trai" Me.RS232Com.Output = "aAzaRz" Else Dir.Text = "Phai" Me.RS232Com.Output = "aBzaRz" End If Exit Sub ErrHandle:

If Err.Number = 8018 Then MsgBox "Error: Chua chon cong COM!" End Sub

Private Sub PWMScroll_Change()

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 174

End Sub

Private Sub PWMValue_Change()

PWMScroll.Value = Val(PWMValue.Text) End Sub

Private Sub RefreshGraph_Click() Graph.SetRange 0, 380, 0, 30 End Sub

Private Sub RS232Com_OnComm() Dim tempstr As String

If Me.RS232Com.CommEvent = comEvReceive Then tempstr = RS232Com.Input

InputData.Push (tempstr) End If

End Sub

Private Sub SaveGraph_Click() Graph.PrintGraph

End Sub

Private Sub StartProcess_Click() On Error GoTo ErrHandle If Dir.Text = "Trai" Then

Me.RS232Com.Output = "aAz" Else

Me.RS232Com.Output = "aBz" End If

Me.RS232Com.Output = "aD" + Vel + "zaT" + NumberStepValue + "zaEzaRz"

Exit Sub ErrHandle:

If Err.Number = 8018 Then MsgBox "Error: Chua Ket Noi Thiet Bi!" End Sub

Private Sub StepButton_Click()

NumberStepValue = Str(StepNumber.ListIndex + 1) End Sub

Bộ môn: Máy và ma sát học Đồ án tốt nghiệp

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 175

Private Sub StopMove_Click() On Error GoTo ErrHandle

Me.RS232Com.Output = "aD0zaRz" PWMValue.Text = "0"

Exit Sub ErrHandle:

If Err.Number = 8018 Then MsgBox "Error: Chua Ket Noi Thiet Bi!" End Sub

Private Sub ComInputDecoder() Dim Temp As String

Dim Value As Long

'Ma du lieu gui ve: aX[data]Y[data]z '#define _REPORT_AD 'X' // '#define _REPORT_PD 'Y' // If InputData.CheckData Then ' Go to the Starting code Temp = InputData.Pop Do While Not Temp = "a" Temp = InputData.Pop Loop

' Get the next cmd code Temp = InputData.Pop Value = 0

If Temp = "X" Then Temp = InputData.Pop Do While Not Temp = "Y"

Value = Value * 10 + Val(Temp) Temp = InputData.Pop

Loop

AD.Push (Value) Value = 0

Temp = InputData.Pop Do While Not Temp = "z"

Value = Value * 10 + Val(Temp) Temp = InputData.Pop

Loop

PD.Push (Value) Else

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 176

End If End If End Sub

Private Sub Timer1_Timer() ComInputDecoder

If Not AD.IsEmpty And Not PD.IsEmpty Then

Graph.PlotXY AD.Pop * 0.9, PD.Pop * 25 / 1023, 0 End If

Bộ môn: Máy và ma sát học Đồ án tốt nghiệp

Thực hiện:Nguyễn Tiến Long_Vũ Hoàng Thanh_Nguyễn Tiến Thành 177

CHƢƠNG V: NGHIÊN CỨU THỰC NGHIỆM MÁY ĐO ÁP SUẤT Ổ ĐỠ THỦY ĐỘNG BKM-10

5.1. Sơ đồ độngvà nguyên lý hoạt động của máy BKM-10 5.1.1. Sơ đồ động của máy

Một phần của tài liệu Luận văn: Nghiên cứu thiết kế và chế tạo máy đo áp suất của ổ đỡ thuỷ động có kết nối máy tính. pptx (Trang 162 - 178)

Tải bản đầy đủ (PDF)

(194 trang)