# Выбор из таблицы | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: TBL_SEL. Тип выхода: вещественный. Количество входов: 2. ## Примечания по входам •порядок входов: «Ссылка на таблицу», «Номер ячейки»; •первый вход — ссылка на таблицу в формате TBLx, где х — порядковый номер таблицы, например, TBL2 или TBL14; •признак инверсии первого входа («Ссылка на таблицу») игнорируется; •номера ячеек нумеруются с нуля. ## Функционирование •хранение данных осуществляется в энергонезависимой памяти; •значение выхода равно значению ячейки, номер которой указан во втором входе («Номер ячейки»), взятому из таблицы, указанной в первом входе («Ссылка на таблицу»); •выход имеет неинициализированное состояние, если второй вход («Номер ячейки») имеет неинициализированное состояние; •значение выхода недостоверно, если второй вход имеет недостоверное значение или ссылается на несуществующую ячейку. ## Примеры использования BLOCK2 = TBL_SEL(TBL1; 0) // BLOCK2 равен значению первой ячейки таблицы TBL1. BLOCK5 = TBL_SEL(TBL2; AO1.1) // Использование в аргументах каналов. BLOCK2 = TBL_SEL(TBL2; BLOCK3) // Использование в аргументах алгоблоков. // ======================================= // Реализация счетчика моточасов // DI1.1 - равен 1, когда агрегат включен (работает) // AO1.1 - счетчик моточасов // TBL1 - таблица из одной ячейки, хранит значение счетчика B00 = OR(DI1.1; 0) // Шунтирование недостоверных значений DI1.1 нулём B10 = DIV(B00; 36000) // пересчет времени работы агрегата в часы B20 = TBL_SEL(TBL1; 0) B30 = MAX(AO1.1; B20) // восстанавливаем значение, если было отключение питания B40 = ADD(B30; B10) // увеличиваем значение счетчика B50 = TBL_WRITE(TBL1; 0; B40; 1) // записываем значение в первую ячейку таблицы TBL1 // раз в секунду (9 из 10 тактов записи // будут игнорироваться) B60 = RESULT(AO1.1; B40; 0) // записываем значение в канал AO1.1 Файл для импорта: motor.help ## См. также Описание пользовательских таблиц приведено в специальном подразделе.