Vai al contenuto

Errore nell’utilizzo FB SNTPRequest

Home Forum Programmazione IEC 61131 (LogicLab) Errore nell’utilizzo FB SNTPRequest

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #62893
    Paolo
    Partecipante

    Sto provando ad utilizzare il FB SNTPRequest ma senza successo. Ho attivato lo spionaggio sul FB e ottengo l’errore 10052200 che da manuale lo riporta come ‘errore nelle sequenze di gestione’.

    Per completezza:
    Il progetto è un progetto XUnified compilato temporaneamente per XTarget con l’importazione della libreria eLLabXTargerAdjLib. E’ una versione solo di test in attesa dei plc finali. questo è il codice utilizzato ridotto all’osso.

    Per avviare la richiesta e testarne la funzionalità, imposto SNTPReq.QUERY a TRUE manualmente da LogicLab:

    IF (SysFirstLoop) THEN
        SNTPReq.SpyOn:=TRUE; //Spy On
        SNTPReq.NTPServer:=ADR(SNTPServerIP); //NTP server
    END_IF;
    
    SNTPReq();
    
    IF (SNTPReq.Done) THEN
        SNTPReq.Query:=FALSE; (* Query On *)
        IF (SNTPReq.Ok) THEN
            i:=SysSetUTCDateTime(SNTPReq.UTCTime);
        END_IF;
    END_IF;

    qualche idea?

    #62936
    Sergio Bertana
    Amministratore del forum

    L’errore 10052200 come vedi indica che non si è ricevuta risposta dal server. Ora immagino che tu abbia inzializzato la stringa SNTPServerIP con l’URL del server da contattare vedi il mio esempio.

    VAR
        i : UDINT; (* Auxiliary variable *)
        SNTPServerIP : STRING[ 32 ] := '0.pool.ntp.org'; (* UTC Date/Time reference *)
        SNTPReq : SNTPRequest; (* NTP request *)
    END_VAR
    
    IF (SysFirstLoop) THEN
        SNTPReq.SpyOn:=TRUE; //Spy On
        SNTPReq.NTPServer:=ADR(SNTPServerIP); //NTP server
    END_IF;
    
    SNTPReq();
    
    IF (SNTPReq.Done) THEN
        SNTPReq.Query:=FALSE; (* Query On *)
        IF (SNTPReq.Ok) THEN
            i:=SysSetUTCDateTime(SNTPReq.UTCTime);
        END_IF;
    END_IF;

    Importante il program deve essere eseguito nella task di Back.

    Se vedi lo spionaggio dovresti vedere qualcosa di simile:

    [Admin]> SpyData
    Spy data active, type "Ctrl-C" to exit...
    18:12:29.152433|SNTPRequest:Lg|-------------------------------------------[Start NTP request]-
    18:12:29.182338|SNTPRequest:Tx|1B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... 00 
    18:12:29.195978|SNTPRequest:Rx|1C 02 00 E7 00 00 00 A7 00 00 00 17 C1 CC 72 E9 E5 6F 17 82 EA ... 94 
    18:12:29.197057|SNTPRequest:Lg|RT Delay:13.606 (mS)
    18:12:29.197475|SNTPRequest:Lg|---------------------------------------------[End NTP request]-

    Naturalmente se il server non risponde non avrai il report di ricezione ma dovresti avere quello di trasmissione.

    Sei sicuro di avere impostato correttamente nello SlimLine sia l’indirizzo IP del gateway e del server DNS?

    Puoi verificare se lo SlimLine può accedere ad Internet eseguendo da una connessione Telnet un comando di ping verso un server noto.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.