SƠ ĐỒ MẠCH KHỐI GIAO TIẾP

Một phần của tài liệu đồ án cơ điện tử thiết kế mô hình cấp phôi tự động (Trang 71 - 138)

Truyền thông nối tiếp không đồng bọ theo chuẩn RS 232 có mức logic 1 và 0 tương ứng với điện áp -12V và +12V. Trong khi đó các linh kiện sử dụng trong họ vi điều khiển có các mức logic 1 và 0 tương ứng với các mức điện áp 5V và

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

0V. Vì vậy để truyền thông nối tiếp không đồng bộ theo chuẩn RS 232 giữa máy tính PC và vi điều khiển ta phải dùng linh kiện trung gian để biến đổi điện áp cho tương thích.

Trong mạch sử dụng linh kiện chuyên dụng MAX 232.

MAX 232 có 2 kênh, mỗi kênh có 1 cặp tín hiệu vào và ra. Kê nh 1 có ( R1 IN, T1 IN và R1 OUT, T1 OUT). Kênh 2 có ( R2 IN, T2 IN và R2 OUT, T2 OUT).

MAX 232 mắc theo sơ đồ không đổi trong mọi ứng dụng theo quy định của nhà sản xuất.

Sơđồ chân của MAX 232

Dưới đây là sơ đồ mạch khối nối tiếp hoàn chỉnh dùng MAX 232.

Trong mạch sử dụng cả 2 đường RXD và TXD của kênh 1 kết nối với COM1 (DB9) trên PC.

Khi sử dụng theo nguyên tắc truyền thông nối tiếp các dây tham khảo

truyền số liệu và dây nối đất của nguồn được tách riêng để đảm bảo độ tin cậy

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Sơđồ mạch khối nối tiếp giữa PC và vi điều khiển.

III. SƠĐỒ MẠCH BỘ CHUYỂN ĐỔI ADC 809

Bộ chuyển đổi ADC 809 dùng để chuyển đổi tín hiệu tương tự (analog ) thành tín hiệu số ( digital ) để truyền tín hiệu về vi điều khiển vị trí hiện tại của tay máy.

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Bộ chuyển đổi ADC 809 có 8 kênh đầu vào có nghĩa là kết nối đựơc với 8

cảm biến, nhưng chỉ có 1 đầu ra như vậy tại 1 thời điểm chỉ có 1 cảm biến được giám sát.

Dưới đây là sơ đồ mạch.

IV. THIẾT BỊ CẢM BIẾN

Ở đây cảm biến thực chất là 1 triết áp ( triết áp có nghĩa là triết ra một phần điện áp từ đầu vào tuỳ theo mức độ điều chỉnh). Như vậy tín hiệu tương tự ở đây

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

là điện áp đầu vào, sự thay đổi điện áp đầu vào sẽ được chuyển qua bộ chuyển đổi ADC 809 thành tín hiệu số tương ứng với sự thay đổi điện áp đầu vào.

Nguyên lý hoạt động của cảm biến.

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

CHƯƠNG IV

VIT CHƯƠNG TRÌNH ĐIU KHIN

I: TÓM TẮT CHƯƠNG TRÌNH ĐIỀU KHIỂN (adsbygoogle = window.adsbygoogle || []).push({});

Hoạt động của tay máy được điều khiển bởi các số liệu nhập từ máy tính

truyền xuống. Chương trình viết cho máy tính PC bằng ngôn ngữ Visual Basic 6.0. Chương trình viết cho Vi điều khiển bằng ngôn ngữ Assembly.

Giải thích chức năng của các khối trong sơ đồ. * Khối giao tiếp truyền thông nối tiếp.

+ Truyền dữ liệu xuống trung tâm xử lý (89C52) để điều khiển các hoạt

động như từ bàn phím trên board.

+ Nhận dữ liệu từ vi điều khiển để xuất dữ liệu lên màn hình máy tính.

+ Đảm bảo sự liên lạc thông suốt giữa PC và vi điều khiển bằng cách

chuyển đổi tín hiệu chuẩn truyền thông RS232 sang chuẩn phù hợp với các linh kiện họ vi điều khiển.

* Khối trung tâm xử lý (89C52)

+ Nhận lệnh từ máy tính, chạy chương trình tương ứng với mã lệnh. + Nhận tín hiệu từ cảm biến để xuất lệnh Stop.

+ Điều khiển động cơ DC. + Giao tiếp với máy tính.

