10. Bộ đếm (Counter)
10.1 Giới thiệu
Trong nhiều trường hợp, việc kiểm tra một số lượng xác định phải thông qua tổng các xung. Có thể thực hiện đếm các xung này bằng các bộ đếm. Sử dụng bộ đếm có thể giải quyết được một số vấn đề sau:
- Đếm số lượng
- So sánh với một giá trị đặt trước ở các trường hợp bằng nhau, nhỏ hơn, lớn hơn.
- Kiểm tra sự khác biệt về số lượng.
Trong điều khiển vị trí thì việc sử dụng bộ đếm tốc độ cao là không thể thiếu. Phần điều khiển vị trí và bộ đếm tốc độ cao sẽ được trình bày chi tiết trong tập 2 của bộ sách này. Ở chương này chỉ đề cập đến các bộ đếm thông thường.
Bộ đếm cũng có thể sử dụng để thực hiện các nhiệm vụ như: Cộng các xung của bộ phát xung nhịp và dựa vào đó để gọi các giai đoạn điều khiển liên tiếp nhau. Hoặc các yêu cầu điều khiển theo chu kỳ lặp như điều khiển đèn giao thông.
Các PLC thường có 3 loại bộ đếm: bộ đếm lên, bộ đếm xuống, bộ đếm lên-xuống.
Có 256 bộ đếm ở S7-200 có địa chỉ từ C0 đến C255. Chúng cũng có 3 loại bộ đếm là:
+ Bộ đếm lên CTU (Up Counter).
+ Bộ đếm xuống CTD (Down Counter).
+ Bộ đếm lên-xuống (Up/Down Counter).
Khi sử dụng một counter chúng ta cần phải xác định các thông số sau:
- Loại counter (CTU, CTD hay CTUD)
- Số của counter sẽ sử dụng, không được gán cùng một số counter cho nhiều counter.
- Khai báo giá trị cần đếm cho counter.
- Tín hiệu xung cung cấp cho bộ đếm.
- Tín hiệu xóa bộ đếm.
10.2 Bộ đếm lên CTU (Count Up)
Bộ đếm CTU được biểu diễn ở LAD như sau:
Mỗi khi tín hiệu tại CU từ mức “0” lên “1” thì bộ đếm sẽ tăng giá trị hiện hành của nó lên 1 đơn vị. Khi giá trị hiện hành của bộ đếm (Cxxx) lớn hơn hoặc bằng giá trị đặt trước tại ngõ vào PV (Preset Value) thì ngõ ra bit của counter (counter bit) sẽ lên mức “1”. Giá trị đếm lên tối đa là 32.767. Phạm vi của bộ đếm là C0 đến C255.
Bộ đếm sẽ bị xóa về 0 khi ngõ vào Reset (R) lên mức “1”, hoặc khi sử dụng lệnh Reset để xóa bộ đếm.
Ví dụ: Cứ mỗi xung từ “0” chuyển lên “1” tại ngõ vào I0.0, bộ đếm sẽ tăng 1 đơn vị. Từ xung thứ 5 trở đi ngõ ra Q0.0 sẽ lên “1”. Nếu có xung vào tại ngõ I0.1 thì ngõ ra Q0.0 xuống “0”.
10.3 Bộ đếm xuống CTD (Count Down)
Bộ đếm xuống CTD được biểu diễn ở LAD như sau:
Mỗi khi tín hiệu tại CD từ mức “0” lên “1” thì bộ đếm sẽ giảm giá trị hiện hành của nó xuống 1 đơn vị. Khi giá trị hiện hành của bộ đếm (Cxxx) bằng 0, thì Counter Bit Cxxx lên “1”. Bộ đếm xóa Counter Bit Cxxx và nạp giá trị đặt trước ở PV khi ngõ vào LD (load) lên mức “1”.
Bộ đếm sẽ dừng đếm khi giá trị hiện hành bằng 0 và counter bit Cxxx lên “1”. Phạm vi của bộ đếm là C0 đến C255.
Khi xóa bộ đếm bằng lệnh Reset, counter bit bị xóa và giá trị hiện hành được đặt về 0.
10.4 Bộ đếm lên-xuống CTUD (Count Up/Down)
Bộ đếm xuống CTUD được biểu diễn ở LAD như sau:
Lệnh đếm lên-xuống (CTUD) sẽ đếm lên mỗi khi ngõ vào đếm lên (CU) từ mức “0” lên “1”, và đếm xuống mỗi khi ngõ vào đếm xuống (CD) chuyển từ “0” lên “1”. Giá trị hiện hành Cxxx giữ giá trị hiện hành của bộ đếm. Giá trị đặt trước PV được so sánh với giá trị hiện hành mỗi khi thực hiện lệnh đếm.
Khi đạt đến giá trị max (32.767), thì ở cạnh lên kế tiếp tại ngõ vào đếm lên bộ đếm sẽ đặt về giá trị min (-32.768).
Khi đạt đến giá trị min (-32.768), thì ở cạnh lên kế tiếp tại ngõ vào đếm xuống bộ đếm sẽ đặt về giá trị max (32.767).
Khi giá trị hiện hành Cxxx lớn hơn hoặc bằng giá trị đặt trước PV, thì Counter Bit Cxxx lên “1”. Ngược lại Counter Bit Cxxx bằng “0”.
Phạm vi của bộ đếm là C0 đến C255.
Bộ đếm sẽ bị xóa về 0 khi ngõ vào Reset (R) lên mức “1”, hoặc khi sử dụng lệnh Reset để xóa bộ đếm.
Ví dụ: Sử dụng bộ đếm xuống C3. Ngõ vào đếm lên nối với I0.0. Ngõ vào đếm xuống nối với I0.1. Xóa bộ đếm bằng I0.2. Khi bộ đếm có giá trị hiện hành >=4 thì ngõ ra Q0.0 lên “1”.
10.5 Ứng dụng bộ đếm
10.5.1 Đếm sản phẩm được đóng gói
Sản phẩm đã đóng gói được đưa vào một thùng chứa bằng một băng tải (kéo bởi động cơ M). Mỗi thùng chứa được 10 sản phẩm. Khi sản phẩm đã được đếm đủ thì băng tải dừng lại đề cho người vận hành đưa một thùng rỗng vào. Sau khi người vận hành ấn nút S1(NO) để tiếp tục thì băng tải hoạt động. Quá trình cứ lặp đi lặp lại cho đến khi nào ấn nút dừng S0 (NC).
Sản phẩm trước khi đưa vào thùng sẽ đi qua cảm biến quang S2 (NC).
Sơ đồ công nghệ:
Phân tích
* Động cơ kéo băng tải:
Điều kiện hoạt động: – Nút nhấn S1 (NO) được tác động
Điều kiện dừng: – Nút nhấn dừng S0 (NC) được tác động, hoặc
– Đếm đủ 10 sản phẩm (bộ đếm C1).
Nếu sử dụng Set, Reset:
Điều kiện Set động cơ M: K1= S1
Điều kện Reset động cơ M: K1= S0 ¤ C1
Vì ưu tiên dừng máy nên sử dụng ưu tiên Reset. Ngoài ra khi đã đếm đủ 10 sản phẩm thì Counter Bit C1 luôn luôn =”1” nên ở ngõ R của khâu RS ta sử dụng cạnh lên đối với bit C1.
- Bộ đếm C1:
Vì đếm đến 10 sản phẩm thì phát tín hiệu để động cơ dừng, nên ở đây sử dụng bộ đếm lên.
Điều kiện ngõ vào đếm lên CU: = S2
Giá trị đặt cho bộ đếm PV:= 10
Điều kiện xóa bộ đếm R:= cạnh lên K1
Chú ý: Vì chân Reset(R) của bộ đếm sẽ xóa bộ đếm về 0 theo mức logic nên ta phải sử dụng cạnh lên ở ngõ vào.
10.5.2 Kiểm soát chỗ cho Garagen gầm
Một Garage ngầm có 20 chỗ đậu xe. Ở ngõ vào có hai đèn báo: Đèn đỏ báo hiệu Garage đã hết chỗ, đèn xanh báo hiệu Garage còn chỗ trống. Đường vào và đường ra chỉ cho phép một xe chạy.
Sơ đồ công nghệ được cho ở hình 10.2. Hai cảm biến S1 và S2 được đặt gần nhau để nhận biết xe vào và ra.
Phân tích
* Nhận biết xe vào/ra
Vì Garage ngầm chỉ có một cửa ra vào cho một làn xe chạy, nên không thể lấy riêng lẻ một cảm biến để nhận biết xa vào và cảm biến còn lại để nhận biết xe ra vì sẽ có sự trùng lắp và không rõ ràng. Để giải quyết, kết hợp cả hai cảm biến này. Giản đồ xung cho xe vào rà ra Garage như sau:
Từ giản đồ thời gian ta nhận thấy:
Tín hiệu xe vào:= cạnh lên S2 AND mức logic “1” của S1 Tín hiệu xe ra:= cạnh lên S1 AND mức logic “1” của S2
- Bộ đếm
Vì số lượng xe trong Ragage thay đổi khi có xe vào và ra, nên ở đây sử dụng bộ đếm lên và xuống. Ngoài ra, để đơn giản khi khởi động lại PLC thì bộ đếm xóa về 0, ta có thông tin cho các ngõ vào của bộ đếm như sau:
- Ngõ vào đếm lên CU:= Tín hiệu xe vào
- Ngõ vào đếm xuống:= Tín hiệu xe ra
- Ngõ vào giá trị đặt trước PV:= 20
- Ngõ vào xóa bộ đếm R:= SM0.1
- Đèn báo Garage còn chỗ trống (đèn xanh):= C1
- Đèn báo Garage hết chỗ trống (đèn đỏ):= C1.
10.6 Câu hỏi và bài tập
BT10.6.1 Điều khiển bồn sấy
Một bồn sấy hoạt động như sau:
Khi ấn nút khởi động S1 (NO), thì bồn sấy quay phải 20s, tự động dừng lại 5s, sau đó quay trái 20s, tự động dừng lại 5s. Quá trình cứ lặp đi lặp lại cho đến khi ấn nút dừng S2 (NC) hoặc sau thời gian 20 chu kỳ lặp sẽ tự động dừng lại. Yêu cầu:
- Lập bảng xác định vào ra (khi lập bảng chú ý liệt kê luôn các bit nhớ, bộ đếm, timer và ý nghĩa của chúng trong chương trình).
- Lập bảng nối dây với PLC
- Viết chương trình điều khiển và nạp vào PLC để kiểm tra.
BT10.6.2 Điều khiển bể ăn mòn
Một bể chứa dung dịch ăn mòn để ăn mòn phần đồng còn thừa trên tấm mạch in. Giỏ chứa các tấm mạch được treo vào một cần như hình 10.3. Khi ấn nút khởi động S1 (NO) thì cần hạ giỏ xuống đến giới hạn dưới S3 (NC) để đặt các tấm mạch in ngập trong dung dịch ăn mòn. Sau thời gian 15s thì cần nâng lên đến giới hạn trên của cần S2 (NC) thì tự động hạ xuống trở lại. Chu kỳ lặp lại được 6 lần thì tự động dừng hoặc có thể ấn nút dừng S0 (NC). Khi hệ thống đang hoạt động thì đèn báo H1 sáng.
Yêu cầu:
- Vẽ sơ đồ nối dây PLC
- Viết chương trình điều khiển
BT10.6.3 Kiểm soát băng chuyền sản phẩm
Một hệ thống băng chuyền sản phẩm được cho theo sơ đồ công nghệ như hình vẽ 10.4.
Khi ấn nút “start” thì băng chuyền thùng hoạt động. Khi thùng đụng công tắc hành trình S3 (NO) thì băng chuyền thùng dừng lại, băng chuyền sản phẩm đã đóng gói bắt đầu chuyển động. Cảm biến S2(NC) được dùng để đếm số luợng sản phẩm. Khi đếm được 12 sản phẩm thì băng chuyền sản phẩm dừng và băng chuyền thùng lại bắt đầu chuyển động. Bộ đếm được đặt lại và quá trình vận hành lập lại cho đến khi ấn nút “stop” (NC).
Yêu cầu:
- Vẽ sơ đồ nối dây PLC
- Viết chương trình điều khiển