# Состояние алгоблока | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: ID_STATE. Тип выхода: логический. Количество входов: 2. ## Примечание по входам •порядок входов: «ID алгоблока», «Маска состояния»; •«ID алгоблока» — ссылка на алгоблок пользовательской программы; •признак инверсии первого входа («Канал») игнорируется; •«Маска состояния» — определяет перечень отслеживаемых состояний: o1 — норма; o2 — неинициализированное состояние; o4 — недостоверное значение. ## Функционирование •значение выхода равно логической единице, если у алгоблока, на который ссылается первый вход («ID алгоблока»), зафиксированно одно из состояний, закодированных значением второго входа («Маска состояния»); •значение выхода равно логическому нулю, если у агоблока, на который ссылается первый вход («ID алгоблока»), не зафиксированно ни одно из состояний, закодированных значением второго входа («Маска состояния»); •выход имеет неинициализированное состояние, если второй вход («Маска состояния») имеет неинициализированное состояние; •значение выхода недостоверно, если второй вход («Маска состояния») имеет: •недостоверное значение; •округленное целое значение меньше 1 или больше 7. ## Примеры использования B10 = ADD(AI1.1; 1) BLOCK1 = ID_STATE(b10; 2) // BLOCK1 = 1, если алгоблок B10 имеет неинициализированное состояние. BLOCK2 = ID_STATE(AO1.1; B20) // Использование в аргументе значения другого алгоблока. // ======================================= // Подпрограмма INIT выполняется только один раз // после старта контроллера BLOCK1 = ID_STATE(BLOCK1; 1) BLOCK2 = IF_EXIT(BLOCK1) BLOCK3 = ... // Какие-то однократно выполняемые действия BLOCK4 = ... BLOCK5 = ...