ArtU Programování Mosaic 19. 1. 2023 9:02 25. 1. 2023 14:42

Dobrý den,

Potřebuji aktualizovat čas dle časového serveru u CP-1001.

používám blok dle příkladu z knihovny. 

Mám zde problém v daný čas se PLC připojí k serveru a u Bloku fbSntp vidím - Offset  Získaný časový rozdíl oproti hodnotě v PLC. Ale systémový čas PLC se nenastaví dle časového serveru ale zůstane stále dle PLC jednotky.

 

 VAR

   NtpName  : STRING := 'ntp.ujf.cas.cz';

   NtpIP    : TIPadr;

   NsLookUp : fbNsLookUpEx;

   Sntp     : fbSntp;

   now      : TIME;

   cntSntp  : UDINT;

 END_VAR

 

 now := GetTime();

 NsLookUp(getIP := now > T#23:55:00.0,

          DnsIP :=  STRING_TO_IPADR('147.231.100.5'),

          Name := NtpName,

          IP := NtpIP);

 

 Sntp(Get := now > T#23:55:00.0, Accept := Sntp.Done, chanCode := ETH1_uni2,

     IPadr := STRING_TO_IPADR('217.31.202.100'), UtcOff := 60);

Odpovědi 1

Luboš Urban 25. 1. 2023 14:42

V zásadě je to napsané dobře. Když ten váš kód spustím u sebe, tak funguje. Potřeboval bych tedy vědět, jestli ten blok hlásí na výstupu nějakou chybu a jak je to s hodnotami výstupů funkčního bloku. Po zápisu do RTC a nastavení času by měl zůstat v jedničce pouze výstup TimeSet, ostatní příznaky jsou vynulované a ofset se také vynuluje. Zůstane pouze informace o chybě, protože zápis získané hodnoty do RTC je vždycky nějak ovlivněn dobou cyklu, takže zcela přesně ten čas nebude nastaven nikdy.

Vaše odpověď

Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.