Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: Глюки таймеров?

  1. #11

    По умолчанию

    В общем, возникли чудовищные подозрения, что КоДеСис или ОС или что там еще живет - для каждого запуска таймера создает некие элементы в некоей динамической структуре, причем выделяет место под них поштучно, и хранится сие в виде списка.
    Подозрения совершенно напрасны. Единственно что может возникнуть, а возможно и возникает, у Вас длинный цикл - системный таймер между вызовами таймеров внутри цикла увеличивается.

  2. #12

    По умолчанию

    И используйте стандартные ФБ для поиска фронтов. Они работают стабильно.

  3. #13

    По умолчанию

    Прошу прощения, но очень интересно чем закончилось?

  4. #14

    По умолчанию

    Сейчас, собсно, работает версия без таймеров. Точнее, в работе конвейера остался задействован один таймер; остальные не юзаются.
    Готова версия с собственными таймерами, прошедшее после запуска время (в миллисекундах) в которых обновляется один раз в каждом цикле программы - и тут же принимается решение об установке выхода, но внедряться она будет при плановой остановке производства. Там я на всякий случай не стал делать ФБ, а просто массивчик...
    Пока что freewheeling, но, по Вашему совету, перейду на периодическое исполнение проги и, соответственно, опрос МДВВ by command. Спасибо.

    Ладно, если предположение, что огромные накладные расходы на обслуживание таймеров вызваны их динамической природой, неверно, - есть другая гипотеза: сам по себе тип данных time в CoDeSys крайне тормозной и для операций над ним вызываются процедуры вычисления дат и т.д. Либо - еще одна мысль - таймеры прицепляются к обработчику прерывания часов (ну, не знаю, как там RTC реализован) и он старательно обновляет их состояние с устрашающей частотой. Как Вы к ней относитесь?

    Просто выявление этой проблемы заняло очень много времени - она старательно маскировалась под сбои оборудования. Сейчас полет нормальный.

    Да, и еще. Инструкция как-то не вполне объясняет инфернальный смысл параметра minCycleTime. Если это время превышено, - что, текущая задача снимается и производится запуск нового цикла? Так ли необходимы эти параметры, если есть отдельный watchdog?

    И еще... Оффтопик, конечно, но, как я посмотрю, гуру обратили внимание... Опубликуйте, плиз, схему симисторного выхода приборов Овен. От греха подальше есть желание выкинуть из МДВВ релюшки, а то 60000 сработок в месяц - это все же чревато. В фирменном журнале что-то было нарисовано, но как-то слишком обобщенно.
    Последний раз редактировалось superMAX; 07.08.2009 в 21:45.

Страница 2 из 2 ПерваяПервая 12

Ваши права

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