TRUYỀN THÔNG NỐI TIẾP DÙNG VISUAL BASIC:

Một phần của tài liệu Luận văn tốt nghiệp tự động hóa trong công nghiệp và lập trình điều khiển trtên bộ PLC lập trình thang máy (Trang 58 - 63)

II. Một số đặc tính kỹ thuật đặc trưng của CPU224:

TRUYỀN THÔNG NỐI TIẾP DÙNG VISUAL BASIC:

PortOpen: Mở/Đóng một cổng (tuỳ thuộc vào thông số) và đặt thông số cho cổng setting. Đặt và trả lại tham số truyền thông như: tốc độ truyền theo bít, chẵng lẽ…

Thí dụ sau đây chỉ ra cách truyền thông qua cổng nối tiếp có thể được tiến hành như thế nào bằng cách sử dụng một MODEM.

Private sub From_load()

‘biến để lưu giữ chuỗi nhập vào Dim Instring as String

,sử dụng COM1 Mscomm1.ComPort=1

‘9600baud,no parity,8 bit data, 1 bit stop Mscomm1.setting=’’9600,N,8,1’’

‘ra lệnh cho điều khiển Mscomm đọc hết bộ đệm nhận khi dùng lệnh Input Mscomm1.InputLen=0 ‘mở cổng LAD STL MOVR IN OUT MOV R EN IN OUT

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 gử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

Sau đây ta sẽ tìm hiểu một số đặc tính quang trọng của điều khiển truyền thông Setting property:

Đặc tính setting đặ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ẳng lẽ, số bit dữ liệu va số bit dừng.

Cú pháp của câu lệnh là:

[form.] Mscomm1.Setting[=Paramstring$]

