Hướng dẫn sử dụng HSC
để đọc xung tốc độ cao
BS. Nguyễn Hữu Tân
Automatic Control Department-HCMUT
Automatic Control Module – DCSE lab
Tel: 0935129689
Email:
Tổng quan về HSC
HSC cung cấp một khối đếm xung cho
encoder.
Một encoder cung cấp một số lượng xung nhất
định đối với mỗi vòng quay của trục và 1 xung
reset. Các xung này là ngõ vào cho HSC
Tổng quan về HSC
HSC được cung cấp các giá trị đặt.
Ngõ ra được kích hoạt trong khoảng thời gian
giá trị đếmCounter có khả năng cung cấp ngắt khi giá trị
đếm bằng giá trị đặt hay khi xảy ra điều kiện
reset
Tổng quan về HSC
Có 4 loại HSC:
Counter 1 pha với bit điều khiển hướng đếm bên
trong CPU
Counter 1 pha với bit điều khiển hướng đếm bên
ngoài
Counter với 2 pha A/B
Counter với A/B nhân 4
Có thể sử dụng kết hợp thêm các chế độ:
Không Reset và Start, có reset và không Start hoặc cả 2
Các lệnh lad cho HSC
Lệnh HDEF
Lựa chọn mode hoạt động, nguồn xung clock,
hướng, chiều đếm, start và hàm reset cho HSC
Gọi lần đầu bằng SM0.1
Các lệnh Lad cho HSC
Lệnh HSC
Cấu hình và điều khiển High Speed Counter dựa
trên trạng thái của các bit HSC.
Thông số N cho biết tên của HSC
CPU 222, 221 có 4 HSC: 0, 3,4,5
CPU 224, 224XP và 226 có 6 HSC: 0, 1, 2, 3,
4,5
Lập trình cho HSC dùng HSC Wizard
Cần định nghĩa các thông tin sau cho 1 HSC
Chọn counter và mode hoạt động
Cấu hình byte điều khiển
Cấu hình giá trị hiện tại (current value)
Cấu hình giá trị đặt (preset value)
Gán và cho phép chương trình phục vụ ngắt
Kích hoạt HSC.
Các HSC và Input
Ví dụ về hoạt động của HSC
Mode 0, 1, 2: 1 pha, hướng xác định bởi bit
nội
Ví dụ về hoạt động của HSC
Mode 3, 4, 5: 1 pha, hướng xác định bởi bit
ngoài
Ví dụ về hoạt động của HSC
Mode 6,7,8: 2 xung đếm lên/xuống
Ví dụ về hoạt động của HSC
Mode 9, 10, 11
Ví dụ về hoạt động của HSC
Mode 12: mode nhân 4 cho xung
Hoạt động của Start và Reset
Các bit cấu hình trạng thái Reset
Cấu hình Start, Reset và 1x/4x
Ví dụ cấu hình cho HSC1 ở mode 11
Cấu hình byte điều khiển
Mỗi counter có một byte điều khiển thực hiện
các chức năng
Cho phép hay tắt counter
Điều khiển hướng đếm (mode 0,1,2) hay khởi
động hướng đếm
Cho phép cập nhật current value
Cho phép cập nhật preset value
Cấu hình byte điều khiển
Đặt giá trị current value và preset value
Mỗi counter có 1 cặp thanh ghi 32 bit (có dấu)
cho new current value và new preset value
Để nạp các giá trị này vào counter:
Cấu hình byte điều khiển
Nạp các giá trị mới vào các thanh ghi SMD tương
ứng
Gọi lệnh HSC để cho phép counter chạy và load
giá trị mới
Đặt giá trị current value và preset value
Giá trị hiện tại của counter có thể đọc được bằng cách
đọc các thanh ghi HCx tương ứng
(HC: vùng nhớ dành cho High Speed Counter)
Các bit trạng thái dùng cho HSC
Các bit trạng thái này chỉ có tác dụng trong
chương trình phục vụ ngắt dành cho HSC
Trình tự mẫu khởi động HSC
Ví dụ cài mode 0, 1, 2 cho HSC1
Dùng SM0.1 gọi chương trình con SBR_x cài đặt
thông số cho HSC.
Trong SBR_x cấu hình các bit trong SMB47. Ví dụ
SMB47 = 16#F8
Gọi HDEF để chọn counter và mode hoạt động
Cấu hình SMD48 và SMD 52 cho các trị current và
preset values
Trình tự mẫu khởi động HSC
Liên sự kiện ngắt (13) với ISR và cho phép
ngắt bằng ENI
Gọi lệnh HSC để S7-200 cài đặt HSC1
Thoát SBR_x
Cập nhật giá trị mới cho Current
value
Cấu hình byte điều khiển (SMB47) để cập nhật
lại giá trị current value với (SMB47.6=1,
SMB47.5=0). Ví dụ SMB47 = 2#11000000
Nạp current value mới vào SMD48
Thực thi HSC để nạp trị mới
Cập nhật giá trị mới cho preset value
Cấu hình byte điều khiển (SMB47) để cập nhật
lại giá trị preset với (SMB47.6=0,
SMB47.5=1). Ví dụ SMB47 = 2#10100000
Nạp preset value mới vào SMD52
Thực thi HSC để nạp trị mới
Tắt timer
Cấu hình byte điều khiển (SMB47)
SMB47.7=0: tắt timer
SMB47.6=0: no update current value
SMB47.5=0: no update preset value
…
Gọi lại HSC để cấu hình timer