• Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    Error: "Write of group with index 3 skipped"

    Mervis
    neuron mervis modbus rtu error write skipped
    1
    2
    80
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Dmytro last edited by

      Hello.

      I would like to write register on Modbus RTU Slave that contain Device Adress.
      But several days in a row I see the same error in Port Monitor "Write of group with index 3 skipped".

      Reading of the Modbus RTU Slave is OK, test registers show to me what they have to.

      Slave device is "Vaisala HUMICAPâ Humidity and Temperature Module HMM170".
      Master device is "UniPi Neuron L513".
      Mervis 2.4.0 (117845).

      Before rewriting the register with Device Adress, I decided to try change Response_Delay.
      According to the manual,

      the register:
      1540 || 0603hex || Response delay || 16-bit integer || Unit: ms || Range: 0 ... 100

      the functions:
      03 || 03hex || Read || Holding Registers <-- This function works in my project
      16 || 10hex || Write || Multiple Registers

      So, first I created a group to read this register and data point to see the actual value. It shows "1" ms. Seems it is a default value.

      According the Modbus protocol driver, I created another group for writing the register. The parameters are:

      Name || 1540_Communication_write
      Groupe type || WriteOnly
      Starting Element || 1540
      Function || F16 Write Multiple Registers
      Quantity of Element || 1
      Write Only On Change || False
      Logical OR over Overlapped || False

      Also, the Data Point was created:

      Name || Response_Delay_w
      Comm. Value Mapped Type || Builtin
      ST Type || int
      Transform || identity
      Enable SWAutogen || True
      Write Offset Gap || 2
      Data Offset (Parser) || 0
      Bit Offset (Parser) || 0
      MultiByte Length (Parser) || 2
      MultiByte Order (Parser) || 12

      Then I created Local Variable:

      Name || Increase_Response_Delay
      Initial Value || 3
      Retain || False
      Write on Change || False

      This Local Variable is connected directly to Global Variable "HumiditySensor_1_Response_Delay_w".
      As for me, Local Variable must send its initial value to Global Variable and as a result change the value of Data Point "Response_Delay_w" and write to Slave device register.

      Problem -->

      I can build and deploy the project successfully. During debugging I see that the Data Point "Response_Delay_w" get the value from Increase_Response_Delay, but the cell of Data Point is painted red (PLC Value in Variable Browser). The value of "Response_Delay_r" does not changed, because in Port monitor there is an error "Write of group with index 3 skipped".

      Is it the problem on a Slave device or am I do something wrong?

      1 Reply Last reply Reply Quote 0
      • D
        Dmytro last edited by

        @Dmytro said in Error: "Write of group with index 3 skipped":

        Write Only On Change || False

        In a previous post was a mistake. Write Only On Change || True
        It causes error "Write of group with index 3 skipped"
        If that parameter has value False, error message in Port monitor disappears.

        Instead of that, Port monitor shows to me another problem:

        15.12.2021 14:37:40.0122 => Send: 240 16 6 3 0 1 2 3 0 201 7
        15.12.2021 14:37:40.0822 Timeout
        15.12.2021 14:37:40.0922 => Send: 240 16 6 3 0 1 2 3 0 201 7
        15.12.2021 14:37:40.1622 Timeout
        15.12.2021 14:37:40.1722 => Send: 240 16 6 3 0 1 2 3 0 201 7
        15.12.2021 14:37:40.2422 Timeout
        15.12.2021 14:37:40.2672 => Send: 240 3 0 0 0 66 208 218
        15.12.2021 14:37:40.3372 Timeout
        15.12.2021 14:37:40.3472 => Send: 240 3 0 0 0 66 208 218
        15.12.2021 14:37:40.3652 <= Recv: 240 16 6 3 0
        15.12.2021 14:37:40.3722 <= Recv: 1 228 96
        15.12.2021 14:37:40.3722 Timeout

        So I still cannot write the value to the register.

        1 Reply Last reply Reply Quote 0
        • First post
          Last post