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

Вопрос по ST

 Ответить Ответить
Автор
Сообщение
_alexey Смотреть выпадающим
Новичок
Новичок


Присоединился: 15 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 3
Свойства публикации Свойства публикации   Ответить, цитируя автора - _alexey Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Вопрос по ST
    Опубликовано: 21 Май 2006 20:32

Здравствуйте! Первый раз пробую программировать SoftPLC.

Подскажите как на языке ST (Structured Text) создать переменную типа Time, которая бы начинала работу при условии изменения другой переменной.

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


Присоединился: 24 Декабрь 2004
Online Status: Offline
Публикации: 321
Свойства публикации Свойства публикации   Ответить, цитируя автора - gggg Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Май 2006 06:44

ну объявляйте ее в разделе объявлений как Тайм, потом  в программе инкрементируйте её по Вашему условию,

кстати в Кодесис есть функциональные блоки таймеры, по условию можно их вызывать и они будут считать вам время 

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


Присоединился: 20 Апрель 2006
Категория: Ukraine
Online Status: Offline
Публикации: 25
Свойства публикации Свойства публикации   Ответить, цитируя автора - ivanset Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Май 2006 11:06

var

var1 : BOOL;

Timer1 : TON;

----------------------------------------

IF var1 THEN

Timer1(IN := TRUE, PT := T#20s);

END_IF

----------------------------------------

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


Присоединился: 24 Декабрь 2004
Online Status: Offline
Публикации: 321
Свойства публикации Свойства публикации   Ответить, цитируя автора - gggg Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Май 2006 11:40
ну вот и программа к последней строке от gggg
Наверх
Kanzi Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Сентябрь 2006
Online Status: Offline
Публикации: 125
Свойства публикации Свойства публикации   Ответить, цитируя автора - Kanzi Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Сентябрь 2006 13:55
Первоначально опубликовано ivanset

var

var1 : BOOL;

Timer1 : TON;

----------------------------------------

IF var1 THEN

Timer1(IN := TRUE, PT := T#20s);

END_IF

----------------------------------------

А можно написать?:

Timer1(IN := var1, PT := T#20s);

Самому лень проверять

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


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2006 12:46

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

А можно написать?:

Timer1(IN := var1, PT := T#20s);

Можно, даже удобнее поскольку:

таймер запускается не по IN = TRUE, а именно по переднему фронту. Т.е. для его перезапуска нужно обяз-но вызвать таймер с IN := FALSE , затем уже с TRUE.

Доп-но по таймерам МЭК см. статью Программируем временные сложности тут

 

Igor Petrov
Наверх
 Ответить Ответить

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

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