-
Прошу помощи! Принимаю от прибора посылку.
05-07-2017 09:10:52.149 com-portCOM4) Rx: [0039] 01 03 22
00 04 часовой срез
00 17
00 00 00 01 09 0F -------- секунды минуты час день месяц год
43 03 BA B4 ---------- 131.729 (float)dest[14]
43 EA 93 65 ---------- 469.152 dest[15]
43 AA 2C 0F ---------- 340.344 dest[16]
43 A5 73 0E ---------- 330.899 dest[17]
43 E9 11 B3 ---------- 466.138 dest[18]
43 D7 60 EA ---------- 430.757 dest[19]
BA 66 ----- СРС
инициализация маски принятой таблицы-
local destmask={"byte","byte","byte","byte","byte","byte ","byte",
"byte","byte","byte","byte","byte","byte"
,"float:6:76543210"};
запрос приём передача - всё приходит правильно! Вывожу значения!
server.Message(" 14= ",dest[14]," 15= ",dest[15]," 16= ",dest[16]," 17= ",dest[17]
," 18= ",dest[18]," 19= ",dest[19])
и тут получается бред!
14 = 469.152 15= 340.344 16= 330.899 17=466.138 18=430.757 19=-0,000087
получается, что пропадает истинное значение dest[14] = 131.729, а на его место становится dest[15 ] и т.д.,
хотя байты с dest[1] по dest[13] соответствуют ответу!
подскажите пж-та, как решить данную проблему?
Добавлю - если вручную пересчитываю hex в float - всё правильно!
Последний раз редактировалось za9c; 05.07.2017 в 10:30.
-
Сообщение от
za9c
"float:6:76543210"};
Попробуйте float:6:3210
-
Сообщение от
SCADAMaster
Попробуйте float:6:3210
Спасибо - помогло!
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума