Vai al contenuto

Utilizzo della FB SysSpyData e della console di spionaggio

Home Forum Programmazione IEC 61131 (LogicLab) Utilizzo della FB SysSpyData e della console di spionaggio

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35656
    Sergio Bertana
    Amministratore del forum

    Tra le funzioni embedded a partire da XTarget_11_0 è stata introdotta la funzione SysSpyData, system spy data (Estratto manuale). Questa funzione permette da programma utente di inviare dati verso una console di spionaggio accessibile da Telnet.

    In pratica accedendo al sistema in Telnet (Si può utilizzare la nostra utility Toolly), dopo l’autenticazione digitando il comando SpyData, saranno visualizzati i dati inviati dalle chiamate alla funzione SysSpyData eseguite nel programma.Il vantaggio di questo metodo di debug è che il sistema operativo memorizza le informazioni ricevute sulla chiamata alla funzione rendendo disponibili i dati anche a seguito di chiamate consecutive molto ravvicinate (Anche pochi mS). Attualmente è previsto uno stack di 4 memorizzazioni.

    Quando si attiva la visualizzazione i dati inviati dalla funzione sono ritornati nella console di spionaggio con indicazione in mS del tempo intercorso dalla visualizzazione precedente. Se il tempo è maggiore ai 10 Sec viene indicato come tempo il valore (9999).

    Nel caso in cui le chiamate alla funzione SysSpyData siano troppo ravvicinate e non vi sia il tempo di visualizzarle nella console di spionaggio si perdono le memorizzazioni, questo è indicato dal valore (—-) nella colonna tempo di ritardo.

    #38503
    Sergio Bertana
    Amministratore del forum

    Per illustrare meglio il concetto di funzionamento del meccanismo di spionaggio utilizzo un semplice programma (Stampa) che con una FB ModbusMaster esegue la lettura in modbus RTU.

    Nell’esempio utilizzo le due porte seriali di un modulo CPU ARM7 interconnesse tra di loro (Attenzione per interconnetterle occorre usare un adattatore Null-Modem su di una porta ed un adattatore modem sull’altra).

    La FB ModbusMaster ha al suo interno chiamate alla funzione SysSpyData, queste chiamate possono essere abilitate forzando a TRUE l’ingresso SpyOn della FB così come ho fatto nell’esempio. Se con il programma in funzione ci colleghiamo con il terminale Telnet di Toolly ed abilitiamo la console di spionaggio vedremo i pacchetti Modbus RTU scambiati (Screenshot).

    Come  si vede nella prima parte la comunicazione è attiva invio un frame di Tx e dopo 4mS viene ricevuto il frame Rx  di risposta. Siccome nel programma ho inserito il Delay a 1Sec il successivo frame di Tx verrà inviato dopo un secondo. Il frame di Tx esegue la richiesta di 4 registri, così ho evidenziato nel frame Rx il valore ritornato dei 4 registri ed il CRC finale.

    Ho scollegato il cavo di alimentazione e sono visibili solo i frame di Tx, il tempo di ritardo tra un frame e l’altro è pari al tempo impostato in Timeout 500mS più il tempo di Delay. Ho modificato il programma richiedendo un indirizzo di registri fuori range, e come si vede viene ricevuto un frame di risposta con errore (Codice 16#83) seguito dal codice di errore 16#02 e poi dal CRC 16#C0F1.

    Il codice di errore 02 è un codice di Illegal data address, infatti l’indirizzo richiesto 16#AFC7 (44999 che con offset 1 diventa 45000) è fuori range per il sistema SlimLine (Download programma).

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