Giáo trình Đo lường và điều khiển máy tính (Phần 2)

Giao tiếp qua cổng song song.

a. Giới thiệu chung.

Cổng song song thường được dùng để giao tiếp máy vi tính với đối tượng bên ngoài nhờ các đặc

điểm:

- Lập trình đơn giản, dễ kết nối.

- Tốc độ nhanh.

Khuyết điểm của cổng song song là khoảng cách ngắn do tính chống nhiễu kém. Theo tiêu

chuẩn IEEE 1284 năm 1994 có 5 chế độ hoạt động cho cổng song song:

- SPP: Cổng song song chuẩn có 3 mode là:

 Compatibility: Xuất 8 bit.

 Nibble: Nhập 4 bit.

 Byte: Cổng hai chiều.

- EPP: Cổng song song tăng cường (enhanced parallel port).

- ECP: Cổng mở rộng khả năng (extended capability port).

Tùy loại main board có thể hỗ trợ cả 5 mode hay chỉ vài mode.

Cổng SPP có thể truyền dữ liệu song song 8 bit từ máy tính ra với vận tốc 50Kbyte/sec đến

150Kbyte/sec. Khi muốn nhập dữ liệu vào máy tính có thể dùng mode Nibble truyền 4 bit hay Byte

truyền 8 bit.

Cổng EPP và ECP dùng thêm phần cứng hỗ trợ nên vận tốc truyền nhanh hơn, có thể đến

2Mbyte/sec, thu phát song song 8 bit.

Thay đổi chế độ của cổng song song bằng cách vào BIOS SETUP của máy tính khi khởi động

máy.

pdf 66 trang kimcuc 5240
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Đo lường và điều khiển máy tính (Phần 2)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Đo lường và điều khiển máy tính (Phần 2)

Giáo trình Đo lường và điều khiển máy tính (Phần 2)
GIÁO TRÌNH 
ĐO LƯỜNG VÀ 
ĐIỀU KHIỂN MÁY TÍNH 
Giáo trình Đo lường và điều khiển máy tính
Trang 31
Chương3
GIAO TIẾP QUA CỔNG SONG SONG, NỐI TIẾP VÀ USB
3.1. Giao tiếp qua cổng song song.
a. Giới thiệu chung.
Cổng song song thường được dùng để giao tiếp máy vi tính với đối tượng bên ngoài nhờ các đặc
điểm:
- Lập trình đơn giản, dễ kết nối.
- Tốc độ nhanh.
Khuyết điểm của cổng song song là khoảng cách ngắn do tính chống nhiễu kém. Theo tiêu
chuẩn IEEE 1284 năm 1994 có 5 chế độ hoạt động cho cổng song song:
- SPP: Cổng song song chuẩn có 3 mode là:
 Compatibility: Xuất 8 bit.
 Nibble: Nhập 4 bit.
 Byte: Cổng hai chiều.
