I had already tried messing with a timer, though never used r trig. Tried that this morning but still the same issue. So I've used varying times up to 5 sec, a constant 1, r trig etc, all give the same problem.
If you go into the MB Client db and monitor you can see in the temp data area that the values I expect to see are being read as they change. The values (int) I expect to see however in the temp data area are split into two bytes. The expected values are 0-100 so one byte is zero and the other shows the value. The first value shows correctly for maybe half a second, then the other byte shows an unexpected value and the 'correct' byte shows zero. Whenever the correct value shows, the data is transferred to my db, otherwise all zeroes are written to my db even though the correct values are showing for the remaining 23 registers in the temp data area. Does that make sense?