• Автор
    Тема
  • #74709

    Аноним

    Здравствуйте.
    Конфигурация у нас следующая:
    Электрическая розетка — блок питания — ZET 7001 — ZET 7020 — ZET 7002 — ZET 7020 — ZET 7070 — компьютер.
    К ZET 7002 подключён ZET 7012i.
    Интерфейс зетлабовской шины — RS-485.
    Всё это работает, однако наблюдается следующая любопытная особенность:
    Если послать запрос через виртуальный ком-порт в адрес 7020 либо 7012 сразу после включения блока питания (фактически через 3-5 сек) — ответ не приходит, сколько бы мы не ждали.
    Однако если начать посылать туда повторные запросы, то через 10-40 секунд адресуемый датчик начинает отвечать, при этом присылает ответы на все старые запросы, в т.ч. на первый.
    Чтобы 7020 либо 7012 ответили с первой попытки, надо после включения питания ничего им не посылать в течение 5-10 МИНУТ.
    После получения первого ответа всё работает хорошо и стабильно.
    Не знаете, это баг или фича? Почему так происходит? Как с этим бороться?

    С уважением, Алексей.

Просмотр 8 ответов - с 1 по 8 (всего 8)
  • Автор
    Ответы
  • #74712

    Елена Зимина
    Хранитель

    Добрый день, Алексей!
    1. Можете прислать пример команды, которую Вы используете для чтения данных?
    2. Версия прошивок устройств
    https://zetlab.com/podderzhka/tsifrovyie-datchiki-semeystva-zetsensor/programmirovanie/protokol-modbus-dlya-rs-485/ Для чтения значения нужно использовать команду 0x03.

    С уважением, Шишова Олеся

    #74713

    Аноним

    Я использую команду 0x04. Вот запрос:

    char cRequest[]=
    {
    0,// адрес — заменяется в каждом конкретном запросе
    4,// команда — 4. считать потоковые данные флоат
    0,// старший байт адреса чтения. 0.
    0x14,// младший байт адреса чтения. 14 шестнадцатеричное, 20 десятичное
    0, // старший байт размера чтения в словах — 0.
    10, // младший байт размера чтения в словах — 10. 10 слов это 5 значений
    0,// crc16 сумма. считается в дальнейшем
    0,
    0 // null-terminator
    };

    Окей, попробую третью команду, хотя хотелось бы, чтобы считывание нескольких значений за раз (4-я команда) тоже работала.

    С уважением, Алексей.

    #74716

    Елена Зимина
    Хранитель

    Можете ещё с помощью программы SENSORWORK посмотреть версию внутреннего ПО https://zetlab.com/podderzhka/tsifrovyie-datchiki-semeystva-zetsensor/servisnaya-rabota-s-zetsensor/obnovlenie-vnutrennego-po-zetsensor/

    #74717

    Аноним

    Для ZET7020 — 1.412
    Для ZET7012i — 2.408

    #74718

    Елена Зимина
    Хранитель

    Добрый день, Алексей!
    Вам нужно обновить внутреннее ПО датчиков.
    Как это сделать описано по ссылке https://zetlab.com/podderzhka/tsifrovyie-datchiki-semeystva-zetsensor/servisnaya-rabota-s-zetsensor/obnovlenie-vnutrennego-po-zetsensor/

    #74719

    Аноним

    А после этого датчики начнут отвечать по четвёртой команде сразу после запуска?

    #74720

    Елена Зимина
    Хранитель

    Данные должны идти сразу

    1. Через SensorWork запустили диагностику обмена данными, оставили только 4-ю команду и перепадали питание только датчика (не трогая 7070).
    Данные пошли сразу

    2.Попробовали еще со сторонней программой, команда 4, тоже заработало (скриншот).

    #74727

    Аноним

    Окей, спасибо, будем пытаться.

Просмотр 8 ответов - с 1 по 8 (всего 8)

Для ответа в этой теме необходимо авторизоваться.