TRUYỀN THƠNG NỐI TIẾP
Do sự phát triển ngày càng tăng cùa các ứng dụng truyền thơng qua cổng nối tiếp, từ phiên bản Visual basic 4.0, điều khiển truyền thơng đã được hồn chỉnh để sử dụng cho việc lập trình ghép nối máy tính qua cổng nối tiếp.
I. ĐIỀU KHIỂN TRUYỀN THƠNG:
Bình thường khi chạy phần mềm Visual Basic, ta chỉ thấy một số thành phần quen thuộc trên hộp cơng cụ. Nhưng visual basic cho phép nhiều thành phần cĩ thể bổ xung thêm vào. Điều khiển truyền thơng Msomm của visual basic là một trong số các đối tượng được bổ xung thêm vào để tham gia vào việc truyền nhận dữ liệu qua cổng nối tiếp.
Trong Visual Basic 5.0 và 6.0, ta cĩ thể bổ xung thành phần Mscomm như sau: chọn project => componet hay nhấn Ctrl+t, cửa sổ sau xuất hiện:
Click chọn thành phần Microsoft Comm Control, sau đĩ nhấn OK, thành phần
Trang 56
- Điều khiển sự kiện: truyền thơng điều khiển sự kiện là phương pháp tốt nhất được sử dụng trong quá trình trao đổi thơng tin nối tiếp khi giải phĩng máy tính để làm cơng việc khác. Trong nhiều tình huống, ta cần được thơng báo về sự thay đổi. Thí dụ như ta cần biết cĩ kí tự được gửi đến hoặc sự thay đổi xảy ra trên đường DCD hay đường RTS. Để làm điều đĩ ta sử dụng sự kiện truyền thơng OnComm để bẫy và điều khiển các sự kiện. Điều khiển truyền thơng cịn phát hiện và điều khiển các lỗi truyền thơng.
- Hỏi vịng (polling):ta cĩ thể hỏi vịng các sự kiện và lỗi bằng cách kiểm tra giá trị của đặc tính ComEvent sau mỗi chu kỳ của chương trình để xem liệu một sự kiện hay một lỗi đã xuất hiện. Chẳng hạn chương trình tạo vịng lặp để chờ một ký tự được nhận. Cứ mỗi lần như vậy, ký tự được đọc vào bộ dệm nhận.
II. CÁC ĐẶC TÍNH CỦA THÀNH PHẦN MSCOMM
Thành phần Mscomm được bổ xung vào biểu mẫu (form) bất cứ lúc nào cần đến việc truyền thơng.
Hình dưới nay chỉ ra các đặc tính của nĩ. Theo mặc định, cổng thứ nhất được tạo ra cĩ tên là Mscomm1, đối tượng thứ hai là Mscomm2, ....
Cĩ thể nhìn thấy các đặc tính chính của đối tượng là: ComPort, DTREnable, EOFEnable, Handshaking, InBuffersize, Index (chỉ số), Inputlen, Inputmode, Left, Name, Nulldiscard, Outbuffersize, Parityreplace, Rthreshold, RTSEnable, Settings (thiết lập thơng số ), Sthreshold, Tag (nhãn) và Top. Rõ ràng là điều khiển truyền thơng cĩ nhiều thơng số nhưng cĩ thể làm việc với chúng, ta can hiểu kỹ các đặc tính chính sau đây :
Các đặc tính Sự mơ tả
Comport Đặt và trả lại số cổng truyền thơng Input (nhập
vào)
Trả lại và số bỏ ký tự khỏi bộ đệm nhận
Output (xuất ra) Viết moat xâu ký tự vào bộ đệm nhận
Trang 58 thơng số cho cổng
Settings Đặt và trả lại các tham số truyền thơng như : tốc độ truyền theo bit, chẵn lẻ, số các bit dữ liệu v.v ……... Sau đây ta sẽ tìm hiểu một số đặc tính quan trọng của điều khiển truyền thơng
1. SETTINGS
Các đặc tính Settings đặt và trả lại các thơng số truyền thơng cho cổng RS- 232, như tốc độ baud, tính chẵn lẻ, số bit dữ liệu và số bit dừng. Cú pháp câu lệnh là:
Mscomm.Setting[=param.string$]
Nếu paramstring khơng cĩ khi mở cổng thì điều khiển truyền thơng phát sinh lỗi 380
Paramstring là một xâu chứa bốn thơng số thiết lập cho cổng Rs-232 và cĩ dạng như sau:
“BBBB, P, D, S”
Ở đây BBBB xác định tốc độ baud, P là bit chỉ tính chẵn lẻ, D là số bit dữ liệu và S là số bit dừng (stop bit). Giá trị mace định của paramstring là :”9600, N, 8, 1”
Bảng sau đây liệt kê các giá trị baud hợp lệ : Thơng số tốc độ baud 110 9600 (mặc định) 188000 (dự trữ) 300 14400 256000 (dự trữ) 600 19200 1200 38400 (dự trữ) 2400 56000 (dự trữ)
Bảng sau đây mơ tả các giá trị chẵn lẻ hợp lệ :
Giá trị Mơ tả
E Even (chẵn )
M Mark (dấu )
N None (khơng kiểm tra chẵn lẻ- mặc định)
S Space (để trống)
Bảng liệt kê số bit dữ liệu hợp lệ trong một lần truyền (khung truyền) Giá trị 4 5 6 7 8 (mặc định)
Bảng liệt kê số bit hợp lệ : Giá trị
1 1.5 2
Kiểu dữ liệu của Mscomm.Setting là xâu
2. COMMPORT
Đặc tính này đặt và trả lại số cổng truyền thơng. Cú pháp của câu lệnh này là : Mscomm.CommPort[=port number%]
Trong khi thiết kế ta cĩ thể đặt portnumber trong khoảng giá trị từ 1 đến 99 (giá trị mặc định là 1). Trước khi dùng lệnh này ta phải thiết lập cổng bằng CommPort. Nếu ta dùng đặc tính PortOpen trước khi thiết lập thơng số cho CommPort thì điều khiển truyền thơng phát sinh lỗi 68 (lỗi chưa cĩ thiết bị hoặc cổng khơng tồn tại).
3. PORTOPEN
Đặc tính PortOpen đặt và trả lại trạng thái của cổng truyền thơng (đĩng hoặc mở). Đặc tính này khơng cĩ trong thời gian thiết kế chương trình. Cú pháp của câu lệnh là :
Mscomm.PortOpen[={True/False}]
Thơng số thiết lập là True để mở cổng, cịn False để đĩng (giải phĩng) cổng và xố nội dung các bộ đệm nhận và truyền (tác động này tự động xảy ra khi một ứng dụng được đĩng). Kiểu dữ liệu của đặc tính PortOpen là kiểu logic Boolean.
Trang 60
Thí dụ sau đây chỉ ra cách truyền thơng qua cổng nối tiếp được tiến hành như thế nào bằng cách sử dụng MODEM
Private sub Form_load( ) ‘ biến để lưu chuỗi nhập vào Dim Instring as String ‘ sử dụng com 1 Mscomm1.ComPort=1
‘9600baud, no parity, 8 bit data, 1 stop bit Mscomm1.Settings=”9600,N,8,1”
‘ ra lệnh điều khiển Mscom đọc hết bộ đệm Mscomm1.Inputlen = 0
‘ mở cổng
Mscomm1.PortOpen = True ‘ gởi lệnh attention tới MODEM
Mscomm1.OutPut=”ATVQ0”&Chr$(13) ‘ để chắc rằng MODEM trả lời “OK” ‘ đợi dữ liệu trả lời về cổng nối tiếp
Do
DoEvents
Buffer$ = Buffer$ & Mscomm1.Input Loop until InStr(Buffer$,”OK”& vbCRLF) ‘ đọc dữ liệu trả lời “OK”
‘ đĩng cổng nối tiếp
Mscomm1.PortOpen = False End sub
4. XUẤT DỮ LIỆU
Các đặc tính phục vụ chi việc xuất dữ liệu là Output, OutBufferCount và OutBuffersize
Output property
Đặc tính này sẽ viết một xâu ký tự vào bộ đệm truyền, đặc tính này khơng cĩ trong thời gian thiết kế chương trình. Cú pháp câu lệnh này là :
Đặc tính OutPut cĩ thể xuất dữ liệu dạng text hay binary. Để gửi dữ liệu dạng text, ta phải khai báo một biến Variant và cho nĩ chứa chuỗi muốn gửi sau đĩ gán biến này cho đặc tính OutPut. Để gửi dữ liệu dạng binary, ta phải truyền một biến Variant chứa một mảng các byte cho đặc tính output.
Thơng thường để gửi một chuỗi ANSI tới ứng dụng, ta cĩ thể gửi dữ liệu dạng text. Nếu ta cĩ dữ liệu mà chứa các ký tự điều khiển được nhúng (embedded) như các ký tự NULL, ... thì ta sẽ truyền dữ liệu theo dạng binary.
Kiểu dữ liệu của dạng này là Variant. OutBufferSize property
Đặc tính này đặt và trả lại kích thước của các ký tự trong bộ đệm truyền. Cú pháp của câu lệnh này là :
Mscomm.OutBuffersize[=numbyte%] Giá trị mặc định của đặc tính này là 512 byte.
Khơng được nhầm lẫn giữa 2 đặc tính OutBufferCount và OutBufferSize với nhau. Đặc tính OutBufferCount nĩi lên số byte hiện đang cĩ trong bộ đệm truyền, cịn OutBufferSize quy định tổng kích thước của bộ đệm truyền.
Khơng để kích thước bộ đệm truyền quá lớn. Tuy nhiên để quá nhỏ thì sẽ xảy ra tình trạng tràn dữ liệu(trừ khi làm việc ở chế độ bắt tay). Thơng thường nên bắt đầu kích thước với bộ đệm truyền là 512 byte. Nếu lỗi tràn xảy ra thì phải tăng kích thước bộ đệm truyền cho phù hợp với ứng dụng hiện tại.
Kiểu dữ liệu của đặc này là Integer. OutBufferCount property
Đặc tính này trả lại số ký tự trong bộ đệm truyền. Nhờ đặc tính này, ta cĩ thể xố nội dung của bộ đệm truyền bằng cách đặt giá trị cùa OutBufferCount = 0. Cú pháp của câu lệnh này là :
Mscomm.OutBufferCount[=value%] Kiểu dữ liệu của đặc tính này là Integer 5. NHẬP DỮ LIỆU
Các đặc tính phục vụ cho việc nhập dữ liệu là Input, InBufferCount và InBufferSize
Trang 62
Input trả lại và xố bỏ một chuỗi ký tự từ bộ đệm nhận. Đặc tính này khơng cĩ sẵn trong khi thiết kế và là chỉ đọc (Read_only) khi chạy chương trình. Cú pháp của câu lệnh này là :
Mscomm.Input
Đặc tính InputLen quy định số ký tự được đọc bởi câu lệnh Input. Để xác định số các ký tự trong bộ, đặc tính InBuffercount được kiểm tra. Đặc InputLen là 0 để đọc toàn bộ bộ đệm nhận.
Đặc tính InputMode quyết định kiểu dữ liệu thu về qua đặc tính Input. Nếu đặc tính được det là ComInputmodeText thì đặc tính sẽ trả về dữ liệu kiểu Text vào một biến Variant. Nếu Inputmode là ComInputmodeBinary thì Input sẽ trả về dữ liệu dạng nhị phân trong một mảng các byte vào một biến Variant.
Kiểu dữ liệu của đặc tính này là Variant InBufferSize
Đặt và trả lại kích thước của bộ đệm nhận, tính theo số byte. Cú pháp của câu lệnh là :
Mscomm.InBufferSize[=numbyte%]
Đặc tính này cĩ liên quan tới kích thước bộ đệm nhận. Giá trị mặc định là là 1024 byte. Kích thước của bộ đệm nhận phải đặt sao cho nĩ cĩ thể cất giữ được số lớn nhất của các ký sẽ được nhận trước khi chương trình ứng dụng cĩ thể đọc chúng từ bộ đệm, trừ khi làm việc ở chế độ bắt tay (handshaking).
Kiểu dữ liệu của đặc tính này là Integer InBufferCount
Trả lại số ký tự trong bộ đệm nhận. Nĩ cũng cĩ thể được dùng để xố bộ đệm nhận bằng cách đặt số của các ký tự là 0. Đặc tính này khơng cĩ trong thời gian thiết kế chương trình. Cú pháp của câu lệnh này là :
Mscomm.InBufferCount[=count%]
Ta cĩ thể xố bộ đệm nhận bằng cách đặt đặc tính InBufferCount = 0 Kiểu dữ liệu của đặc tính này là Integer.
CHƯƠNG III :
THI CƠNG VÀ ĐIỀU KHIỂN MƠ HÌNH BÃI GIỮ XE TỰ ĐỘNG
I. THI CƠNG MƠ HÌNH
1. Sơ đồ khối của mơ hình bãi giữ xe tự động
Mơ hình bãi giữ xe tự động em thi cơng là mơ hình bãi giữ xe dạng tầng hai bên cĩ hình dạng như sau:
Trang 64 2. Các thiết bị dùng trong mơ hình
Động cơ DC giảm tốc dùng để kéo thang máy, dung trong mâm trượt và hệ thống nâng xe. Động cơ DC dùng nguồn 24VDC
Hình ảnh động cơ DC giảm tốc dùng nguồn 24VDC
Rơle 24VDC dùng để kích động cơ hoạt động, cơng tắc hành trình để xác định vị trí co dạng như sau: 0 24VDC DAU RA PLC DAU RA PLC 3 5 4 1 2 DC 1 2 3 5 4 1 2 0 0
3. Hình ảnh thực tế của mơ hình bãi giữ xe tự động
Hình ảnh tổng quát của mơ hình bãi giữ xe tự động
Trang 66 Hình ảnh chổ để xe dạng lượt
Hình ảnh bảng rơle và nút nhấn điều khiển