Вывод на физический аналоговый выход

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

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

Наименование: 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_fbd

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