1. Что делает программа
Пример считает детали на конвейере. Датчик Part_Sensor проходит через R_TRIG, чтобы одна деталь давала один импульс счёта. Счётчик CTU увеличивает значение до уставки партии и включает выход Batch_Complete.
Счёт разрешён только когда Conveyor_Run активен. Вход Batch_Reset сбрасывает счётчик для новой партии.
Part_Sensor -> R_TRIG -> AND -> CTU -> Batch_Complete
2. Сигналы примера
| Сигнал | Тип | Назначение |
|---|---|---|
| Part_Sensor | вход | датчик прохода детали |
| Conveyor_Run | вход | конвейер работает |
| Batch_Reset | вход | сброс счётчика партии |
| Part_Pulse | блок | один импульс на фронт датчика |
| Count_Allowed | блок | разрешение счёта при работающем конвейере |
| Batch_Counter | блок | CTU-счётчик с уставкой PV = 10 |
| Batch_Complete | выход | партия набрана |
3. Основная логика
R_TRIG превращает длительный сигнал датчика в один скан TRUE на фронте. Это защищает счётчик от многократного увеличения, пока деталь стоит перед датчиком.
Count_Allowed = Part_Pulse AND Conveyor_Run
CTU считает импульсы Count_Allowed. Когда накопленное значение достигает PV, выход Q становится TRUE.
Batch_Complete = Count >= PV
4. Как проверять в симуляции
- включите Conveyor_Run;
- переключайте Part_Sensor из FALSE в TRUE и обратно - каждый новый фронт добавляет один счёт;
- оставьте Part_Sensor TRUE - счёт не должен расти без нового фронта;
- выключите Conveyor_Run - импульсы датчика не должны проходить в счётчик;
- подайте Batch_Reset, чтобы начать новую партию.
5. На что обратить внимание
В этом примере PV = 10. Для ручной проверки можно использовать шаги скана и несколько раз переключить датчик. Когда счётчик достигнет уставки, Batch_Complete останется TRUE до сброса.
В реальном проекте рядом часто добавляют выход остановки конвейера, индикацию текущего количества и защиту от дребезга датчика.
Check in editor
Open the ready-made FBD diagram, toggle inputs, and compare the simulation behavior with the program notes. The JSON is also available as a direct download.