Giáo trình PLC nâng cao Chương 4 High Speed Counter

Các bước sau trình bày cách thay đổi hướng điều khiển cho bộ đếm pha đơn bằng hướng điều khiển nội (mode 0, 1, 2):

Bước 1: Load SMB47 để ghi hướng điều khiển mong muốn:

SMB47 = 16#90: Cho phép đếm, set hướng đếm xuống của HSC.

SMB47 = 16#98: Cho phép đếm, set hướng đếm lên của HSC.

Bước 2: Thực thi lệnh HSC để tạo ra chương trình HSC1 của S7-200.

 

doc15 trang | Chia sẻ: thienmai908 | Lượt xem: 2388 | Lượt tải: 3download
Nội dung tài liệu Giáo trình PLC nâng cao Chương 4 High Speed Counter, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 4 HIGH SPEED COUNTER (HSC) 1. GIỚI THIỆU LỆNH HSC 1.1. Lệnh định nghĩa HSC (HDEF) Là lệnh gán MODE để xác định HSC. Các Mode được chọn lựa dùng để xác định các chức năng như xung clock, phương hướng, reset và start. HSC xác định từ 0 đến 5 tương ứng 6 bộ đếm tốc độ cao HSC0 đến HSC5. MODE HSC: Tùy theo CPU tương ứng có các mode hoạt động khác nhau, từ mode 0 đến mode 11. Cần phải sử dụng lệnh HDEF trước khi thực hiện cho mỗi HSC. 1.2. Lệnh HSC Dùng để định cấu hình điều khiển hoạt động mode của HSC, đó là trạng thái của các bit nhớ đặc biệt trong HSC. Thông số N xác định số HSC. Tùy theo CPU mà có thông số N của các HSC khác nhau. Có tối đa 6 HSC, được xác định từ HSC0 đến HSC5. Input/Output Toán hạng Loại dữ liệu HSC Hằng số BYTE MODE Hằng số BYTE N Hằng số WORD Chú ý: CPU 221 và CPU 222 không hỗ trợ HSC1 và HSC2. Chỉ có một lệnh HDEF có thể sử dụng trên một counter. Có thể có tới 6 bộ HSC tùy theo CPU. 2. HOẠT ĐỘNG HSC HSC dùng để đếm các sự kiện tốc độ cao mà không phụ thuộc chu kỳ quét trong PLC và có tương ứng 12 mode hoạt động khác nhau. Tần số đếm lớn nhất của HSC phụ thuộc vào loại CPU, có thể đạt tối đa 30 kHz. Mỗi counter có các ngõ vào xác định hỗ trợ các chức năng: xung Clock, hướng điều khiển, reset, và start. Trong chế độ đếm 2 pha, cả hai xung clock có thể hoạt động ở tốc độ lớn nhất. Còn trong chế độ một phần tư (quadrature), thì tùy ý chọn hoạt động theo kiểu 1x hoặc 4x. Tất cả các counter hoạt động ở tốc độ lớn nhất khi không giao tiếp với các hoạt động khác. HSC sử dụng một shaft encoder để xác định số xung trên một vòng quay và reset số xung đó trên một vòng quay. Số xung clock và xung reset từ shaft encoder cung cấp đến các ngõ vào của HSC. Đặt giá trị đếm xung tương ứng PV, khi số xung hoạt động CV bằng với PV thì xảy ra ngắt, một giá trị đặt PV mới sẽ được setup. Sơ đồ sau trình bày các chức năng của mỗi counter tùy thuộc vào MODE. Giá trị đếm Ngắt reset Giá trị đếm hiện hành Reset (tác động mức cao) Hình 1.1. Ví dụ hoạt động có Reset mà không Start Giá trị đếm Giá trị đếm hiện hành Reset ngắt Reset ngắt Cho phép đếm Cho phép đếm Cho phép đếm Không cho phép đếm Hình 1.2. Ví dụ hoạt động bằng Reset và Start 3. CÁC HSC và MODE HOẠT ĐỘNG 3.1. Các HSC S7-200 có 6 bộ đếm tốc độ cao từ HSC0 đến HSC5. Các ngõ vào trong PLC tương ứng với xung clock, hướng điều khiển, start và reset. Các chức năng ngõ vào này và mode HSC được cho dưới bảng sau. Hoặc có thể trình bày ở bảng sau: 3.2. Các MODE Mode HSC0 (CPU 221, 222, 224, 226): Đếm 1 pha up/down bằng hướng điều khiển nội. Đếm 2 pha bằng các ngõ vào xung clock đếm up/down. Đếm 1 pha up/down bằng hướng điều khiển ngoài. Đếm chế độ ¼ pha A/B. Pha A trước pha B 900 quay cùng chiều kim đồng hồ. Pha B trước pha A 900 quay cùng chiều kim đồng hồ. Mode HSC1 (CPU 224, 226): Đếm 1 pha up/down bằng hướng điều khiển nội. Đếm 2 pha bằng các ngõ vào xung clock đếm up/down Đếm 1 pha up/down bằng hướng điều khiển ngoài. Đếm chế độ ¼ pha A/B. Pha A trước pha B 900 quay cùng chiều kim đồng hồ. Pha B trước pha A 900 quay cùng chiều kim đồng hồ. Đếm 1 pha up/down bằng hướng điều khiển nội. Đếm 2 pha bằng các ngõ vào xung clock đếm up/down Đếm 1 pha up/down bằng hướng điều khiển ngoài. Đếm chế độ ¼ pha A/B. Pha A trước pha B 900 quay cùng chiều kim đồng hồ. Pha B trước pha A 900 quay cùng chiều kim đồng hồ. Đếm 1 pha up/down bằng hướng điều khiển nội. Mode HSC2 (CPU 224, 226): Mode HSC3 (CPU 221, 222, 224, 226): Mode HSC4 (CPU 221, 222, 224, 226): Đếm 1 pha up/down bằng hướng điều khiển nội. Đếm 2 pha bằng các ngõ vào xung clock đếm up/down Đếm chế độ ¼ pha A/B. Pha A trước pha B 900 quay cùng chiều kim đồng hồ. Pha B trước pha A 900 quay cùng chiều kim đồng hồ. Đếm 1 pha up/down bằng hướng điều khiển ngoài. Đếm 1 pha up/down bằng hướng điều khiển nội. Mode HSC5 (CPU 221, 222, 224, 226): 4. ĐỊA CHỈ HSC Để truy xuất giá trị đếm cho HSC, cần phải xác định địa chỉ của HSC bằng cách sử dụng các loại vùng nhớ HSC và số counter (ví dụ HC0). Giá trị hiện hành của HSC là giá trị chỉ đọc và có địa chỉ ở dạng double word. Dạng: HC[Số HSC] HC2 Số HSC Vùng nhớ định nghĩa HSC Chọn trạng thái tác động và mode 1x và 4x: Bốn counter có ba bit điều khiển sử dụng trạng thái tác động reset và start các ngõ vào và để chọn mode đếm 1x hoặc 4x. Các bit này chỉ được sử dụng khi lệnh HDEF được thực thi. Byte điều khiển: Mỗi HSC có một byte điều khiển cho phép counter hoạt động hay không?. Bảng địa chỉ mô tả các bit điều khiển. Sắp đặt các giá trị hiện hành CV và giá trị đặt PV: Mỗi HSC có một giá trị hiện hành 32 bit và giá trị đặt 32 bit. Cả hai giá trị này là các giá trị nguyên có dấu. Để load giá trị CV hoặc PV mới vào HSC, cần phải setup byte điều khiển và byte nhớ đặc biệt. Khi đó cần phải thực hiện lại lệnh HSC.bảng sau mô tả các byte nhớ đặc biệt sử dụng để nạp các giá trị CV và PV mới. Byte trạng thái: Được cung cấp cho mỗi HSC từ các bit nhớ trạng thái để chỉ định hướng đếm hiện hành, và giá trị đếm có lớn hơn hoặc bằng giá trị đặt. Bảng sau định nghĩa các bit trạng thái cho mỗi HSC. Các ngắt HSC: Tất cả các mode counter đều hỗ trợ ngắt khi giá trị hiện hành bằng giá trị đặt. Các sự kiện ngắt được định nghĩa từ bảng sau: Các lệnh xử lý ngắt: Lệnh ngắt ATCH: kết hợp sự kiện ngắt EVNT với số chương trình ngắt INT và cho phép sự kiện ngắt. Lệnh ngắt DTCH: không kết hợp sự kiện ngắt EVNT từ chương trình ngắt INT và vô hiệu hoá các sự kiện ngắt. Input/Output Toán hạng Loại dữ liệu INT Hằng số BYTE EVNT Hằng số (CPU 221/222: 0-12, 19-23, 27-33; CPU 224: 0-23, 27-33; CPU 226: 0-33) BYTE 5. THUẬT GIẢI 5.1. Các Mode 0, 1, hoặc 2 Các bước sau mô tả thuật giải HSC1 đối với bộ đếm một pha up/down bằng hướng nội (Internal direction). Bước 1: Sử dụng bit nhớ trong chu kỳ quét đầu tiên gọi chương trình con để khởi tạo dạng hoạt động. Khi sử dụng chương trình con này, các vòng quét theo sau đó sẽ không gọi chương trình con này nữa, chương trình con này có chức năng thiết lập cấu trúc chương trình. Bước 2: Trong chương trình con khởi đầu, load SMB47 tùy theo yêu cầu hoạt động điều khiển. Ví dụ: SMB47 = 16#F8 đưa ra các kết quả sau: Cho phép đếm. Ghi giá trị hiện hành (current) đếm mới. Ghi giá trị đặt (preset) mới. Cài đặt sự điều khiển để đếm lên (up). Cài đặt các ngõ vào start và reset để tác động mức cao. Bước 3: Thực hiện lệnh HDEF với ngõ vào HSC cài đặt bằng 1 và MODE ngõ vào cài đặt bằng 0 cho việc không reset hoặc start bên ngoài (external), còn bằng 1 cho việc reset external mà không start, hoặc bằng 2 cho cả reset và start external. Bước 4: Load SMD48 bằng cách yêu cầu giá trị hiện hành (load bằng 0 để clear chúng). Bước 5: Load SMD52 bằng cách yêu cầu giá trị đặt (preset). Bước 6: Khi giá trị PV=CV thì xảy ra sự kiện ngắt (sự kiện 13), chương trình con ngắt được gọi. Bước 7: Khi có sự kiện reset bên ngoài, chương trình ngắt bắng sự kiện ngắt reset bên ngoài (sự kiện 15) để cho phép một chương trình con ngắt. Bước 8: Thực thi ngắt toàn cục để cho phép lệnh (ENI) ngắt. Bước 9: Thực thi lệnh HSC để tạo ra chương trình HSC1 của S7-200. Bước 10: Exit chương trình con. Giá trị hiện hành bằng 0, giá trị đặt trước bằng 4, đếm lên (up) 5.2. Mode 3, 4, hoặc 5 Các bước sau mô tả thuật giải HSC1 đối với bộ đếm một pha up/down bằng Internal direction (mode 3, 4, 5): Bước 1: Sử dụng bit nhớ trong chu kỳ quét đầu tiên để gọi chương trình con để khởi tạo dạng hoạt động. Khi sử dụng chương trình con này, các vòng quét theo sau đó sẽ không gọi chương trình con này nữa, chương trình con này có chức năng thiết lập cấu trúc chương trình. Bước 2: Trong chương trình con khởi đầu, load SMB47 tùy theo yêu cầu hoạt động điều khiển. Ví dụ: SMB47 = 16#F8 đưa ra các kết quả sau: Cho phép đếm. Ghi giá trị hiện hành (current) CV đếm mới. Ghi giá trị đặt (preset) PV mới. Cài đặt sự điều khiển khởi đầu của HSC để đếm lên (up). Cài đặt các ngõ vào start và reset để tác động mức cao. Bước 3: Thực hiện lệnh HDEF với ngõ vào HSC cài đặt bằng 1 và MODE ngõ vào cài đặt bằng 3 cho việc không reset hoặc start bên ngoài (external), còn bằng 4 cho việc reset external mà không start, hoặc bằng 5 cho cả reset và start external. Bước 4: Load SMD48 bằng cách yêu cầu giá trị hiện hành (load bằng 0 để clear chúng). Bước 5: Load SMD52 bằng cách yêu cầu giá trị đặt (preset). Bước 6: Khi giá trị PV=CV thì xảy ra sự kiện ngắt (sự kiện 13), chương trình con ngắt được gọi. Bước 7: Khi có sự thay đổi hướng điều khiển, chương trình ngắt bắng sự kiện ngắt thay đổi hướng điều khiển (sự kiện 14) để cho phép một chương trình con ngắt. Bước 8: Khi có sự kiện reset bên ngoài, chương trình ngắt bắng sự kiện ngắt reset bên ngoài (sự kiện 15) để cho phép một chương trình con ngắt. Bước 9: Thực thi ngắt toàn cục để cho phép lệnh (ENI) ngắt. Bước 10: Thực thi lệnh HSC để tạo ra chương trình HSC1 của S7-200. Bước 11: Exit chương trình con. 5.3. Mode 6, 7, hoặc 8 Các bước sau mô tả thuật giải HSC1 đối với bộ đếm hai pha up/down bằng các xung clock up/down (mode 6, 7, 8): Bước 1: Sử dụng bit nhớ trong chu kỳ quét đầu tiên để gọi chương trình con để khởi tạo dạng hoạt động. Khi sử dụng chương trình con này, các vòng quét theo sau đó sẽ không gọi chương trình con này nữa, chương trình con này có chức năng thiết lập cấu trúc chương trình. Bước 2: Trong chương trình con khởi đầu, load SMB47 tùy theo yêu cầu hoạt động điều khiển. Ví dụ: SMB47 = 16#F8 đưa ra các kết quả sau: Cho phép đếm. Ghi giá trị hiện hành (current) CV đếm mới. Ghi giá trị đặt (preset) PV mới. Cài đặt sự điều khiển khởi đầu của HSC để đếm lên (up). Cài đặt các ngõ vào start và reset để tác động mức cao. Bước 3: Thực hiện lệnh HDEF với ngõ vào HSC cài đặt bằng 1 và set MODE bằng 6 cho việc không reset hoặc start bên ngoài (external), còn bằng 7 cho việc reset external mà không start, hoặc bằng 8 cho cả reset và start external. Bước 4: Load SMD48 bằng cách yêu cầu giá trị hiện hành (load bằng 0 để clear chúng). Bước 5: Load SMD52 bằng cách yêu cầu giá trị đặt (preset). Bước 6: Khi giá trị PV=CV thì xảy ra sự kiện ngắt (sự kiện 13), chương trình con ngắt được gọi. Bước 7: Khi có sự thay đổi hướng điều khiển, chương trình ngắt bắng sự kiện ngắt thay đổi hướng điều khiển (sự kiện 14) để cho phép một chương trình con ngắt. Bước 8: Khi có sự kiện reset bên ngoài, chương trình ngắt bắng sự kiện ngắt reset bên ngoài (sự kiện 15) để cho phép một chương trình con ngắt. Bước 9: Thực thi ngắt toàn cục để cho phép lệnh (ENI) ngắt. Bước 10: Thực thi lệnh HSC để tạo ra chương trình HSC1 của S7-200. Bước 11: Exit chương trình con. 5.4. Mode 9, 10, hoặc 11 Các bước sau mô tả thuật giải HSC1 đối với bộ đếm một phần tư pha A/B (mode 9, 10, 11): Bước 1: Sử dụng bit nhớ trong chu kỳ quét đầu tiên để gọi chương trình con để khởi tạo dạng hoạt động. Khi sử dụng chương trình con này, các vòng quét theo sau đó sẽ không gọi chương trình con này nữa, chương trình con này có chức năng thiết lập cấu trúc chương trình. Bước 2: Trong chương trình con khởi đầu, load SMB47 tùy theo yêu cầu hoạt động điều khiển. Ví dụ: Đối với mode đếm 1x: SMB47 = 16#FC đưa ra các kết quả sau: Cho phép đếm. Ghi giá trị hiện hành (current) CV đếm mới. Ghi giá trị đặt (preset) PV mới. Cài đặt sự điều khiển khởi đầu của HSC để đếm lên (up). Cài đặt các ngõ vào start và reset để tác động mức cao. Đối với mode đếm 4x: SMB47 = 16#F8 đưa ra các kết quả sau: Cho phép đếm. Ghi giá trị hiện hành (current) CV đếm mới. Ghi giá trị đặt (preset) PV mới. Cài đặt sự điều khiển khởi đầu của HSC để đếm lên (up). Cài đặt các ngõ vào start và reset để tác động mức cao. Bước 3: Thực hiện lệnh HDEF với ngõ vào HSC cài đặt bằng 1 và set MODE bằng 9 cho việc không reset hoặc start bên ngoài (external), còn bằng 10 cho việc reset external mà không start, hoặc bằng 11 cho cả reset và start external. Bước 4: Load SMD48 bằng cách yêu cầu giá trị hiện hành (load bằng 0 để clear chúng). Bước 5: Load SMD52 bằng cách yêu cầu giá trị đặt (preset). Bước 6: Khi giá trị PV=CV thì xảy ra sự kiện ngắt (sự kiện 13), chương trình con ngắt được gọi. Bước 7: Khi có sự thay đổi hướng điều khiển, chương trình ngắt bắng sự kiện ngắt thay đổi hướng điều khiển (sự kiện 14) để cho phép một chương trình con ngắt. Bước 8: Khi có sự kiện reset bên ngoài, chương trình ngắt bắng sự kiện ngắt reset bên ngoài (sự kiện 15) để cho phép một chương trình con ngắt. Bước 9: Thực thi ngắt toàn cục để cho phép lệnh (ENI) ngắt. Bước 10: Thực thi lệnh HSC để tạo ra chương trình HSC1 của S7-200. Bước 11: Exit chương trình con. 5.5. Thay đổi hướng điều khiển trong mode 0, 1, hoặc 2 Các bước sau trình bày cách thay đổi hướng điều khiển cho bộ đếm pha đơn bằng hướng điều khiển nội (mode 0, 1, 2): Bước 1: Load SMB47 để ghi hướng điều khiển mong muốn: SMB47 = 16#90: Cho phép đếm, set hướng đếm xuống của HSC. SMB47 = 16#98: Cho phép đếm, set hướng đếm lên của HSC. Bước 2: Thực thi lệnh HSC để tạo ra chương trình HSC1 của S7-200. 5.6. Load giá trị hiện hành mới (tất cả các mode) Thực hiện theo các bước sau: Bước 1: Load SMB47 để ghi giá trị hiện hành mới. SMB47 = 16#C0: Cho phép đếm, ghi giá trị hiện hành mới. Bước 2: Thực thi lệnh HSC để tạo ra chương trình HSC1 của S7-200. 5.7. Load giá trị đặt PV mới (tất cả các mode) Thực hiện theo các bước sau: Bước 1: Load SMB47 để ghi giá trị đặt mong muốn. SMB47 = 16#A0: Cho phép đếm, ghi giá trị đặt mới. Bước 2: Load SMD52 với giá trị đặt PV mong muốn. Bước 3: Thực thi lệnh HSC để tạo ra chương trình HSC1 của S7-200. 5.8. Vô hiệu hoá HSC (tất cả các mode) Thực hiện theo các bước sau: Bước 1: Load SMB47 để vô hiệu hóa counter. SMB47 = 16#00: Vô hiệu hóa Counter. Bước 2: Thực thi lệnh HSC để vô hiệu hóa Counter 6. BÀI TẬP ỨNG DỤNG Ví dụ sau trình bày chương trình mẫu HSC: Trong chu kỳ quét đầu, gọi chương trình con SBR0 Kết thúc chương trình con Cho phép đếm: Ghi giá trị CV mới. Cài đặt hướng khởi động để đếm up. Cài đặt các input start và reset để kích mức cao. Cài đặt mode 4x. HSC1 cho chế độ đếm 4x. Xóa giá trị CV của HSC1. Set HSC1 giá trị đặt PV = 50. HSC1,CV=PV (EVENT =13), ngắt INT0. Cho phép ngắt toàn cục. Chương trình HSC1. Xoá CV của HSC1 Ghi CV mới và cho phép đếm. Chương trình HSC1. Câu hỏi ôn tập: Câu 1: PLC S7-200 hỗ trợ bao nhiêu bộ đếm tốc độ cao (HSC)?. Câu 2: Tần số đếm HSC lớn nhất của S7-200?. Khi nào PLC có tần số đếm lớn nhất?. Câu 3: Một PLC S7-200 có khả năng sử dụng tối đa bao nhiêu HSC trong một Project?. Cho ví dụ?. Câu 4: Mode là gì?. Khi nào sử dụng lệnh HDEF và HSC?. Câu 5: Chọn hướng đếm nào trong HSC? Ý nghĩa của thông số CV và PV đóng vai trò gì?. Câu 6: Chương trình ngắt là gì?. Khi nào xảy ra ngắt trong HSC?. Cho ví dụ?. Câu 7: Vùng nhớ nào để setup HSC?. Câu 8: Mối quan hệ giữa số xung và chiều dài cần đo là biểu thức nào?. Chứng minh?. Câu 9: Thiết lập mô hình đếm HSC, vẽ sơ đồ khối hệ thống, sơ đồ đấu dây? Câu 10: Đo chiều dài của sản phẩm bất kỳ và đếm. Các thông số chiều dài và số lượng nhập trực tiếp từ HMI?.

Các file đính kèm theo tài liệu này:

  • docChuong 4 - HSC.doc