Косвенная адресация

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

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

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

Количество аргументов: 2 или 3.

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

порядок: «Тип элемента», «№ элемента» (группа, таблица или регулятор), «№ канала в группе» (только для каналов);

первый вход («Тип элемента», должен быть только константой) определяет тип объекта при косвенной адресации:

1 — DI;

2 — AI;

3 — DO;

4 — AO;

5 — таблица;

6 — регулятор;

второй вход («№ элемента») определяет номер группы (для каналов) или номер таблицы/регулятора при косвенной адресации:

oдля каналов — от 1 до 40;

oдля таблиц — от 1 до 215;

oдля регуляторов — от 1 до 100;

третий вход («№ канала в группе») определяет номер канала в группе при косвенной адресации:

для DI — от 1 до 16;

для АI и АО — от 1 до 8;

для DО — от 1 до 10.

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

значение выхода является ссылкой на объект (канал, таблицу или регулятор), который закодирован при помощи двух или трех аргументов (см. примечания выше); его можно использовать в алгоблоках вместо каналов/таблиц/регуляторов;

значение третьего входа игнорируется, если первый вход («Тип элемента») равен 5 или 6;

значение выхода имеет неинициализированное состояние, если второй («№ элемента») или третий («№ канала в группе», только для входов) вход имеет неинициализированное состояние;

значение выхода недостоверно, если:

значение первого входа («Тип элемента») не равно целому числу от 1 до 6;

округленное значение второго входа («№ элемента») меньше 1 или больше или 40 (для канало), или 215 (для таблиц), или 100 (для регуляторов);

округленное значение третьего входа («№ канала в группе») меньше 1 (для каналов);

округленное значение третьего входа («№ канала в группе») больше 16, если значение первого хода («Тип элемента») равно 1;

округленное значение третьего входа («№ канала в группе») больше 8, если значение первого хода («Тип элемента») равно 2 или 4;

округленное значение третьего входа («№ канала в группе») больше 10, если значение первого хода («Тип элемента») равно 3;

отсутствует третий вход, а значение первого хода («Тип элемента») равно от 1 до 4.

Особенности горячей загрузки

При горячей загрузке:

все уставки, устанавливаемые только косвенным способом, будут сброшены;

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

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

// Пример 1 - косвенная запись в канал АО

// При АО1.1 = 2, а АО1.2 = 3 

// в канал АО2.3 будет записано число 50

B1 = REF(4; AO1.1; AO1.2)

B2 = RESULT(B1; 50)

 

// Пример 2 - косвенное определение срабатывания уставки

// При АО1.1 = 1, а АО1.2 = 5, 

// B2 будет = 1, если у канала DI1.5 сработана уставка НТ

B1 = REF(1; AO1.1; AO1.2)

B2 = ASK_LIM(2; B1)

 

// Пример 3 - косвенное обращение к таблице

B1 = REF(5; 1)

// Если первая ячейка таблицы 1 равна 20,

// то в AO1.1 запишется 20.

B2 = TBL_SEL(B1; 0)

B3 = RESULT(AO1.1; B2)