INÍCIO > Fórum > Programação IEC 61131 (LogicLab) > FB HTTPGetPage e o serviço REST
- Este tópico tem 9 respostas, 3 participantes e foi atualizado pela última vez 5 anos, 11 meses atrás da Sergio Bertana.
-
autorPublique
-
Novembro 24, 2015 em 9: 43 am #35883Andreaparticipante
Baixei e instalei o novo firmware SFW184B000 com a nova função de gerenciamento HTTP, queria perguntar se era possível ter exemplos de uso do FB HTTPGetPage em ST e em FBD.
Novembro 24, 2015 em 9: 45 am #39208Sergio BertanaAdministrador do fórumNo novo firmware, o gerenciamento de rede foi completamente redesenhado com a adição de FBs para gerenciar conexões de cliente e servidor em UDP e TCP. O suporte DNS para resolução de URL também foi introduzido. Isso nos permitiu criar uma série de novos FBs dedicados à rede, sugiro que você consulte o nova versão do manual.
O FB HTTPGetPage permite que você atue como um navegador comum, adquirindo páginas da web de servidores HTTP, no manual já existe um exemplo em linguagem ladder que se conecta a um script PHP postado em um servidor público. No exemplo, ativando uma entrada digital, é realizada a solicitação de página no site Altervista, os parâmetros Dividendo e Divisor são passados em GET 2.
A página solicitada é um script PHP que realiza a divisão entre os valores passados. É possível testar o funcionamento do script diretamente daqui http://www.slimline.altervista.org/Mdp095a000/Ptp119b000/Division.php?Dividend=500&Divisor=10.
Se o script estiver ativo, uma página será retornada com: O resultado é: 50. É óbvio que você pode testar o script alterando os valores no endereço do navegador e obtendo resultados diferentes. O objetivo do FB é justamente esse contar com o programa SlimLine em um serviço da web na nuvem para executar operações.
Novembro 24, 2015 em 10: 30 am #39209Sergio BertanaAdministrador do fórumAproveito o tópico para acrescentar que o HTTPGetPage FB é o motor de uma nova biblioteca que desenvolvemos para alguns clientes gerenciarem a Internet das coisas usando o serviço REST. No momento, estamos trabalhando nesta biblioteca que esperamos poder oferecer o mais rápido possível, enquanto está sendo lançada em modo beta para clientes que a solicitarem.
Aqui está um imagem de tela da página de histórico do site REST criado para um cliente que administra refrigeradores industriais, onde você vê um relatório com a exibição da temperatura da câmara fria em relação à do evaporador.
Novembro 24, 2015 em 12: 32 pm #39213AndreaparticipanteO programa exemplo proposto em Ptp119b000 e em linguagem LD que é um pouco difícil para mim, se reproduzido em ST e FBD eu entenderia melhor como integrá-lo ao meu sistema, muito obrigado.
Novembro 24, 2015 em 2: 57 pm #39214Sergio BertanaAdministrador do fórumNa linguagem FBD é praticamente igual à linguagem LD, então preferi criar um exemplo em linguagem ST onde também configurei a possibilidade de passar GET para a solicitação de valores de variáveis e obter o valor do resultado da string retornada e colocá-lo em uma variável REAL (Aqui está ela impressão de programas).
Anexei para download a versão atual do programa de exemplo Ptp119b100 com o novo programa (Download do programa).
Fevereiro 24, 2017 em 8: 23 am #39852SergioparticipanteOlá, acho que encontrei um bug no HTTPGetPage FB de eLLabNetworkLib_A200.plclib. Se a string de solicitação estiver vazia, uma solicitação de HTTP incorreta é feita, exatamente a primeira linha (por exemplo, HTTP / caminho / a / b / c HTTP / 1.1) é repetida, pois também está na segunda linha.
Colocar até mesmo um único caractere (HTTPClient.Request: = ADR ('x');) não causa o problema.
Fevereiro 25, 2017 em 7: 56 am #39853Sergio BertanaAdministrador do fórumA biblioteca está evoluindo (estamos trabalhando na eLLabNetworkLib_A400) com melhorias e soluções de bugs, nesta versão no FB HTTPGetPage o valor do ponteiro de Solicitação é verificado e se for NULL a solicitação correta é feita.
Como a biblioteca ainda não foi lançada oficialmente, estou anexando o programa para download HTTPGetPage que se conecta ao servidor no Altervista onde um programa php realiza uma divisão. No programa está a nova versão do HTTPGetPage FB, você pode exportá-lo e utilizá-lo em seu projeto (Download do programa).
Fevereiro 27, 2017 em 7: 24 pm #39860SergioparticipanteObrigado pela ajuda, confirmo que a nova versão não tem o bug relatado.
Para usá-lo de forma confiável (com um programa de teste que constantemente requer novas operações via http), no entanto, eu tive que encontrar a sequência e as condições corretas em Enable e Done por tentativa e erro, caso contrário, após algumas solicitações o FB travaria.
Março 2, 2017 em 4: 08 pm #39861Sergio BertanaAdministrador do fórumativador permitir parte do pedido de página no final é ativada Pronto . Na ativação de Concluído, Habilitar pode ser redefinido. Se você quiser fazer solicitações contínuas após um loop do programa, poderá reativar a ativação. Veja como executar solicitações consecutivas: Observe que a sequencialidade do programa deve ser mantida conforme relatado.
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 *)
Pode 10, 2018 em 4: 12 pm #44046Sergio BertanaAdministrador do fórumO HTTPGetPage FB foi substituído pelo novo HTTPClient FB (Tema).
-
autorPublique
- Você deve estar logado para responder a este tópico.