Страница 4 из 13 ПерваяПервая ... 23456 ... ПоследняяПоследняя
Показано с 31 по 40 из 130

Тема: Универсальный диспетчер для Modbus.lib

  1. #31

    По умолчанию

    Основная причина ухода от конфигуратора -- он глюченный и не проверяет ответы по принадлежности именно к адресу опрошенного модуля. разработчики так и не скинули щедро скрин, опровергающий эту гипотезу, потдтвержденную практическими экспериментами с плк серии 150

  2. #32

    По умолчанию

    Отпишусь.
    После полного вникания в работу modbus.lib и данного диспетчера, удалось опрашивать все нужные мне модули, их 8 шт. 8а, 8ас, 8дф, 16р - 2 шт.
    Далее в течении 1 часа, были настроены циклы, таймауты, pollingStatistic.Middle был максимально приближен к PollingTime.

    В данный момент полностью удовлетворены работой диспетчера, пока полностью выполняет возложенные на него функции, надеюсь все так и останется.
    Спорягину Кирилл огромное спасибо за своевременную помощь, и вообще за сам Диспетчер)
    За 3 часа работы ни одной ошибки.

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

    По умолчанию

    Цитата Сообщение от Vitorgan Посмотреть сообщение
    Отпишусь.
    После полного вникания в работу modbus.lib и данного диспетчера, удалось опрашивать все нужные мне модули, их 8 шт. 8а, 8ас, 8дф, 16р - 2 шт.
    Далее в течении 1 часа, были настроены циклы, таймауты, pollingStatistic.Middle был максимально приближен к PollingTime.

    В данный момент полностью удовлетворены работой диспетчера, пока полностью выполняет возложенные на него функции, надеюсь все так и останется.
    Спорягину Кирилл огромное спасибо за своевременную помощь, и вообще за сам Диспетчер)
    За 3 часа работы ни одной ошибки.
    Рад помочь...

    Vitrogan, еще хотел обратить ваше внимание на вот этот пост. В части 2 особенно.
    Важно при использовании модулей вывода.
    Вы переделывали модуль МУ110-32Р на МУ110-16Р. Убедитесь, что вы заново формируете буфер в случае ошибки при первичном опросе и MaxAttempts>1. В противном случае изредка (когда проходит ошибка) на модуле вывода вы можете выставлять некий произвольный набор выходов, чего явно не ждете.
    В модуле МУ110-32Р повторное формирование буфера реализовано с помощью возврата на шаг 1 при ошибке (см. код ниже).

    Код:
    		
    IF tmpWriteError = 0 THEN
    	Mdl.WriteStep := CompleteWriteStep;
    ELSE
    	fcModuleAddAttempt(MdlBase := Mdl.Base);
    	IF Mdl.Base.CurrentAttempt > Mdl.Base.MaxAttempts THEN
    		Mdl.WriteStep := CompleteWriteStep;
    	ELSE
    		Mdl.WriteStep := 1; (* необходимо заново сформировать буфер *)
    	END_IF;
    END_IF;
    И два слова в защиту штатного конфигуратора.
    У меня есть проект, где работает штатный конфигуратор и опрашивает 12 модулей. Опрос проходит весьма шустро.
    В случае использования штатного конфигуратора при опросе модулей с большим объемом данных обмена (МВ110-8А, например) желательно использовать прием со string переменными (см. тут).
    Хотя, конечно, когда разберешься с modbus.lib, уже проще работать со своим кодом.

  4. #34

    По умолчанию

    Кирилл, проверили, все так же организовали, через возврат на 1 шаг.
    По-поводу 1 пункта в теме "Конфигуратор Vs modbus.lib":
    Эх, Попался бы тот пост нам на глаза пораньше). Как только пустились- ошибок нет, все работает, но у аналоговых чтение происходит 200-230мс, а у дискретных 60-70мс, зная на что они способны, начали разбираться, оказалось что цикл программы "опроса модулей" (у вас в примере он PLC.PRG) в задаче больше 15 мс, начали уменьшать до 5мс, аналоговые модули АС чтение 40-60 мс, дискретные 16-20мс. Вот вопрос, можно ли еще уменьшать цикл, если он в статистики 1,5 мс работает, если например FramingTime 5 мс. До минимума цикл задачи опустить, поставить 2 мс?

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

    По умолчанию

    Цитата Сообщение от Vitorgan Посмотреть сообщение
    Кирилл, проверили, все так же организовали, через возврат на 1 шаг.
    По-поводу 1 пункта в теме "Конфигуратор Vs modbus.lib":
    Эх, Попался бы тот пост нам на глаза пораньше). Как только пустились- ошибок нет, все работает, но у аналоговых чтение происходит 200-230мс, а у дискретных 60-70мс, зная на что они способны, начали разбираться, оказалось что цикл программы "опроса модулей" (у вас в примере он PLC.PRG) в задаче больше 15 мс, начали уменьшать до 5мс, аналоговые модули АС чтение 40-60 мс, дискретные 16-20мс. Вот вопрос, можно ли еще уменьшать цикл, если он в статистики 1,5 мс работает, если например FramingTime 5 мс. До минимума цикл задачи опустить, поставить 2 мс?
    FramingTime - это пауза, которую диспетчер держит после опроса очередного модуля, прежде чем дать разрешение на опрос следующему модулю. Часто данная пауза необходима, чтобы модули успевали разбирать сетевые посылки.
    Можно уменьшить цикл выполнения программы опроса, но, возможно, тогда придется увеличить FramingTime, чтобы "медленные" модули успевали обрабатывать сетевые посылки.
    В целом, 40-60 мс на аналоговые и 16-20 мс на дискретные модули нормальный результат.

  6. #36

    По умолчанию

    Понял Вас, лучший враг хорошего)

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

    По умолчанию

    Набрал статистику опроса модулей ОВЕН. Посмотреть можно тут.

  8. #38

    По умолчанию

    Извиняюсь за глупый вопрос, можно ли в двух словах разницу Вашей библиотеки и ModulsOwenLib?
    ... а, не сообразил сразу, что она для v2.
    Последний раз редактировалось westwind; 07.03.2017 в 22:44.

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

    По умолчанию

    Цитата Сообщение от westwind Посмотреть сообщение
    Извиняюсь за глупый вопрос, можно ли в двух словах разницу Вашей библиотеки и ModulsOwenLib?
    ... а, не сообразил сразу, что она для v2.
    Добрый день, westwind.
    Да, действительно, моя библиотека реализована для CDS v2, а библиотека ModulsOwenLib для CDS v3. И это их отличает.
    Но это не главное. Библиотека ModulsOwenLib (подобно библиотеке Modbus.lib для CDS v2) дает инструмент для опроса отдельных модулей, но не решает вопроса диспетчеризации опроса.
    В представленной библиотеке ключевое место занимает именно диспетчер.
    Последний раз редактировалось Спорягин Кирилл; 09.05.2017 в 23:08.

  10. #40

    По умолчанию

    Добрый день Кирилл.
    Пытаюсь собрать модуль МВ110-16D из 32D. Опрос модуля идет, но висит ошибка 2. Подскажите пожалуйста в чем проблема.
    Вложения Вложения
    • Тип файла: pro test.pro (133.1 Кб, Просмотров: 30)

Страница 4 из 13 ПерваяПервая ... 23456 ... ПоследняяПоследняя

Похожие темы

  1. Универсальный блок питания ПР114
    от sea в разделе Программируемые реле
    Ответов: 12
    Последнее сообщение: 13.10.2013, 22:56
  2. PCLogger - универсальный логгер для CDS v3
    от Mikhail Shvetsov в разделе ПЛК3хх
    Ответов: 0
    Последнее сообщение: 23.11.2012, 14:39
  3. Универсальный Modbus Сервер Инсат и 200 контроллеров ПЛК-100
    от lomtik в разделе Сетевые технологии
    Ответов: 17
    Последнее сообщение: 08.11.2012, 23:42
  4. Универсальный конфигурируемый регулятор
    от ОООСА в разделе Разработки
    Ответов: 32
    Последнее сообщение: 09.12.2009, 22:12
  5. Ответов: 7
    Последнее сообщение: 04.05.2009, 10:42

Ваши права

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