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

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

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

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

    По умолчанию

    Мои 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.

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

    По умолчанию

    Цитата Сообщение от 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)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3

    По умолчанию

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

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

  4. #4

    По умолчанию

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

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

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

    По умолчанию

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

  6. #6

    По умолчанию

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

  7. #7

    По умолчанию

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

    uxMPWLy.png

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

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    называю это:

    uxMPWLy.png
    Это - многозадачность ?
    Это НИЧЕМ не отличается от пары вызовов в PLC_PRG

  9. #9

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    называю это:

    uxMPWLy.png


    не переиначивайте! я привел пример одной задачи, а не многозадачности. многозадачность как разделение мэк программ на вызовы с разным временем цикла сейчас вытащу и заскриню. Надеюсь, мы друг друга понимаем и говорим о разделении мэк-(под)программ на задачи с разным временем цикла средствами среды разработки и исполнения Codesys, а не о особенностях операционных систем?

    Последний раз редактировалось spectrum48k; 21.09.2015 в 11:17. Причина: появился скрин

Похожие темы

  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

Ваши права

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