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ăm 70 để đá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 ControllerPLC) 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).
Các PLC đầu tiên chỉ thực hiện được các phép tính logic, tín
hiệu vào và ra là tín hiệu rời rạc, còn hiện nay PLC có thể thực
hiện được các phép tính số học, logic và làm việc được với cả tín
hiệu liên tục, trong một số trường hợp PLC được sử dụng thay
cho máy tính (một số hãng dùng từ PC- Programmable Controller
để chỉ PLC).
Một hệ thống phức tạp thường gồm máy tính (vi xử lý) thực
hiện những công việc phức tạp và PLC thực hiện các công việc
mang tính chất tuần tự. Máy tính và PLC kết nối với nhau qua
đường truyền nối tiếp và trao đổi thông tin cho nhau. Nhiều máy
tính và PLC kết nối với nhau theo mạng điều khiển. 

pdf 83 trang xuanthi 24/12/2022 12220
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 bằng máy tính - Chương 9: Bộ điều khiển Logic lập trình được", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfgiao_trinh_do_luong_va_dieu_khien_bang_may_tinh_chuong_9_bo.pdf

Nội dung text: 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

  1. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 270 Ví du: Trừ ô nhớ HR20 với ô nhớ 120, kết quả chứa vào DM0100 LD 00003 CLC(41) @SUBL(55) HR 20 120 DM 0100 AND 25504 @BSET(71) # 0000 DM 0000 DM 0001 CLC(41) @SUBL(55) DM 0000 DM 0100 DM 0100 9.7.7 Lệnh BCD không dấu 8 digit Thành phố Hồ Chí Minh, tháng 4 năm 2006
  2. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 272 9.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 9.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 hai SQRT Đổi rad ra độ DEG Mũ EXP Sin SIN Log LOG Cosin COS Thành phố Hồ Chí Minh, tháng 4 năm 2006
  3. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 274 9.8.2 So sánh khoảng 9.8.3 So sánh bảng 9.8.4 So sánh hai bảng 9.9 LỆNH GHI DỜI 9.9.1 Dời trái 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à Thành phố Hồ Chí Minh, tháng 4 năm 2006
  4. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 276 9.9.4 Dời digit sang phải 9.9.5 Dời từ 9.9.6 Quay trái 9.9.7 Quay phải 9.10 CHỨC NĂNG NGẮT (CQM1) Chức năng ngắt cho phép PLC 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 ngõ vào. Có ba loại ngắt: - Ngắt ngõ vào - Ngắt thời gian - Ngắt bộ đếm vận tốc cao Ngắt ngõ vào: có bốn ngõ 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 ngõ vào phải đặt nội dung DM 6628 Thành phố Hồ Chí Minh, tháng 4 năm 2006
  5. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 278 Có thể đặt ngõ vào ngắt ở chế độ đếm, nghĩa là ngắt chỉ xảy ra sau khi có một số lượng xung ở ngõ vào ngắt. Số lượng xung đặt trước ở các địa chỉ sau: Ngắt 0 SR 244 Ngắt 2 SR 246 Ngắt 1 SR 245 Ngắt 3 SR 247 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: Ngắt 0 SR 248 Ngắt 2 SR 250 Ngắt 1 SR 249 Ngắt 3 SR 251 Nội dung ô nhớ là nội dung bộ đếm trừ đi 1 Ví dụ: dùng ngắt 0 chế độ ngắt ngõ vào và ngắt 1 chế độ ngắt đếm. Đặt DM 6628 : 0011 Lập trình cho PLC như sau: Thành phố Hồ Chí Minh, tháng 4 năm 2006
  6. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 280 Nội dung HSC0 chứa trong hai từ SR 231 và SR 230: SR 231 SR 230 Đếm tăng giảm Đếm tăng F 0032768 ÷ 00032767 00000000 ÷ 00065535 (- 32767) 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 xoá 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, C= 000: so sánh HSC0 với các giá trị BCD 8 digit ghi trong bảng TB, nếu bằng thì gọi một trong các chương trình con (tối đa 16 giá trị) số 0 đến 255 C= 001 so sánh HSC0 với tối đa 8 khoảng, mỗi khoảng có giới hạn dưới và trên TB: địa chỉ đầu của bảng TB Số giá trị TB Giới hạn dưới số 1, 4 digit thấp TB+1 Gía trị so sánh số 1, 4 digit thấp TB+2 Giới hạn dưới số 1, 4 digit cao TB+3 Giới hạn trên số 1, 4 digit thấp TB+2 Gía trị so sánh số 1, 4 digit cao TB+4 Giới hạn trên số 1, 4 digit cao TB+3 Số chương trình con TB+5 Số chương trình con TB+4 Tương tự cho giá trị số 2 TB+6 Tương tự cho tầm số 2 Ví dụ: so sánh giá trị HSC0 với 1000 và 2000, gọi các chương Thành phố Hồ Chí Minh, tháng 4 năm 2006
  7. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 282 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ố đó × 1ms C3: từ 0000 đến 0255 là số chương trình con phục vụ Chế độ chu 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 timer 2 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. Thành phố Hồ Chí Minh, tháng 4 năm 2006
  8. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 284 đổi 0,5ms/2 điểm. Đổi 11 bit ra điện áp hay dòng, mỗi ngõ ra chiếm một ô nhớ. 0000 ÷ 07FF → 0V ÷ 10 V 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 (66) Tạo hàm: APR (-) Tìm tối đa: MAX (-) Điều khiển PID: PID Tìm tối thiểu: MIN (-) Tạo xung: PULS Trị trung bình AVG (-) Tạo xung SPED Lấy tổng SUM (-) Tạo xung tần số thay đổi PLS2 Điều khiển gia tốc ACL Tạo xung bề rộng thay đổi PWM Tỷ lệ SCL: đổi số nhị phân 4 digit sang số BCD 4 digit với tỷ lệ khác. ⎡ ()BAYY− ⎤ R =−BBSYX⎢ () −⎥ ⎣()BAXX− ⎦ Ví dụ: đổi số hex đọc từ khối analog in địa chỉ 002 tầm 0030 ÷ 0FD0H sang 0000 ÷ 0100BCD. DM 0100 0000 BCD DM 0101 0030 Hex DM 0102 0100 BCD DM 0103 0FDO Hex Thành phố Hồ Chí Minh, tháng 4 năm 2006
  9. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 286 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 TTIK= I/ γ C+3: hệ số vi phân BCD TTDK= D/ γ C+4: chu kỳ lấy mẫu γ từ 00.01 sec đến 99.99 sec C+5: Bit4 ÷ bit15: 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 Thành phố Hồ Chí Minh, tháng 4 năm 2006
  10. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 288 - Controller 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. 9.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ớ DM6645 Ví dụ: kết nối 2 PLC dùng vùng nhớ LR00 đến LR15 Đặt DM6645: Chủ: 3200 Tớ: 2200 Sơ đồ đấu nối dây cáp 1 – 1 Thành phố Hồ Chí Minh, tháng 4 năm 2006
  11. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 290 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 DM6645 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 ↵ (CHR$ (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í du: truyền lệnh đọc ô nhớ 0100 ở PLC số nút 10. Thành phố Hồ Chí Minh, tháng 4 năm 2006
  12. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 292 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 đã trình bày ở trên. 9.12.3 Truyền thông tự do Đặt ô nhớ DM6645 là 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 tuỳ 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ị Thành phố Hồ Chí Minh, tháng 4 năm 2006
  13. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 294 trình chính (Main, OB), chương trình con (SBR), chương trình ngắt (INT), vùng nhớ dữ liệu (Data block) S7-200 kết nối theo khối gồm khối CPU và các khối mở rộng khối CPU có các ngõ vào ra số và cổng truyền thông RS485, cổng kết nối mạng. Số lượng ngõ vào ra số tuỳ loại CPU. Bộ nhớ gồm ba loại ROM, EEPROM và RAM và chia làm nhiều vùng: I, Q, AI, AQ, M, SM, T, C, V, HC, AC. Các ô nhớ có thể truy cập theo bit, byte (B), từ (W), từ kép (DW). Sau đây là bảng tóm tắt về các vùng nhớ: Bảng 9.3 Miêu tả CPU221 CPU222 CPU224/226 C/trình ng/dùng 2KW 2KW 4KW Dữ liệu ng/dùng 1KW 1KW 2560W Số module mở rộng 0 2 7 Ngõ vào số I (tối đa) I0.0 I0.5 I0.0 I15.7 I0.0 I15.7 Ngõ vào I (trên module 6 8 14 Thành phố Hồ Chí Minh, tháng 4 năm 2006
  14. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 296 9.14. LỆNH CƠ BẢN 9.14.1 Lệnh bit Thành phố Hồ Chí Minh, tháng 4 năm 2006
  15. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 298 9.14.4 Lệnh đặt/ xoá cho một loạt n bit liên tiếp nhau ON hay OFF 9.15 LỆNH SO SÁNH So sánh hai số n1 và n2 theo byte không dấu B, số nguyên có dấu 16 bit I, số nguyên có dấu 32 bit D, số thực R theo các phép , =, kết quả so sánh biểu thị bằng trạng thái tiếp điểm. Ví dụ: 9.16 LỆNH TIMER/COUNTER Có ba loại timer là ON delay, Retentive ON delay và OFF delay. Thời gian timer bằng giá trị PT nhân hệ số tùy thuộc xxx. Thành phố Hồ Chí Minh, tháng 4 năm 2006
  16. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 300 Có ba loại đếm: đếm tăng CTU, đếm giảm CTD và đếm tăng giảm CTUD 9.17 LỆNH Số HỌC - ADD_I/ SUB_I Cộng/ trừ số nguyên 16 bit - MUL Nhân hai số 16 bit, kết quả 32 bit - DIV chia hai số 16 bit cho thương số và dư số 16 bit. - MUL_I/DIV_I Nhân/ chia số 16 bit với kết quả 16 bit. Thành phố Hồ Chí Minh, tháng 4 năm 2006
  17. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 302 9.18 LỆNH DI CHUYỂN Di chuyển nội dung ô nhớ IN ra ô nhớ OUT bằng lệnh MOV_X hay di chuyển một khối N ô nhớ địa chỉ bắt đầu IN sang khối ô nhớ địa chỉ bắt đầu OUT dùng lệnh BLKMOV_X, ô nhớ có thể là byte, word, double word hay real, X = B, W, DW, R SWAP tráo đổi hai byte của một từ FILL_N chép một từ vào một loạt ô nhớ 9.19 LỆNH ĐỔI - ROUND đổi số thực sang số nguyên kép làm tròn - TRUNC đổi số thực sang số nguyên kép bỏ phần lẻ - ATH đổi một số byte ASCII (30 39, 41 46) chiều dài LEN ra các số HEX 0 9, A F - HTA đổi một số digit 0 F chiều dài LEN ra mã ASCII Thành phố Hồ Chí Minh, tháng 4 năm 2006
  18. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 304 9.24 LỆNH ĐIỀU KHIỂN CHƯƠNG TRỈNH Lệnh JMP n nhảy đến đoạn chương trình nhãn n Lệnh FOR NEXT thực hiện lập vòng các dòng lệnh giữa FOR và NEXT, số vòng được đếm bởi biến INDX có giá trị đầu INIT và giá trị cuối FINAL, số vòng lặp là FINAL -INIT +1. Có thể đặt các vòng lặp lồng vào nhau. Thành phố Hồ Chí Minh, tháng 4 năm 2006
  19. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 306 15 Xóa ngoài HSC1 11 16 Đếm vận tốc cao HSC2: trị đo bằng trị đặt 12 17 HSC2 đổi hướng đếm 13 18 Xóa ngoài HSC2 14 32 HSC3: trị đo bằng trị đặt 19 29 HSC4: trị đo bằng trị đặt 20 30 HSC4 đổi hướng đếm 21 31 Xóa ngoài HSC4 22 33 HSC5: trị đo bằng trị đặt 23 19 Đếm xung PLS0 xong 15 20 Đếm xung PLS1 xong 16 10 Ngắt thời gian 0 1 11 Ngắt thời gian 1 2 21 Ngắt timer T32 Thấp nhất 3 22 Ngắt timer T96 4 Tùy theo loại CPU có một số sự kiện không được hỗ trợ. Sau đây ta sẽ phân tích một số ngắt chính. 9.25.1 Ngắt thời gian Ngắt thời gian 0/1 xảy ra theo chu kỳ ấn định (tối đa 255ms) bởi nội dung của SMB34/SMB35 (đơn vị ms) thường dùng để đọc hay xuất tín hiệu analog. Ngắt timer T32/T96 xảy ra khi timer T32 hoặc T96 hoàn tất thời gian trễ đã đặt. 9.25.2 Ngắt truyền thông PLC có một hoặc hai cổng (Port 0, Port 1) dùng để truyền thông nối tiếp RS485. Thành phố Hồ Chí Minh, tháng 4 năm 2006
  20. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 308 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ể. Thành phố Hồ Chí Minh, tháng 4 năm 2006
  21. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 310 Chế độ Miêu tả I0.6 I0.7 I1.0 I1.1 0 Đếm lên xuống (I1.4) (I1.2) (I1.5) 1 SM47.3=0 đếm xuống (SM57.3) (I1.3) Nhịp Xóa 2 SM47.3=1 đếm lên (SM57.3) Start 3 Đếm lên xuống với điều khiển hướng bên ngoài 4 Nhịp I0.7 = 0 đếm xuống (I 1.3) Hướng Xóa 5 Start I0.7 = 1 đếm lên 6 Nhịp Nhịp 7 Đếm lên xuống với hai xung nhịp lên xuống Xóa 8 Start 9 Đếm lên xuống với 2 xung AB vuông pha từ 10 Nhịp A Nhịp B encoder Reset 11 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. Thành phố Hồ Chí Minh, tháng 4 năm 2006
  22. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 312 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 PVn Đại lượng được điều khiển, chuẩn hóa từ 0.0 đến 1.1 4 Đại lượng đặt SVn Trị đặt, chuẩn hóa 8 Đại lượng điều khiển Mn Ngõ ra của PID, chuẩn hóa 12 Độ lợi vòng KC Hệ số tỷ lệ 16 Thời gian lấy mẫu TS Thời gian lấy mẫu, đơn vị là giây 20 Thời gian tích phân T1 24 Thời gian vi phân TD Thành phố Hồ Chí Minh, tháng 4 năm 2006
  23. CHƯƠNG 9: BỘ ĐIỀU KHIỂN LOGIC LẬP TRÌNH ĐƯỢC Trang 314 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 KC : 0.25, TS : 0.1s, T1: 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 // TS MOVR 30.0, VD120 // T1 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 Thành phố Hồ Chí Minh, tháng 4 năm 2006
  24. 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