Показано с 1 по 8 из 8

Тема: Выполнение задачи в определенное время

  1. #1

    По умолчанию Выполнение задачи в определенное время

    Добрый вечер!

    Мне нужно сохранять в файл переменные и обнулять в 0:00.
    Как это лучше реализовать на ПЛК110 в Codesys?
    Сделать задачу, которая будет вызываться каждую минуту и проверять текущее время в задаче?

    Спасибо!

  2. #2
    Пользователь Аватар для _Mikhail
    Регистрация
    25.07.2013
    Адрес
    Ярославль
    Сообщений
    510

    По умолчанию

    А не проще сравнивать свою уставку времени с системными часами и когда они будут равны выполнить условие

  3. #3
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    Lightbulb

    Было много раз на форуме.
    Код:
    PROGRAM GetingTime
    VAR
    	GetTime: CurTimeEx;
    	TimeAndDate: SystemTimeDate;
    	Sys_Time: SysTime64;
    
    END_VAR
    VAR_OUTPUT
    	out_hour: UINT;
    	out_minute: UINT;
    	out_DayOfWeek: UINT;
    END_VAR
    ------------------------------------
    TimeAndDate.Day :=0;
    TimeAndDate.DayOfWeek :=0;
    TimeAndDate.dwHighMsec :=0;
    TimeAndDate.dwLowMSecs :=0;
    TimeAndDate.Milliseconds :=0;
    TimeAndDate.Minute :=0;
    TimeAndDate.Second :=0;
    TimeAndDate.Hour :=0;
    TimeAndDate.Year :=0;
    TimeAndDate.Month :=0;
    Sys_time.ulHigh :=0;
    Sys_time.ulLow :=0;
    GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);
    
    out_hour:=TimeAndDate.Hour ;
    out_minute:=TimeAndDate.Minute;
    out_DayOfWeek:=TimeAndDate.DayOfWeek;
    Потом использовать например так...
    plc0.jpg

  4. #4

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    Было много раз на форуме.
    Потом использовать например так...
    plc0.jpg
    Спасибо. А не могли бы вы пояснить - а таймер тут нужен принципиально? или он берется из логики некоторой программы?

    Цитата Сообщение от _Mikhail Посмотреть сообщение
    А не проще сравнивать свою уставку времени с системными часами и когда они будут равны выполнить условие
    Я так и сделал в результате. Изначально не хотелось в основной цикл вставлять проверку, которая сработает только один раз в сутки...

  5. #5
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Цитата Сообщение от bladerunner Посмотреть сообщение
    Спасибо. А не могли бы вы пояснить - а таймер тут нужен принципиально? или он берется из логики некоторой программы?


    Я так и сделал в результате. Изначально не хотелось в основной цикл вставлять проверку, которая сработает только один раз в сутки...
    Это кусочек из логики программы, для вас никакой полезной нагрузки таймер не несет. Главное создайте PRG\FB, объявите, и пользуйтесь выходными переменными блока, при желании в строки
    VAR_OUTPUT
    out_hour: UINT;
    out_minute: UINT;
    out_DayOfWeek: UINT;
    END_VAR
    можете дописать еще то, что нужно, например год.

  6. #6

    По умолчанию

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

    Код:
    FUNCTION_BLOCK Geting
    VAR_INPUT
    END_VAR
    VAR_OUTPUT
    out_hour: UINT;
    out_minute: UINT;
    out_DayOfWeek: UINT;
    END_VAR
    VAR
    GetTime: CurTimeEx;
    TimeAndDate: SystemTimeDate;
    Sys_Time: SysTime64;

    END_VAR

    ------------------
    TimeAndDate.Day :=0;
    TimeAndDate.DayOfWeek :=0;
    TimeAndDate.dwHighMsec :=0;
    TimeAndDate.dwLowMSecs :=0;
    TimeAndDate.Milliseconds :=0;
    TimeAndDate.Minute :=0;
    TimeAndDate.Second :=0;
    TimeAndDate.Hour :=0;
    TimeAndDate.Year :=0;
    TimeAndDate.Month :=0;
    Sys_time.ulHigh :=0;
    Sys_time.ulLow :=0;
    GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);

    out_hour:=TimeAndDate.Hour ;
    out_minute:=TimeAndDate.Minute;
    out_DayOfWeek:=TimeAndDate.DayOfWeek;
    Основная программа (на языке CFC)
    Код:
    PROGRAM PLC_PRG
    VAR
    fdv: Geting;
    new_fdg: UINT;
    ds: BOOL;
    new_minute: UINT;
    new_hour: UINT;
    DayOfWeek: UINT;
    END_VAR
    12345.JPG
    Последний раз редактировалось brujar12; 25.10.2016 в 22:12.

  7. #7
    Пользователь
    Регистрация
    22.03.2011
    Адрес
    Ивановская обл, Родники
    Сообщений
    145

    По умолчанию

    В режиме эмуляции не получится- нужнО подключение на ПЛК, в нём тикают часики.

  8. #8
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    сто раз писали,
    в эмуляции функции часов не работают.
    Только в ПЛК.

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 18.09.2014, 11:28
  2. ТРМ148 подойдет ли к поставленной задачи?
    от Игорёк в разделе Подбор Оборудования
    Ответов: 13
    Последнее сообщение: 19.10.2012, 11:19
  3. Ответов: 2
    Последнее сообщение: 17.02.2009, 15:05
  4. Пошаговое выполнение
    от FVG-8 в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 02.09.2008, 10:17

Ваши права

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