(Nếu Paramstring$ không hợp lệ (valid) thì khi mở cổng, điều khiển truyền thông sẽ phát sinh lỗi 280 (lỗi giá trị thuộc tính không hợp lệ)

(Paramstring$ là một chuỗi chúa 4 thông số thiết lập cho cổng truyền thô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 la số bít dữ liệu, Slà số các bít dừng(Stop bit ). Giá trị mặc định của paramstring$ là: ‘’9600 ,n,8,1’’

Bảng sau đây liệt kê các giá trị baud hợp lệ :

110/2400/19200//57600//300//4800//28800//115200//600//9600//38400//128000//12 00//14400//5600//256000 Bảng sau đây mô tả các giá trị chẵn lẽ hợp lệ ;

//Space( Số bit dữ liệu trong một lần truyền(khung truyền ) là : 4 , 5 , 6 , 7 , 8 (default

Số bit Stop hợp lệ là : 1 , 1.5 , 2

Thí dụ sau cho phép đặt thông số số cho cổng truyền ở tốc độ baud là 4800 không kiểm tra bít chẳng lẽ .8 bit dữ liệu ,1 bit dừng :

Mscomm1.Setting=’’4800,n,8,1’’

Kiểu dữ liệu Mscomm1.Setting là: String. CommPort Property:

Đặt 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 là: [form.]mscomm.CommPport[=portnumber%] (adsbygoogle = window.adsbygoogle || []).push({});

Trong khi thiết kế (design time ) ta có thể đặt portnumber % bằng một giá trị nằm trong khoảng từ 1 đến 16 (giá trị mặc định là 1)trước khi dùng lệnh Portopen phải thiết lập cổng bằng CommPort thì điều khiển truyền thông sinh ra lỗi 68(cổng không tồn tại)

Kiểu dữ liệu: Integer PortOpen property:

Đặ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à:

[form]Mscomm.Portopen[={True/Fast}

Thông so thiết lặp là true để mở cổng. Fast đóng cổng và xoá nội dung các bộ đệm nhận và truyền. Mscomm tự động đóng khi ứng dụng kết thúc

Trước khi dùng đặt tính này. Phải đặt thông số cổng bằng đặt tính CommPortvới một giá trị hợp lệ, nếu ta quên đi đặc tính này lỗi 68 sẽ phát sinh

Thí dụ đây mở cổng truyền thông số 1(COM 1) với tốc độ baud là 4800 Mscomm1.Setting=”4800,n,8,1”

Mscomm1.CommPort=1 Mscomm1.PortOpen=True

Kiểu dữ liệu: Kiểu logic (Boolean)

Các đặc tính phục vụ việc nhập dữ liệu(Input, InBufferCount và InBufferSze)d. 1Input property

Input trả lại và xoá bỏ một chuỗi ký tự từ bộ đệm nhận. Đặc tính này không sẵn có 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 là:

[form.]MSComm.Input

Đặt tính InputLen quy đinh số ký tự được đọc bởi câu lệnh Input. Để xác định Số các ký tự trong bộ đệm, đặt 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 đặt tính Input. Nếu đặt tính này được set là comminputmodetext thì đặc tính Input sẽ trả về dữ liệu kiểu Text vào một biến Variant. Nếu Input mode là Comm InputmodeBinary thì Input sẽ trả về dữ liệu nhị phân trong mảng các byte vào một biến Variant.

Thí dụ sau chỉ ra cách đọc dữ liệu từ bộ đệm nhận.

Mscomm1.InputLen=0’đọc toàn bộ nội dung của bộ đệm nhận ‘kiểm tra có dữ liệu hay không

If Mscomm1.InBufferCount then ‘đọc dữ liệu

InString$=Mscomm1.Input End if

Kiểu dữ liệu vạn năng(Variant) d.2.InBufferSize:

Đặt và trả lại kích thước bộ đệm nhận, tính theo số byte. Cú pháp của câu lệnh là: [form.]Mscomm.InBufferSize[=numbyte%]

Đặc tính này có liên quan đến kích thước bộ đệm nhận. Gía trị mặc định là 1024 bytes. Kích thước của bộ đệm phải đặt sao cho nó có thể cất giữ được số lớn nhất của các ký tự sẽ được nhận trước khi chương trình ứng dụng có thể đọc chúng từ bộ đệm, trừ khi ta làm việc ở chế độ bắt tay (handshaking)

Kiểu dữ liệu của đặt tính này:Integer d.3.InBufferCount:

Trả lại số ký tự trong bộ đệm nhận. Nó cũng có thể được dùng đẻ xoá bộ đệm bằng cách đặt số của các ký tự bằng 0. Đặc tính này không có trong thời gian thiết kế

[form.]Mscomm.InBufferCount[=count%]

Ta có thể xóa bộ đệm nhận bằng cách đặt đặc tính InbufferCount=0 Kiểu dữ liệu của đặt tính này: Integer

các đặc tính việc xuất dữ liệu (Output, OutBufferCount và OutBuffsize) e.1.Output property:

Đặc tính Output sẽ viết một chuỗi ký tự vào bộ đệm truyền ,đặt tính này khong có trong thời gian thiết kế chương trình. Cú pháp câu lệnh là|:

[.]Mscomm1.Output [=outstring$]

Thí dụ sau đây cách giữ các ký tự mà người gõ vào bàn phím: Private Sub Form_load (key Ascii as Integer)

Mscomm1.Outport=Chr$(Key Ascii) End sub (adsbygoogle = window.adsbygoogle || []).push({});

Đặt tính Output có thể xuất dữ liệu dạng text hay dạng binary. Để gửi dữ liệu text, ta phải khai báo một biến Variant và cho chứa chuỗi muốn gửi gán biến này cho một đặc tính Output. Để gửi dữ liệu binary, ta phải truyền một biến Variant chứa một mảng có byte cho đặc tính Output.

Thông thường nếu ta 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 đượ 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 E.2.OutputBuffersize Property

Đặc tính này đặt 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 là:

[form.]Mscomm.OutBufferCount[=value%] Kiểu dữ liệu của đặc tính này :Integer

PHẦN III

Một phần của tài liệu Luận văn tốt nghiệp tự động hóa trong công nghiệp và lập trình điều khiển trtên bộ PLC lập trình thang máy (Trang 58 - 63)