On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



ссылка на сообщение  Отправлено: 26.11.15 15:57. Заголовок: ModBus не понятно


Добрый день.

Подцепился к очередной вентмашине. Но не понятно по получаемым значениям.
Вот что описано в мануале
EXOL type
The EXOL type of the signals:
R = Real (-3.3E38 - 3.3E38)
I = Integer (-32768 - 32767)
X = Index (0 - 255)
L = Logic (0/1)

Соотвественно это типы переменных. Но что такое Real (-3.3E38 - 3.3E38)?
От переменной такого типа я получаю значения: 441.92, 484.8 и так далее. Это должны быть значения температур.
Каким образом эти могучие цифры нужно конвертировать?
Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 15 [только новые]







ссылка на сообщение  Отправлено: 26.11.15 16:46. Заголовок: RuckShot1, это откуд..


RuckShot1, это откуда такие данные идут? Судя по всему, у вас там контроллер Regin - какой именно?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 26.11.15 17:50. Заголовок: Real в данном случае..


Real в данном случае это от -3.3 * 10 в 38 степени... до + 3.3 ...
Т.е. как раз нецелые числа.

Если не ошибаюсь, то от Float отличается большим диапазоном и занимаемой памятью.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 26.11.15 19:04. Заголовок: Igor вот такой у мен..


Igor вот такой у меня http://www.systemair.com/Documentation/Air%20handling%20units/Network%20variables%20for%20EXOline%20and%20Modbus%203_1.pdf
Я пока не из крестрона к нему обращаюсь а через контроллер на KNX, но принцип все равно тот же самый

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 26.11.15 19:04. Заголовок: Paul_T а как такие з..


Paul_T а как такие значения к температуре привести?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 27.11.15 12:21. Заголовок: Короче, есть тьма сп..


Короче, есть тьма способов передать 32-битное значение через ModBus, и для начала тебе нужно заполучить его - это самое 32-битное значение.

Потом нужно догадаться в каком порядке нужно составить из этого 32-битного числа байты, чтобы получился Intel Single Precision Floating Point.

Ну и наконец тоже 2 варианта - либо разгрызть эти 32 бита на знак мантиссы (1 бит), экспоненту (8 бит) и беззнаковую мантиссу (23 бита), и колдовством в пределах целочисленной арифметики SIMPL+ получить оттуда температуру с нужной точностью - там, до 10-х градуса например. Либо воспользоваться Floating Point To Analog в SIMPL и уже потом думать, как поступать с его whole и frac.
Только чур - ни слова про ModBus и тех, кто намеренно пользуется его "расширениями")))

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 27.11.15 13:17. Заголовок: RuckShot1, пока мы н..


RuckShot1, пока мы не отдалились от темы - меня смущает следующее. Вы цитируете абзац, касающийся данных типа EXOL (что бы это ни значило), в то время как стандартные типы регистров Modbus в данном документе перечислены ниже, а далее по документу достаточно поробно описаны. Вы уверены что изначально копаете в правильном направлении?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 27.11.15 14:05. Заголовок: Igor Я не исключаю т..


Igor Я не исключаю той возможности, а даже уверен что не до понимаю 50% происходящего)
Вы имеете ввиду этот абзац?
Scale factor Modbus
Real signals have scale factor 10 except the time settings signals that have scale factor 100 and Air
flow signals that have scale factor 1 for modbus communication. Integer, Index and Logic has
always scale factor 1.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 27.11.15 14:05. Заголовок: eoulianov мозг закип..


eoulianov мозг закипел)

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 27.11.15 15:17. Заголовок: RuckShot1, не совсем..


RuckShot1, не совсем. То что вы цитируете сегодня - это уже математика, я предлагаю вернуться в самое начало. Поверхностное ознакомление с этим документом наводит на мысль что контроллер Regin может общаться с внешним миром как по Modbus, так и по EXOLink. Что такое EXOLink я не знаю, но возникает ощущение что это некая платформа, в частности - определяемый ею протокол. На странице 4 документа перечислены типы данных, поддерживаемые EXOLink и Modbus, а именно:
==================
EXOL type
The EXOL type of the signals:
R = Real (-3.3E38 - 3.3E38)
I = Integer (-32768 - 32767)
X = Index (0 - 255)
L = Logic (0/1)

Modbus type
The Modbus type of the signals (type in the list below):
1 = Coil Status Register (Modbus function = 1, 5 and 15)
2 = Input Status Register (Modbus function = 2)
3 = Holding Register (Modbus function = 3, 6 and 16)
4 = Input Register (Modbus function = 4)
==================
Т. е. получается что c вы собираетесь общаться с Regin по Modbus, но в то же время начинаете разбираться с типами и структурой данных, используемых EXOLink. Повторюсь, я опираюсь на весьма поверхностное ознакомление с документом. Возможно, надо попинать вендора на эту тему?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 27.11.15 15:34. Заголовок: Igor Все, теперь я п..


Igor Все, теперь я понял. Да.. я немного не в ту сторону пошел.. Тогда этот абзац к делу не относится, буду копать в сторону понимания что за значения я получаю и как их преобразовать!

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 28.11.15 02:09. Заголовок: Во, я не поленился п..


Во, я не поленился почитать http://www.systemair.com/Documentation/Air%20handling%20units/Corrigo_E_ventilation_Modbus_Communication_Guide_3.2_manual_EN.pdf - вы эту вентиляцию жените? Если так, то всё не так печально и их разработчики не сделали новых велосипедов и вы обойдётесь стандартными модулями ModBus и каким-нибудь Analog Scaler.
Там написано, что в кишках у ихнего контроллера крутится программа, в которой используются переменные ("регистры") всяких разные типов данных, в т.ч. и EXOL Type R (Real), а вот с внешним миром оно желает общаться по Modbus, и там как раз стандартные 16-битные регистры. Ну и для любопытных так прямо и указано, как они переводят их славные внутернние типы в эти самые 16 бит на ModBus:
Scale factor Modbus
Real signals have scale factor 10 except the time settings signals that have scale factor 100 and air flow signals that have scale factor 1 for Modbus communication. Integer, Index and Logic always have scale factor 1.
Прямо так и говорят - если обычные всякие Real, то они переводятся в Input Register и Holding Register с умножением на 10, а если это время - то на 100, а если это воздушный поток - то без умножения. Получается, если вы запросили значения этих самых 16-битных регистров и получили, скажем 200 - то нужно это интерпретировать как 20.0 градусов.

Теперь вопрос - где именно вы получаете значения, когда
 цитата:
От переменной такого типа я получаю значения: 441.92, 484.8 и так далее.

? Это внутри средства отладки EXOdesigner?

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 30.11.15 23:12. Заголовок: eoulianov Спасибо, с..


eoulianov Спасибо, стало яснее.

Я получаю эти значения через контроллер на KNX (Logic Machine).
Она подключена по ModBus к вентмашинам и в ней что то типа:
-- AI1 Значение температуры наружного воздуха
value_1 = mb:readinputregisters(23)
опять же на текущий момент значение получаемое 516,8.... Встает вопрос каким образом температура наружного воздуха = 50 градусов(


Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 01.12.15 15:03. Заголовок: У KNX есть REAL, и т..


У KNX есть REAL, и тут как раз большой вопрос как они превратили полученный по ModBus INT16 в этот свой REAL. Думаю, это вопрос уже к KNX контроллеру)

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 03.12.15 15:02. Заголовок: eoulianov Ну собстве..


eoulianov Ну собственно разобрался) Все изначально было правильно. Полученные значения делим на 10. Загвоздка была в том, что нужно обращаться к адресу, например к 25, как (-1), т.е. к 24. Я про это совсем забыл. Поэтому и значения не соответствующие были!

Всем спасибо!

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 02.02.17 23:37. Заголовок: RuckShot1, а вот и к..


RuckShot1, а вот и ко мне пришел объект с вентмашиной Regin. Как там у вас, все получилось, стабильно работает?

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 49
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет