Показано с 1 по 10 из 123

Тема: ModBus

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

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

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    Протокол Modbus RTU в приложении сам реализовал ?
    ModBus ASCII. Конечно сам, героическими усилиями, так сказать.

  2. #2

    По умолчанию

    Цитата Сообщение от Василий_S Посмотреть сообщение
    ModBus ASCII. Конечно сам, героическими усилиями, так сказать.
    А каким образом у тебя неверные данные в базу попадают, почему они не отбраковываются ? Что КС не помогает ?
    Последний раз редактировалось Вольд; 11.02.2014 в 17:10.

  3. #3

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    А каким образом у тебя неверные данные в базу попадают, почему они не отбраковываются ? Что КС не помогает ?
    Это уже проблема распределения полученных данных. Было бы что распределять. А базовая проблема в том, что данные в буфер после запроса иногда приходят некорректно. Я ставил "ловушки" по длине ответа и туда попадалось то, что длина ответа от устройств "иногда" меньше ожидаемой. Сейчас поставлен тройной фильтр - по длине данных, КС и совпадению адреса в ответе и запросе к устройству. В общем, всё указывает на некорректность ответов ПЛК. В дальнейшей обработке данных не сомневаюсь. В том числе и попадании некорректных данных в базу ибо это результат их обработки.
    По "тройному" фильтру прога определяет: ещё раз запрашивать "этот" ПЛК или переходить к следующему устройству. Поставлена планка на 20 попыток. Если все они неудачны - то результат обработки (в организованной переменной)- 0. И эти нули видны в базе в объявленном выше количестве - за 4800 записей за сутки 10-20-30 пенок, равных нулю. А так - частенько просматривается 2 или 3 попытки, есть и другие значения, меньшие 20-ти. И это бы устроило (меньше 20-ти попыток), ибо корректный результат, после последней попытки запроса, есть.
    Последний раз редактировалось Василий_S; 11.02.2014 в 21:11.

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,649

    По умолчанию

    Цитата Сообщение от Василий_S Посмотреть сообщение
    А проблема в том, что данные в буфер после запроса иногда приходят некорректно. Я ставил "ловушки" по длине ответа и туда попадалось то, что длина ответа от устройств "иногда" меньше ожидаемой.
    Есть такой сайт http://ru.wikipedia.org/wiki/Modbus, там в самом низу раздел Стандартные коды ошибок и под ним примеры, в котором явно наблюдается, что ответ может быть меньше ожидаемого, это один из вариантов

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Есть такой сайт http://ru.wikipedia.org/wiki/Modbus, там в самом низу раздел Стандартные коды ошибок и под ним примеры, в котором явно наблюдается, что ответ может быть меньше ожидаемого, это один из вариантов
    Спасибо, видимо мне стоит вернуться к анализу именно содержимого буфера, а не тольк,о как в прошлом делал, ограничиваться контролем длины ответа устройств.
    Последний раз редактировалось Василий_S; 11.02.2014 в 18:43.

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,649

    По умолчанию

    Цитата Сообщение от Василий_S Посмотреть сообщение
    Цитата Сообщение от Вольд Посмотреть сообщение
    Протокол Modbus RTU в приложении сам реализовал ?
    ModBus ASCII. Конечно сам, героическими усилиями, так сказать.
    Цитата Сообщение от Василий_S Посмотреть сообщение
    Цитата Сообщение от Вольд Посмотреть сообщение
    А каким образом у тебя неверные данные в базу попадают, почему они не отбраковываются ? Что КС не помогает ?
    Это уже проблема распределения полученных данных. Было бы что распределять. А базовая проблема в том, что данные в буфер после запроса иногда приходят некорректно. Я ставил "ловушки" по длине ответа и туда попадалось то, что длина ответа от устройств "иногда" меньше ожидаемой. Сейчас поставлен тройной фильтр - по длине данных, КС и совпадению адреса в ответе и запросе к устройству. В общем, всё указывает на некорректность ответов ПЛК. В дальнейшей обработке данных не сомневаюсь. В том числе и попадании некорректных данных в базу ибо это результат их обработки.
    Цитата Сообщение от Василий_S Посмотреть сообщение
    В общем, обнаружилась интересная вещь!Длина ответа ПЛК на запрос мастером по модасу аскии совпадает с ожидаемой, но в месте, где находится КС - стоят нули!
    to Вольд, XopHeT и Ryzhij убедите меня, что дело в железе, а не в самописных прогах, даже несмотря на
    Цитата Сообщение от Василий_S Посмотреть сообщение
    Интересно ещё бы понять как связан всплеск нахождения нулей в КС, или что там ещё, с наступлением дневного рабочего времени.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Похожие темы

  1. Modbus (Master) не отображается в память Modbus (Slave)
    от ghoch в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 07.05.2018, 09:40
  2. Modbus Universal MasterOPC сервер или Lectus MODBUS OPC?
    от Olegis в разделе Master SCADA 3
    Ответов: 11
    Последнее сообщение: 05.04.2013, 08:35
  3. Ответов: 4
    Последнее сообщение: 18.09.2012, 21:16
  4. Ответов: 5
    Последнее сообщение: 14.10.2010, 13:42

Ваши права

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