Для чего в PMP20 нужны блоки BLOCK и семафоры SEM?
BLOCK — это участок программы, который выполняется не каждый цикл, а по собственному условию и до завершения последовательности. Механизм нужен для пошаговых операций: цикл станка, промывка, дозирование, где шаги идут строго друг за другом.
Что даёт контроллер:
- До 100 блоков в одной программе.
- Признак выполнения для каждого блока — системные меркеры с SM300 по SM399: один меркер на блок. По нему основная программа видит, занят блок или свободен, и не запускает его повторно.
- Семафоры SEM0…SEM31 — 32 флага ожидания. Блок останавливается на команде ожидания, пока семафор не будет освобождён, и продолжает с того же места. Так разводят доступ к общему ресурсу: два блока не должны одновременно включать один и тот же исполнительный механизм.
Главное ограничение, о которое спотыкаются при первом использовании: внутри блоков команды обмена по Modbus отменены. Опрос приборов и запись уставок в частотный преобразователь пишут в основной программе, а блок только выставляет запрос и ждёт результат через обычные меркеры и регистры.
Второе ограничение — время. Блок выполняется параллельно основному циклу, но контроллер по-прежнему один: длинная последовательность внутри блока увеличивает цикл сканирования. Контролировать его стоит по системным регистрам времени цикла, а не на глаз.
Когда блоки не нужны: для простой логики «одно условие — один выход» и для непрерывного регулирования обычная лестничная программа проще в чтении и в наладке.
Прикреплённая документация
Георгий Жуков
Ведущий инженер