# Косвенная адресация | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: 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)