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

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

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию

    Хочу добить тему организации опроса в одной задаче или в разных.
    Опишу все еще раз, но по-другому.
    Исходные данные следующие:
    1. Количество модулей 10 шт. (все те же);
    2. Время достаточное для опроса модуля по сети Modbus - 10 мс. Еще раз поясню, что за время я имею ввиду. Если я на N-ном цикле вызову, например, ФБ MB_RD_HOLD_REGS, то на цикле N+1, отстоящим от него на 10 мс (или более) выход Complete установится в true. Мои расчеты (см. выше) показывают, что 10 мс должно хватать (то же говорит и Валенок:"Почти всегда 3-10мс.").
    3. Среднее время выполнения программы - 50 мс. Под этим временем понимается, то усредненное время, которое необходимо для выполнения всех операторов логики управления. Мне кажется, что для программы которая обрабатывает 10 модулей ввода/вывода, это вполне реальная величина.
    4. Модули равнозначны по важности, поэтому - 5-й пункт.
    5. Опрос модулей организован последовательно от 1 к 10-му. За опрос отвечают некие ФБ модулей. Так как ФБ модули используют общий ресурс - порт, то необходимо предусмотреть некий механизм, который определяет какой ФБ модуль сейчас занимает порт. Назовем условно этот механизм передачей маркера опроса.

    Первый вариант. Все в одной задаче.
    PROGRAM PLC_PRG
    ФБМодуля1(); (* у кого маркер опроса тот исполняется *)
    ...
    ФБМодуля10(); (* а так if not marker then exit; *)
    ФБЛогики управления();

    Второй вариант. Две разные задачи с разными циклами исполнения.
    В это варианте изменен цикл вызова задачи управления. Он сделан равным 60 мс, т.е. с запасом от среднего времени выполнения - 50 мс.
    PROGRAM Module_PRG (* циклическая интервал 10мс *)
    ФБМодуля1(); (* у кого маркер опроса тот исполняется *)
    ...
    ФБМодуля10(); (* а так if not marker then exit; *)

    PROGRAM PLC_PRG (* циклическая интервал 60мс *)
    ФБЛогики управления();

    Теперь рассмотрим какое будет время реакции на событие в первом и во втором варианте.
    Событием будем считать выход некоторого аналогового параметра за технологическую норму. Пусть данный технологический параметр привязан к первому модулю. Событие происходит удачно, как раз перед отправкой запроса в модуль.
    За время реакции будем считать время от события до выдачи сигнала с 10-го модуля вывода на исполнительный механизм (ИМ).
    Из прикрепленного рисунка хорошо видно, что время реакции в первом случае 450 мс, во втором 100 мс.
    Что на мой взгляд существенно.

    Другое дело, что если система небольшая, количество модулей 1-2, а время выполнения программы 5-10 мс, то все это безусловно теряет смысл.
    Изображения Изображения
    Последний раз редактировалось Спорягин Кирилл; 20.08.2015 в 18:57.

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

    По умолчанию

    Цитата Сообщение от SKV Посмотреть сообщение
    Хочу добить тему организации опроса в одной задаче или в разных.
    Опишу все еще раз, но по-другому.
    Исходные данные следующие:
    1. Количество модулей 10 шт. (все те же);
    2. Время достаточное для опроса модуля по сети Modbus - 10 мс. Еще раз поясню, что за время я имею ввиду. Если я на N-ном цикле вызову, например, ФБ MB_RD_HOLD_REGS, то на цикле N+1, отстоящим от него на 10 мс (или более) выход Complete установится в true. Мои расчеты (см. выше) показывают, что 10 мс должно хватать (то же говорит и Валенок:"Почти всегда 3-10мс.").
    3. Среднее время выполнения программы - 50 мс. Под этим временем понимается, то усредненное время, которое необходимо для выполнения всех операторов логики управления. Мне кажется, что для программы которая обрабатывает 10 модулей ввода/вывода, это вполне реальная величина.
    4. Модули равнозначны по важности, поэтому - 5-й пункт.
    5. Опрос модулей организован последовательно от 1 к 10-му. За опрос отвечают некие ФБ модулей. Так как ФБ модули используют общий ресурс - порт, то необходимо предусмотреть некий механизм, который определяет какой ФБ модуль сейчас занимает порт. Назовем условно этот механизм передачей маркера опроса.

    Первый вариант. Все в одной задаче.
    PROGRAM PLC_PRG
    ФБМодуля1(); (* у кого маркер опроса тот исполняется *)
    ...
    ФБМодуля10(); (* а так if not marker then exit; *)
    ФБЛогики управления();

    Второй вариант. Две разные задачи с разными циклами исполнения.
    В это варианте изменен цикл вызова задачи управления. Он сделан равным 60 мс, т.е. с запасом от среднего времени выполнения - 50 мс.
    PROGRAM Module_PRG (* циклическая интервал 10мс *)
    ФБМодуля1(); (* у кого маркер опроса тот исполняется *)
    ...
    ФБМодуля10(); (* а так if not marker then exit; *)

    PROGRAM PLC_PRG (* циклическая интервал 60мс *)
    ФБЛогики управления();

    Теперь рассмотрим какое будет время реакции на событие в первом и во втором варианте.
    Событием будем считать выход некоторого аналогового параметра за технологическую норму. Пусть данный технологический параметр привязан к первому модулю. Событие происходит удачно, как раз перед отправкой запроса в модуль.
    За время реакции будем считать время от события до выдачи сигнала с 10-го модуля вывода на исполнительный механизм (ИМ).
    Из прикрепленного рисунка хорошо видно, что время реакции в первом случае 450 мс, во втором 100 мс.
    Что на мой взгляд существенно.

    Другое дело, что если система небольшая, количество модулей 1-2, а время выполнения программы 5-10 мс, то все это безусловно теряет смысл.
    так это у Вас теория или Вы на графиках привели среднеизмеренное время? Если всё в реале остановитесь на втором варианте
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию

    Что корифеи скажут? Нет ли в моей теории явных ляпов?

  4. #4
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Цитата Сообщение от SKV Посмотреть сообщение
    Что корифеи скажут? Нет ли в моей теории явных ляпов?
    Прям такой-эдакий "недоляп" вы только планируете работать и , как я понял , только структуру продумываете , а как у вас с кодом дела обстоят ?
    1.Можно и без ПЛК начать тренироваться , только я вас заранее огорчу работать код будет не так как вы рассчитываете , а ... как есть , с некоторыми "нюансами".
    2. При всем уважении к товарищам библиотечникам скажу так десятки проектов работают ч-з конфигуратор с количеством модулей 4...12 . Самый первый проект ч-з конфигуратор ПЛК100 работает по модбасу с 12ю частотниками (485й) и 8 модулей на DCON (232-АС3м) . Плюс слэйв , плюс сетевые переменные (UDP) .
    3. Чисто для прикола сделал опрос 4 Z-SG (по 1му реалу) и МДВВ на базе дельты (1 DWORD - маска входов , 1 DWORD - маска выходов) ч-з сислибком (Овен Модбас либ мне не нравится ) и Что ???? Скорость ни капельки не увеличилась по сравнению с конфигуратором !!!

    4. Конфигуратор работает НОРМАЛЬНО ! Просто как начудят , как наконфигурируют (мы конфигурировали-конфигурировали да невыконфигурировали) , что просто ... короче афтар жжот .

    5. Теоретизировать по поводу кода опроса это как секс по книжкам изучать , лучше собственно и лично на практике ... пробовать .

    6. Длительность выполнения программы в 50мс !!! Это что ? Программа управления космическим шаттлом ? Тогда модулей маловато ! Откуда вы берете эти дикие миллисекунды ?

    7. Вообще "Если можешь что-то делать - бери и делай!" .

Похожие темы

  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

Ваши права

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