Выбор из таблицы |
Типовые задачи Предыдущий Следующий |
Общие сведенияНаименование: 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 См. такжеОписание пользовательских таблиц приведено в специальном подразделе. |