Accueil > Forum > Programmation IEC 61131 (LogicLab) > FB HTTPGetPage et le service REST
- Ce sujet a 9 réponses, 3 participants et a été mis à jour pour la dernière fois 5 années, 11 mois da Sergio Bertana.
-
auteurPost
-
Novembre 24, 2015 à 9: 43 am #35883AndreaPartecipante
J'ai téléchargé et installé le nouveau firmware SFW184B000 avec la nouvelle fonction de gestion HTTP, je voulais demander s'il était possible d'avoir des exemples d'utilisation du FB HTTPGetPage en ST et en FBD.
Novembre 24, 2015 à 9: 45 am #39208Sergio BertanaAdministrateur du forumDans le nouveau firmware, la gestion du réseau a été entièrement repensée avec l'ajout de FB pour gérer à la fois les connexions client et serveur en UDP et TCP. Le support DNS pour la résolution d'URL a également été introduit. Cela a permis de créer toute une série de nouveaux FB dédiés au réseautage, je vous propose de consulter le nouvelle version du manuel.
Le FB HTTPGetPage vous permet d'agir comme un navigateur commun en acquérant des pages Web à partir de serveurs HTTP, dans le manuel il y a déjà un exemple en langage ladder qui se connecte à un script PHP posté sur un serveur public. Dans l'exemple, activation d'une entrée numérique, la demande de page sur le site Internet d'Altervista est effectuée, les paramètres Dividend et Divisor sont passés dans GET 2.
La page demandée est un script PHP qui effectue la division entre les valeurs passées. Il est possible de tester le fonctionnement du script directement à partir d'ici http://www.slimline.altervista.org/Mdp095a000/Ptp119b000/Division.php?Dividend=500&Divisor=10.
Si le script est actif, une page est renvoyée avec: Le résultat est: 50. Il est évident que vous pouvez tester le script en modifiant les valeurs de l'adresse du navigateur et en obtenant des résultats différents. Le but du FB est précisément de s'appuyer sur le programme SlimLine sur un service Web dans le nuage pour effectuer des opérations.
Novembre 24, 2015 à 10: 30 am #39209Sergio BertanaAdministrateur du forumJe profite du sujet pour ajouter que le HTTPGetPage FB est le moteur d'une nouvelle librairie que nous avons développée pour certains clients afin de gérer l'Internet des objets à l'aide du service REST. Nous travaillons actuellement sur cette bibliothèque que nous espérons pouvoir proposer dans les plus brefs délais, alors qu'elle sortira en version bêta pour les clients qui en feront la demande.
Voici un capture d'écran de la page historique du site REST créée pour un client qui gère des réfrigérateurs industriels, où vous pouvez voir un rapport avec l'affichage de la température de la chambre froide liée à celle de l'évaporateur.
Novembre 24, 2015 à 12: pm 32 #39213AndreaPartecipanteL'exemple de programme proposé en Ptp119b000 et en langage LD qui est un peu difficile pour moi, s'il était reproduit en ST et FBD je comprendrais mieux comment l'intégrer dans mon système, merci beaucoup.
Novembre 24, 2015 à 2: pm 57 #39214Sergio BertanaAdministrateur du forumEn langage FBD c'est pratiquement le même que le langage LD, j'ai donc préféré créer un exemple en langage ST où j'ai également mis en place la possibilité de passer en GET à la demande de valeurs de variable et d'acquérir la valeur du résultat à partir de la chaîne retournée et de la placer sur une variable REAL (Elle est là impression de programme).
Je joins pour télécharger la version actuelle du programme exemple Ptp119b100 avec le nouveau programme (Télécharger le programme).
Février 24, 2017 à 8: 23 am #39852SergioPartecipanteBonjour, je pense avoir trouvé un bug dans le HTTPGetPage FB de eLLabNetworkLib_A200.plclib. Si la chaîne de requête est vide, une requête HTTP incorrecte est effectuée, exactement la première ligne (par exemple HTTP / chemin / a / b / c HTTP / 1.1) est répétée comme elle l'est également sur la deuxième ligne.
Mettre ne serait-ce qu'un seul caractère (HTTPClient.Request: = ADR ('x');) ne pose pas de problème.
Février 25, 2017 à 7: 56 am #39853Sergio BertanaAdministrateur du forumLa librairie évolue (nous travaillons sur eLLabNetworkLib_A400) avec des améliorations et des solutions de bogues, dans cette version dans le FB HTTPGetPage la valeur du pointeur de demande est vérifiée et si elle est NULL, la demande correcte est effectuée.
Comme la bibliothèque n'est pas encore officiellement publiée, je joins le programme à télécharger HTTPGetPage qui se connecte au serveur sur Altervista où un programme php effectue une division. Dans le programme, il y a la nouvelle version du HTTPGetPage FB, vous pouvez l'exporter et l'utiliser dans votre projet (Télécharger le programme).
Février 27, 2017 à 7: pm 24 #39860SergioPartecipanteMerci pour votre aide, je confirme que la nouvelle version n'a pas signalé de bogue.
Pour l'utiliser de manière fiable (avec un programme de test qui nécessite constamment de nouvelles opérations via http), cependant, j'ai dû essayer de trouver la bonne séquence et les bonnes conditions sur Enable et Done, car sinon, après quelques requêtes, le FB se bloquait.
Mars 2, 2017 à 4: pm 08 #39861Sergio BertanaAdministrateur du forumactivation Activer une partie de la demande de page à la fin est activée OK. Lors de l'activation de Terminé, vous pouvez réinitialiser Activer Si vous souhaitez effectuer des requêtes continues après une boucle de programme, vous pouvez réactiver Activer. Voici comment exécuter des requêtes consécutives. Notez que la séquentialité du programme doit être conservée comme indiqué.
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 à 4: pm 12 #44046Sergio BertanaAdministrateur du forumLe FB HTTPGetPage a été remplacé par le nouveau FB HTTPClient (Sujet).
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.