Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Java Script E Jquery Per Aggiornamento Delle Pagine Web Del Plc.


Messaggi consigliati

Inserito:

Buongiorno ho creato delle pagine web che interfacciano i parametri delle varie memorie del plc , vorrei evitare il refresch automatico in html delle pagine web , è fastidioso , usando java script o jqueri , qualcuno del forum ha provato a risolvere questo problema ?

Ciao.


Gianmario Pedrani
Inserita:

Ciao Ti allego un estratto del manuale Siemens per plc 1200 che ti consiglio di leggere...

Aggiornamento delle pagine Web personalizzate
Le pagine Web personalizzate non si aggiornano automaticamente. Si può quindi scegliere
se programmare l'HTLM in modo da aggiornare la pagina oppure no. Per le pagine che
visualizzano i dati del PLC, un aggiramento periodico consente di avere dei dati sempre
attuali. Per le pagine HTLM che fungono da formato per la voce di dati, l'aggiornamento può
interferire con i dati inseriti dall'utente. Se si desidera aggiornare automaticamente l'intera
pagina, si può aggiungere questa linea nell'intestazione dell'HTLM dove "10" è il numero di
secondi tra due aggiornamenti:
<meta http-equiv="Refresh" content="10">
Per comandare l'aggiornamento della pagina o dei dati si può anche usare JavaScript o altre
tecniche HTLM. In tal caso, consultare la documentazione su HTML e JavaScript.

Inserita:

Ciao.

Grazie per la risposta, conosco quel meta tag HTML per il refresh ma é proprio quel tipo di codice che voglio evitare, l aggiornamento delle pagine é un po fastidioso con quel codice, invece usando Java script la visualizzazione risulterebbe fluida ,senza scatti, per questo cercavo info su applicazioni js e jq.

Ciao.

Inserita:

Ciao guarda questo sito è molto utile: https://www.dmcinfo.com/latest-thinking/blog/id/8567/siemens-s7-1200-web-server-tutorial--from-getting-started-to-html5-user-defined-pages

Personalmente ho testato il codice per l'aggiornamento delle variabili e funziona alla perfezione...

Unica mia mancanza..volevo sostituire degli 0 o 1 con delle immagini tipo lamp....ma non ci sono riuscito....

Inserita:

Grazie, ho dato uno sguardo veloce , ma non è la stessa cosa numero o immagine , se aggiorna una deve aggiornare anche l'altro parametro. Ciao.

Inserita:

Non sono un esperto ma ho pasticciato con javascript e jquery

Non so se è quello che ti serve ti allego il codice della pagina web

del programma di monitoraggio del mio impianto fotovoltaico

Ogni secondo aggiorna in tempo reale i dati di funzionamneto tensione corrente ecc...della pagina

ovviamente non ricarica la pagina ma ogni secondo fa la GET dei dati e aggiorna i valori

Di seguito il codice della funzione di aggiornamento (il programma di monitor è 123solar)

 function updateit() {
  var invtnum = 1;
  $.getJSON('programs/programlive.php', { invtnum: invtnum }, function(rdata){
  json = eval(rdata);
  document.getElementById('stamp').innerHTML = json.timestamp;
 
  var point = gauge1.series[0].points[0];
  point.update(json.I1P);
  gauge1.setTitle({ text: Highcharts.numberFormat(json.I1V,'1') +'VDC  '+ Highcharts.numberFormat(json.I1A,'1') + 'A'});
 
  var point = gauge2.series[0].points[0];
  point.update(json.I2P);
  gauge2.setTitle({ text: Highcharts.numberFormat(json.I2V,'1') +'VDC  '+ Highcharts.numberFormat(json.I2A,'1') + 'A'});
        
    if (json.G1P>=1000) {
      document.getElementById('G1P').innerHTML = Highcharts.numberFormat(json.G1P,'0');
    } else {
      document.getElementById('G1P').innerHTML = Highcharts.numberFormat(json.G1P,'1');
    }
  var point = gauge3.series[0].points[0];
  point.update(json.G1V);
  gauge3.setTitle({ text: Highcharts.numberFormat(json.G1V,'1') + 'V'});
  $('#hz3').html(json.FRQ + 'Hz');
  var point = gauge4.series[0].points[0];
  point.update(json.G1A);
  gauge4.setTitle({ text: Highcharts.numberFormat(json.G1A,'1') +'A'});
 
  document.getElementById('EFF').innerHTML = Highcharts.numberFormat(json.EFF,'1');
  document.getElementById('BOOT').innerHTML = Highcharts.numberFormat(json.BOOT,'1');
  document.getElementById('INVT').innerHTML = Highcharts.numberFormat(json.INVT,'1');
  document.getElementById('RISO').innerHTML = Highcharts.numberFormat(json.riso,'2');
  document.getElementById('ILEAK').innerHTML = Highcharts.numberFormat(json.ileak,'1');
  document.getElementById('AWT').innerHTML = json.awdate;

  })
  }
updateit();
setInterval(updateit, 1000);

Inserita:

Ok grazie, in questi giorni non posso provare, lo proverò quanto prima, è diventato fondamentale affrontare questi tipi di codice , vuol dire che dovremo studiare un pò . :wallbash::thumb_yello:

Inserita:

è diventato fondamentale affrontare questi tipi di codice

Hai centrato perfettamente il problema ;);)

L'automazione sta cambiando pelle e la gestione dei dati annessi è diventata fondamentale. Oggi è quasi inammissibile produrre un pezzo se non si hanno a corredo miriadi di tabelle di lavorabilità/parametri/risultati ecc..

E coi tempi che corrono, avere "l'esperto PC" come costo su una commessa, per piccole aziende può risultare economicamente penalizzante.

Dobbiamo rimboccarci le maniche.

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...