* Khối thi hành

+ Điều khiển đóng ngắt và đảo chiều động cơ DC.

* Khối cảm biến

+ Khối cảm biến vị trí.

Nhấn lệnh (máy tính xuất mã lệnh) a Vi xử lý nhận và kiểm tra mã lệnh

để thực thi chương trình ứng với mã lệnh đó. Nhận tín hiệu truyền về từ cảm biến để so sánh giá trị nhận được với giá trị nạp từ máy tính và sẽ xuất lệnh stop, đồng thời liên tục truyền tín hiệu vị trí hiện tại của tay máy lên máy tính để hiển thị lên màn hình điều khiển.

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Sơđồ khối

Trình tự thực hiện công việc của chưong trình. + Đầu tiên trở về vị trí HOME (toạ độ gốc).

- Nâng tay lên cao tới vị trí cao nhất (chạm công tắc hành trình)aquay

thân tới khi chạm công tắc hành trình aquay cánh tay tới khi chạm công tắc

hành trình amở rộng tay kẹp.

+ Đợi lệnh thực thi chương trình tương ứng.

- Quay phần thân a phần tay máy tới vị trí phôi ahạ cánh tay

xuống để kẹp vật anâng vật lên khỏi mặt bằng để phôi aquay phần thân

aquay phần tay tới vị trí gia công ahạ tay xuống để đặt vật anâng tay lên tới

vị trí cao nhất và đợi thời gian gia công xong ahạ tay xuống để kẹp vật anâng

vật lên khỏi mặt bằng để chi tiết aquay phần thân aquay phần tay tới vị trí

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương (adsbygoogle = window.adsbygoogle || []).push({});

II: VIẾT CHƯƠNG TRÌNH CHO PC 1. Màn hình điều khiển 1. Màn hình điều khiển

2. Chương trình

Option Explicit

Dim a, b, Z, T As Boolean Dim AA, BB, CC As Boolean Dim so, data1 As Integer Dim dem As Integer

Private Sub Command1_Click() End

End Sub

Private Sub Command10_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "7"

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "7"

ElseIf b = True Then Text5.Text = Text5.Text + "7" ElseIf Z = True Then Text6.Text = Text6.Text + "7" Else: Text13.Text = Text13.Text + "7"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "7"

ElseIf b = True Then Text8.Text = Text8.Text + "7" ElseIf Z = True Then Text9.Text = Text9.Text + "7" Else: Text13.Text = Text13.Text + "7"

End If Else

If a = True Then

Text1.Text = Text1.Text + "7"

ElseIf b = True Then Text2.Text = Text2.Text + "7" ElseIf Z = True Then Text3.Text = Text3.Text + "7" Else: Text13.Text = Text13.Text + "7"

End If End If End Sub

Private Sub Command11_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "8"

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

MSComm1.InBufferCount = 0 If AA = True Then

If a = True Then

Text4.Text = Text4.Text + "8"

ElseIf b = True Then Text5.Text = Text5.Text + "8" ElseIf Z = True Then Text6.Text = Text6.Text + "8" Else: Text13.Text = Text13.Text + "8"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "8"

ElseIf b = True Then Text8.Text = Text8.Text + "8" ElseIf Z = True Then Text9.Text = Text9.Text + "8" Else: Text13.Text = Text13.Text + "8"

End If Else

If a = True Then (adsbygoogle = window.adsbygoogle || []).push({});

Text1.Text = Text1.Text + "8"

ElseIf b = True Then Text2.Text = Text2.Text + "8" ElseIf Z = True Then Text3.Text = Text3.Text + "8" Else: Text13.Text = Text13.Text + "8"

End If End If End Sub

Private Sub Command12_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "9"

MSComm1.InputLen = 0 MSComm1.InBufferCount = 0

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

If AA = True Then If a = True Then

Text4.Text = Text4.Text + "9"

ElseIf b = True Then Text5.Text = Text5.Text + "9" ElseIf Z = True Then Text6.Text = Text6.Text + "9" Else: Text13.Text = Text13.Text + "9"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "9"

ElseIf b = True Then Text8.Text = Text8.Text + "9" ElseIf Z = True Then Text9.Text = Text9.Text + "9" Else: Text13.Text = Text13.Text + "9"

End If Else

If a = True Then

Text1.Text = Text1.Text + "9"

