Multiple Modbus Read Registers Access by an Array of Elements

  • (I posted this on CODESYS Forum without any suggestions or help)...

    I need to read about 250 UDINT via Modbus in Slave mode. A SCADA manages this data and write via Modbus remotely to my controller.
    So inizially I configured on my controller a modbus slave device. Due to Modbus limitations I configured 4 channel in Read Holding Registers mode with an array of 125 elements (500 elements in total of WORD type).
    In a GVL I defined an array of 250 elements of UDINT type poiting at the starting address of the input registers, beginning at %IW60.
    Finally in my application program I used the array poiting values I need directly by index.
    Is it the right way or maybe there is a quite simpler or "more readable" and canonical method?
    See pictures I added to this post.
    Many thanks!




  • @mikeardy
    Consider this as an alternative. I've created 500 holding registers
    In my program (it could be ina GVL) I have created an addary of 250 UDINT.
    Then I was able to map all of the registers in one go

    For generic CODESYS questions I suggest trying, for many generic CODESYS questions there will already be an answer posted.

Log in to reply