Vai al contenuto

Connessione in SNMP con alcuni dispositivi STE

Home Forum Programmazione IEC 61131 (LogicLab) Connessione in SNMP con alcuni dispositivi STE

Stai visualizzando 3 post - dal 1 a 3 (di 3 totali)
  • Autore
    Post
  • #35335
    Anonimo
    Ospite

    Avrei la necessità di gestire in rete Ethernet la connessione con una decina di dispositivi STE. Per la connessione utilizzo il blocco funzione STESnmpAcq, dal manuale viene eseguita l’apertura del socket UDP con la funzione Sysfopen, poi viene messo in listening con la FB SysSktListen ed infine viene gestita l’acquisizione dei valori dal modulo STE.

    La domanda è, avendo tanti moduli da gestire devo ripetere per ognuno la stessa sequenza di operazioni ? esiste un modo più ottimizzato per l’acquisizione da più moduli STE ?

    #37588
    Sergio Bertana
    Amministratore del forum

    Rispondo subito alla tua domanda, l’apertura del socket e la sua forzatura in listening può essere fatta una sola volta se poi vengono sequenziate le varie acquisizioni dai moduli STE, allego la stampa e i files sorgenti, di un programma che acquisisce 2 STE, ma può essere esteso al numero desiderato solo aggiungendo chiamate alla FB STESnmpAcq.

    Vediamo come funziona la comunicazione con protocollo UDP facendo riferimento al programma indicato. Con la chiamata alla funzione Sysfopen viene aperto un socket UDP, la FB SysSktListen lo pone in ascolto sulla porta 161, tutti i pacchetti UDP da qualsiasi IP che arriveranno su questa porta saranno ricevuti e bufferizzati.

    Ad ogni secondo (Se si hanno molti STE consiglio di mettere un timer con tempo maggiore) la prima FB STESnmpAcq invia la richiesta SNMP al modulo con IP 192.168.0.174 sulla porta 161 ed aspetta la risposta. Su ricezione risposta Done o su timeout od errore Fault viene attivata la seconda FB STESnmpAcq che invia la richiesta SNMP al modulo con IP 192.168.0.101 ed aspetta la risposta. E così via per tutte le altre acquisizioni che fossero necessarie.

    Anche se si potrebbero eseguire tutte in parallelo le abilitazioni alla FB STESnmpAcq, per evitare di intasare lo stack di ricezione pacchetti UDP consiglio di sequenziarle come fatto nell’esempio.

    #37589
    Sergio Bertana
    Amministratore del forum

    Sulla release B dei moduli CPU è possibile trasferire pagine web utente, e le pagine possono essere dinamiche, cioè  il loro contenuto viene modificato dal server, in questo modo è possibile visualizzare dati da variabili di programma. Ho realizzato una semplice pagina web di dimensioni adatte ad essere visualizzata anche in uno smartphone che visualizza i 4 valori di temperatura ed umidità del programma del post precedente. Ecco la pagina come visualizzata su uno smartphone (Screenshot).

    Allego la stampa del sorgente html, basta copiarlo in un file testo e salvarlo con estensione htm nella directory Storage dello SlimLine per poterla visualizzare semplicemente digitandone l’indirizzo come si vede dallo screenshot.

    Come si nota per la visualizzazione dei valori si utilizza una sintassi del tipo <!–[“%3.1f”, REAL, 0]–>, che stà ad indicare la visualizzazione di una variabile di tipo REAL ad indirizzo MD 100.0 con rappresentazione a due cifre intere ed una cifra decimale. Maggiori informazioni sulle pagine web dinamiche si trovano sul Manuale programmazione IEC61131-3 su sistema SlimLine.

    Come si vede dalla direttiva <meta http-equiv=”refresh” content=”5″>, la pagina verrà ricaricata dal browser ogni 5 secondi visualizando così la variazione dei valori.

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