Вход

Просмотр полной версии : Что-то с модбас



LGM
11.06.2025, 12:53
Приветствую. Есть вопрос.
ИПП120 мастер, 2ТРМ по RS485 передает давления с двух каналов. Значения на ТРМ и на экране ИПП совпадают. Данные давления и уставки с ИПП также передаются на ПР102 в виде числа с плавающей запятой. При нулевом значении с датчиков и уставке выше нуля оператор сравнения fGT постоянно пляшет по выходу, то даст единицу, то нет. Как посмотреть какие реальные цифры приходят на вход. Там колеблются всякие -3,7-3,75E-39-29. Уставка 5,88Е-39. Может их в виде целочисленном передавать?

kondor3000
11.06.2025, 13:14
Приветствую. Есть вопрос.
ИПП120 мастер, 2ТРМ по RS485 передает давления с двух каналов. Значения на ТРМ и на экране ИПП совпадают. Данные давления и уставки с ИПП также передаются на ПР102 в виде числа с плавающей запятой. При нулевом значении с датчиков и уставке выше нуля оператор сравнения fGT постоянно пляшет по выходу, то даст единицу, то нет. Как посмотреть какие реальные цифры приходят на вход. Там колеблются всякие -3,7-3,75E-39-29. Уставка 5,88Е-39. Может их в виде целочисленном передавать?

Если у вас числа 3,7-3,75E-39-29. значит не правильный порядок регистров (байт) в переменной Float.

LGM
11.06.2025, 13:19
странно, когда уставку равную 3 ставлю показывает 3. Наверное число зеркальное. Спасибо сейчас поиграюсь

LGM
11.06.2025, 13:26
а как должно быть, одинаково в мастере и в слейве? сейчас не стоит никаких галок нигде. И с ТРМкой тоже не стоит, но с нее передает правильно

kondor3000
11.06.2025, 14:05
а как должно быть, одинаково в мастере и в слейве? сейчас не стоит никаких галок нигде. И с ТРМкой тоже не стоит, но с нее передает правильно

Естественно должно быть одинаково. Если в слейве Float 23.45, значит и в мастере 23.45

LGM
11.06.2025, 14:25
все варианты попробовал между ИПП и ПР. все равно кракозябры вместо чисел. Хотя целочисленные передаются нормально. В ИПП кстати на экране как надо показывает, а в режиме наладки где я сетевую из ТРМа в ПРку перекладываю тоже горбатую. есть еще мысли?

kondor3000
11.06.2025, 14:30
все варианты попробовал между ИПП и ПР. все равно кракозябры вместо чисел. Хотя целочисленные передаются нормально. В ИПП кстати на экране как надо показывает, а в режиме наладки где я сетевую из ТРМа в ПРку перекладываю тоже горбатую. есть еще мысли?

Как надо проверять
Сначала проверяете целое число, если не правильно, то переставляете байты.
Потом проверяете Float, если не правильно, переставляете регистры. Проверять надо на уставках, ГДЕ ЧИСЛО НЕ ПРЫГАЕТ.
Если Float всё равно не правильно, значит у вас не правильные адреса Float (иногда бывает смещение на 1 регистр). Проверяете правильность адресов.

Если у вас при 0 показывает, 2.3 e-9, то конвертируйте в целое и посмотрите. Это и есть 0, только прыгает уже от шума АЦП.

LGM
11.06.2025, 15:53
прыгает сильно. Если в целые числа перевести там 400 700 2352323562 4 000 000 примерно такой разброс. Попробую вычисления эти в ИПП сделать, а в ПР уже передать бульку

kondor3000
11.06.2025, 16:47
прыгает сильно. Если в целые числа перевести там 400 700 2352323562 4 000 000 примерно такой разброс. Попробую вычисления эти в ИПП сделать, а в ПР уже передать бульку

Что за фигня, откуда на ИПП может что то прыгать?
Если все аналоговые входы на ПР ? Разберитесь сначала со входами ПР, а потом с передачей, как написал выше.

Может вы питание на ИПП не подали? Без питания обмен работать не будет.

FPavel
11.06.2025, 18:02
А не может так случиться, что читаете по адресу, смещённому на +1 или -1?

Недавно подключал расходомер к облаку, а перед этим к компьютеру с ModbusPull - измеренный расход в одном случае был в регистре 0, а в другом - в регистре 1.

МихаилГл
11.06.2025, 18:16
Уже спрашивали в #7 посте. Но похоже этого так и не проверили...

FPavel
11.06.2025, 18:31
Прошу прощения, проглядел...

Валенок
11.06.2025, 20:15
Недавно подключал расходомер к облаку, а перед этим к компьютеру ModbusPull - измеренный расход в одном случае был в регистре 0, а в другом - в регистре 1.
Если это был один и тот же расходомер, то это классический случай сравнения правильного (с 0) и как бы правильного (с 1) значения
С 0 был родной порядок 1234, а с 1 мастер переставил 3412. Особенность ieee32 такая, что лажа (с 1) не будет отличается более чем на 0.8% (примерно) от реальности

FPavel
11.06.2025, 20:47
Если это был один и тот же расходомер, то это классический случай сравнения правильного (с 0) и как бы правильного (с 1) значения
С 0 был родной порядок 1234, а с 1 мастер переставил 3412. Особенность ieee32 такая, что лажа (с 1) не будет отличается более чем на 0.8% (примерно) от реальности
К сожалению, не лично выполнял эти работы. Получил уже настроенный приём данных с этим описанием. Закралось сомнение в правильности номера регистра и порядка. Но проверки невозможны, доступ закрыт.
Подозреваю, что считываются регистры смежных параметров, но проверить возможности нет.
Будет через некоторое время, обязательно проверю.

Хотя с изменением номера регистра на 1 сталкивался при выборе различных протоколов на Weintek. Т.е. особенность всё равно существует.

Nomad
11.06.2025, 22:17
Приветствую. Есть вопрос.
ИПП120 мастер, 2ТРМ по RS485 передает давления с двух каналов. Значения на ТРМ и на экране ИПП совпадают. Данные давления и уставки с ИПП также передаются на ПР102 в виде числа с плавающей запятой. При нулевом значении с датчиков и уставке выше нуля оператор сравнения fGT постоянно пляшет по выходу, то даст единицу, то нет. Как посмотреть какие реальные цифры приходят на вход. Там колеблются всякие -3,7-3,75E-39-29. Уставка 5,88Е-39. Может их в виде целочисленном передавать?
Покажите настройки Modbus ИПП120 и ПР102 в OWEN Logic.

Валенок
11.06.2025, 22:31
Хотя с изменением номера регистра на 1 сталкивался при выборе различных протоколов на Weintek. Т.е. особенность всё равно существует.
Особенность какая? Что мастер что-то скрытно от вас делает? Это особенность мастера не имеющая никакого отношения к реальным посылкам и слейву.
Мутилово со времен модикона за каким-то разделившего физическую и логическую адресацию.
40001 этож 0 а функция - 3. Всё же очевидно))
Овен такой хренью не маецца. Но у него другой хрени хватает - например trace mode по дефолту))

LGM
12.06.2025, 14:43
Что за фигня, откуда на ИПП может что то прыгать?
Если все аналоговые входы на ПР ?

нет у пр аналоговых. с трм приходят они по модбас. и при передаче дальше от ипп мастера в пр слейв кошмарит именно флоат, целые норм передает

LGM
12.06.2025, 14:48
А не может так случиться, что читаете по адресу, смещённому на +1 или -1?

даже не знаю как это сделать

LGM
12.06.2025, 15:05
Покажите настройки Modbus ИПП120 и ПР102 в OWEN Logic.

84319
84320

kondor3000
12.06.2025, 15:16
нет у пр аналоговых. с трм приходят они по модбас. и при передаче дальше от ипп мастера в пр слейв кошмарит именно флоат, целые норм передает

Как же трудно с вами, а в ТРМ по вашему не аналоговые входы? Вы же с ТРМ получаете сигналы Float.
Только одному объяснял как надо с Float работать, читайте https://owen.ru/forum/showthread.php?t=26216&page=424
Там же ссылка на вашу тему, только вы не читаете. https://owen.ru/forum/showthread.php?t=41477&p=465926&viewfull=1#post465926

А проблема в том, что при передаче с ТРМ и отправке в ИПП, перестановка регистров разная !
Если правильно принять с ТРМ (снять галку), по при передаче в ИПП, галку надо поставить, что невозможно с одним мастером.
Проверить просто передав константу, например число 23.78
А точнее либо переделывать проект (переставлять регистры или передавать целым числом), либо делать 2 мастера.