Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 73 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
73
Dung lượng
1,13 MB
Nội dung
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA CHƯƠNG II : CHUẨNTRUYỀNTHÔNG RS485 VÀ ADAPTER CHUYỂN ĐỔI RS232 - RS485 I Giới thiệu: Những tổ chức tiêu chuẩn quốc tế cho truyền thông ITU ( International Communication Union) , EIA (Electronic Industry Association ) ISO ( International Standards Organisaton) Những tiêu chuẩn ITU liên quan tới truyền thông nối tiếp đònh nghóa đặc điểm kỹ thuật V-series Sau số chuẩn truyền thông thường dùng công nghiệp • RS-232C • RS-449 , RS-422A , RS-423A • RS-485 II RS-232c : Chuẩn RS-232C lần giới thiệu vào năm 1962 hiệp hội kỹ thuật điện tử EIA chuỗi giao tiếp truyền thong máy tính thiết bò ngoại vi ( modem , máy tính khác , máy vẽ , mouse …) Cổng giao tiếp RS-232C giao diện phổ biến rộng rãi Máy tính PC thường dùng chuột cho cổng COM1 , COM2 để trống cho ứng dụng khác Cùng với cổng máy in , cổng nối tiếp RS-232C sử dụng thuận tiện cho mục đích đo lường điều khiển Việc truyền liệu qua RS-232C tiến hành theo cách nối tiếp , nghóa bit liệu gửi nối tiếp đường truyền dẫn Trước hết , loại truyền dùng cho khoảng cách lớn khả gây nhiễu nhỏ đáng kể so với dùng cổng song song Mặt khác , việc dùng cổng song song có nhược điểm đáng kể cáp truyền dùng nhiều sợi làm tăng chi phí Hơn , tín hiệu nằm khoảng 0-5V không thích hợp với khoảng cách lớn Tốc độ baud thông thường có giá trò : 300, 1200 , 4800 , 9600 , 19200 baud SVTH : PHẠM NGỌC CƯỜNG 31 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA chân 25 chân Chức DCD – Data Carrier Detect (ngõ vào) RXD – Receive Data ( ngõ vào) TXD – Transmit Data( ngõ ra) 20 DTR – Data Terminal Ready ( ngõ ra) GND – Ground ( nối đất) 6 DSR – Data Set Ready ( ngõ vào RTS – Request To Send ( ngõ ra) CTS – Clear To Send ( ngõ vào) 22 RI – Ring Indicator ( ngõ ra) Bảng 1.1 Sắp xếp chân cổng nối tiếp máy tính Mức tín hiệu nhận truyền qua chân RXD TXD thông thường nằm khoảng –12V đến +12V , mức logic tín hiệu đảo ngược lại Mức điện áp mức High nằm –3V –12V , mức Low nằm +3V +12V Ở trạng thái tónh đường có điện áp –12V , bít khởi động ( startbit) mở đầu cho việc truyền liệu , tiếp sau đến bit liệu ; bit có giá trò thấp gửi trước tiên Số bit liệu thay đổi Cuối bit dừng ( stop bit) đặt lại trạng thái lối ( -12V) Một yêu cầu quan trọng RS-232 thời gian chuyển từ mức logic tới mức logic khác không vượt 4% thời gian bit Vì , tốc độ 19200 baud , thời gian chuyển mức logic phải nhỏ 0.04/19200=2,1µs Vấn đề làm giới hạn chiều dài đường truyền Với tốc độ truyền 19200 baud ta truyền xa 50ft ( khoảng 15m) Một vấn đề quan trọng cần ý sử dụng RS-232C mạch thu phát không cân ( đơn cực ) Điều có nghóa tín hiệu vào so với đất Vì , điện hai điểm đất hai mạch thu phát không có dòng điện chạy trên dây đất Kết có áp rơi dây đất ( V=I.R) làm suy yếu tín hiệu logic Nếu truyền tín hiệu xa , điện trở R tăng dẫn đến áp rơi đất lớn dần đến lúc tín hiệu logic rơi vào vùng không xác đònh mạch thu không liệu truyền từ mạch phát Chính không cân mạch thu phát nguyên nhân giới hạn đường truyền SVTH : PHẠM NGỌC CƯỜNG 32 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA III RS-422/485 : Khi thực thông tin tốc độ cao , qua khoảng cách lớn môi trường thực , phương pháp đơn cực (single-ended) thường không thích hợp Việc truyền dẫn liệu vi sai ( hay tín hiệu vi sai cân bằng) cho kết tốt phần lớn trường hợp Tín hiệu vi sai loại bỏ ảnh hưởng thay đổi việc nối đất giảm nhiễu xuất điện áp chung mạng RS422 thiết kế dùng cho khoảng cách tốc độ Baud rates lớn so với RS232 , mức tín hiệu lên đến 100K bít/giây khoảng cách đạt 4000ft RS422 tạo thành mạng multi-drop network với truyền khoảng 10 nhận Tuy nhiên , mạng multi-network thực gồm nhiều mạch phát nhận nối vào đường dây bus chung , node phát nhận data RS485 đáp ứng yêu cầu Chuẩn RS485 cho phép 32 mạch truyền mạch nhận nối vào đường dây bus đơn (với repeater tự động truyền / nhận trở kháng cao, giới hạn mở rộng lên đến hàng trăm node mạng) Bên cạnh , RS485 chòu xung đột data(data collision) điều kiện lỗi đường dây bus Để giải vấn đề xung đột data thường xuất mạng multidrop network , đơn vò phần cứng( converters, repeaters , microprocessor controls ) thiết kế để trì trạng thái nhận chúng sẵn sàng truyền data Một node master kích khởi yêu cầu truyền đến slave node cách đònh đòa node Phần cứng phát bit start ký tự truyền tự động cho phép truyền làm việc Sau ký tự truyền , phần cứng trở trạng thái nhận SVTH : PHẠM NGỌC CƯỜNG 33 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA sau vài micro giây Khi có ký tự cần gửi , truyền tự động kích lại Như , slave node đònh đòa đáp ứng mà không cần thực khoảng delay dài để tránh xung đột Những ưu điểm RS485 so với RS232 : Chi phí thấp Bộ truyền nhận thường không đắt đòi hỏi nguồn đơn +5V ( thấp hơn) để tạo mức áp tối thiểu 1,5V ngõ vi sai Ngược lại , ngõ tối thiểu RS232 5V cần nguồn cung cấp kép chip có chi phí đáng kể để tạo nguồn Khả nối mạng Thay giới hạn đơn vò , RS485 giao diện cung cấp cho việc kết nối có nhiều truyền nhận Với nhận có trở kháng cao , RS485 cho kết nối lên đến 256 node Đường dây kết nối dài Một mạng RS485 dài đến 4000 feet so với RS232 có giới hạn từ 50 đến 100 feet Tốc độ nhanh RS485 cho tốc độ lên đến 10 Megabits/giây SVTH : PHẠM NGỌC CƯỜNG 34 LUẬN VĂN TỐT NGHIỆP SVTH : PHẠM NGỌC CƯỜNG GVHD : NGUYỄN CHÍ NGHĨA 35 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA IV Full Duplex : Giao diện RS485 thiết kế để sử dụng hệ thống có nhiều node , với nhiều truyền nhận Phần lớn kết nối RS485 bán song công , truyền nhận dùng chung đường tín hiệu Tuy nhiên , ta dùng RS485 dạng song công , hướng truyền dùng đường tín hiệu riêng Đây giải pháp đơn giản ta muốn tạo kết nối dài , song công microcontrollers Các chip dùng cho RS485 nhỏ , đơn giản rẻ so với RS232 Thuận lợi cách kết nối tiết kiệm thời gian cho slave ( nhận) chúng đọc tín hiệu trả lời ( master) từ slave hỏi Tuy nhiên , dùng đường dây dài , chi phí tăng đáng kể V Half Duplex : Nhiều liên kết RS485 dạng bán song công , với nhiều nhận truyền dùng chung đường tín hiệu Khi liên kết có node nhiều hơn, ta ý có đường tín hiệu có node truyền thời điểm Do cần bảo đảm đường truyền trạng thái free node muốn truyền * Mạch bảo vệ bên : Trong kết nối bán song công , có truyền cho phép thời điểm cho dù thiết kế cẩn thận đến đâu , có trường hợp thời điểm hai nhiều truyền enable lúc Khi điều xảy ra, driver kéo đường dây theo trạng thái ngược , tín hiệu đường dây mức logic không xác đònh , tượng gọi tranh chấp đường dây (line contention) Tất chip RS485 có giới hạn dòng (curent limiting) tự động shutdown nhiệt (thermal shutdown) để bảo vệ chip có nhiều nhận cho phép lúc Giới hạn dòng hạn chế dòng truyền Theo chuẩn TIA/EIA-485 mức giới hạn phải 250mA Nếu ngõ output tiếp tục đưa dòng cao , nhiệt độ chip tăng lên cuối mạch bảo vệ nhiệt bên chip chuyển ngõ sang trạng thái trở kháng cao( high-impedance state) Điều đồng nghóa với việc ngõ sử dụng hạ nhiệt , bảo đảm linh kiện không bò hư SVTH : PHẠM NGỌC CƯỜNG 36 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA VI Các Phương Pháp Truyền Thông Đơn công ( Simplex Communication) : truyền thông chiều Dữ liệu truyền theo chiều từ thiết bò sang thiết bò khác mà chiều ngược lại(hình 1.2) Bán song công ( Half Duplex Communication ) : thời điểm có node truyền node nhận Cho phép truyền hai chiều(hình 1.3) Song công ( Full Duplex Communication ) : cho phép truyền liệ đồng thời hai thiết bò(hình 1.4) Chuẩn RS-232C đònh nghóa chuẩn giao tiếp DTE ( Device Terminal Equipment – thường computer) DCE ( Device Communication Equipment – thiết bò ngoại vi) với khoảng cách truyền tối đa 50ft ( khoảng 15m ) tốc độ tối đa 20kps SVTH : PHẠM NGỌC CƯỜNG 37 LUẬN VĂN TỐT NGHIỆP Chương III : GVHD : NGUYỄN CHÍ NGHĨA BUS I2C I Hoạt Động Của Bus I2C : Bus I2C (viết tắt từ Inter-Ic-Bus) mối liên kết liệu dây nhiều xử lý (Master) khối ngoại vi cụ thể (slave).Tất vi mạch liên kết trực tiếp với bus trao đổi đòa vi mạch Các đòa liệu truyền đường dẫn Bus I2C cho phép hình thành mối liên kết đơn giản nhiều vi mạch cho phép dễ dàngù mở rộng thêm Tất vi mạch tham gia bus, khống chế giao thức theo cách riêng Bên cạnh nhớ RAM, EEPROM, vi mạch mở rộng cổng, biến dổi A/D D/A vi mạch đồng hồ có nhiều vi mạch chuyên dụng, chẳng hạn đệm hiển thò vi mạch dùng kỹ thuật truyền hình Tất vi mạch có thểû điều khiển dễ dàng trực tiếp qua hai đường dẫn dao diện song song với máy tính PC Chỉ cần bổ sung thêm vi mạch, cổng nối tiếp sử dụng II Truyền Dữ Liệu Đònh Đòa Chỉ : Bus I2C sử dụng đường dẫn: Đường dẫn liệu nối tiếp SDA Đøng dẫn giữ nhòp SCL Giống ghi dòch, liệu đòa truyền theo nhòp Cả hai đường dẫn sử dụng theo hướng liệu Mỗi đường dẫn có điện trở nối lên nguồn(Pull-up) thành viên kéo xuống mức LOW qua lối cực góp hở cực máng hở Thành viên bus không kích hoạt trạng thái có điện trở cao, giám sát tín hiệu truyền bus Khi có vi mạch chủ sử dụng, vi mạch tự xuất tín hiệu giữ nhòp để sủ dụng Dữ liệu đến từ vi mạch chủ từ vi mạch tớ Giao thức bus I2C nhận biết dẵy tình đẵ đònh nghóa xác, tình giới thiệu thành viên bus, để nhận dạng chỗ bắt dầu kết thúc truyền cách đònh đòa có SVTH : PHẠM NGỌC CƯỜNG 38 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA Trạng thái yên tónh: SDA SCL mức HIGH không kích hoạt Điều kiện bắt đầu( Start): SDA vi mạch master chuyển sang mức thấp, SCL giữ nguyên mức HIGH Điều kiện dừng (Stop) : SDA chuyển từ trạng thái LOW sang HIGH, SCL giữ nguyên mức HIGH Truyền liệu : Mỗi truyền xếp tám bít liệu lên đường dẫn liệu SDA, xung giữ nhòp bít vi mạch chủ(master) đẩy tiếp lên đường giữ nhòp SCL Việc truyền liệu bắt đầu với bít có giá trò lớn Xác nhận (Acknowledge):Mỗi nhận kết thúc qúa trình nhận môït byte mức LOW đường dẫn SDA, vi mạch chủ tạo xung đồng hồ thứ chín đường dẫn SCL Việc xác nhận đồng thời có nghóa byte cần nhận Việc kết thúc truyền theo mong muốn cần phải báo trước việc không xuất xác nhận Sự kết thúc thật truyền đạt tới điều kiện dừng(Stop) Các đòa truyền kết thúc giống hệt liệu Trong trường hợp đơn giản truyền liệu từ vi mạch chủ tới vi mạch tớ(slave) chẳng hạn tới cổng lối ra, qúa trình diễn sau: Vi mạch chủ (master) tạo diều kiện bắt đầu truyền đòa vi mạch cổng vào bit đến hướng mong muốn truyền liệu vào bit 0, cụ thể trường hợp "ghi" trường hợp "đọc" Việc truyền đòa kết thúc vi mạch tớ (slave) cần trao đổi Sau vi mạch chủ (master) gửi byte liệu để kết thúc qúa trình truyền Vi mạch chủ chấm dứt mối liên kết điều kiện Stop gửi byte tới vi mạch Các đòa chỉ vi mạch có độ dài bit,trong bit hướng liệu truyền bổ sung sau Thông thương đòa vi mạch qui đònh để rõ loại bit cao lựa chọn tự bit thấp (A0 - A2) mạch điện bên Nhiều vi mạch loại hoạt động bus Tổng cộng có đến 128 vi mạch sử dụng bus Đòa bus I2C với hướng liệu A6 A5 A4 SVTH : PHẠM NGỌC CƯỜNG A3 A2 A1 A0 R/W 39 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA Khi cần đọc liệu từ vi mạch tớ (slave), đòa cần phải truyền bit hướng liệu đẵ đặt Vi mạch chủ xuất nhóm tám xung đồng hồ nhận tám bit liệu Cho đến xác nhận nhận liệu Acknowledge, xung đồng hồ thú chín, vi mạch nhận byte tiếp theo.Cuối cùng, truyền vi mạch chủ kết thúc việc không đưa tín hiệu xác nhận (Nacknowledge ) kèm theo điều kiện dừng Mỗi mạch I2C có đòa đẵ quy đònh, đòa phần quy đònh để đặc trưng cho loại phần khác thay đổi qua đường dẫn đòa dẫn Điều có nghóa là,chẳng hạn với ba đường đòa dẫn có tới tám vi mạch loại đấu nối vào bus Tốùc độ giữ nhòp cực đại dùng cho bus I2C 100 KHz Các chương trình giới thiệu sử dụng thời gian chờ 10ms, để tránh tình trạng vượt qúa tốc độ cưc đại cho chạy máy tính nhanh III Bus I2C Dùng SEEPROM AT24C0X Đây nhớ cố đònh (permanent),có thể xoá ghi điện mà không cần cung cấp điện áp làm việc phụ thêm 24C01 128 bytes 24C02 256 bytes 24C03 512 bytes 24C04 1024 bytes 24C08 2048 bytes Các nhớ SEEPROM có dung lượng nhỏ thường sử dụng để thiết lập liệu đònh chuẩn lương liệu không đáng kể khác cách độc lập với nguồn cung cấp vào hệ thống Các vi mạch bảo đảm việc lưu trữ liệu 10 năm Một ưu điểm khác việc thiết kế mạch đơn giản,đồng nghóa với việc không cần đến điện áp bổ sung dùng cho nạp chương trình,bởi điện áp cao tạo chip SVTH : PHẠM NGỌC CƯỜNG 40 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA ANL A,#128 ;CHE BIT RR A ;SAU BIT (SDA) ADD A,#3FH MOV P1,A SETB P1.7 CLR P1.7 MOV A,MEM20 RL A ;BIT TIEP THEO MOV MEM20,A DJNZ MEM19,LAP ;BO DEM GIAM SETB P1.6 CLR P1.7 SETB P1.6 SETB P1.7 CLR P1.7 RET DOCVAO: SETB P1.6 ;SDA = CLR P1.7 ;SCL = MOV MEM20,#0 MOV MEM19,#8 LAP1: SETB P1.7 ;SCL = MOV A,MEM20 RL A MOV B,A MOV A,P1 ANL A,#64 ;DOC SDA RL A RL A ;BIT ADD A,B MOV MEM20,A ;LUU TRU CLR P1.7 ;SCL = DJNZ MEM19,LAP1 ;8 LAN RET DOCROM: ACALL I2CSTART MOV A,#10100000B ;DIA CHI AT24C02,VIET SVTH : PHẠM NGỌC CƯỜNG 89 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA ACALL XUATRA MOV A,#0 ;DIA CHI BAT DAU ACALL XUATRA ACALL I2CSTOP ACALL I2CSTART MOV A,#10100001B ;DIA CHI AT24C02,DOC ACALL XUATRA ACALL DOCVAO ACALL NACK ACALL I2CSTOP RET DELAY100MS: PUSH B MOV B,#2 LAP2: MOV TL0,#LOW(-50000) MOV TH0,#HIGH(-50000) SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 DJNZ B,LAP2 POP B RET END SVTH : PHẠM NGỌC CƯỜNG 90 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA CHƯƠNG TRÌNH VISUAL BASIC Option Explicit Dim data(1 To 12) As Byte Dim Memout(1 To 4) As Byte Dim Memin(1 To 4) As Byte Dim Mem(1 To 12) As Byte Dim Datain() As Byte Dim Dataout(0) As Byte Dim Bufferin As Variant Dim Bufferout As Variant Dim lap As Boolean Private Sub cmddisplay_Click() Load Form2 Form2.Show End Sub Private Sub cmdStart_Click() Dim i, j, k As Integer Dim x, y, z As Integer Dim CY As Boolean For i = To 12 Mem(i) = i Next i For i = To 12 data(i) = Datacd(i) = Next i x=0 y=0 z=0 'Vong lap chuong trinh chinh lap = True SVTH : PHẠM NGỌC CƯỜNG 91 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA Do 'Cho tin hieu co bang tai tu VXL4 Do CY = False DoEvents If (MSComm1.InBufferCount >= 1) Then Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = If Datain(0) = &H44 Then CY = True End If End If Loop Until CY = True Beep For i = To 12 Mem(i) = Mem(i) - If Mem(i) = Then Mem(i) = 12 End If Next i Memin(1) = Mem(1) Memout(1) = Mem(2) Memin(2) = Mem(4) Memout(2) = Mem(5) Memin(3) = Mem(7) Memout(3) = Mem(8) Memin(4) = Mem(10) Memout(4) = Mem(11) 'Hien thi 12 san pham For i = To 12 If data(Mem(i)) Then Frame1(i - 1).Visible = True Text1(i - 1).Text = Mem(i) SVTH : PHẠM NGỌC CƯỜNG 92 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA Text2(i - 1).Text = data(Mem(i)) If (Datacd(data(Mem(i))) And &H1) = &H1 Then Check1(i - 1).Value = Else: Check1(i - 1).Value = End If If (Datacd(data(Mem(i))) And &H2) = &H2 Then Check2(i - 1).Value = Else: Check2(i - 1).Value = End If If (Datacd(data(Mem(i))) And &H4) = &H4 Then Check3(i - 1).Value = Else: Check3(i - 1).Value = End If Else: Frame1(i - 1).Visible = False End If Next i For i = To 12 If data(Mem(i)) Then Shape3(i - 1).Visible = True Else: Shape3(i - 1).Visible = False End If Next i 'Dieu khien vao cong doan If data(Memin(1)) Then 'Co san pham 'Cong doan lam chua If (Datacd(data(Memin(1))) And &H1) &H1 Then Dataout(0) = &H11 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = SVTH : PHẠM NGỌC CƯỜNG 93 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA Do DoEvents Loop Until MSComm1.InBufferCount >= Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = If Datain(0) &H41 Then data(Memin(1)) = x=x+1 If x > Then x=4 End If End If End If End If 'Dieu khien vao cong doan If data(Memin(2)) Then 'Co san pham 'Cong doan lam chua If (Datacd(data(Memin(2))) And &H2) &H2 Then Dataout(0) = &H12 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = Do DoEvents Loop Until MSComm1.InBufferCount >= Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = If Datain(0) &H42 Then data(Memin(2)) = y=y+1 If y > Then y=4 SVTH : PHẠM NGỌC CƯỜNG 94 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA End If End If End If End If 'Dieu khien vao cong doan If data(Memin(3)) Then 'Co san pham 'Cong doan lam chua If (Datacd(data(Memin(3))) And &H4) &H4 Then Dataout(0) = &H13 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = Do DoEvents Loop Until MSComm1.InBufferCount >= Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = If Datain(0) &H43 Then data(Memin(3)) = z=z+1 If z > Then z=4 End If End If End If End If 'Dieu khien vao cong doan If data(Memin(4)) Then 'Co san pham 'San pham lam xong cong dan chua ? If (Datacd(data(Memin(4))) And &H7) = &H7 Then Dataout(0) = &H14 Bufferout = Dataout() MSComm1.Output = Bufferout SVTH : PHẠM NGỌC CƯỜNG 95 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA MSComm1.OutBufferCount = Do DoEvents Loop Until MSComm1.InBufferCount >= Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = data(Memin(4)) = End If End If 'Dieu khien cong doan If data(Memout(1)) = Then 'Khong co san pham Dataout(0) = &H21 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = Do DoEvents Loop Until MSComm1.InBufferCount >= Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = If Datain(0) = &H31 Then data(Memout(1)) = Datain(2) Datacd(data(Memout(1))) = Datacd(data(Memout(1))) Or &H1 x=x-1 If x < Then x=0 End If End If End If 'Dieu khien cong doan If data(Memout(2)) = Then 'Khong co san pham SVTH : PHẠM NGỌC CƯỜNG 96 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA Dataout(0) = &H22 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = Do DoEvents Loop Until MSComm1.InBufferCount >= Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = If Datain(0) = &H32 Then data(Memout(2)) = Datain(2) Datacd(data(Memout(2))) = Datacd(data(Memout(2))) Or &H2 y=y-1 If y < Then y=0 End If End If End If 'Dieu khien cong doan If data(Memout(3)) = Then 'Khong co san pham Dataout(0) = &H23 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = Do DoEvents Loop Until MSComm1.InBufferCount >= Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = If Datain(0) = &H33 Then data(Memout(3)) = Datain(2) Datacd(data(Memout(3))) = Datacd(data(Memout(3))) Or &H4 SVTH : PHẠM NGỌC CƯỜNG 97 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA z=z-1 If z < Then z=0 End If End If End If 'Dieu khien cong doan If data(Memout(4)) Then 'Co san pham Dataout(0) = 79 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = Else: 'Khong co san pham Dataout(0) = &H24 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = Do DoEvents Loop Until MSComm1.InBufferCount >= Bufferin = MSComm1.Input Datain() = Bufferin MSComm1.InBufferCount = If Datain(0) = &H34 Then data(Memout(4)) = Datain(2) Datacd(data(Memout(4))) = End If Dataout(0) = 79 Bufferout = Dataout() MSComm1.Output = Bufferout MSComm1.OutBufferCount = End If 'Hien thi 12 san pham sau da dieu khien Vao va Ra For i = To 12 SVTH : PHẠM NGỌC CƯỜNG 98 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA If data(Mem(i)) Then Frame1(i - 1).Visible = True Text1(i - 1).Text = Mem(i) Text2(i - 1).Text = data(Mem(i)) If (Datacd(data(Mem(i))) And &H1) = &H1 Then Check1(i - 1).Value = Else: Check1(i - 1).Value = End If If (Datacd(data(Mem(i))) And &H2) = &H2 Then Check2(i - 1).Value = Else: Check2(i - 1).Value = End If If (Datacd(data(Mem(i))) And &H4) = &H4 Then Check3(i - 1).Value = Else: Check3(i - 1).Value = End If Else: Frame1(i - 1).Visible = False End If Next i For i = To 12 If data(Mem(i)) Then Shape3(i - 1).Visible = True Else: Shape3(i - 1).Visible = False End If Next i 'Hien thi so san pham tai cong doan Select Case x Case For i = To Shape4(i).Visible = False Next i SVTH : PHẠM NGỌC CƯỜNG 99 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA Case Shape4(0).Visible = True Shape4(1).Visible = False Shape4(2).Visible = False Shape4(3).Visible = False Case Shape4(0).Visible = True Shape4(1).Visible = True Shape4(2).Visible = False Shape4(3).Visible = False Case For i = To Shape4(i).Visible = True Next i Shape4(3).Visible = False Case For i = To Shape4(i).Visible = True Next i End Select 'Hien thi so san pham tai cong doan Select Case y Case For i = To Shape5(i).Visible = False Next i Case Shape5(0).Visible = True Shape5(1).Visible = False Shape5(2).Visible = False Shape5(3).Visible = False Case Shape5(0).Visible = True Shape5(1).Visible = True Shape5(2).Visible = False Shape5(3).Visible = False Case SVTH : PHẠM NGỌC CƯỜNG 100 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA For i = To Shape5(i).Visible = True Next i Shape5(3).Visible = False Case For i = To Shape5(i).Visible = True Next i End Select 'Hien thi so san pham tai cong doan Select Case z Case For i = To Shape6(i).Visible = False Next i Case Shape6(0).Visible = True Shape6(1).Visible = False Shape6(2).Visible = False Shape6(3).Visible = False Case Shape6(0).Visible = True Shape6(1).Visible = True Shape6(2).Visible = False Shape6(3).Visible = False Case For i = To Shape6(i).Visible = True Next i Shape6(3).Visible = False Case For i = To Shape6(i).Visible = True Next i End Select 'Kiem tra Error (neu co nhieu san pham cung ma Rom tren bang tai) SVTH : PHẠM NGỌC CƯỜNG 101 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA k=2 For i = To 11 For j = k To 12 If (data(i) = data(j)) And data(i) Then MsgBox "Co san pham cung ma Rom", , "Error" End If Next j k=k+1 Next i Loop Until lap = False End Sub Private Sub cmdStop_Click() lap = False Unload Form1 End Sub Private Sub Form_Load() MSComm1.Settings = "9600,n,8,1" MSComm1.InputLen = MSComm1.InputMode = comInputModeText MSComm1.CommPort = MSComm1.PortOpen = True End Sub Private Sub Unload_form() MSComm1.PortOpen = False End Sub SVTH : PHẠM NGỌC CƯỜNG 102 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA BÁO CÁO KẾT QUẢ THI CÔNG * Chương trình viết đọc Seeprom AT24C02 : Viết đọc giá trò * Chương trình điều khiển dây chuyền sản suất : Chương trình điều khiển chạy yêu cầu đặt ban đầu dây chuyền sản xuất SVTH : PHẠM NGỌC CƯỜNG 103 [...]... lần băng tải chuyển động được 1 ô (rãnh) thì cờ băng tải sẽ báo) Mã SEEPROM PC có nhiệm vụ thu thập, quản lý và xử lí dữ liệu Set các vò trí MEMIN(i) và MEMOUT(i) (i = 1đến n+1) Quản lí n rãnh băng tải của dây chuyền sản xuất :mỗi lần nhận được tín hiệu cờ băng tải từ VXL cuối (n+1) ,PC sẽ tăng các giá trò MEMIN(i) và MEMOUT(i) lên 1 đơn vò Quản lí n sản phẩm (n bánh xe) đã làm công đoạn nào... Nhận từ PC tín hiệu : Điều khiển vào Điều khiển ra Phát PC tín hiệu : Báo bận tại các công đoạn Mã SEEPROM VXL (n+1) : có nhiệm vụ Nhận từ PC tín hiệu : Điều khiển vào (sản phẩm đã làm đủ n công đoạn) Điều khiển ra ( ưa sản phẩm mới vào) Phát PC tín hiệu : SVTH : PHẠM NGỌC CƯỜNG 55 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA Cờ báo băng tải chuyển động (mỗi lần băng tải chuyển động được... nào hay là sản phẩ mới đưa vào Phát tín hiệu Điều khiển vào và Điều khiển ra đến các VXL CHƯƠNG V : SƠ ĐỒ GIẢI THU T VÀ CHƯƠNG TRÌNH ĐỂ ĐIỀU KHIỂN DÂY CHUYỀN SẢN XUẤT (DCSX) TỔNG QUÁT TRÊN GỒM n CÔNG ĐOẠN (CĐ),CHƯƠNG TRÌNH MINH HỌA SAU ĐÂY SẼ TRÌNH BÀY DÂY CHUYỀN SẢN XUẤT ĐƠN GIẢN NHƯ SAU : SẢN PHẨM (SP) PHẢI LÀM 3 CĐ VÀ CĐ CUỐI CÙNG LÀ CĐ 4 ĐỂ LẤY SP ĐÃ LÀM XONG 3 CĐ RA VÀ ĐƯA SP MỚI VÀO (CHƯƠNG TRÌNH... tra) • Phát lên PC tín hiệu : Báo bận ( Swich P3.2 = 0 : bận ) Mã ROM đọc được ( Swich P3.3 = 0 : có sản phẩm làm xong đang chờ vào dây chuyền sản xuất ) * VXL 4 • Nhận từ PC tín hiệu : ĐK Vào (xuất xung ra P3.4 để kiểm tra) ĐK Ra (xuất xung ra P3.5 để kiểm tra) • Phát lên PC tín hiệu : Cờ báo băng tải chuyển động ( Swich P3.2 = 0 ) Mã ROM đọc được (Swich P3.3 = 0 : có sản phẩm làm xong... cao nhất * Em cũng xin giới thiệu dây chuyền sản xuất đang được ứng dụng tại xí nghiệp may Vi t Tiến Sản phẩm ở đây là áo quần các loại Các công đoạn phụ bao gồm: vào cổ,đơm nút,may túi,may cánh tay II .Dây Chuyền Sản Xuất: Dây chền sản xuất ở đây có băng tải chuyển động tròn đều với vận tốc không đổi ( vận tốc của băng tải tương đối thấp khoảng10cm/s) Sau khi chuyển động được một vòng, nó sẽ trở về... CĐ3 8 3 Hình : Dây Chuyền Sản Xuất SVTH : PHẠM NGỌC CƯỜNG 51 LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA 1 Băng chuyền chính 2 Băng chuyền rẽ nhánh 4 Truyền động chính 5 Thiết bò rẽ nhánh phụ 6 Thiết bò nhận dạng 3 Bàn làm vi c 7 Tủ điều khiển băng chuyền chính 8 Tủ điều khiển băng chuyền rẽ nhánh 9 Cột trung gian Sp 10 Cột chính truyền động 11 Sản phẩm chờ Sp Sp Mặt cắt ngang Băng Chuyền SVTH : PHẠM... Nếu dây chuyền sản xuất có n công đoạn ,ta sẽ dùng (n+1) con VXL Con VXL sau cùng dùng cho vi c lấy sản phẩm đã làm xong n công đoạn ra và đưa sản phẩm mới vào V Điều Khiển Vào và Điều Khiển Ra : Tại mỗi công đoạn sẽ có 2 vò trí đặc biệt : Vò trí cho phép vào (MEMIN) : Cho phép bánh xe chứa sản phẩm rẽ vào băng chuyền rẽ nhánh để làm Vò trí cho phép ra (MEMOUT) : Cho phép bánh xe chứa sản phẩm... vào DCSX ) * PC : • Dùng mảng MEMIN( 1-4 ) để xét các vò trí ĐK Vào tại các VXL 1,2,3,4 • Dùng mảng MEMOUT( 1-4 ) để xét các vò trí ĐK Ra tại các VXL 1,2,3,4 • Dùng mảng DATA( 1-1 2) để quản lí 12 ô BT, ô nào không có SP thì DATA(i) = 0,ô nào có SP thì giá trò DATA(i) = mã ROM chứa SP đó (i = 1-1 2) • Dùng mảng DATACD( 1-1 2) để quản lí các CĐ đã làm hoặc chưa làm của 12 SP Nếu SP trên bánh xe chứa ROM có mã là... nào,không cần theo thứ tự Trong dây chuyền sản xuất này có công đoạn cuối cùng để lấy sản phẩm hoàn chỉnh đã làm đủ các công đoạn phụ ra khỏi dây chuyền đồng thời cho phép đưa sản phẩm mới vào (sản phẩm chưa làm công đoạn phụ nào) Mục đích sau cùng là làm sao phân bố đều công vi c đến các công đoạn phụ,tại mỗi thời điểm ở các công đoạn đều có sản phẩm để làm Khi đó dây chuyền sản xuất sẽ đạt năng suất và... AT24C0X sẽ được nạp một giá trò cố đònh ( mã ROM) VÍ DỤ: giả sử băng tải của dây chuyền có 1000 rãnh thì ta sẽ dùng 1000 con ROM gắn trên 1000 bánh xe Vì vậy để phân biệt được bánh xe (sản phẩm) này thì các con SEEPROM sẽ được nạp các giá trò từ 1 đến 1000 (2 bytes) IV Đọc Dữ Liệu Từ Serial EEPROM : Như ta đã giới thiệu ở phần bus I2C để đọc dữ liệu từ SEEPROM tại mỗi công đoạn ta sẽ dùng 1 con VXL