- EPP: Cổng song song tăng cường (enhanced parallel port).
- ECP: Cổng mở rộng khả năng (extended capability port).
Tùy loại main board có thể hỗ trợ cả 5 mode hay chỉ vài mode.
Cổng SPP có thể truyền dữ liệu song song 8 bit từ máy tính ra với vận tốc 50Kbyte/sec đến
150Kbyte/sec. Khi muốn nhập dữ liệu vào máy tính có thể dùng mode Nibble truyền 4 bit hay Byte
truyền 8 bit.
Cổng EPP và ECP dùng thêm phần cứng hỗ trợ nên vận tốc truyền nhanh hơn, có thể đến
2Mbyte/sec, thu phát song song 8 bit.
Thay đổi chế độ của cổng song song bằng cách vào BIOS SETUP của máy tính khi khởi động
máy.
b. Cổng SPP.
Cổng song song có đầu nối 25 chân cái, thường dùng để kết nối với máy in đầu nối Centrinics
34 chân.
Bảng 3.1 cho sơ đồ chân và ý nghĩa các chân của cổng SPP khi dùng với máy in, dấu “/” có ý
nghĩa tích cực thấp. Ví dụ, chân 15 là /Error hướng vào, nếu chân này xuống mức 0 là có lỗi. Cột đảo
ghi chữ “Có” tức là tín hiệu được đảo mức, ví dụ chân 17 khi đưa mức logic 0 ứng với chân này vào
thanh ghi điều khiển thì ở chân 17 xuất hiện mức 1.
Đầu ra cổng song song tương thích với cổng TTL, dòng cấp và thu vào khoảng vài mA đến
16mA tùy theo kết cấu phần cứng (Công nghệ ASIC).
Giao tiếp qua cổng song song thường được thực hiện theo hình 3.1.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 32
Bảng 3.1. Sơ đồ chân của đầu nối phía máy tính (cổng SPP) và phía máy in
Hình 3.1. Sơ đồ kết nối và bắt tay
Giáo trình Đo lường và điều khiển máy tính
Trang 33
Ban đầu dữ liệu 8 bit được đưa ra, máy tính đọc chân Busy nếu ở mức thấp thì máy in rảnh, sẽ
đưa tín hiệu Strobe rộng 1 sec và máy in đọc dữ liệu, đọc xong sẽ báo trở lại bằng ACK đảo rộng 5
sec. Nếu máy in bận thì Busy sẽ ở mức cao.
Việc giao tiếp được thực hiện qua 3 thanh ghi: Thanh ghi dữ liệu, thanh ghi điều khiển và thanh
ghi trạng thái. Thông thường sử dụng hai địa chỉ gốc là:
378H cho LPT1 (line printer 1)
278H cho LPT2.
Một số máy dùng địa chỉ 03BC.
- Thanh ghi dữ liệu có địa chỉ gốc +0, 8 bit, nhận dữ liệu để xuất ra ngoài, dữ liệu được chốt.
- Thanh ghi trạng thái có địa chỉ gốc +1 là thanh ghi chỉ đọc dùng để nhận tín hiệu từ ngoài vào,
có 5 tín hiệu vào.
Chú ý: Bit Busy được đảo, nghĩa là nếu chân 11 có điện áp +5V thì bit D7 của thanh ghi trạng
thái mức logic 0, bit D2 bằng 0 khi có ngắt từ /ACK.
- Thanh ghi điều khiển có bốn đường ra điều khiển, địa chỉ gốc +2, các đường này dùng cực thu
hở do đó có thể giao tiếp hai chiều.
Các chân 1, 11, 14 và 17 được đảo phần cứng, bít D6 thanh ghi trạng thái (chân số 10) từ 1 0thì gây ra ngắt IRQ7 nếu được cho phép bởi D4 của thanh ghi điều khiển =1.
Hình 3.2. Sơ đồ thanh ghi dữ liệu 2 hướng
Một số main board (Hình 3.2) hỗ trợ giao tiếp 2 chiều qua thanh ghi dữ liệu, bit D5 của thanhghi dữ liệu bằng 1 thì chp phép các chân 2  9 của thanh ghi dữ liệu có chiều đi vào, nghĩa là có thể
đưa tín hiệu vào các chân này rồi đọc thanh ghi dữ liệu.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 34
Các chân của thanh ghi điều khiển có đầu ra cực thu hở nên có thể nhận tín hiệu vào nếu trước
đó ta đã nạp 8 bít sao cho các đầu ra ứng với thanh ghi này lên 1 (Hình 3.3). Do các tín hiệu:
/Busy, /Select, /AF và /Strobe đã được đảo phần cứng nên ta thêm các cổng đảo, logic đọc vào
phản ánh đúng mức tín hiệu.
Hình 3.3. Giao tiếp song song 2 chiều qua cổng SPP
Trong một số trường hợp, các chân ra của thanh ghi điều khiển không dùng loại cực thu hở mà
dùng cột totem chỉ có một chiều xuất, lúc đó có thể dùng bộ phân kênh để đọc 4 bit dữ liệu vào thanh
ghi trạng thái, đọc hai lần sẽ được 8 bit dữ liệu (Hình 3.4).
Trong sơ đồ chân /Strobe được dùng để chọn nửa byte thấp khi ở mức 0 tức là bit D0 của thanhghi điều khiển ở mức 1.
Với sơ đồ này việc xuất/nhập dữ liệu 8 bit được thực hiện như sau:
1. Xác định địa chỉ gốc của cổng LPT.
2. Muốn xuất dữ liệu, ghi dữ liệu 8 bít vào thanh ghi dữ liệu, muốn xuất nhiều hơn 8 bit có thể
dùng kèm các tín hiệu Init, Select,  bằng cách ghi vào thanh ghi điều khiển byte thích
hợp.
3. Muốn đọc dữ liệu, ghi bit D0 =1 vào thanh ghi điều khiển, đọc 4 bit cao của thanh ghi trạng
thái (4 bit thấp của dữ liệu vào), rồi dời phải 4 bit, sau đó cho D0 của thanh ghi điều khiểnbằng 0, đọc 4 bit cao của thanh ghi trạng thái (4 bit cao của dữ liệu vào), kết hợp 2 lần đọc
ta được 1 byte rồi exclusive OR với 88H để đảo 2 bit D0 và D3 (do Busy đảo).
Hình 3.4. Vào 8 bit với 74LS157
Giáo trình Đo lường và điều khiển máy tính
Trang 35
Ví dụ lập trình:
Xuất trị của biến oval1 ra thanh ghi dữ liệu và oval2 ra thanh ghi điều khiển, nhập giá trị inval từ
thanh ghi trạng thái.
Trong ngôn ngữ C:
#define DATA 0X378
#define STATUS DATA +1
#define CONTROL DATA +2
inoval1, oval2, inval;
oval1 = 0X81;
outportb (DATA, oval1);
oval2 =0X08;
outportb (CONTROL, OVAL2^0x0b); //exclusive or
inval = ((inportb (STATUS)^0X80);
Trong ngôn ngữ BASIC:
DATA = &H378
STATUS = DATA+1
CONTROL = DATA+2
OVAL1 = 129
OUT DATA, OVAL1
OVAL2 = 75
OUT CONTROL, OVAL2 XOR 11
INVAL = ((INP(STATUS) XOR 128) AND &HF8)/8
- Sử dụng ngắt:
Khi bit 4 của thanh ghi điều khiển ở mức 1 sẽ cho phép ngắt nếu chân ACK chuyển từ 1 xuống
0, chương trình phục vụ ngắt IRQ7 sẽ được gọi (cũng có lúc ngắt bị tác động khi ACK chuyển từ 0 lên
1). Có thể viết 1 chương trình kiểm tra xem ngắt có tác động không. Về phần cứng chỉ cần nối chân 9
(D7) với chân 10 (ACK). Vào Control panel System kiểm tra địa chỉ và số ngắt của cổng LPT.
c. Cổng EPP (ENHANCED PARALLEL PORT).
Cổng EPP là sản phẩm liên kết của Intel, Xircom và Zenith, có hai chuẩn là EPP1.7 và EPP1.9,
vận tốc truyền từ 500KB/sec đến 2 MB/sec nhờ sự hỗ trợ của phần cứng và kỹ thuật DMA.
Khi chuyển cổng song song sang chế độ EPP (vào mục Setup khi khởi động máy tính để đặt chế
độ) các chân cổng sẽ mang tên gọi và ý nghĩa khác.
Bảng 3.2.
Cổng EPP có thêm một số thanh ghi như trong bảng 3.3
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 36
Bảng 3.3.
Ba thanh ghi đầu giống như trong SPP. Muốn truyền dữ liệu theo EPP ta đưa dữ liệu vào thanh
ghi gốc +4 và mạch logic sẽ tạo các tín hiệu cần thiết.
Hình 3.5. Giản đồ xuất nhập dữ liệu.
Chân/Write và /Data Strobe tích cực thấp chờ cho đến khi /Wait lên mức cao báo bên kia đã
nhận dữ liệu, sau đó /Data Strobe và /Write trở lại mức cao kết thúc truyền.
Khi nhận dữ liệu, đầu tiên trong thanh ghi gốc +4. Nếu /Wait mức thấp thì /Data Strobe sẽ ở
mức thấp chờ khi /Write ở mức cao bên kia báo đã gửi dữ liệu tới, /Data Strobe sẽ ở mức cao và dữ
liệu được đọc vào. Chu kỳ xuất và nhập dữ liệu cũng giống như chu kỳ xuất và nhập địa chỉ. Thường
kết hợp địa chỉ và dữ liệu để truy xuất dữ liệu từ các địa chỉ ngoại vi khác nhau.
Phần cứng ngoại vi có nhiệm vụ xử lí các chân /Write, /Data Strobe, /Address Strobe đưa vào
các mạch cài hay cho phép và xuất tín hiệu /Wait phù hợp. Thông qua tín hiệu Interrupt (chân số 10)
ngoại vi sẽ tác động đến máy tính, bit 0 của thanh ghi trạng thái là bit báo hết thời gian EPP. Nếu trong
khoảng 10µs đường /Wait không tác động khi /Data Strobe hay /Address strobe tác động thì bit này sẽ
được đặt lên 1.
d. Cổng ECP.
Cổng ECP được phát triển bởi HP và Microsoft, sử dụng phần cứng hỗ trợ cho việc truyền dữ
liệu nên có vận tốc truyền nhanh, tương tự cổng EPP. Đặc điểm của cổng ECP là nén dữ liệu khi
truyền, cho phép tăng tốc độ truyền dữ liệu. Cổng ECP dùng 11 thanh ghi từ gốc +0 đến gốc +7 và gốc
+400H đến gốc +402H. Chân cổng ECP được qui định trong bảng 3.4.
Bảng 3.4.
Giáo trình Đo lường và điều khiển máy tính
Trang 37
Khi truyền dữ liệu từ máy tính ra ngoại vi thì HostAck sẽ đổi mức, còn truyền dữ liệu từ ngoại
vi vào máy tính thì PeriphAck đổi mức. Trên tuyến dữ liệu có thể truyền dữ liệu hay lệnh. Nếu
HostAck và PeriphAck ở mức cao là truyền dữ liệu. Nếu máy tính gửi lệnh, HostAck mức thấp; nếu
ngoại vi gửi lệnh thì PeriphAck mức thấp. Lệnh gồm hai loại, nếu bit 7 của tuyến dữ liệu (chân 9) ở
mức thấp thì 7 bit còn lại dùng để cho biết thông tin về nén dữ liệu. Nếu bit 7 ở mức cao thì 7 bit còn
lại là địa chỉ kênh. Khi truyền dữ liệu nén, đầu tiên truyền số lần lặp lại của byte dữ liệu, sau đó truyền
byte dữ liệu, ví dụ truyền 25 byte kí tự ‘A’ thì gửi byte 24 (Run length Count) sau đó gửi byte ‘A’.
Hình 3.6. Truyền dữ liệu từ máy tính ra ngoại vi.
Hình 3.7. Truyền dữ liệu từ ngoại vi vào máy tính
Ngoại vi nhận được byte 24 trong chu kì lệnh sẽ lặp lại byte ‘A’ ở chu kì dữ liệu 25 lần. Tỷ số
nén tối đa 64/1.
Để tăng tốc độ truyền dữ liệu, cổng ECP dùng các thanh ghi sắp xếp kiểu FIFO và một số thanh
ghi phụ.
Bảng 3.5.
Thanh ghi điều khiển mở rộng cho phép chọn kiểu hoạt động của cổng song song. Thanh ghi
cấu hình A và B sử dụng để đặt cấu hình của cổng ECP.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 38
e. Ghép nối hai máy tính.
Hai máy tính có thể ghép với nhau qua cổng song song hay nối tiếp để truyền số liệu thông qua
tiện ích Direct Cable Connection của hệ điều hành Windows hay tiện ích tương tự của phần mềm
Norton Commander.
Hình 3.8. Giao diện ghép nối hai máy tính
1. Ghép nối song song (Laplink cable): Dùng cáp nối 2 đầu đực.
DB25, giao tiếp 4 bít.
Chân Chân
D0 2 15
D1 3 13
D2 4 12
D3 5 10
D4 6 11
ACK 10 5
Busy 11 6
Paper out 12 4
Select 13 3
Error 15 2
GND 25 25
2. Ghép nối nối tiếp (Dùng cáp nối 2 đầu cái DB9 hay DB25).
Truyền bằng đường song song nhanh gấp 8 đến 10 lần truyền nối tiếp. Nếu cổng song song hai
máy có cấu hình ECP thì vận tốc truyền còn nhanh hơn, dưới đây là cáp nối với cổng ECP.
Bảng 3.6. Dùng cáp nối DB9 hay DB 25 Bảng 3.7. Cáp nối cổng ECP
Giáo trình Đo lường và điều khiển máy tính
Trang 39
3.2.Giao tiếp qua cổng nối tiếp.
a. Cấu trúc cổng COM.
Cổng nối tiếp trên máy tính, thường gọi là cổng COM được sử dụng để truyền dữ liệu hai chiều
giữa máy tính và ngoại vi, có các ưu điểm sau:
- Khoảng cách truyền dài hơn so với cổng song song. Cổng nối tiếp truyền mức 1 từ -3V đến -
25V và mức 0 từ +3V đến +25V nên tính chống nhiễu cao hơn, cho phép khoảng cách truyền xa hơn.
- Số dây kết nối ít, tối thiểu 3 dây.
- Có thể ghép với đường dây điện thoại, cho phép khoảng cách truyền chỉ bị giới hạn bởi mạng
tổng đài điện thoại.
- Có thể truyền không dây dùng tia hồng ngoại.
- Ghép nối dễ dàng vớ vi điều khiển hay PLC.
- Cho phép nối mạng.
Các thiết bị ghép nối nối tiếp chia làm 2 đoạn DTE (Data Terminal Equipment) và DCE (Data
Communication Equipment). DCE là các thiết bị trung gian như modem, còn DTE là các thiết bị như
máy tính, vi điều khiển, PLC, là nguồn tạo ra dữ liệu hay tiếp nhận dữ liệu để xử lí. Có thể ghép nối
DTE với DTE hoặc DCE, DCE với DTE hoặc DCE. Tín hiệu truyền nối tiếp theo dạng xung chuẩn
RS232 của EIA (Electronics Industry Associations), mức logic 0 còn gọi là Space giữa +3V và +25V,
mức logic 1 còn gọi là Mark, ở giữa -3V và – 25V.
Từ DTE tín hiệu được truyền giữa hai dây TXD và GND theo khuôn dạng hình 3.9 sau:
Hình 3.9
Khi không truyền đường dây sẽ ở trạng thái Mark, khi bắt đầu truyền, xung Start được truyền
(+10V) sau đó là 8 bit dữ liệu, bit D0 được truyền trước, nếu bit dữ liệu logic 0 thì điện áp đường dây
tương ứng là +10V, sau các bit dữ liệu là bit kiểm tra chẵn lẻ rồi bit stop ở logic 1(-10V), DTE nhận
tín hiệu truyền ngược trở lại theo đường RXD. Nếu nối hai DTE với nhau thì dùng sơ đồ hình 3.10a.
Hình 3.10
Cổng COM có hai dạng đầu nối đực D-25 và D-9.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 40
Thường sử dụng các sơ đồ kết nối hình 3.11.
Hình 3.11: a) Kết nối trực tiếp; b) Kết nối qua modem
Tín hiệu truyền nối tiếp dưới dạng các bit, số bit trong một giây được gọi là baud, vận tốc truyền
thông dụng là 300, 600, 1200, 2400, 4800, 9600, 19200 baud. Nếu dùng vận tốc 9600 baud và
khung truyền 8, E, 2 (8 bit dữ liệu, 1 bit kiểm tra chẵn, 2 bit stop) thì truyền một byte chiếm 12 bit, vậy
một giây truyền được 800 byte, thời gian truyền 1 bit là ~ 0,1msec. Các modem đời mới có thể đạt tốc
độ 56000baud, tuy nhiên các vi mạch truyền nối tiếp có thể đạt tốc độ cao hơn đến 115200 baud (vi
mạch 16550), 230400 baud (16C650). Vì vậy các modem phải nén tín hiệu trước khi truyền trên
đường. Kết nối giữa máy tính (DTE) và modem (DCE) thực hiện theo nguyên tắc các chân cùng tên
nối với nhau. Còn khi kết nối DTE và DTE thường dùng sơ đồ sau:
Khi DTE cần truyền dữ liệu thì DTR tích cực đưa về DSR cho biết phía nhận sẵn sàng, đưa về
CD cho biết đã nhận được sóng mang của modem ảo. Hai DTE có cùng khung truyền nên RTS và
CTS nối với nhau. Đôi khi có thể bỏ đường nối DTR và DSR và CD.
Khi kết nối DTE với DCE, do vận tốc truyền khác nhau, cần điều khiển lưu lượng. Có hai cách
là dùng phần cứng và phần mềm. Khi dùng phần cứng sử dụng hai dây RTS và CTS. Nếu DTE muốn
truyền sẽ cho RTS tác động, nếu DCE chấp nhận sẽ gửi trở về CTS và máy tính sẽ gửi dữ liệu, nếu
máy tính không nhận được CTS sẽ không gửi dữ liệu. Điều khiển lưu lượng bằng phần mềm dùng hai
kí tự Xon và Xoff, Khi modem muốn máy tính ngừng truyền sẽ gửi đi kí tự Xoff (ASCII 19), còn khi
modem rảnh nó sẽ gửi kí tự Xon (ASCII 17).
Việc trao đổi dữ liệu của máy tính được thực hiện thông qua vi mạch UART (Universal
Asynchronous Receiver Transmitter), còn với vi điều khiển hay PLC thì có các vi mạch chuyên dụng
hoặc được tích hợp trong vi xử lí. Các máy tính đời mới dùng công nghệ ASIC sử dụng chíp đa năng
làm nhiệm vụ giao tiếp nối tiếp, song song, cổng trò chơi, điều khiển đĩa, tuy nhiên phần giao tiếp nối
tiếp thiết kế tương hợp với các vi mạch UART rời. Các loại vi mạch UART thường gặp là 8250,
8250A, 16450, 16550, 16650, 16750,  6402.
Các cổng nối tiếp được đánh số COM 1, COM 2, COM 3, COM 4.
Bảng dưới đây cho địa chỉ gốc cổng COM và các thông tin khác đặc trưng cho từng cổng COM.
Giáo trình Đo lường và điều khiển máy tính
Trang 41
Hình 3.12 cung cấp sơ đồ card giao tiếp LPT/COM của máy XT giúp ta có khái niệm về cách
ghép bus ISA với UART. Các chân UART có mức TTL nên cần mạch chuyển mức để ghép với mức
RS232. Hình 3.13 cho sơ đồ chân của một số UART thông dụng. Bảng 3.8 cung cấp ý nghĩa các chân
của 16550.
Hình 3.12a. Card giao tiếp LPT/COM phần đệm
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 42
Hình 3.12b: Card giao tiếp LPT/Com phần LPT
Giáo trình Đo lường và điều khiển máy tính
Trang 43
Hình 3.12c: Card giao tiếp LPT/COM phần COM
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 44
Hình 3.13. Sơ đồ chân UART
Bảng 3.8. Ý nghĩa các chân của UART 16550
Giáo trình Đo lường và điều khiển máy tính
Trang 45
Bảng 3.9. Các thanh ghi của UART
Bảng 3.10
Bảng 3.11. Thanh ghi cho phép ngắt
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 46
Bảng 3.12. Thanh ghi nhận dạng ngắt IIR
DLAB (D ... chứa vào R+1, R
Dư số chứa vào R+3, R+2
Căn hai của Sq+1, Sq
Kết quả chứa vào R
4.7.8. Lệnh số học nhị phân 16 bit không dấu.
ADB: CY ON: Kết quả quá FFFF, OF ON: Kết quả quá 7FFF, UF ON: Kết quả nhỏ hơn 8000,
EQ ON: Kết quả 0, N ON: Bit 15 kết quả là 1. Sử dụng các cờ OF, UF khi muốn cộng trừ số có dấu.
SBB: CY ON khi Mi<Su + CY (số không dấu), các cờ khác giống lệnh ADB.
4.7.9. Lệnh số học nhị phân 32 bit không dấu.
ADBL: CY ON: Kết quả quá FFFFFFFF, OF ON: Kết quả quá 7FFFFFFF, UF ON: Kết quả
nhỏ hơn 80000000, EQ ON: Kết quả 0, N ON: Bit 15 R+1 là 1. Sử dụng các cờ OF, UF khi muốn
cộng trừ số có dấu.
SBBL: CY ON: khi Mi<Su + CY (số không dấu), các cờ khác giống lệnh ADB.
Lệnh nhân chia nhị phân có dấu.
MBS: Nhân 16 bit có dấu, N ON khi bit 15 của R+1 ON.
MBSL: Nhân 32 bit có dấu, N ON khi bit 15 của R+3 ON.
DBS: Chia 16 bit có dấu, N ON khi bit 15 của R ON.
DBSL: Chia 32 bit có dấu, N ON khi bit 15 của R+1 ON.
Giáo trình Đo lường và điều khiển máy tính
Trang 81
4.7.10. Lệnh số thực.
Cộng +F Tang TAN
Trừ -F Cung sin ASIN
Nhân *F Cung cos ACOS
Chia /F Cung tang ATAN
Đổi độ ra rad RAD Căn bậc hai SQRT
Đổi rad ra độ DEG Mũ EXP
Sin SIN Log LOG
Cosin COS
4.8. Lệnh so sánh.
4.8.1. So sánh hai ô nhớ.
So sánh hai từ nhị phân không dấu Cp1 và Cp2
Cp1, Cp2: IR, SR, AR, HR, TC, LR, #.
Khi so sánh với PV của Timer/Counter giá trị là số BCD.
Kết quả so sánh phải đặt liền sau lệnh CMP để bảo đảm giá trị vì trong chương trình có thể có
nhiều lệnh so sánh.
Ví dụ: So sánh nếu #1000<(DM0000)<#2000 thì 10000 ON
LD 00000 AND 20000
CMP DM0000 #1000 CMP DM0000 #2000
AND 25505 AND 25507
OUT 20000 OUT 10000
LD 00000
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 82
4.8.2. So sánh khoảng.
So sánh số CD với khối 32 ô nhớ bắt đầu từ CB, kết quả chứa trong R.
CB≤CD≤CB+1: Bit 0 của R ON.
CB+1≤CD≤CB+i+1: Bit I của R ON.
CB+30≤CD≤CN+31: Bit 15 của R ON.
CD: IR, SR, DM, HR, TC, LR, AR, #; CB: IR, SR,DM, HR, TC, LR.
R: IR, SR, DM, HR, TC, LR, AR.
4.8.3. So sánh bảng.
So sánh CD với 16 ô nhớ bắt đầu từ TB, kết quả so sánh chứa vào 16 bit
Của R. Ví dụ nếu CD bằng TB+i thì bit i của R là ON.
TB, R: IR, SR, DM, HR, TC, LR.
CD: IR, SR, DM, HR, TC, LR, #.
4.8.4. So sánh hai bảng.
So sánh hai bảng TB1 và TB2 dài 16 bit từ.
Nếu hai từ thứ i bằng nhau thì bit thứ i của R OFF.
4.9. Lệnh ghi dời.
4.9.1. Dời trái.
Thanh ghi dời gồm một loạt từ nhớ 16 bit bắt đầu ở St và
chấm dứt ở E. Khi R ON mọi bit của thanh ghi ở trạng thái OFF
Khi R OFF thanh ghi chuẩn bị hoạt động.
Khi P từ OFF sang ON trạng thái ở đầu vào I chứa vào bit 0 của St
mọi bit trước của thanh ghi được dời về bên trái, bit cao nhất của
E mất đi. St, E: IR, SR, AR, HR, LR
Ví dụ: Chương trình phát hiện và loại bỏ phế phẩm.
Cảm biến 1: Sẽ phát tín hiệu báo khi phát hiện phế phẩm và đưa vào thanh ghi (tín hiệu 1).
Cảm biến 2: Phát một xung mỗi khi có một sản phẩm mới vào băng chuyền dùng lamg xung
nhịp cho thanh ghi (tín hiệu P).
Khi phế phẩm đến vị trí số 3 (4 xung kể từ khi cảm biến 1 báo) sẽ được đẩy vào thùng chứa phế
phẩm bởi van từ MV.
Giáo trình Đo lường và điều khiển máy tính
Trang 83
4.9.2. Dời thuận nghịch.
4.9.3. Dời digit sang trái.
4.9.4. Dời digit sang phải.
4.9.5. Dời từ.
4.9.6. Quay trái.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 84
4.9.7. Quay phải.
4.10. Chức năng ngắt (CQM1).
Chức năng ngắt cho phép PCL nhảy đến chương trình phục vụ ngắt khi có yêu cầu mà không
cần phải thường xuyên đọc trạng thái đầu vào.
Có ba loại ngắt:
- Ngắt đầu vào.
- Ngắt thời gian.
- Ngắt bộ đếm vận tốc cao.
Ngắt đầu vào: Có 4 đầu vào ngắt theo ưu tiên sau:
 Ngắt vào 0: (IR00000) >ngắt vào 1 (IR00001) > ngắt vào 2 (IR00002)> ngắt vào 3 (IR00003).
Các ngắt này gọi các hàm con theo thứ tự SBN 000 ÷ SBN 003. Muốn sử dụng ngắt đầu vào
phải đặt nội dung DM 6628.
Ví dụ: Muốn dùng đầu vào IR00000, IR00001 làm đầu vào ngắt thì đặt (DM6628)=0011.
Ngắt có thể che hay không che với lệnh INT (89).
Lệnh này có dạng tổng quát.
Muốn che ngắt hay không che dùng CC = 000 và D có dạng sau:
Khi bị che, tác động của đầu vào
ngắt được ghi lại nhưng không thực hiện,
khi xóa che sẽ lập tức nhảy đến chương
trình con phục vụ ngắt, trừ khi nó được
xóa ngắt bởi CC = 001 và bit tương ứng
của D là 1.
Đọc trạng thái che hay không che với CC = 002, bit tương ứng trong D sẽ ON nếu bị che.
Giáo trình Đo lường và điều khiển máy tính
Trang 85
Có thể đặt đầu vào ngắt ở chế độ đếm, nghĩa là ngắt chỉ xảy ra sau khi có một số lượng xung ở
đầu vào ngắt. Số lượng xung đặt trước ở các địa chỉ sau:
Nếu nội dung các ô nhớ trên là 0 thì ở chế độ ngắt thường, nội dung ô nhớ phải từ 0001 đến
FFFF để ở chế độ ngắt đếm. Tần số xung đếm tối đa 1 KHz.
Sau khi đặt giá trị cho các ô nhớ trên dùng lệnh INT để cho phép ngắt đếm hoạt động.
Nếu bit tương ứng trong D là 0 thì hoạt động ở chế độ đếm và cho phép ngắt,
nếu là 1 thì không tác động. Khi có một tín hiệu ngắt vào bộ đếm sẽ tăng lên 1 và
khi bằng trị đặt thì gây ra ngắt.
Bộ đếm sử dụng các ô nhớ sau:
Nội dung ô nhớ là nội dung bệ đếm trừ đi 1.
Ví dụ: Dùng ngắt 0 chế độ ngắt đầu vào và ngắt 1 chế độ ngắt đếm. Đặt DM 6628:0011
Lập trình cho PLC như sau:
Bộ đếm vận tốc cao (HSC High Speed Counter) được dùng để đếm số xung từ encoder ra số
theo chế độ ngắt. PLC có thể có nhiều HSC, HSC0 được lắp sẵn trên PLC. Dùng bo mạch mở rộng để
thêm HSC.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 86
Sử dụng HSC0 ở chế độ đếm tăng hay đếm giảm, khi dùng đếm tăng giảm tần số xung đếm 4
lần so với xung thực tế, điều này tăng độ phân giải của encoder, xung A, B và Z của encoder đưa vào
các đầu IR 00004 ÷ IR 00006. Tần số xung vào khi đếm tăng giảm là 2.5Khz và 5 Khz khi đếm tăng.
HSC0 được khởi động bằng cách đặt cấu hình:
Muốn xóa bộ đếm dùng một trong hai phương pháp:
- Xóa phần mềm: cho SR 25200 ON.
- Xóa bằng phần mềm và xung Z: khi xung Z ON và SR 25200 ON, HSC0 được xóa khi cấp
nguồn hay khi bắt đầu hoạt động.
Muốn đọc nội dung PV của bộ đếm, ta đọc nội dung hai ô nhớ SR 231, SR 230 hoặc dùng lệnh
PRV 000 000 P1, nội dung SR231 và SR230 sẽ chứa vào P1+1 và P1.
Gọi chương trình phục vụ ngắt bằng lệnh so sánh bảng CTBL 000 C TB.
Ví dụ: So sánh HSC0 với 1000 và 2000, gọi các chương trình con 101 và 102.
Ta đặt nội dung các ô nhớ.
Và viết chương trình
Giáo trình Đo lường và điều khiển máy tính
Trang 87
Ngắt thời gian: Có 3 ngắt thời gian 0, 1 và 2 được điều khiển nhờ lệnh STIM với hai chế độ
hoạt động:
- Ngắt đơn ổn: Gọi chương trình con một thời gian sau khi STIM hoạt động.
- Ngắt chu kỳ: Gọi chương trình con theo chu kỳ cách nhau một khoảng thời gian.
Lệnh STIM (69) có dạng sau: STIM C1 C2 C3: Từ điều khiển C1 dùng để chọn chế độ khởi
động, ngừng và đọc giá trị của Timer.
Chế độ đơn ổn: C1 đặt như trên, C2+1 chứa đơn vị thời gian từ 0005 đến 0320 (0.5ms đến
32ms) và C2 chứa số lần đếm của đơn vị thời gian.
Như vậy khoảng thời gian từ lúc STIM thực hiện đến khi gọi chương trình con ngắt là:
(C2)*(C2+1)*0.1ms = 0.5ms đến 319.968 ms.
Nếu C2 là hằng số thì thời gian timer là số đó x 1ms.
C3: Từ 0000 đến 0255 là số chương trình con phục vụ.
Chế độ chhu kỳ: C2; C2+1; C3: Như chế độ đơn ổn.
Chế độ ngừng: C2 = 000; C3 = 000.
Khi chương trình con được gọi, timer tự reset và hoạt động trở lại.
Chế độ đọc thời gian hiện tại của timer:
C2: Chỉ số lần bộ đếm đơn vị
thời gian đã giảm.
C2+1: Chứa khoảng thời gian
trong đơn vị thời gian.
C3: Chứa địa chỉ ô nhớ nhận
thông số thời gian đã trôi qua từ lần
giảm trước.
Thời gian tổng cộng là:
[(C2)*(C2+1)+C3]*0.1ms.
Ngắt timer2 không dùng khi
HSC0 đã dùng. Ngắt timer 0 không
dùng khi sử dụng SPED phát xung.
Ví dụ: Dùng ngắt thời gian 1
theo kiểu chu kỳ cứ 1s gọi chương
trình con số 23 một lần.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 88
4.11. Xử lý Analog.
Có các module AD DA và các lệnh dành riêng cho việc điều khiển.
Khối nhập analog 12 bit CQM1 - AD041.
Module này có 4 đầu vào điện áp hay dòng điện chiếm 4 ô nhớ, có địa chỉ n đến n +3, n tùy
thuộc vị trí gắn module và loại PLC.
Điện áp vào tối đa ± 15V.
Dòng vào tối đa ± 30mA.
Chọn chế độ nhờ DIP Switch.
Thời gian chuyển đổi 2.5ms/kênh.
Độ chính xác 1%.
Khi chọn tầm ±10V trong ô nhớ sẽ chứa số F830 ÷ 07D0H (-2000 ÷ +2000)
0V ÷ +10V: Tầm đổi 0030 ÷ 0FD0H (0048 ÷ 4048).
1V ÷ 5V hay 4mA ÷ 20mA số đổi là 0030 ÷ 0FD0.
Tổng trở nhận áp 1MΩ max, dòng 250Ω.
Trương hợp đặt ở chế độ trung bình sẽ lấy 8 trị số đổi rồi lấy trung bình, chu kỳ lấy trung bình ~
72ms.
Trường hợp đặt tầm đổi 1V ÷ 5V (4mA ÷ 20mA) khi tín hiệu vào < 0.95V (hay dòng nhỏ hơn
4mA) sẽ báo đứt dây ở bit 12 của mỗi ô nhớ. Khi có lỗi thì báo bằng bit 13 của từ nhớ đầu.
Khối xuất analog CQM1 – DA021.
Module có hai đầu ra áp và hai đầu ra dòng vi sai, thời gian đổi 0.5ms/2 điểm. Đổi 11 bit ra điện
áp hay dòng, mỗi đầu ra chiếm một ô nhớ.
0000 ÷ 07FF 0V ÷ 10V 0mA ÷ 20mA
F800 ÷ 07FF -10V ÷ + 10V
Các lệnh liên quan đến tín hiệu analog và điều khiển quá trình:
Tỷ lệ SCL: Đổi số nhị phân 4 bit digit sang số BCD 4 digit với tỷ lệ khác.
Giáo trình Đo lường và điều khiển máy tính
Trang 89
Ví dụ: Đổi số hex đọc từ khối analog in địa chỉ 002 tầm 0030 ÷ 0FD0H sang 0000 ÷ 0100BCD.
Tạo hàm APR (Arithmetic Process).
Nếu C là địa chỉ, ARP tính hàm nội suy f(x), f chứa trong địa chỉ bắt đầu từ C, x chứa trong S.
Hàm f(x) là hàm tuyến tính từng đoạn và biểu thị bằng đồ thị, ghi trong bảng từ C+1 đến C+2m+2, C
xác định số đoạn, dạng dữ liệu vào và ra. BCD hay BIN.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 90
Điều khiển PID.
Hàm PID dùng thông số đặt trong C đến C+6 để tính OW dựa theo IW và SV:
C: Trị đặt SV, nhị phân.
C+1: Dải tỷ lệ P 1 ÷ 9999 ứng với dải tỷ lệ 0.1% 999.9$.
C+2: Hệ số tích phân BCD TIK = TI/γ
C+3: Hệ số vi phân BCD TDK = TD/γ.
C+4: Chu kỳ lấy mẫu γ từ 00.01s đến 99.99s.
C+5: Bit 4 ÷ Bit 15 thông số lọc thường chọn là 0.65 (000 BCD), bit 0 ÷3: 0 – PID ngược, 1 –
PID thuận.
C+6: Bit 0 ÷ 3: Số bit của biến ra, giá trị 0  8 ứng với số bit 8  16 bit; bit 4 ÷ 7: đơn vị thời
gian của thời gian lấy mẫu, 0: đơn vị 100ms, 1: đơn vị 10ms; Bit 8 ÷ 11: tầm IW (như OW).
Các ô nhớ từ C + 7 đến C+32 phải để trống.
Ví dụ: Điều khiển nhiệt độ dùng điện trở đốt và quạt thổi.
Giáo trình Đo lường và điều khiển máy tính
Trang 91
Phát xung.
Đôi khi cần phát xung tần số cao hay xung điều rộng ra ngoại vi để điều khiển động cơ bước
hay điều khiển kiểu điều rộng xung. Dùng khối transistor ta có thể phát xung ở một trong các địa chỉ
IR 100 đến IR 115. Ghi vào ô nhớ DM6615 từ 00xx, xx từ 00 đến 15 tùy theo muốn dùng địa chỉ IR
nào.
Dùng lệnh PULS 000 000 P1 để ấn định số xung sẽ phát, là nội dung ô nhớ P1+1, P1 từ
00000001 đến 16777215.
Lệnh SPED D M F qui định cách phát xung, D = 000..150 chọn đầu ra 0015 của từ đã qui
định trong DM6615, M=000 là mode phát số lượng xung do lệnh PULS qui định, M=001 mode liên
tục phát xung liên tục, F là tần số xung từ 00020100 nhân với 10Hz. Khi đang phát xung muốn đổi
tần số ta thực hiện lệnh SPED với F thay đổi, nếu D = 000 thì ngừng phát xung.
4.12. Truyền thông.
Có thể ghép nối PLC với nhau và máy tính với nhiều PLC thông qua các kết nối sau:
- Kết nối 1 - 1 cho phép nối hai PLC qua cap nối RS-232.
- Host link nối một máy tính với một PLC qua cáp RS-232 hay một máy tính và nhiều PLC qua
cáp 485.
- Controler link: Nối nhiều PLC với nhau qua hai dây (với module mạng).
- Ethernet: Nối nhiều máy tính và nhiều PLC (với module mạng) 
Ngoài ra các module xuất nhập có thể nối đến PLC từ xa bằng cách dùng hai dây theo mạng
Combo Bus S, Combo Bus D.
4.12.1. Kết nối 1 – 1:
Hai PLC kết nối với nhau theo
chế độ chủ - tớ, đặt cấu hình
qua ô nhớ DM 6645
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 92
Ví dụ: Kết nối 2 PLC dùng vùng nhớ LR00 đến LR15.
Đặt DM6645: Chủ 3200
Tớ 2200
4.12.2. Host link.
Dùng để ghép nối máy tính với PLC qua cáp nối RS-232. Nếu muốn ghép một máy tính với
nhiều PLC ta phải dùng bộ chuyển đổi RS-232↔ RS-485 cho phép ghép với tối đa 32 PLC.
Sơ đồ nối dây như sau:
Giáo trình Đo lường và điều khiển máy tính
Trang 93
Thông qua host link có thể dùng máy tính để lập trình cho PLC hay đọc ghi bộ nhớ của PLC, từ
PLC có thể truyền thông tin cho máy tính dùng lệnh TXD.
Đặt cấu hình dùng DM 6645 với cấu hình chuẩn là 0000.
Nếu dùng RS-422/485 thì mỗi PLC được đánh số nút từ 0000 đến 0031 trong DM6648.
Máy tính truyền tin đến PLC theo dạng sau:
Một khổ truyền dài tối đa 131 ký tự, nếu dài hơn 131 thì tách ra nhiều khổ, mỗi khổ kết thúc
bằng (CHRS(13)). Khổ cuối kết thúc bằng * .
FCS (Frame Check Sequence) là kết quả phép EXCLUSIVE OR các byte truyền từ đầu đến
trước FCS và đổi thành hai ký tự ASCII. Khi nhận thông tin, máy tính hay PLC tính FCS rồi so sánh
với FCS đã nhận.
Ví dụ: Truyền lệnh đọc ô nhớ 0100 ở PLC số nút 10.
Tính:
Khi nhận được thông tin từ máy tính, PLC tương ứng sẽ trả lời theo khổ sau:
End code cho biết kết quả giao tiếp. Nếu giao tiếp đẹp thì End code là 00.
Bảng đầy đủ các lệnh truyền từ máy tính đến PLC có thể tham khảo thêm trong tài liệu chi tiết
của PLC OMRON.
PLC CQM1 cũng có thể chủ động truyền thông tin cho máy tính dùng lệnh TXD.
Hoàng Tùng - Khoa ĐTTH *** Biên soạn 7/2012
Trang 94
TXD đổi các byte nhị phân từ S đến S+N/2-1 ra mã ASCII, mỗi byte nhị phân đổi thành hai
byte ASCII và truyền theo chuẩn qui định bởi C. Nội dung của C thay đổi tùy theo cách thức truyền và
cổng nối tiếp, trường hợp đơn giản nhất là C = #0000, byte cao nhất của S được truyền đầu tiên. Khi
muốn truyền phải kiểm tra bit AR0805 (cờ báo truyền xong) là ON mới được truyền. Khi lệnh TXD
được thực hiện sẽ truyền theo dạng sau:
Ví dụ: Truyền 10 byte chứa trong DM0000 đến DM0004 theo chuẩn Host link dùng lệnh TXD
DM0000 #0000 #0010 dữ liệu truyền đi (ASCII) là @00EX1234123412341234123459*cr, giả sử các
ô nhớ chứa số 1234. Máy tính phải có chương trình nhận dữ liệu.
Dùng TXD cho phép máy tính không cần thường xuyên đọc thông tin từ PLC mà PLC sẽ tự
động truyền khi có nhu cầu. Nếu máy tính muốn trả lời thì truyền theo giao thức Host link như đã trình
bày ở trên.
4.12.3. Truyền thông tự do.
Đặt ô nhớ DM6645 la 1000, dùng lệnh TXD để truyền và RXD để thu. Giao thức truyền do
người dùng qui định bởi hai ô nhớ DM6648 và DM6649.
Lệnh TXD giống như trong phần Host link nhưng N có thể đến 0256, dữ liệu truyền đi được
kèm thêm Start code, End code hay không tùy theo DM6848.
Máy tính truyền dữ liệu xuống PLC phải theo giao thức định bởi PLC. Khi PLC nhận dữ liệu
xong, cờ thu AR0806 ON, tác động đến lệnh RXD, các byte ASCII được chuyển thành số nhị phân
0..F, thông tin về nhận dữ liệu chứa trong các ô nhớ sau:
Giáo trình Đo lường và điều khiển máy tính
Trang 95
Ví dụ: Truyền 10 byte trong bảng kể từ ô nhớ DM0100 và nhận dữ liệu cất vào bảng kể từ
DM0200. Đặt DM6645 = 1000, DM6648 = 2000, không Start code, End code là CRLF
Cho bit SR25209 ON để reser cổng RS232.
Toàn bộ kiến thức cơ bản về PLC OMRON đã được trình bày trong chương 4. Để có thể nghiên
cứu chuyên sau hơn độc giả có thể tham khảo thêm các tài liệu chính thống của PLC OMRON.
Với lượng kiến thức đã trình bày ở trên cũng đủ để bạn đọc có thể sử dụng cơ bản bộ điều khiển
lập trình được PLC OMRON ở trình độ cao đẳng dành cho sinh viên các trường đào tạo nghề.

File đính kèm:

  • pdfgiao_trinh_do_luong_va_dieu_khien_may_tinh_phan_2.pdf