0

Изменение знака данных канала

Александр 9 лет назад в Редактор каналов обновлен 9 лет назад 0
Есть два физических канала.
Один отображает температуру воды на выходе из котельной ('температура на выходе')
Второй канал отображает температуру окружающей среды ('температура окр.среды')
Создаём виртуальный канал {отклонения от графика температуры}, в котором есть скрипт в Паскале:

0 {отклонения от графика температуры}
1 Var In1, In2, Out1: Integer;
2 Begin
3 // присвоить переменной In1, значение переменной канала
4 In1:=ReadValue('температура на выходе');
5 // присвоить переменной In2, значение переменной канала
6 In2:=ReadValue('температура окр.среды');
7 Out1:=(In1-(In2+50));
8 // записать значение переменной Out1 в канал
9 WriteValue('отклонения от графика температуры',Out1);
10 end.

Вопрос: Как можно изменить знак канала в скрипте ('температура окр.среды'), что бы при минусовых показаниях температуры - были положительными, а при положительных - отрицательными?
День добрый.

Есть два физических канала.
Один отображает температуру воды на выходе из котельной ('температура на выходе')
Второй канал отображает температуру окружающей среды ('температура окр.среды')
Создаём виртуальный канал {отклонения от графика температуры}, в котором есть скрипт в Паскале:

0 {отклонения от графика температуры}
1 Var In1, In2, Out1: Integer;
2 Begin
3 // присвоить переменной In1, значение переменной канала
4 In1:=ReadValue('температура на выходе');
5 // присвоить переменной In2, значение переменной канала
6 In2:=ReadValue('температура окр.среды');
7 Out1:=(In1-(In2+50));
8 // записать значение переменной Out1 в канал
9 WriteValue('отклонения от графика температуры',Out1);
10 end.

Вопрос: Как можно изменить знак канала в скрипте ('температура окр.среды'), что бы при минусовых показаниях температуры - были положительными, а при положительных - отрицательными?


Если я правильно понял Ваш вопрос, то как то так:

{отклонения от графика температуры} var In1, In2, Out1: Integer; begin In1 := ReadValue('температура на выходе'); In2 := ReadValue('температура окр.среды'); Out1 := ((In1 - (In2 + 50)) * (-1)); WriteValue('отклонения от графика температуры',Out1); end.
Не совсем так.
В варианте, который Вы предлагаете, изменим знак виртуального канала Out1:
а нужно было изменить знак физического In2.
В любом случае, намёк понял.
Формулу изменил.
Out1:=(In1-((In2*(-1)+50)));
Всё заработало.
Спасибо за подсказку и за Вашу Скаду.
Продолжаем тестировать.
День добрый.

Не совсем так.
В варианте, который Вы предлагаете, изменим знак виртуального канала Out1:
а нужно было изменить знак физического In2.
В любом случае, намёк понял.
Формулу изменил.
Out1:=(In1-((In2*(-1)+50)));
Всё заработало.
Спасибо за подсказку и за Вашу Скаду.
Продолжаем тестировать.

Понял. Главное все заработало )))

Сервис поддержки клиентов работает на платформе UserEcho