ZdenekS Programování Mosaic 3. 6. 2025 10:04 3. 6. 2025 11:12

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

Luboš Urban 3. 6. 2025 11:12

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í.