Просмотр полной версии : Преобразование данных ( Линеаризация или вычитание)
pgboroda@yandex.ru
03.11.2024, 13:56
Добрый день.
Столкнулся с проблемой, пока не получается решить. Есть прибор , к которому подключены датчики температуры. Данный прибор по модбас отправляет значения этих датчиков в формате int16 в следующем виде.
Значение 0 - соотвествует температуре -30 градусов, 1 - соответствует -29 градусов , 30 - соответствует 0 градусов , 50 соответствует +20 градусов и тд. . . . Передаваемый диапазон от 0 до 255.
Соответственно нужно линеаризацию применить или постоянное вычитание из полученного числа, но я их не нашёл в ОК . . .
Подскажите куда копать, ибо объяснить заказчику , что надо думалку напрягать каждый раз когда смотришь на температуру и видишь там значение 55 - в уме отнимать 30 и получать реальное значение температуры нереально и глупо.
З.Ы. У прибора изменить отображение невозможно (так зашито в карту переменных)
Pavel5698
07.11.2024, 10:33
В Облаке нет настройки сдвига значения
Сергей0308
07.11.2024, 11:56
Добрый день.
Столкнулся с проблемой, пока не получается решить. Есть прибор , к которому подключены датчики температуры. Данный прибор по модбас отправляет значения этих датчиков в формате int16 в следующем виде.
Значение 0 - соотвествует температуре -30 градусов, 1 - соответствует -29 градусов , 30 - соответствует 0 градусов , 50 соответствует +20 градусов и тд. . . . Передаваемый диапазон от 0 до 255.
Соответственно нужно линеаризацию применить или постоянное вычитание из полученного числа, но я их не нашёл в ОК . . .
Подскажите куда копать, ибо объяснить заказчику , что надо думалку напрягать каждый раз когда смотришь на температуру и видишь там значение 55 - в уме отнимать 30 и получать реальное значение температуры нереально и глупо.
З.Ы. У прибора изменить отображение невозможно (так зашито в карту переменных)
Это же легко можно сделать, например с помощью ПР200 с двумя сетевыми интерфейсами, в ОЛ, в менеджере компонентов специальный макрос есть для преобразования диапазонов, но мне кажется проще и дешевле 2ТРМ0:
79899
https://owen.ru/product/2trm0
поставить с сетевым интерфейсом, в смысле этот прибор будет передавать температуру в реальных физических величинах, а не в "попугаях".
ага, проще. Шлюз(Облако) - Устройство(Modbus)
А тут еще предлагают вкорячить....
Банально после получения данных нужна математика Канал*Множитель в облаке есть. Почему нет Канал - константа, Канал + константа ну и другие примитивные вещи?
Кстати в отчетности по документации к Облаку есть функции, которыми можно сделать + и -
ибо объяснить заказчику
возможно стоит объяснить читающим эту тему, зачем Ваш прибор настроен таким образом что приращивает 30 градусов, чтоб где то в облаке требовалось обратно изменять на эти 30 градусов
Видимо прибор отдает значение одним байтом всего, при этом с отрицательным диапазоном. И если использовать как знаковый, то +127 градусов не хватает. 255-30 как бы 225 с плюсом.
Сергей0308
08.11.2024, 06:10
Видимо прибор отдает значение одним байтом всего, при этом с отрицательным диапазоном. И если использовать как знаковый, то +127 градусов не хватает. 255-30 как бы 225 с плюсом.
Товарищ же ясно написал, что передаёт в INT16!
В смысле, зачем же искажать исходные данные, так мы ни к чему хорошему не прийдём!
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot