PDA

Просмотр полной версии : Syslibtime



Safron
02.10.2014, 14:15
Всем доброго время суток. Подскажите где есть примеры с использованием библиотеки SysLibTime. В справке так сухо описано. Непонятен синтаксис. И как ею пользоваться. Ошибка 4062. Спасибо

capzap
02.10.2014, 14:44
непробовали поиском поискать, кто писал про эту бибку или сюда http://www.owen.ru/forum/showthread.php?t=13588 заглянуть

Safron
03.10.2014, 09:36
Спасибо. Нашёл. Теперь у меня непонятки с модулем с модулем Архиватор. Статус Архиватора выдаёт ошибку 8. В то время как ПЛК конфигурации такой ошибки не описано. Есть 0,1,2 и 4. И как прочитать сам за архивированный файл? спасибо

lara197a
03.10.2014, 09:41
Можно скачать через ПЛК браузер.

Safron
03.10.2014, 11:01
там можно только скопировать, переименовать и список файлов получить

petera
03.10.2014, 11:21
там можно только скопировать, переименовать и список файлов получить
Наличие файла смотрим через ПЛК браузер, а читаем через меню Онлайн.
14598

Safron
03.10.2014, 13:07
спасибо..ещё вопрос по ходу ...как просто получить текущее системное время и дату в формате DT. SystemTimeDate из блока CurTimeEx (SysLibTime) не преобразовывается в формат DT. Написал выражение IF tr THEN
dat_:= DATE ();
END_IF компилятор ругается - ошибка 4268

Yegor
03.10.2014, 13:44
http://www.owen.ru/forum/showthread.php?t=11827&p=74538&viewfull=1#post74538

Только с тех пор я проще придумал:
VAR
timedate: SystemTimeDate;
systime: SysTime64;
datetime_packed: DT;
GetTime: CurTimeEx;
END_VAR
VAR CONSTANT
nulldt: SystemTimeDate;
nullst: SysTime64;
END_VAR

timedate := nulldt;
systime := nullst;
GetTime(SystemTime := systime, TimeDate := timedate);
datetime_packed := DATE_TO_DT(
PackDate(timedate.Year, timedate.Month, timedate.Day) +
PackTime(timedate.Hour, timedate.Minute, timedate.Second, timedate.Milliseconds) / 1000);

С получением времени вообще всё плохо очень. И трудно, и часы у 110/160 идут как пьяные.

rapucha
13.12.2015, 03:01
http://www.owen.ru/forum/showthread.php?t=11827&p=74538&viewfull=1#post74538

Только с тех пор я проще придумал:
VAR
timedate: SystemTimeDate;
systime: SysTime64;
datetime_packed: DT;
GetTime: CurTimeEx;
END_VAR
VAR CONSTANT
nulldt: SystemTimeDate;
nullst: SysTime64;
END_VAR

timedate := nulldt;
systime := nullst;
GetTime(SystemTime := systime, TimeDate := timedate);
datetime_packed := DATE_TO_DT(
PackDate(timedate.Year, timedate.Month, timedate.Day) +
PackTime(timedate.Hour, timedate.Minute, timedate.Second, timedate.Milliseconds) / 1000);

С получением времени вообще всё плохо очень. И трудно, и часы у 110/160 идут как пьяные.

Спасибо, кстати. Со временем, да - треш, угар и содомия. Хуже только отсутствие однострочного комментария "//" )))

capzap
13.12.2015, 09:39
Хуже только отсутствие однострочного комментария "//" )))

(* текст комментария *)
так то чем не устраивает, в одну строку не помещается?

rapucha
13.12.2015, 10:48
так то чем не устраивает, в одну строку не помещается?

Лишние движения, да еще с шифтом, да еще повторить в конце. Большинство моих комментариев - однострочные.

Кроме того, по ходу отладки и экспериментов с языком часто приходится закомментить, а потом раскомментить одну строчку. Двойное нажатие слеша быстро, полноценный комментарий долго.

В нормальных средах спасает "автокомплит", когда замыкающий комментарий вставляется автоматом сразу. Но тут к CDS у меня нет концептуальных претензий -- это очевидно старая среда из начала нулевых, там все ужасно. Хотя в 2003 году (копирайт на CDS 2.0) Eclipse уже вышла, было на что ориентироваться.

За отсутствие однострочного комментария МЭКу "спасибо". Да и за бардак с временнЫми делами тоже.