Giáo trình Đo lường và điều khiển bằng máy tính - Chương 9: Bộ điều khiển Logic lập trình được

Trong hệ thống tự động thường gặp những thiết bị làm việc

theo kiểu tuần tự, theo qui luật if then else với tín hiệu vào và

ra có hai mức, ví dụ như contact hành trình, rơle. Các sơ đồ này

có thể thực hiện bằng rơle và mạch định thời nhưng với sơ đồ

phức tạp số lượng rơle khá lớn, độ tin cậy kém và nhiều khi

không đạt yêu cầu. Từ những năm70 để đáp ứng yêu cầu có

những thiết bị điều khiển thay thế sơ đồ rơle, đã xuất hiện bộ

điều khiển logic lập trình được (Programmable Logic Controller-

PLC)và ngày càng hoàn thiện, được áp dụng rộng rãi trong công

nghiệp (PLC của hãng Allen Bradley Corporation sản xuất năm

1977 sử dụng vi xử lý 8080).

pdf83 trang | Chuyên mục: Công Nghệ Tri Thức & Máy Học | Chia sẻ: dkS00TYs | Lượt xem: 2202 | Lượt tải: 3download
Tóm tắt nội dung Giáo trình Đo lường và điều khiển bằng máy tính - Chương 9: Bộ điều khiển Logic lập trình được, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 4 năm 2006 
chiều dài bảng tối đa 255. Byte đầu của bảng cho biết chiều dài 
dữ liệu. Khi ký tự cuối của bảng được gởi sẽ báo sự kiện ngắt 9 
hay 26 hay tác động SM4.5. Khi thu xong bằng lệnh RCV sẽ tác 
động sự kiện 23, 24, SMB86..94 (port 0) SMB186..194 (port 1). 
Lệnh RCV 
Ví dụ:Truyền và nhận ký tự 
LD SM0.1 
MOVB 9, SMB30 // Chọn Protocol 9600 baud, 8 bits/1 kýtự, không parity 
MOVB 1, VB100 // chiều dài thông điệp là 1 ký tự ASCII 
MOVB 16#41, VB101 // ký tự truyền là "A", có mã ASCII là 41 H 
LD SM0.1 // bit SM0.1 on trong chu kỳ quét đầu tiên 
ATCH INT_0, 8 // liên kết ngắt 0 (INT0) với biến cố 8. 
ENI // cho phép tất cả ngắt sự kiện. 
LD I0.1 // Load ngõ vào I0.1. 
EU // Xét sườn lên I0.1 
XMT VB100, 0 // truyền bảng có địa chỉ đầu VB100 ra port 0 
Chương trình ngắt INT0 
// nhận đúng ký tự truyền là “A” thì báo hiệu ở ngõ ra Q0.1 
LDB= Receive_Char, 16#41 
S Char_A, 1 // bật ngõ ra Q0.1. 
Có thể dùng các ô nhớ SMB86 ÷ SMB94 và SMB186 ÷ 
SMB194 đểâ đặt cấu hình cho việc thu bản tín, ngoài ra sự kiện 
ngắt 8, 25 sẽ xảy ra khi thu một ký tự, lúc này SMB2 chứa ký tự 
vừa nhận còn SM3.0 chứa kết quả kiểm tra parity. 
Khi nối nhiều PLC với nhau qua mạng 485 ta dùng lệnh 
NETR/ NETW để đọc/ghi dữ liệu, các PLC phải có địa chỉ cụ thể. 
Tác giả: TS Nguyễn Đức Thành Trang 309 
9.25.3 Đếm vận tốc cao 
Có ba bộ đếm vận tốc cao HSC0, HSC1 và HSC2 dùng để 
đếm xung tần số cao từ encoder, HSC0 đếm lên xuống với xung 
nhịp vào ở I0.0 tần số tối đa 2KHz, hướng đếm định như sau 
SM37.3 = 0 đếm xuống, SM37.3 = 1 đếm lên. Giá trị đếm của 
HSC0 chứa trong 32 bit của SMD38 gồm SMB38, SMB39, SMB40 
và SMB41 (MSB trong SMB38, LSB trong SMB41). Giá trị đặt 
trước cho HSC0 chứa trong SMD42. Khi giá trị hiện tại bằng giá 
trị đặt sẽ gây ra sự kiện ngắt 12. HSC1 và HSC2 là bộ đếm vận 
 CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 310 
