Home › Forum › Programmazione IEC 61131 (LogicLab) › Connessione in SNMP con alcuni dispositivi STE
- Questo topic ha 2 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 11 anni, 1 mese fa da Sergio Bertana.
-
AutorePost
-
Marzo 5, 2013 alle 7:11 am #35335AnonimoOspite
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 ?
Marzo 5, 2013 alle 7:19 am #37588Sergio BertanaAmministratore del forumRispondo 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.
Marzo 5, 2013 alle 8:03 am #37589Sergio BertanaAmministratore del forumSulla 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.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.