Acasă > forum > Programare IEC 61131 (LogicLab) > FB HTTPGetPage și serviciul REST
- Acest subiect are 9 răspunsuri, 3 participanți și a fost actualizat ultima dată 5 ani, acum 11 luni da Sergio Bertana.
-
AutorPost
-
Noiembrie 24, 2015 la 9: 43 am #35883Andreaparticipant
Am descărcat și instalat noul firmware SFW184B000 cu noua funcție de gestionare HTTP, am vrut să întreb dacă este posibil să am exemple de utilizare a FB HTTPGetPage în ST și în FBD.
Noiembrie 24, 2015 la 9: 45 am #39208Sergio BertanaAdministrator al forumuluiÎn noul firmware, gestionarea rețelelor a fost complet reproiectată cu adăugarea de FB-uri pentru a gestiona atât conexiunile client și server în UDP și TCP. A fost introdus și suportul DNS pentru rezoluția URL-urilor. Acest lucru a făcut posibilă crearea unei serii întregi de FB-uri noi dedicate rețelei, vă sugerez să consultați noua versiune a manualului.
FB HTTPGetPage vă permite să acționați ca un browser obișnuit prin achiziționarea de pagini web de pe servere HTTP, în manual există deja un exemplu în limbaj scară care se conectează la un script PHP postat pe un server public. În exemplu, activând o intrare digitală, se efectuează solicitarea unei pagini de pe site-ul Altervista, parametrii Dividend și Divizor sunt trecuți în GET 2.
Pagina solicitată este un script PHP care efectuează împărțirea între valorile trecute. Este posibil să testați funcționarea scriptului direct de aici http://www.slimline.altervista.org/Mdp095a000/Ptp119b000/Division.php?Dividend=500&Divisor=10.
Dacă scriptul este activ, o pagină este returnată cu: Rezultatul este: 50. Este evident că puteți testa scriptul modificând valorile din adresa browserului și obținând rezultate diferite. Scopul FB este tocmai acesta să se bazeze pe program SlimLine pe un serviciu web din cloud pentru a efectua operațiuni.
Noiembrie 24, 2015 la 10: 30 am #39209Sergio BertanaAdministrator al forumuluiProfit de subiect pentru a adăuga că HTTPGetPage FB este motorul unei noi biblioteci pe care am dezvoltat-o pentru ca unii clienți să gestioneze Internetul obiectelor folosind serviciul REST. În prezent lucrăm la această bibliotecă pe care sperăm să o putem oferi cât mai curând posibil, în timp ce este lansată în modul beta clienților care o solicită.
Iată unul screenshot a paginii istorice a site-ului REST creată pentru un client care administrează frigidere industriale, unde puteți vedea un raport cu afișarea temperaturii camerei reci aferente celei a evaporatorului.
Noiembrie 24, 2015 la 12: 32 pm #39213AndreaparticipantExemplul de program propus în Ptp119b000 și în limbajul LD care este puțin dificil pentru mine, dacă ar fi reprodus în ST și FBD aș înțelege mai bine cum să îl integrez în sistemul meu, vă mulțumesc foarte mult.
Noiembrie 24, 2015 la 2: 57 pm #39214Sergio BertanaAdministrator al forumuluiÎn limbajul FBD este practic același cu limbajul LD, așa că am preferat să creez un exemplu în limbajul ST unde am setat și posibilitatea de a trece în GET la cererea de valori variabile și de a obține valoarea rezultatului din șirul returnat și de a o plasa pe o variabilă REAL (Iat-o program de imprimare).
Atașez pentru descărcare versiunea curentă a exemplului de program Ptp119b100 cu noul program (Descărcați programul).
Februarie 24, 2017 la 8: 23 am #39852SergioparticipantBună ziua, cred că am găsit o eroare în HTTPGetPage FB a eLLabNetworkLib_A200.plclib. Dacă șirul de solicitare este gol, se face o cerere HTTP incorectă, exact prima linie (de ex. HTTP / cale / a / b / c HTTP / 1.1) se repetă, așa cum este și pe a doua linie.
Punerea chiar și a unui singur caracter (HTTPClient.Request: = ADR ('x');) nu cauzează problema.
Februarie 25, 2017 la 7: 56 am #39853Sergio BertanaAdministrator al forumuluiBiblioteca evoluează (lucrăm la eLLabNetworkLib_A400) cu îmbunătățiri și soluții de erori, în această versiune în FB HTTPGetPage se verifică valoarea indicatorului de solicitare și dacă este NUL, se face solicitarea corectă.
Deoarece biblioteca nu este încă lansată oficial, atașez programul pentru descărcare HTTPGetPage care se conectează la serverul de pe Altervista unde un program PHP efectuează o divizare. În program există noua versiune a HTTPGetPage FB, o puteți exporta și utiliza în proiectul dvs. (Descărcați programul).
Februarie 27, 2017 la 7: 24 pm #39860SergioparticipantVă mulțumim pentru ajutor, confirm că noua versiune nu are raportată eroarea.
Pentru a-l utiliza în mod fiabil (cu un program de testare care necesită în mod constant noi operații prin http), totuși, a trebuit să încerc să găsesc secvența și condițiile potrivite pentru Enable and Done, deoarece altfel, după câteva cereri, FB s-ar bloca.
Martie 2, 2017 la 4: 08 pm #39861Sergio BertanaAdministrator al forumuluiactivarea Permite parte cererea de pagină la sfârșit este activată Terminat . La activarea Terminat, Activarea poate fi resetată. Dacă doriți să faceți cereri continue după o buclă de program, puteți reactiva Activare. Iată cum să executați cereri consecutive. Rețineți că secvențialitatea programului trebuie menținută așa cum a fost raportat.
HTTPPr(); (* FB execution *)
IF NOT(HTTPPr.Done) AND (HTTPPr.Enable) THEN
i:=SysVarsnprintf(ADR(Request), SIZEOF(Request), ‘Dividend=%.3f’, REAL_TYPE, ADR(Dividend));
i:=SysLWVarsnprintf(ADR(Request), SIZEOF(Request), ‘$26Divisor=%.3f’, REAL_TYPE, ADR(Divisor));
END_IF;HTTPPr.Enable:=NOT(HTTPPr.Done); (* HTTP get page enable *)
Mai 10, 2018 la 4: 12 pm #44046Sergio BertanaAdministrator al forumuluiHTTPGetPage FB a fost înlocuit de noul HTTPClient FB (Subiect).
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.