Una libreria per la gestione del servizio REST
Home › Forum › Programmazione IEC 61131 (LogicLab) › Una libreria per la gestione del servizio REST
- Questo topic ha 7 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 6 mesi fa da
Sergio Bertana.
-
AutorePost
-
Agosto 8, 2016 alle 11:47 am #36043
Sergio Bertana
Amministratore del forumDopo mesi di test in collaborazione con nostri clienti che hanno funto da betatester finalmente rilasciamo la nuova libreria eLLabRESTSvcLib (Estratto manuale) per la gestione del servizio REST. Il REpresentational State Transfer (REST) è un tipo di architettura software per sistemi basati su Internet, la comunicazione tra il client ed il server avviene in HTTP quindi il server REST può essere facilmente ospitato in una server farm.
Proprio per dimostrare la facilità di funzionamento abbiamo realizzato un programma dimostrativo PTP135A000 con il quale è possibile collegare uno o più sistemi SlimLine ad un server nel cloud, che noi abbiamo postato su Altervista. Il dimostrativo per chi ha esperienza di web contiene anche gli script php e javascript installati sul server. In questo modo è possibile creare un proprio servizio cloud da utilizzare anche per applicazioni commerciali.
Il dimostrativo è funzionante e permette di visualizzare gli ingressi e gestire le uscite del proprio sistema via Internet tramite il server cloud. Caricato il dimostrativo sul sistema SlimLine basterà accedere al portale sul server Altervista, consultando la pagina del servizio REST e digitando l’UniqueID del sistema (Download programmi sorgente).
Agosto 10, 2016 alle 12:48 pm #39681Sergio Bertana
Amministratore del forumVacanze, tempo di REST (Purtroppo non inteso nel senso di riposarsi)…
Continuo con i dimostrativi del servizio REST sui nostri sistemi LogicLab con il PTP143A000 che invia al server cloud una serie di dati (modificabili a piacere da programma). I dati ricevuti dal server sono come nell’esempio precedente memorizzati in un file ini ed accedendo alla pagina di visualizzazione definendo in GET alla chiamata l’UniqueID (UID) del proprio sistema verranno visualizzati nella pagina (Screenshot).
Come si vede dallo screenshot i dati sono elencati con la dicitura e nell’ordine in cui sono inviati dal programma sullo SlimLine. Ecco un estratto del programma.
CASE (ParID) OF
1: i:=SysVarsnprintf(ADR(RESTSBf), SIZEOF(RESTSBf), ‘Firmware version=%s’, STRING_TYPE, ADR(SysFVersion));
2: i:=SysVarsnprintf(ADR(RESTSBf), SIZEOF(RESTSBf), ‘Serial Nr=%d’, UDINT_TYPE, ADR(SysSerialNr));
3: i:=SysVarsnprintf(ADR(RESTSBf), SIZEOF(RESTSBf), ‘SysPLCUpTime=%d (S)’, UDINT_TYPE, ADR(SysPLCUpTime));
4: i:=SysVarsnprintf(ADR(RESTSBf), SIZEOF(RESTSBf), ‘SysTBackExTm=%d (uS)’, UDINT_TYPE, ADR(SysTBackExTm));
END_CASE;Il tasto Cancella file INI permette di cancellare il file ini e forzare il sistema SlimLine a reinizializzare l’invio dei dati (Download programma sorgente e scripts php).
Ottobre 21, 2016 alle 4:26 pm #39735Sergio Bertana
Amministratore del forumNei due post precedenti ho per semplicità salvato i dati in arrivo dal servizio REST in un file ini sul server nel cloud, ma naturalmente è molto più efficente utilizzare un database.
Quindi ho realizzato un nuovo programma dimostrativo il PTP144A000 che invia come gli altri al server cloud una serie di dati (modificabili a piacere da programma), ma i dati ora sono memorizzato in un database MySQL. accedendo alla pagina di visualizzazione definendo in GET alla chiamata l’UniqueID (UID) del proprio sistema verranno visualizzati nella pagina (Screenshot).
Il dimostrativo oltre al programma da caricare sullo SlimLine contiene anche i sorgenti script PHP da trasferire sul server cloud. Per la gestione del database ho utilizzato la libreria ezSQL che semplifica notevolmente il lavoro (Download programma sorgente e scripts php).
Dicembre 28, 2016 alle 10:14 am #39797Sergio Bertana
Amministratore del forumRimando a questo topic per la disponbilità del bocco funzione MQTTClient, l’MQTT (Message Queuing Telemetry Transport) di IBM è lo standard di riferimento per la comunicazione per l’Internet delle Cose. Quindi una valida alternativa al servizio REST.
Febbraio 17, 2017 alle 10:57 am #39845Marco
PartecipanteHo qualche serio problema con il client Rest.. Ho copiato il codice che avete fornito e sembra che bene o male funzioni, ma fa qualcosa di strano. Nel senso che, se attivo SpyData sembra che giri tutto correttamente, appena lo chiudo va tutto a ramengo, iniza a dare errori il client rest.
Supponendo che fosse solo una mia impressione ho provato altre 4-5 volte a fare il tentativo e ogni volta che ricollego Toolly e attivo spydata si riprende, appena lo spegno smette di funzionare. Dopo di che ho fatto la prova a disabilitare SpyOn, e in questo caso mi da la prima volta “ok” poi continua a dare errori.
Puntando sul vs. server non sembra dare problemi, sul mio invece non ho capito come mai da questo tipo di problemi; Il fatto che attivando/disattivando SpyData mi dia questi problemi mi fa sospettare che sia qualcosa relativo al tempo di ciclo, quindi andando in osservazione o simile rallento qualcosa e non si ‘perde dei pezzi’ per cui non va in errore. Essendo però chiuso il blocchetto funzione non posso vedere nemmeno all’interno che errori da e da cosa possa essere causato..
Appena accedo con spydata vedo l’ultimo errore che compare dopo un po: LastError:100557050
Dopo aver scritto il post, prima di dare conferma ho ri-verificato la mia teoria, ed effettivamente si è ripetuto, un altra volta, allo stesso modo. Posso mostrartelo via teamviewer se ritieni.. forse si capisce meglio ?
Febbraio 18, 2017 alle 7:22 am #39846Sergio Bertana
Amministratore del forumSi quello che citi è un problema che ci hanno già segnalato, alcuni server HTTP terminato l’invio dati chiudono immediatamente la connessione e questo genera un errore nella FB di gestione.
Il problema è già stato risolto nella nuova libreria eLLabRESTSvcLib_A300, che ti allego per il download.
Febbraio 21, 2017 alle 2:17 pm #39848Marco
PartecipanteE’ come passare dalla notte al giorno, ora funziona decisamente meglio, riesco a reggere un pacchetto ogni mezzo secondo in maniera continuativa senza alcun tipo di errore. Chiaramente non si può progettare un sistema per questi ritmi in produzione, è folle, ma almeno se c’è un picco temporaneo riesce a svuotare la coda rapidamente.
Ottobre 23, 2017 alle 1:34 pm #39998Sergio Bertana
Amministratore del forumRimando alla lettura di questa nota tecnica per una spiegazione dettagliata delle funzionalità del protocollo REST.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.