ElseIf b = True Then Text2.Text = Text2.Text + "9" ElseIf Z = True Then Text3.Text = Text3.Text + "9" Else: Text13.Text = Text13.Text + "9"

End If End If End Sub

Private Sub Command13_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "0"

MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

If a = True Then

Text4.Text = Text4.Text + "0"

ElseIf b = True Then Text5.Text = Text5.Text + "0" ElseIf Z = True Then Text6.Text = Text6.Text + "0" Else: Text13.Text = Text13.Text + "0"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "0"

ElseIf b = True Then Text8.Text = Text8.Text + "0" ElseIf Z = True Then Text9.Text = Text9.Text + "0" Else: Text13.Text = Text13.Text + "0"

End If Else

If a = True Then (adsbygoogle = window.adsbygoogle || []).push({});

Text1.Text = Text1.Text + "0"

ElseIf b = True Then Text2.Text = Text2.Text + "0" ElseIf Z = True Then Text3.Text = Text3.Text + "0" Else: Text13.Text = Text13.Text + "0"

End If End If End Sub

Private Sub Command14_Click() MSComm1.OutBufferCount = 0

MSComm1.Output = "P" ' POP du lieu vi tri vao cac o nho MSComm1.InputLen = 0

MSComm1.InBufferCount = 0 End Sub

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương MSComm1.OutBufferCount = 0 MSComm1.Output = "a" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 a = True If AA = True Then Text4.Text = ""

ElseIf BB = True Then Text7.Text = "" Else: Text1.Text = "" End If Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Command11.Enabled = True Command12.Enabled = True Command13.Enabled = True Command16.Enabled = False Command17.Enabled = False Command26.Enabled = False End Sub

Private Sub Command16_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "b"

MSComm1.InputLen = 0 MSComm1.InBufferCount = 0

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

b = True

If AA = True Then Text5.Text = ""

ElseIf BB = True Then Text8.Text = "" Else: Text2.Text = "" End If Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Command11.Enabled = True Command12.Enabled = True Command13.Enabled = True Command15.Enabled = False Command17.Enabled = False Command26.Enabled = False End Sub

Private Sub Command17_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "Z" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 Z = True If AA = True Then Text6.Text = ""

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương Else: Text3.Text = "" End If Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Command11.Enabled = True Command12.Enabled = True Command13.Enabled = True Command15.Enabled = False Command16.Enabled = False Command26.Enabled = False End Sub

Private Sub Command2_Click() Timer1.Enabled = True

End Sub

Private Sub Command26_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "T" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 T = True Text13.Text = "" Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Command11.Enabled = True Command12.Enabled = True Command13.Enabled = True Command15.Enabled = False Command16.Enabled = False Command17.Enabled = False End Sub

Private Sub Command27_Click() AA = True BB = False CC = False MSComm1.OutBufferCount = 0 MSComm1.Output = "A" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 End Sub

Private Sub Command28_Click() BB = True AA = False CC = False MSComm1.OutBufferCount = 0 MSComm1.Output = "B" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 End Sub

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Private Sub Command29_Click() CC = True BB = False AA = False MSComm1.OutBufferCount = 0 MSComm1.Output = "C" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 End Sub

Private Sub Command3_Click() MSComm1.OutBufferCount = 0

MSComm1.Output = "3" 'ma lenh bang "3" MSComm1.InputLen = 0

MSComm1.InBufferCount = 0 End Sub

Private Sub Command30_Click()

