# Вывод на физический аналоговый выход | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: PHY_ANALOG. Тип выхода: вещественный. Количество входов: 1 или 2. ## Примечания по входам •порядок входов: «Выход», «Подменяемое значение, если текущее значение недостоверно»; •«Выход» — аналоговый или дискретный ШИМ выходной канал (или ссылка на него); •признак инверсии первого входа («Выход») игнорируется; •«Подменяемое значение» — устанавливаемое значение (в шкале от 0 до 1) для выхода, указанного на первом входе («Выход»), когда его значение недостоверно или не инициализировано; можно не указывать — по умолчанию оставляет последнее достоверное значение выхода (или 0 мА, если такого еще не было). ## Функционирование •значение выхода равно значению первого входа («Выход»), если последнее достоверно; это значение масштабируется в шкалу 4—20 мА (или модулируется) и присваивается физическому выходному каналу с тем же номером; •значение выхода равно значению второго входа («Подменяемое значение»), если первый вход («Выход») имеет недостоверное значение или неинициализированное состояние; это значение масштабируется в шкалу 4—20 мА (или модулируется) и присваивается физическому выходному каналу с тем же номером; •значение выхода недостоверно, если выход, указанный на первом входе («Выход»), отключен.
Внимание: недопустимо для одного выходного канала одновременное использование флага «Выводить на физический выход» и алгоблока PHY_ANALOG.
## Примеры использования BLOCK1 = RESULT(AO1.1; 5) BLOCK2 = PHY_ANALOG(AO1.1) // Значение алгоблока BLOCK2 и физического канала AO1.1 равно 5. B5 = PHY_ANALOG(AO1.1; 50) // Значение физического выхода АO1.1 равно // логическому значению АО1.1, если он достоверен, // иначе равно 50. BLOCK1 = ADD(15; 50) BLOCK2 = RESULT(AO1.1; BLOCK1) BLOCK3 = PHY_ANALOG(AO1.1) // Использование в аргументах констант, каналов и алгоблоков. // ======================================= // Реализация периодической функции "Пила" // (приращение - 0,001; период - 2пи; // область значений - от 0 до 2пи) // и построение от нее функции "синус" // (область значений - от 20 до 70) B1 = DIV(AO1.1; 6,2815) B2 = TRC(B1) B3 = MUL(B2; 6,283) B4 = ADD(AO1.1; 0,001) B5 = SUB(B4; B3) B6 = RESULT(AO1.1; B5; 0) // Реализация рекурентной формулы // AO1.1 := AO1.1 + 0,001 - 6,283 * TRC( AO1.1 / 6.2815 ) B7 = SIN(AO1.1) B8 = MUL(B7; 25) B9 = ADD(45; B8) B10 = RESULT(AO1.2; B9) B11 = PHY_ANALOG(AO1.2) // Реализация формулы AO1.2 := 45 + 25 * SIN( AO1.1 ) // и вывод значения на физический аналоговый выход. // ======================================= B10 = IDIV(AI1.1; AI1.2) // Целая часть от деления AI1.1 на AI1.2 B20 = IREM(AI1.1; AI1.2) // Остаток от деления AI1.1 на AI1.2 B30 = RESULT(AO1.1; B10) B40 = PHY_ANALOG(AO1.1) // Запись целой части в канал AO1.1 B50 = RESULT(AO1.2; B20) B60 = PHY_ANALOG(AO1.2) // Запись остатка в канал AO1.2. Файл для импорта: formula_ao.help