Dobrý den, v Mosaicu - menu PLC - Additional PLC information - je informace o datumu a času spuštění PLC. Lze tuto informaci získat programově?
Odpovědi 1
Dobrý den,
čas spuštění PLC v systémových registrech uložen není, tuto informaci bere Mosaic odjinud.
Z programu se dá uložit čas v prvním cyklu po restartu, ale tím zachytíte nejen spuštění programu po zapnutí systému, ale také restarty při přehrávání programu v CPU.
IF ProgramIsChanged() THEN
CasZap := GetDateTime();
END_IF;
Pak je také možné si programově vytáhnout informaci o zapnutí systému z logů v adresáři WWW/LOGS/, nejjednodušeji to půjde z BOOT.log, kde se prostě přečte poslední řádek logu a z něj se informace získá. Do projektu přidáte knihovnu FileLib a následující kód.
PROGRAM prgGetStartTime
VAR
ReadLL : ReadLastLines;
txtLines : STRING[255];
fileName : STRING := 'WWW/LOGS/BOOT.LOG';
startTime : DT;
END_VAR
VAR_TEMP
temp : STRING;
END_VAR
ReadLL(read := ProgramIsChanged(), lineNum := 1, sizeOfArray := sizeof(txtLines), fileName := fileName, txtLines := txtLines);
IF ReadLL.done THEN
temp := 'DT#'+ LEFT(IN := txtLines, L := 10) + '-' + MID(IN := txtLines, L := 8, P := 12);
startTime := STRING_TO_DATE_AND_TIME(temp);
END_IF;
END_PROGRAM
Informace je i v souborech EVENT.LOG, TECOMAT.LOG, PLC_INIT.LOG, ty časy se samozřejmě o něco liší, jak se prochází postupně spouštěšcí sekvence PLC a během těch operací se plní jednotlivé logy. Z těchto souborů už by se ale informace o spuštění systému parsovala složitěji.
Vaše odpověď
Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.