I do the same configuration and test on my computer. It polls every 15 sec. UpdateOutputs=2 RefreshOutputs=1, "immediately write" checked.
The below is the log file on serial port.
[01][01][00][00][00][01][FD][CA] is the read on every poll. See, if the write output is not changed, there is no write function sent out. On every poll, it just reads the value back, no write.
After I change the switch to ON, it sends out [01][05][00][00][FF][00][8C][3A] immediately. [05] is write single coil.
So, when immediately write is checked, UpdateOutputs is almost meaningless, because the output will be updated immediately.
What do you mean by "Updates. Done. All good." I think if you set polls=60 sec, it should poll every 60sec, it should not stop polling.
So could you also make the log file on serial port? With the log file, we may find something.
15:23:37.2 - Modbus1 ->
[01][01][00][00][00][01][FD][CA]
15:23:37.3 - Modbus1 <-
[01][01][01][00][51][88]
15:23:52.2 - Modbus1 ->
[01][01][00][00][00][01][FD][CA]
15:23:52.3 - Modbus1 <-
[01][01][01][00][51][88]
15:23:52.6 - Modbus1 ->
[01][01][00][00][00][01][FD][CA]
15:23:52.6 - Modbus1 <-
[01][01][01][00][51][88]
15:23:52.6 - Modbus1 ->
[01][05][00][00][FF][00][8C][3A]
15:23:52.7 - Modbus1 <-
[01][05][00][00][FF][00][8C][3A]
15:24:07.3 - Modbus1 ->
[01][01][00][00][00][01][FD][CA]
15:24:07.3 - Modbus1 <-
[01][01][01][01][90][48]
15:24:22.3 - Modbus1 ->
[01][01][00][00][00][01][FD][CA]
15:24:22.3 - Modbus1 <-
Ryan Shi
National Instruments