Страница 9 из 16 ПерваяПервая ... 7891011 ... ПоследняяПоследняя
Показано с 81 по 90 из 157

Тема: Конфигуратор vs modbus.lib

  1. #81
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    Сергей, не спешите приписывать мне патологическое расстройство сознания - вы не психиатр) Мой "бред" как раз опровергает это:
    тогда из чего складывается 80мс в Вашей задумке?
    И почему опрос обязательно должен идти в параллельной задаче?

  2. #82

    По умолчанию

    Мои 80мс предполагают следующую ситуацию:
    1) Буффер отправлен ведомому;
    2) Выполняется программа основного алгоритма (~10мс, "с потолка"); (Это еще почти идеальный вариант без PID-регуляторов)
    3) MinCycleLenth 1мс;
    4) Ответ ведомого: принят полностью (идеальная ситуация);
    5) Таймер 3мс считает, разбор буффера еще не начинался;
    6) Выполняется программа основного алгоритма (~10мс);
    7) MinCycleLenth 1мс;
    8) Таймер 3мс Q=TRUE , обработка буффера , DONE;
    9) переход к шагу 1;

    (Добавочное) Время выполнения для 8 регистров/ 8 ведомых = 8x3 мс + 8x10 мс = 80 --- 104 мс в данном примере.

    Такой порядок действий соответствует программе, в которой MODBUS.PRG и CONTROL.PRG выполняются в одной задаче.

    Я считаю, что обмен нужно выносить в отдельную задачу для оптимизации обмена. И само собой без таймера 3мс
    У меня есть работающий объект, в котором вертится 3 отдельных задачи (Modicon M238, Somachine V3.1=Codesys V3.4): 1)Основной алгоритм (циклическая 100мс) 2) Modbus (циклическая 10мс, местная библиотека, похожая на Mosbus.lib) 3) Низкоприоритетные операции (циклическая 800мс).
    Последний раз редактировалось spectrum48k; 19.09.2015 в 13:37.

  3. #83
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    Мои 80мс предполагают следующую ситуацию:
    1) Буффер отправлен ведомому;
    2) Выполняется программа основного алгоритма (~10мс, "с потолка"); (Это еще почти идеальный вариант без PID-регуляторов)
    3) MinCycleLenth 1мс;
    4) Ответ ведомого: принят полностью (идеальная ситуация);
    5) Таймер 3мс считает, разбор буффера еще не начинался;
    6) Выполняется программа основного алгоритма (~10мс);
    7) MinCycleLenth 1мс;
    8) Таймер 3мс Q=TRUE , обработка буффера , DONE;
    9) переход к шагу 1;

    (Добавочное) Время выполнения для 8 регистров/ 8 ведомых = 8x3 мс + 8x10 мс = 80 --- 104 мс в данном примере.

    Такой порядок действий соответствует программе, в которой MODBUS.PRG и CONTROL.PRG выполняются в одной задаче.

    Я считаю, что обмен нужно выносить в отдельную задачу для оптимизации обмена. И само собой без таймера 3мс
    У меня есть работающий объект, в котором вертится 3 отдельных задачи (Modicon M238, Somachine V3.1=Codesys V3.4): 1)Основной алгоритм (циклическая 100мс) 2) Modbus (циклическая 10мс, местная библиотека, похожая на Mosbus.lib) 3) Низкоприоритетные операции (циклическая 800мс).
    Вы путаете как работает программа в ЯВУ и плк, ни кто не ждет отсчета работы таймера, в следующем цикле проверяется состояние текущего времени и уставки таймера и если оно превышает подается положительный сигнал на выход таймера
    По поводу 8 регистров снял видео, какие там 80мс?
    Вложения Вложения
    • Тип файла: rar output.rar (316.4 Кб, Просмотров: 22)

  4. #84
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,148

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    Мои 80мс предполагают следующую ситуацию:
    1) Буффер отправлен ведомому;
    ..
    9) переход к шагу 1;
    ..
    Такой порядок действий соответствует программе, в которой MODBUS.PRG и CONTROL.PRG выполняются в одной задаче.
    .
    При всем уважении - такой порядок действий у приведенного Вами алгоритма.
    А что Вы называет одной задачей ? НЕиспользование местного конфигуратора задач ?

  5. #85

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вы путаете как работает программа в ЯВУ и плк, ни кто не ждет отсчета работы таймера, в следующем цикле проверяется состояние текущего времени и уставки таймера и если оно превышает подается положительный сигнал на выход таймера
    По поводу 8 регистров снял видео, какие там 80мс?
    Само собой не ждет! Я не говорил, что ждет! "Таймер 3мс считает, разбор буффера еще не начинался" ---- проверка выхода "Q" таймера, а не остановка выполнения программы! В этом шаге выход "Q" таймера не установлен, и выполняется выход из ФБ чтения регистров, после этого программа выполняется далее.
    Последний раз редактировалось spectrum48k; 19.09.2015 в 21:52.

  6. #86

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    При всем уважении - такой порядок действий у приведенного Вами алгоритма.
    А что Вы называет одной задачей ? НЕиспользование местного конфигуратора задач ?
    называю это:

    uxMPWLy.png

  7. #87

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    По поводу 8 регистров снял видео, какие там 80мс?
    1pBwDPZ.png

    Это что, подтасовка под результат? Какая quantity=8 ?? А Вы вот возьмите и считайте 8 не смежных регистров. Или 8 ведомых устройств. 8 запросов и 8 ответов. Почему я по-Вашему умножил время выполнения алгоритма (10мс) на 8 ? Если бы не использовался таймер 3мс, то шагов 6 и 7 вообще бы не было. (Еще раз обращаю внимание, что данный пример учитывает вызов обмена и основной программы в одном Task или в одной PRG). При использовании нескольких задач, это будет неактульно и временные характеристики будут иными.
    Последний раз редактировалось spectrum48k; 19.09.2015 в 22:09. Причина: добавил картинко)

  8. #88

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вы путаете как работает программа в ЯВУ и плк, ни кто не ждет отсчета работы таймера,
    я тут в соседней теме написал пример собственного таймер, а Вы меня
    вот так после этого унижаете)))

    Без понимания работы мэковских таймеров, как бы я написал свой??))

  9. #89
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    1pBwDPZ.png

    Это что, подтасовка под результат? Какая quantity=8 ?? А Вы вот возьмите и считайте 8 не смежных регистров. Или 8 ведомых устройств. 8 запросов и 8 ответов. Почему я по-Вашему умножил время выполнения алгоритма (10мс) на 8 ? Если бы не использовался таймер 3мс, то шагов 6 и 7 вообще бы не было. (Еще раз обращаю внимание, что данный пример учитывает вызов обмена и основной программы в одном Task или в одной PRG). При использовании нескольких задач, это будет неактульно и временные характеристики будут иными.
    как то я сильно сомневаюсь, что несколько параллельны задач, в один и тот же порт, будут слать запросы и им за это ничего не будет, Вы точно говорите про модбас, мастер должен быть один и он должен соблюдать стандарты, кстати если перед и после запроса должны быть паузы тишины, то принятое время по умолчанию 1.75 умножив на два получим больше трех, так что автор бибки еще взял время по меньше

  10. #90

    По умолчанию

    см. иногозадачность в примере применения в #82

Страница 9 из 16 ПерваяПервая ... 7891011 ... ПоследняяПоследняя

Похожие темы

  1. Библиотеки MODBUS.LIB и OWENNET.LIB
    от desperadoes в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 30.01.2014, 19:15
  2. Modbus.lib и МДВВ
    от ПРОЕКТ-П в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 17.05.2013, 14:04
  3. Ответов: 4
    Последнее сообщение: 18.09.2012, 21:16
  4. ПЛК100 и Modbus.lib
    от Slev в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 19.03.2012, 07:22
  5. RTE + Modbus.lib
    от K.I.V. в разделе ПЛК3xx (архив)
    Ответов: 10
    Последнее сообщение: 09.07.2008, 09:30

Ваши права

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