Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 30 из 30

Тема: Системные события CodeSys3

  1. #21

  2. #22

    По умолчанию

    В конфигураторе задачь есть
    Screen Shot 2013-12-03 at 3.52.52 PM.png

  3. #23
    Пользователь
    Регистрация
    03.03.2008
    Адрес
    Новосибирск
    Сообщений
    238

    По умолчанию

    Цитата Сообщение от Mikhail Shvetsov Посмотреть сообщение
    В конфигураторе задачь есть
    Screen Shot 2013-12-03 at 3.52.52 PM.png
    К сожалению данный метод не подойдёт: в таргете это урезано

  4. #24

    По умолчанию

    Присоединяюсь к вопросу.
    Где же всё таки взять сигнал о старте контроллера?
    Задача при старте ПЛК304 считать время из часов реального времени и запустить с инициализацией модуль RTC.
    А так же как поймать стоп? если я не ошибаюсь, ПЛК серии 150 после пропадания питания ещё продолжают молотить программу какое то время.

  5. #25
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от Yury Evgenev Посмотреть сообщение
    Где же всё таки взять сигнал о старте контроллера?
    в анналах истории, в программе первой строчкой создаете условие
    Код:
    IF NOT flag THEN flag:=TRUE; END_IF;
    это и будет событие старта плк, останется добавить в тело условия свой код для действий по событию

  6. #26

    По умолчанию

    А... понял. Т.е. flag это своя bool переменная, работает как событие. Хитро.

  7. #27

    По умолчанию

    Подскажите тогда, если не сложно. Пользуясь этим флагом, как прочитать текущее время только 1 раз при старте программы? В конечном счете хочу инициализировать часы реального времени.
    Я попробовал таким образом:
    Код:
    PROGRAM PLC_PRG
    VAR
    	(* флаг подачи питания *)
    	START: BOOL:= FALSE;
            InternalRTC: RTC; (* часы реального времени *)
    	Error: DTU.ERROR;
    	GetTime: DTU.GetDateAndTime;
    	CurrentDateTime: DT;
    	RT_TIME:R_TRIG;
    	Set:BOOL;
    END_VAR
    
    (*Получаем системное время в формате DATE_AND_TIME*)
    	RT_TIME(CLK:=GetTime.xDone);
    IF NOT START THEN 
    	GetTime(xExecute:= NOT(GetTime.xDone));
    	START:=TRUE; 
    END_IF;
    IF RT_TIME.Q AND GetTime.xBusy=FALSE AND GetTime.xError=FALSE AND GetTime.eError=0 THEN
    	CurrentDateTime:=GetTime.dtDateAndTime;
    END_IF
            InternalRTC(EN:=START, PDT:=CurrentDateTime(*DT#2006-03-30-14:00:00*), Q=>VarBOOL2, CDT=>VarTimeCur);
    Но CurrentDateTime не меняется.
    Последний раз редактировалось Yury Evgenev; 06.02.2014 в 07:47.

  8. #28

    По умолчанию

    GetTime у вас выполняется один раз(первый проход цикла).
    Код:
    IF NOT START THEN 
    	GetTime(xExecute:= NOT(GetTime.xDone));
    	START:=TRUE; 
    END_IF;
    Вызовите фб вне условия IF NOT START THEN, а внутри условия выполните инициализацию, примерно так

    Код:
    GetTime();
    IF NOT START THEN 
    	GetTime.xExecute:= NOT(GetTime.xDone);
    	START:=TRUE; 
    END_IF;

  9. #29

    По умолчанию

    Спасибо, попробую.

    Расскажите поподробнее об этой функции.
    при инициализации
    Код:
    GetTime.xExecute = TRUE;
    при фронте сигнала получаем (или запускаем процедуру чтения текущего времени).
    Правильно ли я считаю:
    ФБ
    Код:
    GetTime();
    нет смысла вызывать, когда время уже считано?
    Последний раз редактировалось Yury Evgenev; 06.02.2014 в 20:13.

  10. #30

    По умолчанию

    Код:
    GetTime.xExecute = TRUE;
    Это инициализация переменной функционального блока.(В этот момент он не отрабатывает)

    Для того чтобы фб выполнился нужно его вызвать, соответственно вызов:
    Код:
    GetTime();

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. ТРМ-138-Р; Системные ошибки;
    от Андрей80 в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 22.04.2020, 13:05
  2. Системные события start и stop в ПЛК110
    от 42ia в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 27.09.2011, 14:30
  3. ПЛК150 не идут системные часы
    от Евгений Пашигоров в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 08.08.2011, 11:33

Ваши права

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