Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 61

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

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

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

    По умолчанию

    Есть вероятность чтения нескольких пакетов за раз и они могут быть не полными. А так ты по указателю записи пишешь в колцевой буфер функцией Read.

  2. #2

    По умолчанию

    bytes_read := SysComRead(com_settings.Port,ADR(buffer[1]),50,0);
    FOR i:=1 TO bytes_read DO
    bufferR[pWr] := buffer[i]; (*нужно еще сделать проверку на затирание данных(Полный буфер)*)
    pWr := pWr + 1;
    if pWr > XXX THEN p Wr := 0;
    end_IF;
    END_FOR

    IF pWr <> pRd THEN (*В буфере есть данные *))
    ...


    Но и нужно правильно подобрать время цикла и размер буфера чтения и кольцевого!
    Последний раз редактировалось Samel; 20.06.2022 в 13:38.

  3. #3
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,343

    По умолчанию

    Samel а второй и третий порванный
    Суть простая, что предлагает keysansa чтение 2-ного количества байт, внутри которого на 100% будет полный ответ. Начали сессию, нашли цельный буфер, распихали данные, новая сессия....

  4. #4

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Samel а второй и третий порванный
    Суть простая, что предлагает keysansa чтение 2-ного количества байт, внутри которого на 100% будет полный ответ. Начали сессию, нашли цельный буфер, распихали данные, новая сессия....
    Я предлагаю универсальное решение. А то потом выясняется, что размер пакета не фиксированный, мусор на шине и тд.

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

    По умолчанию

    Цитата Сообщение от Samel Посмотреть сообщение
    Я предлагаю универсальное решение. А то потом выясняется, что размер пакета не фиксированный, мусор на шине и тд.
    Кольцевой буфер тоже должен помещать пакет полностью. Иначе он не будет работать.

    ЗЫ. В случае с переменной длинной пакета - его все равно придется считать. Проще 10*х заложить, сегодня память дешевая.
    ЗЫЫ. Мусор на шине не влияет на длинну буфера, нет пакета в буфере - очищаем, пишем ошибку и работаем заново.
    Последний раз редактировалось keysansa; 20.06.2022 в 14:09.
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

  6. #6

    По умолчанию

    Цитата Сообщение от keysansa Посмотреть сообщение
    Кольцевой буфер тоже должен помещать пакет полностью. Иначе он не будет работать.
    И не один!

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

    По умолчанию

    Цитата Сообщение от Samel Посмотреть сообщение
    И не один!
    Нет, с кольцевым - достаточно длинны на 1 пакет. Работать с ним сложнее просто. Не сильно, но с точки зрения циклической программы - сложнее.
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

  8. #8

    По умолчанию

    В задаче не хватает нескольких переменных:
    1. Частота пакетов.
    2. Требуемая актуальность данных.

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

    По умолчанию

    Цитата Сообщение от Samel Посмотреть сообщение
    В задаче не хватает нескольких переменных:
    1. Частота пакетов.
    2. Требуемая актуальность данных.
    1. 115200/~20.
    2. Я задал вопрос ТС - у него взвешивание или дозирование. Молчит.
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

  10. #10

    По умолчанию

    Цитата Сообщение от Samel Посмотреть сообщение
    Я предлагаю универсальное решение. А то потом выясняется, что размер пакета не фиксированный, мусор на шине и тд.
    Если можете - ответьте на 4 вопроса из 1 сообщения темы, пожалуйста.....
    я могу любые буферы обработки сам написать, я скорее не могу нормальной инфы о СисКомЛиб найти.

Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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