Thành phố Hồ Chí Minh, tháng 4 năm 2006 
Chế độ Miêu tả I0.6 I0.7 I1.0 I1.1 
0 (I1.4) 
1 
(I1.5) 
2 
Đếm lên xuống 
SM47.3=0 đếm xuống (SM57.3) 
SM47.3=1 đếm lên (SM57.3) 
(I1.2) 
Nhịp 
(I1.3) 
Xóa 
Start 
3 
4 
5 
Đếm lên xuống với điều khiển hướng bên 
ngoài 
I0.7 = 0 đếm xuống (I 1.3) 
I0.7 = 1 đếm lên 
Nhịp 
Hướng Xóa 
Start 
6 
7 
8 
Đếm lên xuống với hai xung nhịp 
Nhịp 
lên 
Nhịp 
xuống Xóa 
Start 
9 
10 
11 
Đếm lên xuống với 2 xung AB vuông pha từ 
encoder 
Nhịp A Nhịp B 
Reset 
Start 
tốc cao có 12 chế độ hoạt động, giá trị hiện tại của HSC1 là 
SMD48 và của HSC2 là SMD58. Trị đặt của HSC1/HSC2 là 
SMD52/SMD62. Khi trị hiện tại bằng trị đặt sẽ phát sinh ngắt 
13 với HSC1 và 16 với HSC2. 
Khi chân xóa tích cực giá trị hiện tại của HSC được xóa, khi 
chân start tích cực cho phép HSC đếm xung. Mức tích cực của các 
chân này được định bởi SMB47 và SMB57. 
Bảng 9.8 
HSC1 HSC2 Tác dụng khi lệnh HDEF được thực hiện 
SM 47.0 SM 57.0 0: chân xóa tích cực cao 
SM 47.1 SM 57.1 0: chân start tích cực cao 
SM 47.2 SM 57.2 0: số xung đếm bằng 4 lần xung vào A 
Muốn dùng HSC, đầu tiên phải xác định số HSC, mode hoạt 
động, từ điều khiển, sau đó dùng lệnh HDEF để khởi động. 
Tác giả: TS Nguyễn Đức Thành Trang 311 
Bảng 9.9 
HSC0 HSC1 HSC2 Miêu tả 
SM 37.0 SM 47.0 SM 57.0 Không dùng sau khi HDEF đã thực hiện 
SM 37.1 SM 47.1 SM 57.1 nt 
SM 37.2 SM 47.2 SM 57.2 nt 
SM 37.3 SM 47.3 SM 57.3 Bit hướng 
0: đếm xuống; 1: đếm lên 
SM 37.4 SM 47.4 SM 57.4 Ghi bit hướng 
0: không ghi; 1: ghi 
SM 37.5 SM 47.5 SM 57.5 Ghi trị đặt vào HSC 
0: không ghi; 1: ghi 
SM 37.6 SM 47.6 SM 57.6 Viết trị hiện tại mới vào HSC 
0: không ghi; 1: ghi 
SM 37.7 SM 47.7 SM 57.7 0: cấm HSC; 1: cho phép HSC 
Các bit điều khiển chỉ tác động sau khi lệnh HSC được thực 
hiện. Để hiểu rõ HSC ta xét trưòng hợp dùng HSC1 đếm xung AB 
từ encoder kiểu đếm 4X, hai tín hiệu A, B nối vào I0.6 và I0.7, tín 
hiệu xóa vào I1.0 và tín hiệu khởi động vào I1.1 
Network 1 
LD SM0.1 // khi quét lần đầu, gọi chương trình con 0 
CALL 0 // khởi động bộ đếm HSC 
Network 2 
MEND 
Network 3 
SBR 0 
Network 4 
LD SM0.0 
MOVB 16#F8, SMB47 // Dùng HSC1 mode 11 
 CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 312 
Thành phố Hồ Chí Minh, tháng 4 năm 2006 
HDEF 1, 11 // Ban đầu đếm lên, chân xóa và start 
 tích cực ở mức cao, 4X 
MOVD 0,5MD48 // Trị hiện tại là 0 
MOVD 50, SMD52 // Trị đặt là 50 
ATCH 0,13 // sự kiện ngắt 13 sẽ gọi ngắt số 0 
ENI // cho phép ngắt 
HSC 1 // Nạp thông số vào HSC1 
Network 5 
RET 
Network 6 
INT 0 
Network 7 
LD SM 0.0 // khi có ngắt xóa trị hiện tại 
MOVD 0, SMD 48 // của HSC0 
MOVB 16#C0, SMB47 
HSC 1 
Network 8 
RETI 
9.26 LỆNH PID 
Lệnh này không có ở CPU 212, 214, trong 
chương trình có thể dùng tối đa 8 lệnh PID. 
Thông số lệnh chứa trong một bảng 36 byte 
gồm 9 thông số thực 4 byte. TABLE là địa chỉ 
bảng (vùng VB), LOOP từ 0 đến 7. Sau đây là bảng các thông số 
Bảng 9.4 
Địa chỉ lệnh Tên Miêu tả 
0 Đại lượng hiện tại nPV Đại lượng được điều khiển, chuẩn hóa 
từ 0.0 đến 1.1 
4 Đại lượng đặt nSV Trị đặt, chuẩn hóa 
8 Đại lượng điều khiển nM Ngõ ra của PID, chuẩn hóa 
12 Độ lợi vòng CK Hệ số tỷ lệ 
16 Thời gian lấy mẫu ST Thời gian lấy mẫu, đơn vị là giây 
20 Thời gian tích phân 1T 
24 Thời gian vi phân DT 
Tác giả: TS Nguyễn Đức Thành Trang 313 
28 Đại lượng offset MIn-1 Giá trị tích phân ở thời điểm trước, 
chuẩn hóa 
32 Đại lượng trước n 1PV − Trị số đo của đại lượng được điều 
khiển ở thờùi gian lấy mẫu trước 
Thuật toán PID được thực hiện theo phương trình: 
 = + +n n n nM MP MI MD 
 ∗= −n c n nMP K SV PV( ) 
 ∗ ∗−= + −1n n c S I n nMI MI K T T SV PV/ ( ) 
∗ ∗
−= −1n c D S n nMD K T T PV PV/ ( ) 
Trị đặt SV và trị đo PV đều phải là số thực và được chuẩn 
hóa. Đầu tiên phải đổi số nguyên 16 bit ra số thực, sau đó chia 
cho tầm (Span) của đại lượng đó và cộng với Offset (là 0.0 nếu 
đơn cực và 0.5 nếu lưỡng cực) 
Ví dụ, ta muốn đổi trị số đo của AIW0 ra số thực và chuẩn 
hóa cho 64000 cất vào VD100: 
XORD AC0, AC0 //Xóa ACC 
MOVW AIW0, AC0 //Cất trị đo vào ACC 
LDW>= AC0, 0 //Nếu dương 
JMP 0 //đổi sang số thực 
NOT //Nếu âm 
ORD 16#FFFF0000, AC0 //Khai triển dấu giá trị trong AC0 
LBL 0 
DTR AC0, AC0 //Đổi số nguyên 32 bit ra số thực 
/R 64000.0, AC0 //Chuẩn hóa 
+R 0.5, AC0 
MOVR AC0, VD100 
Tín hiệu ra M là đại lượng đã chuẩn hóa, muốn dùng để điều 
khiển ta phải đổi ra số nguyên 16 bit. 
Ví du: đổi trị thực lưỡng cực ở VD108 ra số nguyên 16 bit ở 
AQW0 
MOVR VD108, ACV0 
-R 0.5, AC0 
*R 64000.0, AC0 
TRUNC AC0, AC0 
MOVW AC0, AQW0 
 CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 314 
