PDA

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



to0freak
24.02.2020, 13:30
Добрый день.
Имеется ПР200 в связке с ПМ210. Для передачи слова состояния прибора используется макрос из стандартных CodeErr32. Несколько булевых переменных собираются в UINT32 и передаются в облако (подробности на скриншоте)
47572

Проблема в том, что в облаке я получаю не то значение, которое ожидаю. Всего у меня 18 булевых переменных, то есть больше 18и бит данных быть не должно, однако в облаке я получаю значения типа 53552015 или похожих, а это уже 26 бит, чего быть никак не может.
Настройки связи ПР200 - младшим регистром, старшим байтом вперёд. Переменная целочисленная.
Настройки облака аналогичны. Младший регистр, старший байт вперёд. UINT32.
Первые 16 бит в полученном значении точно совпадают с тем, что я ожидаю получить, но последующие 16 бит не совпадают совершенно. Что я делаю не так?

melky
24.02.2020, 17:41
Вы передаете только младшие 16 бит от всего значения. Надо переменную еще на 2 сетевых регистра разбить
И для slave настройки насколько помню не действуют. порядок байт 2301 при чтении двух регистров.