PDA

Просмотр полной версии : Системное время в СПК107 тикает - а как его извлечь для применения?



AmpeR3
03.01.2020, 09:26
Первый раз использую СПК107 в программировании с модулями Мх110 и ПЧВ102. Вроде всё по связи и управлению получилось с этим с первого раза с помощью документации производителя Овен. Но вот вопрос в использовании системного времени так ничего и не понял. Часы аналоговые на визуализации такают. А как извлечь из этого времени данные минут, часов, дней, месяца и года непонятно. Читал документацию и создавал пробники программ по примерам, а время так и не извлекается. Устанавливал разные библиотеки для использования времени и календарей - а толку нет! Всё равно на всех элементах стоит 1970 год и не двигается отсчёт. Задавал вопрос в компанию Овен - там говорят что всё заложено в СПК, бери и пользуйся. А как пользоваться для извлечения из системного времени СПК регистров минут, часов, дней, месяца и года нет вразумения?
Помогите грамотные люди в этом для вас простеньком вопросе. Своей безграмотностью прошу не тыкать по своей бездарности в этих указаниях, лучше в примере покажите как это выполняется. По книжному описанию в документации только реклама о возможности в СПК, но ни слова как это выполнять! Для самоучек такой словоблуд не подходит!
Помогите пожалуйста!!!

ASo
03.01.2020, 10:07
Если СПК [M01] - то разборка времени есть в таргете, надо только привязать переменные.
46522
Если более старый - через библиотеки.
Какой у Вас СПК?

AmpeR3
03.01.2020, 10:12
Я же в вопросе упамянул о СПК107. То что вы скинули это фото, я это уже просматривал в рекомендациях по решению, но без объяснения как это выполнить. Если я правильно понял от вашей подсказки - то в этих строках переменных прописываю свои названия переменных, которые и будут использоваться как данные времени "минуты, часы, дни, месяц, год" в своих потребностях программы? Так?

ASo
03.01.2020, 10:27
Естественно, так.
Если Вы не понимаете, как привязать переменные к полям таргета - тогда Вам не про время надо спрашивать, а учиться работать с КДС.

Если у Вас предыдущая версия СПК - то например через библиотеку SysTime

FUNCTION_BLOCK LocalTime
VAR_INPUT
END_VAR
VAR_OUTPUT
Year: WORD;
Month: WORD;
Day: WORD;
Hour: WORD;
Minute: WORD;
Second: WORD;
Day_of_Week: WORD;
Day_of_Year: WORD;
END_VAR
VAR
CurTime: DWORD;
pCode: UDINT;
TZ: TimezoneInformation;
CurDate: SysTimeDate;
END_VAR

CurTime:= SysTimeRtcGet(pCode);
SysTimeRtcGetTimezone(TZ);
SysTimeRtcConvertUtcToDate(dwTimestampUtc:= CurTime - DINT_TO_DWORD(TZ.iBias * 60), pDate:= CurDate);
Year:= CurDate.wYear;
Month:= CurDate.wMonth;
Day:= CurDate.wDay;
Hour:= CurDate.wHour;
Minute:= CurDate.wMinute;
Second:= CurDate.wSecond;
Day_of_Week:= CurDate.wDayOfWeek;
Day_of_Year:= CurDate.wYday;

Или более новую CAA DTUtil

AmpeR3
03.01.2020, 11:20
Спасибо Большое! Буду пробовать в этом деле. Теперь всё понятно!