Страница 63 из 112 ПерваяПервая ... 1353616263646573 ... ПоследняяПоследняя
Показано с 621 по 630 из 1125

Тема: Modbus Universal MasterOPC Server новый OPC сервер от компании ИнСАТ

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Да, от устройства. Ответ записывается в тег TV = string.format ("%02X", dest[LEN-1]); Вообщем я пытаюсь время и дату вывести в одном теге, а не в 6.
    Изображения Изображения
    • Тип файла: png 1.png (18.8 Кб, Просмотров: 10)

  2. #2

    По умолчанию

    И что у вас возвращается? Почему вы ожидаете 6 байт? У вас вернется значение числа int32.
    Лучше сначала просто вывести в server.Message результат всех элементов таблицы dest
    Спасибо.

  3. #3

    По умолчанию

    Когда маска ответа 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 (сек, мин, часы, день, месяц, год)
    Как все эти числа теперь вывести в тег?

  4. #4

    По умолчанию

    Как вариант - получить год, месяц день и прочее, собрать из этого время (есть специальные функции) преобразовать в строку и запихнуть в тег.
    Спасибо.

  5. #5

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Как вариант - получить год, месяц день и прочее, собрать из этого время (есть специальные функции) преобразовать в строку и запихнуть в тег.
    Можете подсказать, какая именно функция собирает из байтов время? Пробовал 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.

  6. #6

    По умолчанию

    Цитата Сообщение от daniel23 Посмотреть сообщение
    Можете подсказать, какая именно функция собирает из байтов время? Пробовал 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
    Именно PackTime и собирает. Только потом нужно ее преобразовать в TimeStamp (TimeToTimeStamp), а потом в строку (TimeStampToString).
    Спасибо.

  7. #7

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Именно PackTime и собирает. Только потом нужно ее преобразовать в TimeStamp (TimeToTimeStamp), а потом в строку (TimeStampToString).
    Спасибо большое за подсказку, получилось

  8. #8

    По умолчанию

    Время получаю правильно, но спустя 1-5 мин выбивает ошибку
    08-02-2018 09:45:37.827 TIME:TESMA_PORT.TESMA_106.Group1.TIME >> [string "function CRC8 (ArrayByte)..."]:42: attempt to index local 'dest' (a nil value)
    42 строка это dest7 = string.format("%02X", dest[7]); -- сек
    без этой строки и других таких же для мин, час и т.д. время выводится некорректно
    Весь код такой:
    dest7 = string.format("%02X", dest[7]); --сек
    dest8 = string.format("%02X", dest[8]); --мин
    ...
    err,timesec = time.PackTime (tonumber (dest12), tonumber (dest11), tonumber(dest10), tonumber(dest9), tonumber(dest8), tonumber(dest7));
    ts = time.TimeToTimeStamp(timesec, 0);
    stringts = time.TimeStampToString(ts);
    TV = stringts;
    Последний раз редактировалось daniel23; 08.02.2018 в 11:28.

  9. #9

    По умолчанию

    Добрый день!
    Можно ли изменить приоритет в протоколе Bacnet?
    сейчас только 16 идет...

  10. #10

    По умолчанию

    Цитата Сообщение от Александер2008 Посмотреть сообщение
    Добрый день!
    Можно ли изменить приоритет в протоколе Bacnet?
    сейчас только 16 идет...
    Про какой приоритет идет речь? Опишите подробнее
    Спасибо.

Страница 63 из 112 ПерваяПервая ... 1353616263646573 ... ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •