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

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

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.

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

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

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

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

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