1

Тема: работа с отрицательными числами

Добрый день! Есть ли возможность используя входа контроллера Canny Gamma 7.2 считывать отрицательные значения с датчика температуры Dallas шины 1-wire? В описании как я понял есть пример работы с внутренними переменными создавая внутри самого алгоритма переменные отрицательных значений.

2

Re: работа с отрицательными числами

Не вполне понятен вопрос.
Знак температуры может быть получен отдельного регистра - см.функ.блок №4 здесь: https://canny.ru/docs/c72gamma/1-wire/# … re-primery

3

Re: работа с отрицательными числами

Мне с отрицательными данными в десятичном формате надо работать, а не со строками. В алгоритме контроллера необходимо сравнить уставку температурного параметра (отрицательную), которая опять же является константной величиной с текущей температурой датчика, которая предполагается что будет периодически иметь отрицательное значение, понятно что я буду в программе сравнивать модули чисел. Функцию модуля знака числа я тоже не нашёл в вашей библиотеке. Есть конкретный пример как это сделать (сравнить отрицательные значения в десятичном формате в программе)?. Просто в программном обеспечении ПЛК обычно всегда есть возможность работать с отрицательными значениями ( не со строками) без дополнительных преобразований.

4

Re: работа с отрицательными числами

Уточню если непонятно описал вопрос.
В программе контроллера Canny есть переменная ustTemp:= -5;
Со входа №3 считывается температура испарителя кондиционера ispTemp:=ch3Dallas;
в программе контроллера Canny необходимо сравнить уставку температуры и температуру испарителя.
и если ispTemp < ustTemp , то включить флаг ошибки , например переменная bool ErrorCond:=true;
В программном обеспечении контроллеров обычно можно сразу сравнить числа(отрицательные) , без модуля их числа и вывести результат в необходимую переменную. Как сделать данный пример в программном обеспечении вашего контроллера?

5

Re: работа с отрицательными числами

Роман пишет:

Мне с отрицательными данными в десятичном формате надо работать, а не со строками.

Я вам и не предлагал это сделать. Я лишь указывал на то, что (дословно):

Константин, CANNY пишет:

Знак температуры может быть получен отдельного регистра


Таким образом, подобную задачу:

Роман пишет:

В программе контроллера Canny есть переменная ustTemp:= -5;
Со входа №3 считывается температура испарителя кондиционера ispTemp:=ch3Dallas;
в программе контроллера Canny необходимо сравнить уставку температуры и температуру испарителя.
и если ispTemp < ustTemp , то включить флаг ошибки , например переменная bool ErrorCond:=true;

Можно решить, например, так (уставка здесь задана константой, но это не принципиально):

Вложений в сообщении

t-5.png, 9.39 кб, 727 x 130
t-5.png 9.39 кб, скачивался 88 раз, последний раз 2022-08-22 

6

Re: работа с отрицательными числами

Перейдите из Цельсия в Кельвин. Температура в Кельвинах всегда положительна.

7

Re: работа с отрицательными числами

Спасибо, оставил предыдущий вариант с включением бита отрицательного значения.