Siemens — 3.1.2 Приоритеты и очереди для исполнения событий

Основы ПЛК 3.1 Исполнение программы пользователя Что нужно знать о событиях типа "Диагностируемая ошибка" Некоторые устройства обладают способностью диагностировать ошибки и сообщать о них. Возникновение или исчезновение различных диагностируемых ошибок приводит к событию типа "Диагностируемая ошибка". Поддерживаются следующие диагностируемые ошибки: ● Отсутствие напряжения у пользователя ● Нарушение верхнего граничного значения ● Нарушение нижнего граничного значения ● Обрыв провода ● Короткое замыкание Все события типа "Диагностируемая ошибка" вызывают исполнение OB 82, если он существует. Если OB 82 не существует, то CPU игнорирует эту ошибку.

При создании нового проекта OB 82 не существует. При желании вы можете добавить OB 82 в свой проект, дважды щелкнув в дереве проекта под "Program blocks [Программные блоки]" на "Add new block [Добавить новый блок]", затем выберите "Organization block [Организационный блок]", а затем "Diagnostic error interrupt [Прерывание по диагностируемой ошибке]". OB 82 содержит информацию о запуске, с помощью которой вы можете определить, обязано ли это событие появлению или исчезновению ошибки, а также, какое устройство и какой канал сообщили об ошибке. Вы можете запрограммировать команды внутри OB 82, чтобы исследовать эти значения и принять необходимые меры.

OB 82 поддерживает следующие адреса запуска: Бит 4 в IO_state было ли событие запущено появление или исчезновением ошибки. Бит 4 равен 1, если ошибка присутствует (пример: обрыв провода) и равен 0, если ошибки больше нет. Вход в контактном плане содержит аппаратный идентификатор (HW ID) устройства или функциональной единицы, которая выдала ошибку. HW ID назначается автоматически, когда компоненты вставляются в отображение набора устройств или сети и появляется во вкладке Constants [Константы] переменных ПЛК. Идентификатору HW ID также автоматически присваивается имя. Эти записи во вкладке Constants переменных ПЛК не могут быть изменены.

Номер канала начинается с 0 для первого входа (аналогового или цифрового) и с 64 для первого выхода (аналогового или цифрового). Это смещение необходимо для того, чтобы отличить входы от выходов у устройств, имеющих и то, и другое. Если ошибка затрагивает все устройство или функциональную единицу, например, отсутствие напряжения у пользователя, то устанавливается самый старший бит в слове с номером канала (номер канала 32768).

Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 53 Вход Тип данных Описание IOstate WORD Состояние входов/выходов устройства laddr HW ANY _ Идентификатор аппаратуры устройства или функциональной единицы, которая сообщила об ошибке channel UINT Номер канала multierror BOOL TRUE, если имеется несколько ошибок (в ранних версиях не поддерживается)