Запись в таблицу |
Типовые задачи Предыдущий Следующий |
Общие сведенияНаименование: TBL_WRITE. Тип выхода: логический. Количество входов: 4. Примечания по входам•порядок входов: «Ссылка на таблицу», «Номер ячейки», «Значение», «Логический сигнал на запись»; •первый вход — ссылка на таблицу в формате TBLx, где х — порядковый номер таблицы, например, TBL2 или TBL14; •признак инверсии первого входа («Ссылка на таблицу») игнорируется; •номера ячеек нумеруются с нуля. Функционирование•хранение данных осуществляется в энергонезависимой памяти; •выход на один такт равен логической единице, и в это же время происходит запись значения третьего входа («Значение») в ячейку, номер которой указан во втором входе («Номер ячейки»), в таблицу, указанную в первом входе («Ссылка на таблицу»), если четвертый вход («Логический сигнал на запись») равен логической единице; •выход имеет неинициализированное состояние, и запись в ячейку таблицы не происходит, если второй, третий или четвертый вход имеет неинициализированное состояние; •значение выхода недостоверно, и запись в ячейку таблицы не происходит, если: •второй вход ссылается на несуществующую ячейку; •второй, третий или четвертый вход имеет недостоверное значение (даже если один из этих входов имеет неинициализированное состояние). Примечание: в процессе загрузки конфигурации в модуль ПР запись в ячейки таблицы не производится.
Примеры использованияBLOCK2 = TBL_WRITE(TBL1; 0; 5; DI1.1) // Если DI1.1 = 1, то в ячейку 1 таблицы TBL1 будет записано число 5. // (Запись будет производится не чаще чем раз в секунду.) BLOCK5 = TBL_WRITE(TBL2; BLOCK1; AI1.1; ~DO1.2) // Использование в аргументах каналов и алгоблоков. // ======================================= // Реализация счетчика моточасов // 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 См. такжеОписание пользовательских таблиц приведено в специальном подразделе. |