Добрый вечер!
Мне нужно сохранять в файл переменные и обнулять в 0:00.
Как это лучше реализовать на ПЛК110 в Codesys?
Сделать задачу, которая будет вызываться каждую минуту и проверять текущее время в задаче?
Спасибо!
Добрый вечер!
Мне нужно сохранять в файл переменные и обнулять в 0:00.
Как это лучше реализовать на ПЛК110 в Codesys?
Сделать задачу, которая будет вызываться каждую минуту и проверять текущее время в задаче?
Спасибо!
А не проще сравнивать свою уставку времени с системными часами и когда они будут равны выполнить условие
Было много раз на форуме.
Потом использовать например так...Код: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
Это кусочек из логики программы, для вас никакой полезной нагрузки таймер не несет. Главное создайте PRG\FB, объявите, и пользуйтесь выходными переменными блока, при желании в строки
VAR_OUTPUT
out_hour: UINT;
out_minute: UINT;
out_DayOfWeek: UINT;
END_VAR
можете дописать еще то, что нужно, например год.
Доброго времени суток.
Помогите разобраться пожалуйста.
Сделал как показано на примере, но видимо где то ошибка. В режиме эмуляции никаких значений (часы и минут) нет. Или я неправильно что-то понимаю.
Код:
Основная программа (на языке CFC)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;
Код:
12345.JPGPROGRAM PLC_PRG
VAR
fdv: Geting;
new_fdg: UINT;
ds: BOOL;
new_minute: UINT;
new_hour: UINT;
DayOfWeek: UINT;
END_VAR
Последний раз редактировалось brujar12; 25.10.2016 в 22:12.
В режиме эмуляции не получится- нужнО подключение на ПЛК, в нём тикают часики.
сто раз писали,
в эмуляции функции часов не работают.
Только в ПЛК.