Tải bản đầy đủ (.doc) (5 trang)

CHƯƠNG 1: MỞ ĐẦU doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (87.95 KB, 5 trang )

CHƯƠNG 1 : MỞ ĐẦU
Ngày nay việc xử dụng máy tính nói riêng và vi xử lý nói chung trong các dây chuyền sản
xuất hiện đại đã là yêu cầu bắt buộc để tăng năng suất và chất lượng sản phẩm. Trong các
sản phẩm dân dụng, việc sử dụng vi xử lý góp phần tăng tính thông minh của sản phẩm và
tạo tiện lợi cho người sử dụng.
Vi xử lý được sử dụng trong điều khiển và đo lường dưới các dạng sau:
• Máy tính điều khiển
• Vi xử lý điều khiển nhúng (embedded microprocessor, embedded micro-
controller)
• Bộ điều khiển logic lập trình được (PLC)
Cả ba dạng đều được thiết kế dựa trên cơ sở hoạt động của vi xử lý với chức năng xử lý
thông tin theo sơ đồ hình 1.1.
Hình 1.1
Cấu trúc tổng quát của hệ thống điều khiển quá trình gồm các phần sau:
• Bộ xử lý trung tâm
• Các kênh truyền thông liên lạc giữa người - máy tính (HMI) và giữa máy tính –
máy tính .
• Các thiết bị ghép nối và chuyển đổi tương tự - số (ADC), chuyển đổi số - tương tự
(DAC).
• Thiết bị đo lường (cảm biến)
• Cơ cấu chấp hành (relay, động cơ, van khí và thủy lực, xy lanh thủy khí…)
Môi trường
Quá trình vật lý
Máy tính Thiết bị xuấtThiết bị nhập
Sản phẩm vào
Năng lượng vào Năng lượng ra
Sản phẩm ra
Tín hiệu đo lường và điều khiển
Nhiễu
Hình 1.2: Cấu trúc hệ thống điều khiển bằng máy tính
Khi dùng máy tính để đo lường – điều khiển ta phải giải quyết vấn đề là xuất một dữ liệu


8 bit ra một thanh ghi hay đọc dữ liệu 8 bit từ thanh ghi vào một biến.
Vấn đề này được giải quyết dễ dàng bằng các ngôn ngữ lập trình như hợp ngữ, Pascal, C,
Visual C, Delphi…
Các thư viện liên kết động-Dynamic Link Library(DLL)
1. 1 Khái niệm thư viện liên kết động
DLL là các thư viện liên kết động chứa các hàm và thủ tục mà ta có thể sử dụng để
bổ sung cho những hàm còn thiếu của một ngôn ngữ lập trình.
Có hai loại DLL là Windows API DLL và Third-Party DLL
Windows API DLL là những tập tin DLL đã được cài sẵn theo cáchệ điều hành-Windows.
Các tập tin Windows API DLL có những hàm, thủ tục được bổ sung một số chức năng mà
VB chưa có.
Ngoài các Windows API DLL, các chương trình trên Windows có thể phải sử dụng
các DLL khác ( do các công ty hay cá nhân khác Microsoft phát triển) gọi là cácThird-
Party DLL. Không như cácWindows API DLL , các Third-Party DLL cần được cài lên đĩa
cứng trước khi sử dụng lần đầu. các Third-Party DLL thường được tạo ra bằng ngôn ngữ
C.
Việc sử dụng cácDLL có nhiều ưu điểm so với các thư viện tĩnh (thường gọi là
Package):
DLL tiết kiệm chỗ trống trên đĩa.
DLL tiết kiệm bộ nhớ bằng cách sử dụng kỹ thuật chia sẻ hay còn gọi là ánh
xạ bộ nhớ.
Máy tính trung tâm
Máy vi tính
Giao diện
Khuếch đại chuyển đổi Khuếch đại công suất
ADC DAC
ADC
ADC
Người
vận hành

Việc gỡ rối ( Debug) trở nên dễ dàng hơn bởi các lỗi đượccô lập trong DLL
duy nhất.
DLL luôn tỏ ra hiệu quả khi độ an toàn của nó được đảm bảo.
* Khai báo DLL
Để có thể sử dụng các hàm, thủ tục trong một DLL, trước hết phải khai báo các
hàm, thủtục đó. Công thức khai báo chung trong VB là:
[Public| Private] Declare Sub|Function name Lib “Libname” [Alias “aliasname”]
vd: Public Declare Function PortIn Lib "io.dll" (ByVal Port As Integer) As Byte
Trong đó
Public : sử dụng toàn cục
PortIn: tên hàm
Io.dll: tên DLL
1.2 Port.dll và IO.dll
Một vấn đề đặc biệt khó khăn khi làm việc trong môi trường Windows là tiếp cận
đến các giao diện của máy tính PC. thực tế cho thấy có một biện pháp hiệu quả là tạo ra
một tập tin DLL có khả năng sử dụng trong nhiều ứng dụng. Trong DOS, mỗi ngôn ngữ
lập trình đều có các lệnh dùng cho cổng, thường đượcgọi tắt là lệnh cổng ( trong
GWBASIC là INP và OUT, với Turbo Pascal là PORT[]…) nên có thể sử dụng các lệnh
này để trao đổi trực tiếp lên toàn bộ phần cứng của PC. Trong Windows 3.1, sự hạn chế ở
mức độ tương đối, vẫn có thể vượt qua. Trong môi trường Windows95,98 vấn đề truy
nhập trực tiếp tới các cổng trở nên khó khăn hơn. Với các phiên bản VB5, VB6 hầu như
không còn khả năng truy nhập trực tiếp tới các cổng.
Windows NT, 2000, XP… hoàn toàn quay lưng lại với người viết chương trình
nghiệp dư. hệ thống được thiết kế sao cho có thể hoạt động trong chế độ bảo vệ và không
có cách nào để tuỳ tiện truy nhập tới phần cứng. chỉ có một khả năng còn bỏ ngỏ là sử
dụng các tập tin DLL.
Tệp PORT.DLL là một DLL được viết phục vụ cho việc truy nhập cổng trong các
môi trường Windows. Tệp này bao gồm những chức năng sau:
Mở ra các giao diện
Truyền dữ liệu nối tiếp

Tiếp cận đến các đường dẫn ở giao diện
Nhập vào và xuất ra các cổng.
Đo và định thời đến ms, us
Truy nhập đến card âm thanh
Truy nhập đến cổng trò chơi.
Tệp PORT.DLL có thể được sử dụng trong nhiều ngôn ngữ lập trình khác nhau
trong nhiều phiên bản khác nhau của hệ điều hành Windows. Đối với các phiên bản
Windows NT, 2000, XP…các hàm nhập vào và xuất ra các cổng của tệp PORT.DLL
không sử dụng được. Vì vậy chúng tôi thường sử dụng thêm một tệp DLL khác có khả
năng khắc phục vấn đề trên là IO.DLL.
Các khai báo của các hàm và thủ tục trong các DLL trên được trình bày trong một
tập tin có tên “io_port.dll”, người sử dụng có thể “add “ tập tin này vào các ứng dụng của
mình để sử dụng hoặc chép lại các khai báo dưới đây vào một “Module” mới. Nhưng
trước hết để sử dụng các DLL này, như đã được đề cập, người dùng phải cài đặt, hay chép
2 tập tin PORT.DLL , IO.DLL vào thư mục hệ thống (…\WINDOWS\System đối với
Windows 98 , và …\WINDOWS\System32 đối với Windows XP hay \WINNT\System32
đối với Windows 2000…).
1.2.1. Một số hàm, thủ tục đáng lưu ý trong Port.dll:
OPENCOM : mở cổng Com, các cổng Com phải được mở trước khi sư dụng.
CLOSECOM: đóng cổng Com
SENDBYTE: xuất 1 byte dữ liệu ra cổng Com
READBYTE: nhận 1 byte dữ liệu từ cổng Com
DTR:Set, Reset chân DTR của Cổng Com
RTS:Set, Reset chân RTS của Cổng Com
TXD:Set, Reset chân TXD của Cổng Com
CTS:Set, Reset chân CTS của Cổng Com
DSR:Set, Reset chân DSR của Cổng Com
RI: Set, Reset chân RI của Cổng Com
DCD: Set, Reset chân DCD của Cổng Com
DELAY: tạm dừng trong 1 khoảng thời gian tính bằng mili giây

DELAYUS:tạm dừng trong 1 khoảng thời gian tính bằng micro giây
TIMEINIT: bắt đầu đếm thời gian (mili giây)
TIMEREAD: đọc khoảng thời gian đã đếm (mili giây)
TIMEINITUS:bắt đầu đếm thời gian (micro giây)
TIMEREADUS:đọc khoảng thời gian đã đếm (micro giây)
1.2.2. Một số hàm, thủ tục đáng lưu ý trong IO.dll
PortOut : xuất 1 byte dữ liệu ra cổng
PortIn: nhập 1 byte dữ liệu từ cổng
PortWordOut: xuất 2 byte dữ liệu ra cổng
PortWordIn: nhập 2 byte dữ liệu từ cổng
PortDWordOut: xuất 4 byte dữ liệu ra cổng, với cổng LPT, lệnh này cho phép xuất
dữ
liệu ra đồng thời tất cả các thanh ghi.
PortDWordIn: nhập 4 byte dữ liệu từ cổng,với cổng LPT, lệnh này cho phép nhập dữ
liệu vào đồng thời từ tất cả các thanh ghi.
SetPortBit : set (mức 1) 1 chân của các cổng
ClrPortBit: xoá (mức 0) 1 chân của cổng
NotPortBit: lấy bù 1 chân của cổng
GetPortBit: nhập về trạng thái của 1 chân nào đấy.
1.3 Gọi hàm trong Visual Basic
Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)
Private Declare Sub PortWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Integer)
Private Declare Sub PortDWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Long)
Private Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte
Private Declare Function PortWordIn Lib "IO.DLL" (ByVal Port As Integer) As Integer
Private Declare Function PortDWordIn Lib "IO.DLL" (ByVal Port As Integer) As Long
Private Declare Sub SetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Sub ClrPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Sub NotPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Function GetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte) As Boolean

Private Declare Function RightPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Private Declare Function LeftPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Private Declare Function IsDriverInstalled Lib "IO.DLL" As Boolean
1.4 Gọi hàm trong Delphi
procedure PortOut(Port : Word; Data : Byte);
procedure PortWordOut(Port : Word; Data : Word);
procedure PortDWordOut(Port : Word; Data : DWord);
function PortIn(Port : Word) : Byte;
function PortWordIn(Port : Word) : Word;
function PortDWordIn(Port : Word) : DWord;
procedure SetPortBit(Port : Word; Bit : Byte);
procedure ClrPortBit(Port : Word; Bit : Byte);
procedure NotPortBit(Port : Word; Bit : Byte);
function GetPortBit(Port : Word; Bit : Byte) : WordBool;
function RightPortShift(Port : Word; Val : WordBool) : WordBool;
function LeftPortShift(Port : Word; Val : WordBool) : WordBool;
function IsDriverInstalled : Boolean;

Chú ý ! Sử dụng trong Delphi bạn phải tuân thủ quy tắc gọi hàm, ví dụ :
procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×