Thành phố Hồ Chí Minh, tháng 4 năm 2006 
Ví dụ: lập trình PID điều khiển mức nước trong bồn chứa sao 
cho áp suất nước ở đường xả không đổi, mức nước được duy trì ở 
mức 75% tối đa bằng cách điều khiển vận tốc bơm. 
Đo mức: AIW0 Điều khiển bơm: AQW0 
Bảng PID: VD100 Gọi PID: gọi ngắt thời gian 0.1s 
CK : 0.25, ST : 0.1s, 1T : 30 phút 
Chương trình dạng STL: 
Network 1 
LD SM0.1 
CALL 0 // Gọi chương trình con 0 đặt cấu hình PID ở lần quét đầu 
Network 2 
MEND 
Network 3 
SBR 0 
Network 4 
LD SM0.0 
MOVR 0.75, VD104 // Điểm đặt 75% 
MOVR 0.25, VD112 // Độ lợi vòng 
MOVR 0.10, VD116 // ST 
MOVR 30.0, VD120 // 1T 
MOVR 0.0, VD124 // Không dùng đạo hàm 
MOVB 100, SMB34 // Ngắt thời gian 0.1s gọi PID 
ATCH 0,10 
ENI 
Network 5 
RET 
Network 6 
INT 0 
Network 7 
LD SM0.0 
XORD AC0, AC0 
MOVW AIW0, AC0 // Đọc mức nước và đổi sang số thực rồi 
đưa vào bảng 
DTR AC0, AC0 
/ R 32000.0, AC0 
Tác giả: TS Nguyễn Đức Thành Trang 315 
MOVR AC0, VD100 
Network 8 
LD I0.0 // Khi I0.0 ON thì điều khiển PID 
PID VB100,0 
Network 9 
LD SM0.0 
MOVR VD108, AV0 // Xuất ra điều khiển 
*R 32000.0, AC0 
TRUNC AC0, AC0 
MOVW AC0, AQW0 
Network 10 
RETI 
9.27 LỆNH ĐỒNG HỒ 
Đồng hồ trong PLC đếm thời gian ngày giờ phút giây, đọc 
thời gian bằng lệnh READ_RTC, chỉnh sửa thời gian bằng lệnh 
SET_RTC. Thời gian chứa trong bảng T 8 byte BCD có dạng sau 
T Năm 00..99 
T+1 Tháng 01..12 
T+2 Ngày 01..31 
T+3 Giờ 00..23 
T+4 Phút 00..23 
T+5 Giây 00..59 
T+6 0 
T+7 Ngày trong tuần 
0..7, 1: Chủ nhật, 2: thứ hai
0: Không dùng 
 CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 316 
Thành phố Hồ Chí Minh, tháng 4 năm 2006 
Tác giả: TS Nguyễn Đức Thành Trang 317 
Các bit nhớ SM cần lưu ý 
 SMB0, B1 
SM 0.0 Luôn luôn ON 
SM 0.1 ON ở chu kỳ quét đầu 
SM 0.2 ON khi dữ liệu cần lưu trữ bị mất (1 chu kỳ) 
SM 0.3 ON khi RUN 
SM 0.4 Xung nhịp chu kỳ 1 phút 
SM 0.5 Xung nhịp chu kỳ 1 sec 
SM 0.6 Xung nhịp có chu kỳ bằng hai lần thời gian quét 
SM 0.7 Phản ảnh chế độ hoạt động của PLC 
SM 1.0 ON khi kết quả tích là Zero 
SM 1.1 ON khi bị tràn 
SM 1.2 ON khi kết quả âm 
SM 1.3 ON khi chia cho zero 
SM 1.4 ON khi bảng bị tràn (xem lệnh bảng) 
SM 1.5 ON khi bảng bị trống (xem lệnh bảng) 
SM 1.6 ON khi lệnh BCDI không thực hiện được 
SM 1.7 ON khi lệnh ATH không thực hiện được 
-------O-------- 
Bài tập gợi ý 
1/Nghiên cứu các thiết bị HMI của OMRON và SIEMENS 
2/ Nghiên cứu giao thức truyền Modbus 
3/ Lập trình giao tiếp với máy tính 

File đính kèm:

  • pdfGiáo trình Đo lường và điều khiển bằng máy tính - Chương 9 Bộ điều khiển Logic lập trình được.pdf
Tài liệu liên quan