# N значений из M | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: NOFM. Тип выхода: логический. Количество входов: от 3 до 32. ## Примечания по входам •порядок входов: «Логическое число 1», «Логическое число 2», ..., «Количество единиц»; •последний вход: «Количество единиц» — целое число. ## Функционирование •значение выхода равно логической единице, если значение последнего входа достоверно и равно некоторому числу N и: •N и более логических входов (кроме последнего) имеют значение, равное логической единице; •N ≤ 0 и хотя бы один из логических входов (кроме последнего) имеет достоверное значение; •значение выхода равно логическому нулю, если: •менее N логических входов (кроме последнего) имеют значение равное логической единице; •значение всех логических входов (кроме последнего) недостоверно; •значение выхода недостоверно, если последний вход имеет недостоверное значение или его состояние не инициализированно. ## Примеры использования BLOCK1 = NOFM(DI1.1; DI1.2; DI1.3; 2) // Если два из трех входов равны единице, то выход равен единице. BLOCK2 = NOFM(DO1.1; ~DO1.2; DO1.3; AI1.1) // ~DO1.2 — инверсия значения. BLOCK3 = NOFM(BLOCK1; BLOCK2; DI1.1; 2) // Использование в аргументах значений других алгоблоков. // ======================================= // Реализация блокировки, если сработали три параметра из пяти B10 = ASK_LIM(8; AI1.1) B20 = ASK_LIM(8; AI1.2) B30 = ASK_LIM(8; AI1.3) B40 = ASK_LIM(8; AI1.4) B50 = ASK_LIM(8; AI1.5) // Определение срабатывания уставки Н у каналов AI1.1-AI1.5 B60 = NOFM(B10; B20; B30; B40; B50; 3) B70 = RESULT(DO1.1; B60) B80 = PHY_DSC(DO1.1) // Вывод сигнала блокировки на дискретный выходной канал DO1.1. Файл для импорта: block3of5.help