PDA

Просмотр полной версии : Установка времени ПЛК304



ISh
10.04.2012, 11:50
Для целей синхронизации времени с ПК необходимо устанавливать время часов ПЛК304. Подскажите, как осуществить? Пробовал 2 варианта:

1) Библиотека SysTime23 - работает только на чтение времени. На установку не реагирует:

VAR
TimeAndDate: SystemTimeDate;
Sys_Time: SysTime64;
GetTime: CurTimeEx;
bSetTime: BOOL:= FALSE;
END_VAR

IF bSetTime THEN
// TimeAndDate.Year := 2012;
// TimeAndDate.Month := 04;
// TimeAndDate.Day := 09;
TimeAndDate.Hour := 15;
TimeAndDate.Minute := 51;
TimeAndDate.Second :=0;
// TimeAndDate.DayOfWeek :=2;
ELSE
TimeAndDate.dwLowMSecs :=0;
TimeAndDate.dwHighMsec :=0;

TimeAndDate.Year :=0;
TimeAndDate.Month :=0;
TimeAndDate.Day :=0;
TimeAndDate.Hour :=0;
TimeAndDate.Minute :=0;
TimeAndDate.Second :=0;
TimeAndDate.DayOfWeek :=0;

TimeAndDate.Milliseconds :=0;
TimeAndDate.DayOfWeek :=0;

Sys_time.ulLow :=0;
Sys_time.ulHigh :=0;
END_IF


//получим текущее время
GetTime(SystemTime:=Sys_Time , TimeDate:= TimeAndDate);

2) Библиотека CAA DTUtil - проект с её задействованием не загружается в ПЛК:
"Download faied: PLC in exception. See Log Page in Device Dialog for details."

ISh
17.04.2012, 08:42
Решил вопрос с помощью библиотеки SysTimeRtc (функции SysTimeRtcGet).

Только сейчас стала выскакивать ошибка при загрузке проекта:
"One or more library references in this project failed to load/ Please take a look in the messages view for further details."
SysTime23 и DTUtil - убраны из проекта. Библиотека SysTimeRtc 3.4.3.0 ссылается на SysTimeCore - на против которой написано "not resolved".
Добавил SysTimeCore 3.4.2.0 в список библиотек, проблема не разрешилась. "Try to reload library" - не помагает.
Сам проект работает. С этим можно жить?
(Codesys 3.4 SP2 Hotfix1. WinXP Prof SP2)

capzap
11.06.2012, 20:54
Установить время можно следущим способом:
Скачиваете и устанавливаете бибку http://www.kipshop.ru/CoDeSys3.0/bibl/sysexec.zip
по фронту булевой переменной запускаете следущую функцию
SysExecute('date -s 2012.06.11-20:50:00');

alex3000plus
23.08.2012, 15:26
День добрый!

У меня вот тоже проблема со временем, метод предложенный capzap еще не пробовал, сейчас буду. Проблема в следующем. Через терминал и putty подключаюсь к контроллеру, даю команду на установку времени, проверяю, все верно. Но в КДС функция GetTime из библиотеки SysTime23 возвращает время 5 днями ранее, делал все возможные перезапуски контроллера/программы, это не помогает. Можете прокомментировать!?

web-интерфейс показывает время правильно. раньше все нормально было

Хех, извиняюсь. Не заметил как при открытие проекта изменился активный путь к контроллеру, там действительно время другое. Два часа времени убил:D

srid
14.11.2012, 11:54
Установить время можно следущим способом:
Скачиваете и устанавливаете бибку http://www.kipshop.ru/CoDeSys3.0/bibl/sysexec.zip


А для ПЛК-308 эта библиотека также предназначена?
Когда пытаюсь залить проект с использованием этой библиотеки получаю: "Downloaded failed: PLC in exception. See Log Page in Device Dialog for details."
А в соответствующем логе: "Could not linkexternal function SYSEXECUTE".

Вопрос остался: Как в ПЛК-308 задать время?

Константинов Сергей
18.01.2013, 13:46
Скажите есть ли какая небудь возможность синхронизировать время СПК207 со временем компьютера?

Евгений Сергеевич
26.02.2013, 11:03
Установить часы можно двумя способами:
Средствами Linux
необходимо подать две команды:
1) задать текущее время SysExecute('date -s 2012.06.11-20:50:00');
2) сохранить изменения SysExecute('hwclock -w');

Средствами CoDeSys

VAR
get:BOOL;
set:BOOL;

SetTime: systimedate30;
UtcTime: DWORD;
res:UDINT;
END_VAR

IF get THEN
get:=FALSE;

SetTime.wDayOfWeek :=0;
SetTime.wMilliseconds :=0;
SetTime.wHour :=0;
SetTime.wMinute :=0;
SetTime.wSecond :=0;
SetTime.wYear :=0;
SetTime.wMonth :=0;
SetTime.wDay :=0;

UtcTime:=SysTime23.SysTimeRtcGet (res);
SysTime23.SysTimeRTCConvertUtcToDate (UtcTime,SetTime);
END_IF

IF set THEN
set:=FALSE;
SysTime23.SysTimeRTCConvertDateToUTC(SetTime,UtcTi me);
SysTime23.SysTimeRtcSet (UtcTime);
END_IF

Версия библиотеки SysTime23 - 3.4.0.10


для синхронизации время можно передавать через переменные Modbus например а потом применять одним из вышеперечисленных способов

vnkorol
16.04.2015, 19:08
КДС 3.5 SP5 Patch5. Библиотеки SysTime23 нет в менеджере библиотек. Как быть? :)