FbHTTPs_Get how to get data from a website and use it in codesys

espenbo
2021-11-23
2025-06-16
  • espenbo - 2021-11-23

    Hello
    How sombody used the Function FbHttps_get from e!cockpit wagoAppHTTP.
    I'm trying to get data from a webpage, but I can't get it to read from a page.
    I have Internett aksess from the PLS. I can ping google.
    Does sombody have an example I can look at?

    I tried to makee a DUT

    TYPE DUT_Norpolbuffer:
    UNION
    bData: BYTE;
    sData: STRING;
    dwData: DWORD;
    charData: CHAR;
    END_UNION
    END_TYPE
    

    The program

    VAR
    FbHTTPs_Get_1 : FbHTTPs_Get;
    // INput
    sURI : STRING(1023):='https://www.nordpoolgroup.com/api//marketdata/page/10';
    eAuthentication : eAuthentication :=1; 
    array_pRxBufferUNIO : ARRAY[1..255] OF DUT_Norpolbuffer;
    udiRxBufferSize : UDINT :=1024; // receive buffer size
    tTimeout : TIME; 
    //Inout
    xTrigger : BOOL; // perform a request
    //Output
    xBusy : BOOL; // job in progress
    xError : BOOL; // job finished with error
    oStatus : FbResult; // WagoSysErrorBase // detailed status information
    udiRxNBytes : UDINT; // Number of Bytes, that have been received by the Get-command
    //Oscat BUFFER_TO_STRING
    uiStart : UINT := 1 ;
    uiStop : UINT := 500;
    tekst1 : STRING(2000);
    Fb_JSON_ParseAndModify_0 : Fb_JSON_ParseAndModify;
    xTriggerJSON : BOOL;
    oStatusJSON : WagoAppJSON.WagoSysErrorBase.FbResult;
    xErrorJSON : BOOL;
    xDoneJSON : BOOL;
    diTokenJSON : DINT;
    END_VAR
    

    Program se Attachments

    First signs from the website: https://www.nordpoolgroup.com/api//marketdata/page/10
    {"data": {"Rows": [{"Columns":

    As I understand it, I get out DWORD. And it gets converted to BYTE, CHAR but not STRING.
    Now I tried and take this array into JSON_function blocks it just complains that it is not STRING.
    Do anybody have any tips?

     
  • levih - 2025-06-16

    You get an array of DWORD into your receive buffer. You need to process this into usable data, before you can fit it into your DUT. I've made it work using FbWrite_ToIEC_ByRule in stead of Fb_JSON_ParseAndModify. I've attached images of the code.

    You receive the data into ARRAY[0..1023] OF DWORD. Then you use that array as the input for fbWrite_ToIEC_ByRule. To get the output from this you define a rule to fit the expected data structure including nesting levels. The you feed the rule into FbWrite_ToIEC_ByRule and then you can set the output to be of your DUT type.

     

Log in to post a comment.