|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
25.06.2018, 17:29 | #1 |
Новичок
Регистрация: Feb 2017
Сообщения: 19
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
ABB M2M нужен ли перевод long в unsigned long (решено)
Здравствуйте. Есть анализатор сети ABB M2M, из него вычитываю значение активной энергии, которое он отдает в формате unsigned long. Но, поскольку SMH4 работает с типом long, на выходе регистра неверные данные. Можете подсказать, как правильно осуществить перевод данных из long в unsigned long? Документацию от ABB и карту памяти прилагаю.
|
25.06.2018, 18:44 | #2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ABB M2M перевод long в unsigned long
Что вы с этими данными предполагаете делать дальше?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
25.06.2018, 23:19 | #3 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: ABB M2M перевод long в unsigned long
Значения выше 2147483647 возможны?
Если нет - просто сделайте AND с этим значением. Если да - сдвиньте вычитанное значение вправо на один бит (и в дальнейшей обработке учитывайте, что работаете с исходными данными, деленными на два). НО: Скорее всего, проблема в порядке следования байт (DMTME-72 вроде этим "порадовал", если не путаю). Тогда вам сюда: http://forum.segnetics.com/showthread.php?t=461 |
26.06.2018, 12:25 | #4 |
Новичок
Регистрация: Feb 2017
Сообщения: 19
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ABB M2M перевод long в unsigned long
|
26.06.2018, 12:38 | #5 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: ABB M2M перевод long в unsigned long
Тогда не заморачивайтесь, в сервере объявите переменную как беззнаковую и всё будет приниматься верно - это совместимые между собой форматы в целых числах, знаковый и беззнаковый.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
26.06.2018, 14:41 | #6 |
Новичок
Регистрация: Feb 2017
Сообщения: 19
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: ABB M2M перевод long в unsigned long
Проблема решилась, скрин настроек OPC-сервера (вдруг кому пригодится) во вложении
|