Последний раз редактировалось Сергей0308; 15.03.2022 в 15:40.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Для начала разложить переменную внутреннюю на два регистра.Как правильно прочитать 32 разрядное число?
Потом прочитать два регистра компьютером по Modbus сразу как 32-х разрядное число.
Правильный ответ - у Modbus регистр 16 бит. Что вы туда, а так же в соседний (соседние) положите, то и получите...
В ПР целочисленные пользовательские переменные 16-разрядные, с плавающей запятой - 32-разрядные, целочисленные сетевые переменные в режиме Мастер могут быть 32-разрядными (в настройках задается кол-во регистров у переменной), целочисленные сетевые переменные в режиме слейв тоже 16-разрядные.
Менеджер по продукту | Owen Logic
email: soft@owen.ru
Менеджер по продукту | Owen Logic
email: soft@owen.ru
Я так и сделал, спасибо. Просто изначально думал что сетевые переменные аналогичны внутренним, т.к. не нашел информацию об этом ни в руководстве на ПР ни в owen logic
Денисов Максим Сергеевич внутренняя переменная 32 разряда, кто-то мешает ее раскидать на два регистра пользовательских переменных?
И получите неточное число из-за приведения типов. Например какой-то битик окажется не там и нигде....
alexx12 а искать надо было в Modbus
Последний раз редактировалось Сергей0308; 16.03.2022 в 10:30.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
1.png
Вместо тысячи слов
У Овена всё сложней, чем кажется на первый взгляд: всем известно что сетевые целочисленные переменные в режиме слейв - 16 битные(вроде с этим никто не спорит), так вот в симуляторе значение не обрезается до 16 бит(65535), много лет назад делал проект с передачей 30 разрядной переменной одним регистром(16 бит), так вот для эксперимента приходилось дополнительно в программе обрезать 30 битное значение до 16 бит, в программе(симуляторе) само не обрезается!
Передача одним регистром_5.owl
Последний раз редактировалось Сергей0308; 16.03.2022 в 16:00.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
При записи в регистр не обрезается, а при чтении обрезается
Безымянный.png