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

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

Đang tải... (xem toàn văn)

Thông tin tài liệu

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'; . 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. 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. 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

Ngày đăng: 09/07/2014, 17:20

Từ khóa liên quan

Mục lục

  • 1.3 Gọi hàm trong Visual Basic

  • 1.4 Gọi hàm trong Delphi

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan