Запись в таблицу

Типовые задачи  Предыдущий  Следующий

Общие сведения

Наименование: TBL_WRITE.

Тип выхода: логический.

Количество входов: 4.

Примечания по входам

порядок входов: «Ссылка на таблицу», «Номер ячейки», «Значе­ние», «Логический сигнал на запись»;

первый вход — ссылка на таблицу в формате TBLx, где х — поряд­ко­вый номер таблицы, например, TBL2 или TBL14;

признак инверсии первого входа («Ссылка на таблицу») игнорируется;

номера ячеек нумеруются с нуля.

Функционирование

хранение данных осуществляется в энергонезависимой памяти;

выход на один такт равен логической единице, и в это же время происходит запись значения третьего входа («Значение») в ячейку, номер которой указан во втором входе («Номер ячейки»), в таб­лицу, указанную в первом входе («Ссылка на таблицу»), если  четвертый вход («Логический сигнал на запись») равен логи­чес­кой единице;

выход имеет неинициализированное состояние, и запись в ячейку таблицы не происходит, если второй, третий или четвертый вход имеет неинициализированное состояние;

значение выхода недос­товерно, и запись в ячейку таблицы не происходит, если:

второй вход ссылается на несуществующую ячейку;

второй, третий или четвертый вход имеет недостоверное зна­чение (даже если один из этих входов имеет неинициализированное состояние).

Примечание: в процессе загрузки конфигурации в модуль ПР запись в ячейки таблицы не производится.

Внимание!

1. Не допускается использование данного алгоблока в вызываемых подпрограммах.

2. Запись в ячейку таблицы производится не чаще чем раз в секунду. (Если производить запись чаще, то она будет игнорироваться.)

Примеры использования

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_fbd

Файл для импорта: motor.help

См. также

Описание пользовательских таблиц приведено в специальном подразделе.