ritm
Junior Member / Новичок
Участник № / Member № 687
отправлено / posted
При чтении канала типа modbus функцией "Rout Word (3)" получаем значения без знаков (во всяком случае элементы визуализации воспринимают их такими), существует ли возможность получать значения со знаком этой функцией, использовать "Rout Float (3)" нет возможности.
Сообщения / Posts 21 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Знак можно получить только если Вы будете считывать значение как Float. Чтение регистра - как Byte или Word всегда беззнаково по определению этого типа данных. А почему нет возможности работать через "Rout Float (3)"?
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ritm
Junior Member / Новичок
Участник № / Member № 687
отправлено / posted
Возможно мы чего-то недопонимаем, но сечас картина представляется так: имеются девайсы, которые по запросу третьей функции возвращают 16 битное число (его надо интерпретировать как знаковое). Канал, установленный как Rout Float (3) делает запрос на два 16 битных регистра, которые интерпретирует как 32 битное вещественное. Заставить девайсы выдавать 32 битные вещественные числа мы не в состоянии.
Сообщения / Posts 21 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Интересно, а о чем думал производитель, когда в регистры типа Word, которые по определению беззнаковые, сохранял знаковые значения в этих устройствах!? Или у него с понятием типов данных проблемы? Вам теперь один выход - если нельзя самим адресацию задать этих параметров в контроллере, чтобы под них 4 байта выделить и читать как Float, то нужно писать собственную процедуру обработки принятого значения по всем этим каналам (скорее всего на FBD)...
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kuznetsov
unregistered
отправлено / posted
to ritm: а какие устройства Вы используете?
IP / IP: IP адрес / IP address |