a = False ' Ket thuc nhap alpa, beta hoac Z b = False Z = False Command4.Enabled = False Command5.Enabled = False Command6.Enabled = False Command7.Enabled = False Command8.Enabled = False Command9.Enabled = False Command10.Enabled = False Command11.Enabled = False Command12.Enabled = False Command13.Enabled = False

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương Command15.Enabled = True Command16.Enabled = True Command17.Enabled = True Command26.Enabled = True End Sub (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub Command4_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "1" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "1"

ElseIf b = True Then Text5.Text = Text5.Text + "1" ElseIf Z = True Then Text6.Text = Text6.Text + "1" Else: Text13.Text = Text13.Text + "1"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "1"

ElseIf b = True Then Text8.Text = Text8.Text + "1" ElseIf Z = True Then Text9.Text = Text9.Text + "1" Else: Text13.Text = Text13.Text + "1"

End If Else

If a = True Then

Text1.Text = Text1.Text + "1"

ElseIf b = True Then Text2.Text = Text2.Text + "1" ElseIf Z = True Then Text3.Text = Text3.Text + "1"

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Else: Text13.Text = Text13.Text + "1" End If

End If End Sub

Private Sub Command5_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "2" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "2"

ElseIf b = True Then Text5.Text = Text5.Text + "2" ElseIf Z = True Then Text6.Text = Text6.Text + "2" Else: Text13.Text = Text13.Text + "2"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "2"

ElseIf b = True Then Text8.Text = Text8.Text + "2" ElseIf Z = True Then Text9.Text = Text9.Text + "2" Else: Text13.Text = Text13.Text + "2"

End If Else

If a = True Then

Text1.Text = Text1.Text + "2"

ElseIf b = True Then Text2.Text = Text2.Text + "2" ElseIf Z = True Then Text3.Text = Text3.Text + "2" Else: Text13.Text = Text13.Text + "2"

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

End If End If End Sub

Private Sub Command6_Click() MSComm1.OutBufferCount = 0

MSComm1.Output = "3" 'ma lenh bang "3" MSComm1.InputLen = 0

MSComm1.InBufferCount = 0 If AA = True Then

If a = True Then

Text4.Text = Text4.Text + "3" (adsbygoogle = window.adsbygoogle || []).push({});

ElseIf b = True Then Text5.Text = Text5.Text + "3" ElseIf Z = True Then Text6.Text = Text6.Text + "3" Else: Text13.Text = Text13.Text + "3"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "3"

ElseIf b = True Then Text8.Text = Text8.Text + "3" ElseIf Z = True Then Text9.Text = Text9.Text + "3" Else: Text13.Text = Text13.Text + "3"

End If Else

If a = True Then

Text1.Text = Text1.Text + "3"

ElseIf b = True Then Text2.Text = Text2.Text + "3" ElseIf Z = True Then Text3.Text = Text3.Text + "3" Else: Text13.Text = Text13.Text + "3"

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

End If End Sub

Private Sub Command7_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "4" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "4"

ElseIf b = True Then Text5.Text = Text5.Text + "4" ElseIf Z = True Then Text6.Text = Text6.Text + "4" Else: Text13.Text = Text13.Text + "4"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "4"

ElseIf b = True Then Text8.Text = Text8.Text + "4" ElseIf Z = True Then Text9.Text = Text9.Text + "4" Else: Text13.Text = Text13.Text + "4"

End If Else

If a = True Then

Text1.Text = Text1.Text + "4"

ElseIf b = True Then Text2.Text = Text2.Text + "4" ElseIf Z = True Then Text3.Text = Text3.Text + "4" Else: Text13.Text = Text13.Text + "4"

End If End If

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

End Sub

Private Sub Command8_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "5" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "5"

ElseIf b = True Then Text5.Text = Text5.Text + "5" ElseIf Z = True Then Text6.Text = Text6.Text + "5" Else: Text13.Text = Text13.Text + "5"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "5"

ElseIf b = True Then Text8.Text = Text8.Text + "5" ElseIf Z = True Then Text9.Text = Text9.Text + "5" Else: Text13.Text = Text13.Text + "5" (adsbygoogle = window.adsbygoogle || []).push({});

End If Else

If a = True Then

Text1.Text = Text1.Text + "5"

ElseIf b = True Then Text2.Text = Text2.Text + "5" ElseIf Z = True Then Text3.Text = Text3.Text + "5" Else: Text13.Text = Text13.Text + "5"

End If End If End Sub

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Private Sub Command9_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "6" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "6"

ElseIf b = True Then Text5.Text = Text5.Text + "6" ElseIf Z = True Then Text6.Text = Text6.Text + "6" Else: Text13.Text = Text13.Text + "6"

End If

ElseIf BB = True Then If a = True Then

Text7.Text = Text7.Text + "6"

ElseIf b = True Then Text8.Text = Text8.Text + "6" ElseIf Z = True Then Text9.Text = Text9.Text + "6" Else: Text13.Text = Text13.Text + "6"

End If Else

If a = True Then

Text1.Text = Text1.Text + "6"

ElseIf b = True Then Text2.Text = Text2.Text + "6" ElseIf Z = True Then Text3.Text = Text3.Text + "6" Else: Text13.Text = Text13.Text + "6"

End If End If End Sub

Một phần của tài liệu đồ án cơ điện tử thiết kế mô hình cấp phôi tự động (Trang 71 - 138)