ГоловнаПрограмування ПЛК › Лічильники
Урок 2 з 5 · Серія TECORP GROUP

Лічильники
CTU, CTD, CTUD
// рахуємо імпульси і події

Лічильник ПЛК рахує вхідні імпульси і вмикає вихід коли досягає уставки. Пляшки на конвеєрі, цикли преса, кількість деталей — все це завдання для CTU.

📦 Практика: конвеєр
🔢 CTU / CTD / CTUD
🕐 Час: ~20 хвилин
📊 Мова: Ladder Diagram

Що таке лічильник ПЛК

Лічильник (Counter) — функціональний блок ПЛК що підраховує кількість вхідних імпульсів (фронтів сигналу). Як тільки поточне значення CV досягає уставки PV, активується вихідний сигнал Q.

В реальних установках лічильники рахують: деталі на конвеєрі, оберти вала, імпульси витратоміра, кількість спрацювань кнопки, робочі цикли машини. Це один з найбільш затребуваних блоків в промисловій автоматизації.

CTU
Count Up — Лічильник вперед
Рахує по зростанню. Кожен фронт ↑ на вході CU збільшує CV на 1. Коли CV ≥ PV — Q = ON. Скидається сигналом R.
CTD
Count Down — Зворотний відлік
Рахує по спаданню. Починає від PV, кожен фронт ↑ на CD зменшує CV на 1. Коли CV ≤ 0 — Q = ON. Завантаження через LD.
CTUD
Count Up/Down — Реверсивний
Об'єднує CTU і CTD. Вхід CU рахує вгору, CD — вниз. Один блок для реверсивного обліку (кількість товару на складі).
ПінНапрямокТипПризначення
CUВхідBOOLCount Up — рахує по фронту ↑. Підключається до датчика або кнопки.
RВхідBOOLReset — скидання лічильника до 0. Має пріоритет над CU.
PVВхідINTPreset Value — уставка (задане значення). Ціле число 0–32767.
QВихідBOOLВихід готовності. ON коли CV ≥ PV. Підключається до котушки Y або M.
CVВихідINTCurrent Value — поточне значення. Можна зчитувати та порівнювати.

Написання програми з лічильником

Задача: конвеєр упаковки. Порахувати 10 пляшок, після чого зупинити конвеєр (Y0) і включити сигнальну лампу (Y1). Після натискання кнопки «Очищення» (X2) — скинути і продовжити.

Крок 1 — адресація
Визначте входи і виходи
X0 — фотодатчик на конвеєрі (дає імпульс кожна пляшка)
X1 — кнопка «Пуск конвеєра»
X2 — кнопка «Скидання лічильника»
Y0 — привід конвеєра (реле)
Y1 — сигнальна лампа «Набір готовий»
C0 — лічильник CTU, уставка PV = 10
M0 — маркер «конвеєр дозволено»
2
Крок 2 — Network 1
Вхід CU — імпульс від датчика
Перший рядок програми підключає фотодатчик X0 до входу CU лічильника C0. У HaiwellHappy це інструкція CNT:

LD X0CNT C0 K10

де K10 — константа (уставка PV = 10). Мнемоніка K означає constant (число).
3
Крок 3 — Network 2
Скидання по кнопці X2
LD X2RST C0

Інструкція RST обнуляє і CV, і Q лічильника. В Haiwell та Siemens: якщо X2=ON одночасно з X0=ON — скидання має пріоритет, рахунок не відбувається.
4
Крок 4 — Network 3
Вихід Q керує конвеєром і лампою
Контакт C0 (Q вихід лічильника) — нормально відкритий.
Коли C0 = ON → Y0 OFF (зупинка конвеєра), Y1 ON (лампа):

LD C0OUT Y1 (сигнальна лампа)
LDI C0OUT Y0 (конвеєр, інверсія — зупинка)

Порада: C0 можна використовувати як звичайний контакт у будь-якому Network — NO або NC.

Живий симулятор — конвеєр упаковки

Натискайте 📦 Нова пляшка — датчик X0 дає імпульс, CV збільшується. Коли CV досягає уставки PV — конвеєр зупиняється (Q = ON). Натисніть ↺ Скидання щоб почати новий набір.

// CTU Counter C0 — Conveyor Package Counter
● ОЧІКУВАННЯ
Конвеєр
CV — Поточне значення
0
/ PV = 10
Q — Вихід лічильника
OFF
Очікування... Нараховайте 10 елементів
Уставка PV =
Симулятор готовий. Натисніть 📦 Нова пляшка — кожне натискання імітує один фронт ↑ датчика X0. Лічильник C0 підраховує і збільшує CV.
// CTU — Структура функціонального блоку в Ladder Diagram
CTU C0 X0 Датчик CU X2 Скидання R PV = 10 Q Y1 CV 0

CTD — Зворотний лічильник

CTD (Count Down) працює в протилежному напрямку. Спочатку завантажується значення PV (через вхід LD), потім кожен імпульс на CD зменшує CV на 1. Коли CV досягає нуля — Q = ON.

Де застосовується CTD:
• Дозування: відрахувати N порцій
• Залишок на складі: знімати при кожній видачі
• Реверс позиції: рахувати до нуля
• Час роботи до обслуговування
• Обліковий зворотний таймер (у поєднанні з T)
Піни CTD:
CD — вхід рахунку вниз
LD — завантаження (Load) PV→CV
PV — початкове значення
Q — ON коли CV ≤ 0
CV — поточне значення
// Приклад: CTD у HaiwellHappy
LD X5      // Вхід CD — кожна видача зі складу
DCNT C1 K100  // CTD, C1, PV=100 (початковий залишок)
LD C1       // Q = ON (залишок = 0)
OUT Y5      // Сигнал "Склад порожній"

Потрібен контролер для практики?

Haiwell PLC серія A від $108 — ідеальний стартовий варіант. Безкоштовне середовище HaiwellHappy, постачання з Дніпра ~4 тижні.