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

Тема: Свободное чтение RS-485

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    926

    По умолчанию

    Цитата Сообщение от Raikkonen Посмотреть сообщение
    Это измерение веса. Вес измерять чаще чем раз в 20 сек смысла нет.
    Я хочу просто быть уверенным в:
    1. Не наступит переполнения буфера
    2. Я получаю последние данные, а не те что дольше всех в буфере

    И так как я не понимаю как устроен буфер - не знаю.
    1. Проверяете, что вы считали с порта байт, столько же, либо меньше, чем длинна буфера (в моем примере буфер = 100байт).
    2. Буфер порта обычно 1500-1600 байт. Можете раз в 200 мс выполнить приведенный мной алгоритм, но раз вам не важны все данные, а только самые свежие, надо будет добавить пункт 0 - Сброс буфера COM порта (Flush). 200ms при потребности данных в 1s выбран для того, что бы иметь запас по времени (пропуск пакета, пакеты передаются с ошибкой).
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

  2. #2

    По умолчанию

    Цитата Сообщение от keysansa Посмотреть сообщение
    но раз вам не важны все данные, а только самые свежие, надо будет добавить пункт 0 - Сброс буфера COM порта (Flush)
    А что за флуш? в сисКомЛиб нема такого

    Ваш пример точно такой же как мой в глобальном смысле.

    Я так и не пойму:
    1. ждет меня переполнение или нет?
    2. я данные командой Read беру самые новые из буфера или самые старые?
    Последний раз редактировалось Raikkonen; 28.05.2022 в 21:57.

  3. #3
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    926

    По умолчанию

    Цитата Сообщение от Raikkonen Посмотреть сообщение
    А что за флуш? в сисКомЛиб нема такого
    Clear bufer. Возможно в данной библиотеке он по другому называется.
    Как "лайфхак" - закрыть и открыть порт заново. При этом обчно буфер очищается.
    Или в вашем случае, открывать порт каждый раз перед опросом. Да, возможно в начале будет "хвост" какой-то посылки, но следующую вы точно отловите.

    Цитата Сообщение от Raikkonen Посмотреть сообщение
    Ваш пример точно такой же как мой в глобальном смысле.
    Не совсем. Вы стараетесь считывать каждое сообщение от весов, я же предлагаю, "выдёргивать" пакет из потока, именно тогда, когда вам необходимо.

    Цитата Сообщение от Raikkonen Посмотреть сообщение
    Я так и не пойму:
    1. ждет меня переполнение или нет?
    2. я данные командой Read беру самые новые из буфера или самые старые?
    1. При подходе, который я вам предложил, не будет.
    2. Даже если очистка буфера не предусмотрена в команде Com.Open (в чем я сомневаюсь, общепринята практика очистки буфера при открытии порта), вы получите данные не старше, чем глубина буфера.
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

  4. #4
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    926

    По умолчанию

    Я прошу прощения, забыл спросить, у вас дозирование или взвешивание?
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

Похожие темы

  1. Свободное ПО для опроса устройств (Modbus)
    от o_nik в разделе Трёп (Курилка)
    Ответов: 28
    Последнее сообщение: 28.08.2025, 02:52
  2. Ответов: 6
    Последнее сообщение: 05.03.2018, 10:46
  3. ПЛК110 М02 и свободное место на USB Flash?
    от Антон_Б в разделе ПЛК1хх [М02]
    Ответов: 0
    Последнее сообщение: 01.07.2017, 12:21
  4. чтение из плк
    от Wanted в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 03.12.2010, 13:18
  5. Свободное место на Flash диске
    от Логвиненко Андрей в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.11.2009, 15:04

Ваши права

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