Ну это уже полные враки, все внутренние целочисленные переменные в ПР - 32 разрядные!
Если Вы имели ввиду сетевые переменные, то, насколько мне известно, это тоже не так, в режиме мастер ПР может читать-писать 32 разрядные переменные.
Вид для печати
Для начала разложить переменную внутреннюю на два регистра.Цитата:
Как правильно прочитать 32 разрядное число?
Потом прочитать два регистра компьютером по Modbus сразу как 32-х разрядное число.
Правильный ответ - у Modbus регистр 16 бит. Что вы туда, а так же в соседний (соседние) положите, то и получите...
В ПР целочисленные пользовательские переменные 16-разрядные, с плавающей запятой - 32-разрядные, целочисленные сетевые переменные в режиме Мастер могут быть 32-разрядными (в настройках задается кол-во регистров у переменной), целочисленные сетевые переменные в режиме слейв тоже 16-разрядные.
Я так и сделал, спасибо. Просто изначально думал что сетевые переменные аналогичны внутренним, т.к. не нашел информацию об этом ни в руководстве на ПР ни в owen logic
Денисов Максим Сергеевич внутренняя переменная 32 разряда, кто-то мешает ее раскидать на два регистра пользовательских переменных?
И получите неточное число из-за приведения типов. Например какой-то битик окажется не там и нигде....
alexx12 а искать надо было в Modbus
Вложение 59713
Вместо тысячи слов :)
У Овена всё сложней, чем кажется на первый взгляд: всем известно что сетевые целочисленные переменные в режиме слейв - 16 битные(вроде с этим никто не спорит), так вот в симуляторе значение не обрезается до 16 бит(65535), много лет назад делал проект с передачей 30 разрядной переменной одним регистром(16 бит), так вот для эксперимента приходилось дополнительно в программе обрезать 30 битное значение до 16 бит, в программе(симуляторе) само не обрезается!
Вложение 59716
При записи в регистр не обрезается, а при чтении обрезается
Вложение 59718