|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме | Опции просмотра |
25.01.2018, 22:34 | #1 |
Новичок
Регистрация: Dec 2016
Адрес: СПб
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Int48. Преобразование в real
Столкнулся с проблемой.
Нужно считывать Int48 по Modbus и выводить на экран. Прибор - эл.счетчик Elster Метроника A1800. По мануалу максимальное хранимое значение - 99 999 999 999 В таком формате он хранит потребленную энергию Ватты, ВАРы, ВА с точностью до сотых. Если пожертвовать точностью и выводить значения в формате Кило (Ватты, ВАРы, ВА), разделив на 100000 - то real'a должно хватить на максимальное значение в 999999,9 кВт Написал макрос преобразования Int48 в real, может кому пригодится: Conv Int48.msl Вот только вопрос. Какое максимальное значение мантиссы для real? Думал, что 2^24 = 16777216, но SMLogix показывал и большие числа, например 10952167. Где я неправ? |
26.01.2018, 11:03 | #2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Int48. Преобразование в real
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
29.01.2018, 19:17 | #3 |
Новичок
Регистрация: Dec 2016
Адрес: СПб
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Int48. Преобразование в real
|
29.01.2018, 19:55 | #4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Int48. Преобразование в real
Вот пример вывода на экран числа от 0 до 9 223 372 036 854 775 807, закодированного в двух лонгах. Так и в вашем случае. выделить целую часть кВт в один лонг, а дробную - во второй. И выводить. Можно даже МВт выводить, разложив в float64 на две части. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
05.02.2018, 21:22 | #5 |
Новичок
Регистрация: Dec 2016
Адрес: СПб
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Int48. Преобразование в real
Может есть более рациональные решения по выделению целой и дробной части? Conv Int48 в 2Long.msl |
06.02.2018, 10:19 | #6 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Int48. Преобразование в real
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Форматирование числа real | andre | SMArt | 9 | 18.09.2023 06:24 |
Некорректное отображение real вида X.XXXe-YYY на экране настроек | SSG | Вопросы о SMH-2G(i) | 6 | 06.12.2017 11:37 |
Получение нестандартного REAL по MODBUS | Arsie | Примеры работы по Modbus | 3 | 01.02.2015 12:53 |
Точность вычислений real | WhiteM | SMLogix | 2 | 03.07.2013 16:18 |
ГАММА-8 чтение REAL с обратным порядком байт... | Dron | Связь с внешним миром | 3 | 17.02.2010 15:58 |