Я вас понял, спасибо. Делаю так local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int16:3:10", "byte"}; и так local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int16:1:10", "int32:1:3210", "byte"}; Но в ответе не получаю 6 байт
В каком ответе? От устройства?
Потом то что вы с полученным ответом делаете?
Спасибо.
Да, от устройства. Ответ записывается в тег TV = string.format ("%02X", dest[LEN-1]); Вообщем я пытаюсь время и дату вывести в одном теге, а не в 6.
И что у вас возвращается? Почему вы ожидаете 6 байт? У вас вернется значение числа int32.
Лучше сначала просто вывести в server.Message результат всех элементов таблицы dest
Спасибо.
Когда маска ответа local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int16:3:10", "byte"} ответ 218 (номер месяца, год)
Когда маска ответа local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int16:1:10", "int32:1:3210", "byte"} ответ 16060218(час, число месяца, номер месяца, год)
При такой маске ответа local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int16:1:10", "int32:1:3210", "byte"} вывел через server.Message сначала все элементы dest, затем оставил только нужные
dest7 = string.format("%02X", dest[7]);
dest8 = string.format("%02X", dest[8]);
server.Message ("dest:", " ", dest7, dest8);
получилось так
06-02-2018 16:46:14.191 TESMA_PORT.TESMA_106.TimerMemory.Tag1:dest: 502416060218 (сек, мин, часы, день, месяц, год)
Как все эти числа теперь вывести в тег?
Как вариант - получить год, месяц день и прочее, собрать из этого время (есть специальные функции) преобразовать в строку и запихнуть в тег.
Спасибо.
Можете подсказать, какая именно функция собирает из байтов время? Пробовал time.PackTime, но видимо использую не ту функцию
Даже из примера err,timesec = time.PackTime(2012,5,3,12,31,45);
ответ
07-02-2018 16:37:00.031 TESMA_PORT.TESMA_106.Group1.TIME:time: 1336037505 err: 0
а не 201253123145
Последний раз редактировалось daniel23; 07.02.2018 в 16:39.
Добрый день!
Можно ли изменить приоритет в протоколе Bacnet?
сейчас только 16 идет...