Bộ đếm (Counter)
Counter thực hiện chức năng đếm tại các sườn lên của các xung đầu vào. S7-300 có tối đa là 256 bộ đếm phụ thuộc vào từng loại CPU, ký hiệu bởi Cx. Trong đó x là số nguyên trong khoảng từ 0 đến 255. Trong S7-300 có 3 loại bộ đếm thường sử dụng ...
Counter thực hiện chức năng đếm tại các sườn lên của các xung đầu vào. S7-300 có tối đa là 256 bộ đếm phụ thuộc vào từng loại CPU, ký hiệu bởi Cx. Trong đó x là số nguyên trong khoảng từ 0 đến 255. Trong S7-300 có 3 loại bộ đếm thường sử dụng nhất đó là : Bộ đếm tiến lùi (CUD), bộ đếm tiến (CU) và bộ đếm lùi (CD).
Một bộ đếm tổng quát có thể được mô tả như sau:
Trong đó:
CU : BOOL là tín hiệu kích đếm tiến
CD : BOOL là tín hiệu kích đếm lùi
S : BOOL là tín hiệu đặt
PV : WORD là giá trị đặt trước
R : BOOL là tín hiệu xoá
CV : WORD Là giá trị đếm ở hệ đếm 16
CV_BCD: WORD là giá trị đếm ở hệ đếm BCD
Q : BOOL Là tín hiệu ra .
Quá trình làm việc của bộ đếm được mô tả như sau:
Số sườn xung đếm được, được ghi vào thanh ghi 2 Byte của bộ đếm, gọi là thanh ghi C-Word. Nội dung của thanh ghi C-Word được gọi là giá trị đếm tức thời của bộ đếm và ký hiệu bằng CV và CV_BCD. Bộ đếm báo trạng thái của C-Word ra ngoài C-bit qua chân Q của nó. Nếu CV <> 0, C-bit có giá trị "1". Ngược lại khi CV = 0, C- bit nhận giá trị 0. CV luôn là giá trị không âm. Bộ đếm sẽ không đếm lùi khi CV = 0.
Đối với Counter, giá trị đặt trước PV chỉ được chuyển vào C-Word tại thời điểm xuất hiện sườn lên của tín hiệu đặt tới chân S.
Bộ đếm sẽ được xoá tức thời bằng tín hiệu xoá R (Reset). Khi bộ đếm được xóa cả C-Word và C- bit đều nhận giá trị 0.
Việc khai báo sử dụng một Counter bao gồm các bước sau:
- Khai báo tín hiệu Enable nếu muốn sử dụng tín hiệu chủ động kích đếm (S): dạng dữ liệu BOOL
- Khai báo tín hiệu đầu vào đếm tiến CU : dạng dữ liệu BOOL
- Khai báo tín hiệu đầu vào đếm lùi CD : dạng dữ liệu BOOL
- Khai báo giá trị đặt trước PV: dạng dữ liệu WORD
- Khai báo tín hiệu xoá: dạng dữ liệu BOOL
- Khai báo tín hiệu ra CV (hệ 16): dạng dữ liệu WORD.
- Khai báo tín hiệu ra CV-BCD nếu muốn lấy giá trị đếm tức thời ở hệ BCD dạng dữ liệu WORD.
- Khai báo đầu ra Q nếu muốn lấy tín hiệu tác động của bộ đếm. dạng dữ liệu BOOL. Trong đó cần chú ý các tín hiệu sau bắt buộc phải khai báo: Tên của bộ đếm cần sử dụng, tín hiệu kích đếm CU hoặc CD.
Bộ đếm tiến/lùi: Khai báo
Nguyên lý hoạt động
Khi tín hiệu I0.2 chuyển từ 0 lên 1bộ đếm được đặt giá trị là 55. Giá trị đầu ra Q4.0 =1 .
Bộ đếm sẽ thực hiên đếm tiến tại các sườn lên của tín hiệu tại chân CU khi tín hiệu I0.0 chuyển giá trị từ "0" lên "1"
Bộ đếm sẽ đếm lùi tại các sườn lên của tín hiệu tại chân I0.1 khi tín hiệu chuyển từ "0" lên "1" . Giá trị của bộ đếm sẽ trở về 0 khi có tín hiệu tai sườn lên của chân R ( I0.3)
Bộ đếm tiến CU: Khai báo
Nguyên lý hoạt động
Khi tín hiệu I0.2 chuyển từ "0" lên "1" bộ đếm được đặt giá trị là 55. Giá trị đầu ra Q4.0 =1.
Bộ đếm sẽ thực hiên đếm tiến tại các sườn lên của tín hiệu tại chân CU khi tín hiệu I0.0 chuyển giá trị từ "0" lên "1" .Giá trị của bộ đếm sẽ trở về 0 khi có tín hiệu tai sườn lên của chân R (I0.3). Bộ đếm sẽ chỉ đếm đến giá trị <= 999.
Bộ đếm lùi CD: Khai báo
Nguyên lý hoạt động
- Khi tín hiệu I0.2 chuyển từ "0" lên "1" bộ đếm được đặt giá trị là 55. Giá trị đầu ra Q4.0 =1.
- Bộ đếm sẽ thực hiên đếm lùi tại các sườn lên của tín hiệu tại chân CD khi tín hiệu I0.0 chuyển giá trị từ "0" lên"1".
- Giá trị của bộ đếm sẽ trở về 0 khi có tín hiệu tai sườn lên của chân R(I0.3). Bộ đếm sẽ chỉ đếm đến giá trị >= 0.
Ví dụ: Viết chương trình điều khiển để quản lý bãi đỗ xe ôtô tự động. Cảm biến S1để phát hiện xe vào, cảm biến S2 để phát hiện xe ra. Số xe trong Gara được lưu vào địa chỉ QW20.