Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 61

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

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

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

    По умолчанию

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

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

    По умолчанию

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

  3. #3

    По умолчанию

    Цитата Сообщение от keysansa Посмотреть сообщение
    1. 115200/~20.
    2. Я задал вопрос ТС - у него взвешивание или дозирование. Молчит.
    Был в отпуске. У меня дозирование.

    Я не пойму самого главного - когда я использую Read - я из начала или из конца буфера читаю?

  4. #4

    По умолчанию

    Цитата Сообщение от Raikkonen Посмотреть сообщение
    Был в отпуске. У меня дозирование.

    Я не пойму самого главного - когда я использую Read - я из начала или из конца буфера читаю?
    Из начала. Как-то глупа из конца читать

  5. #5

    По умолчанию

    Цитата Сообщение от Samel Посмотреть сообщение
    Из начала. Как-то глупа из конца читать
    Ну в целом да, получается это очередь а не стек.
    А как тогда мне лучше производить чтение чтобы получать данные ближе к последним?
    В одном цикле можно делать много чтений?
    типа:
    Код:
    while SysComRead(com_settings.Port,ADR(buffer[1]),50,0) > 0 do
      (*не важно какая обработка*)
    end_while
    ??

  6. #6

    По умолчанию

    Цитата Сообщение от Raikkonen Посмотреть сообщение
    Ну в целом да, получается это очередь а не стек.
    А как тогда мне лучше производить чтение чтобы получать данные ближе к последним?
    В одном цикле можно делать много чтений?
    типа:
    Код:
    while SysComRead(com_settings.Port,ADR(buffer[1]),50,0) > 0 do
      (*не важно какая обработка*)
    end_while
    ??
    Ну это не корректно. Такое чтение превратит буфер в мусор.

  7. #7

    По умолчанию

    Цитата Сообщение от Samel Посмотреть сообщение
    Ну это не корректно. Такое чтение превратит буфер в мусор.
    А я планировал читать по двукратному объему информации, и как только считал меньше чем нужно - беру предыдущий кусок, который содержит в себе 2х инфы, где точно есть нужный мне пакет.

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

    По умолчанию

    Цитата Сообщение от Raikkonen Посмотреть сообщение
    Ну в целом да, получается это очередь а не стек.
    А как тогда мне лучше производить чтение чтобы получать данные ближе к последним?
    В одном цикле можно делать много чтений?
    типа:
    Код:
    while SysComRead(com_settings.Port,ADR(buffer[1]),50,0) > 0 do
      (*не важно какая обработка*)
    end_while
    ??
    У вас дозирование. Вам надо реагировать на изменение веса как можно чаще. Это при взвешивании, можно себе позволить небольшую паузу.
    Выделяйте для обмена отдельный поток, с минимальным временем цикла там только опрашивайте, и присваивайте глобальную переменную: "текущая масса". Если не успеваете, надо взять процессор помощнее или снизить частоту посылок. Чем чаще вы узнаете вес при дозировании, тем лучше.

    Цитата Сообщение от Raikkonen Посмотреть сообщение
    (*не важно какая обработка*)
    Важно. Тут максимум - string -> int.
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

  9. #9

    По умолчанию

    Кратко и по существу

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Чаще чем всё - не получится, но тута это не нужно - как-нить/что-нить выдернуть и так пойдет. Говорилось. Угрожали забанить ))
    А все и не надо. Необходимо, что бы время реакции системы было в 2-3 раза больше, чем поток дозирования в отношении к допустимой точности дозирования.
    Цитата Сообщение от Валенок Посмотреть сообщение
    Здесь их нет если только не про задачи, но манипуляции с кнопочками калькулятора подсказывают что и без всяких задач - без проблем. Даже всё, несмотря на.
    Задачи запускаются отдельным потоком.
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  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

Ваши права

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