На форуме обязательно:
  1. Заполнить свой профиль на Русском языке. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.
Рекламу на своём форуме мы не размещаем ни на каких условиях.

Начать работу программы по времени суток


Автор темы
Kreadlling
здесь недавно
здесь недавно
Сообщения: 26
Зарегистрирован: 25 май 2016, 23:44
Имя: Евсюков Юрий Николаевич
Благодарил (а): 8 раз

Начать работу программы по времени суток

Сообщение Kreadlling » 27 июн 2016, 18:30

Здравствуйте! Не подскажете как начать работу программы в 8:00
с 1 числа определенного месяца? Программу пишу на FBD.


rg-link
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 31 авг 2015, 09:43
Имя: Владимир К.

Начать работу программы по времени суток

Сообщение rg-link » 30 июн 2016, 14:11

Нужно задействовать прерывание по времени (OB10 - OB17). Либо настроив его в HwConfig (потребуется перезакгузка контроллера при заливке), либо использовать SFC 28 "SET_TINT" и SFC 30 "ACT_TINT". Выполнение может быть сконфигурировано так:
  • Однократно
  • Ежеминутно
  • Ежечасно
  • Ежедневно
  • Еженедельно
  • Ежемесячно
  • В конце каждого месяца

Если необходимо начать выполнение в определённую дату и повторять вызов, например, в циклических прерываниях (OB30-35), то можно в выбранном OB30-35 (для примера, можно и в OB1, если угодно) сделать условие по состоянию выбранного бита памяти (например, из меркерной памяти - m100.0):

Код: Выделить всё

-- псевдокод
IF m100.0 = 0
GOTO next
-- программа, выполняемая по времени
-- ....
next: nop 0
-- обычная программа


А в сконфигурированном OB10-17 установить m100.0 в 1:
S M100.0 -- STL

О том, как это сделать в FBD - см. мануал по командам раздела "Jumps": блоки JMP, JMPN, LABEL


rg-link
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 31 авг 2015, 09:43
Имя: Владимир К.

Начать работу программы по времени суток

Сообщение rg-link » 30 июн 2016, 14:15

Также рекомендую
http://www.step7-pro.ru/sysfun/sfc.html