Автор | Сообщение |
|
Отправлено: 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 и так далее. Это должны быть значения температур. Каким образом эти могучие цифры нужно конвертировать? Спасибо!
|
|
|
Ответов - 15
[только новые]
|
|
|
Отправлено: 26.11.15 16:46. Заголовок: RuckShot1, это откуд..
RuckShot1, это откуда такие данные идут? Судя по всему, у вас там контроллер Regin - какой именно?
|
|
|
|
Отправлено: 26.11.15 17:50. Заголовок: Real в данном случае..
Real в данном случае это от -3.3 * 10 в 38 степени... до + 3.3 ... Т.е. как раз нецелые числа. Если не ошибаюсь, то от Float отличается большим диапазоном и занимаемой памятью.
|
|
|
|
Отправлено: 26.11.15 19:04. Заголовок: Igor вот такой у мен..
|
|
|
|
Отправлено: 26.11.15 19:04. Заголовок: Paul_T а как такие з..
Paul_T а как такие значения к температуре привести?
|
|
|
|
Отправлено: 27.11.15 12:21. Заголовок: Короче, есть тьма сп..
|
|
|
|
Отправлено: 27.11.15 13:17. Заголовок: RuckShot1, пока мы н..
RuckShot1, пока мы не отдалились от темы - меня смущает следующее. Вы цитируете абзац, касающийся данных типа EXOL (что бы это ни значило), в то время как стандартные типы регистров Modbus в данном документе перечислены ниже, а далее по документу достаточно поробно описаны. Вы уверены что изначально копаете в правильном направлении?
|
|
|
|
Отправлено: 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.
|
|
|
|
Отправлено: 27.11.15 14:05. Заголовок: eoulianov мозг закип..
eoulianov мозг закипел)
|
|
|
|
Отправлено: 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. Повторюсь, я опираюсь на весьма поверхностное ознакомление с документом. Возможно, надо попинать вендора на эту тему?
|
|
|
|
Отправлено: 27.11.15 15:34. Заголовок: Igor Все, теперь я п..
Igor Все, теперь я понял. Да.. я немного не в ту сторону пошел.. Тогда этот абзац к делу не относится, буду копать в сторону понимания что за значения я получаю и как их преобразовать!
|
|
|
|
Отправлено: 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?
|
|
|
|
|
Отправлено: 30.11.15 23:12. Заголовок: eoulianov Спасибо, с..
eoulianov Спасибо, стало яснее. Я получаю эти значения через контроллер на KNX (Logic Machine). Она подключена по ModBus к вентмашинам и в ней что то типа: -- AI1 Значение температуры наружного воздуха value_1 = mb:readinputregisters(23) опять же на текущий момент значение получаемое 516,8.... Встает вопрос каким образом температура наружного воздуха = 50 градусов(
|
|
|
|
Отправлено: 01.12.15 15:03. Заголовок: У KNX есть REAL, и т..
У KNX есть REAL, и тут как раз большой вопрос как они превратили полученный по ModBus INT16 в этот свой REAL. Думаю, это вопрос уже к KNX контроллеру)
|
|
|
|
Отправлено: 03.12.15 15:02. Заголовок: eoulianov Ну собстве..
eoulianov Ну собственно разобрался) Все изначально было правильно. Полученные значения делим на 10. Загвоздка была в том, что нужно обращаться к адресу, например к 25, как (-1), т.е. к 24. Я про это совсем забыл. Поэтому и значения не соответствующие были! Всем спасибо!
|
|
|
|
Отправлено: 02.02.17 23:37. Заголовок: RuckShot1, а вот и к..
RuckShot1, а вот и ко мне пришел объект с вентмашиной Regin. Как там у вас, все получилось, стабильно работает?
|
|
|
|