Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Таймеры CoDeSys

 Ответить Ответить Страница  <1 891011>
Автор
Сообщение
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Таймеры CoDeSys
    Опубликовано: 28 Ноябрь 2007 08:06

Не это точно не все, если будет больше одной задачи в Task крутиться прийдеться семафорить доступ к общим переменным ибо это уже будет многозадачное приложение и наворотить можно в случае “ивсе” такого что потом не разберешь ничего.

Наверх
waldius Смотреть выпадающим
Новичок
Новичок


Присоединился: 10 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 33
Свойства публикации Свойства публикации   Ответить, цитируя автора - waldius Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 10:00

Первоначально опубликовано Mixer

Пишешь свой POU в котором делаешь все, что нужно. Далее определяешь его в Task configuration и ставишь время T#8ms. Все.

Пробовал уже так... Сделал два таска, один свободный по времени, а другой через каждые 8мс вызывается, но если приоритеты ставить одинаковые, то вызов происходит не каждые 8мс, а гораздо больше... А если разные приоритеты, то тот таск у которого период 8мс сжирает все время, второй таск не вызывается...

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 13:14
Это каким образом вы зарегистрировали столь недостойное поведение в многозадачной программе позвольте полюбопытствовать?
Наверх
waldius Смотреть выпадающим
Новичок
Новичок


Присоединился: 10 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 33
Свойства публикации Свойства публикации   Ответить, цитируя автора - waldius Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 13:18

Первоначально опубликовано Dismay

Это каким образом вы зарегистрировали столь недостойное поведение в многозадачной программе позвольте полюбопытствовать?

Создал два таска, у одного период 8мс и приоритет 0, у другого период не указан и приоритет 1...

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 13:34
Ну это я понял, а почему Вы решили что задача вызываеться чаще чем 8 мс или не вызываеться вообще вот собственно что меня заинтересовало?
Наверх
waldius Смотреть выпадающим
Новичок
Новичок


Присоединился: 10 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 33
Свойства публикации Свойства публикации   Ответить, цитируя автора - waldius Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 13:39
Первоначально опубликовано waldius

Первоначально опубликовано Dismay

Это каким образом вы зарегистрировали столь недостойное поведение в многозадачной программе позвольте полюбопытствовать?

Создал два таска, у одного период 8мс и приоритет 0, у другого период не указан и приоритет 1...

Поставил точки останова в обоих подпрограммах и останов происходит только в таске с приоритетом 0, может конечно если подождать долго то наконец и во второй зайдет

А если приоритеты одинаковые поставить, то видно что срабатывание происходит реже чем 8мс, я там счетчик инкрементирую, и в визуализации видно что частота около 1Гц...

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 13:55

Ну незнаю где там Вы поставили точки останова, но с многозадачностью в CoDeSys все достаточно ровно однако. Смотрите Task в онлайне и увидите что все POU вызываються...

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 13:56
другое дело что до точки останова по ветвлениям может не доходить ваш алгоритм просто вот и нет останова.
Наверх
Nekit Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 04 Апрель 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 80
Свойства публикации Свойства публикации   Ответить, цитируя автора - Nekit Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 17:14
Точки останова работают только в тех POU которые запускаютя задачей с меткой Debug. Посмотреть/изменить метку можно в диспетчере задач в режиме он-лайн.
Наверх
_IP_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Ноябрь 2007 18:09
Первоначально опубликовано waldius

...Требуется чтобы определенное событие проиходило каждые 8мс, как это сделать с помощью таймеров кодесиса?

Пара вариантов без использования многозадачности:
1) На FBD можно генератор импульсов на 8мс поставить, после него детектор фронта и далее что надо.

2) На SFC делаю простейший POU . Он состоит из начального шага и еще одного, в конце переход на начальный шаг. Во всех условиях переходов ставлю TRUE. Далее в атрибутах шага ставлю минимальное время 8мс. В него вставляю начальное действие на любом языке и в нем делаю что надо.

Наверх
 Ответить Ответить Страница  <1 891011>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz