Well I'm glad know one has gone straight to the solution; I would hate to think I missed something obvious!
Re Steves’s Idea:
I can follow your logic, but think to much intelligents is being given to the polling software. The software is effectively split up into different tags/channels. It starts to poll, starts at tag 1, looks at a register, grabs the data, and saves it into its database with a time/date stamp. That’s tag 1 finished. It then moves onto tag 2 (the next meter) and so on. The data cant be split up into 24 parts, and then ‘reassembled’ in the database. Each tag on the database just gets one point to look at in the PLC. I guess that one electric meter could have 24 tags, with each tag collecting data every 24 hours, but it would be pretty messy in the database.
Re: Terry’s Idea:
The history program is stupid! I’m not aware of any facility within the history software to check bits. However, perhaps the PLC could prevent the data from being accessed, perhaps by changing one of the communication options, (eg odd/even bit or baud rate etc), then the software would go away empty handed. It could keep trying, say every 5 minutes, allowing the PLC to calculate the hourly data, on the hour and place the answer into a register.
I don’t think there is enough control over the polling software to give it rules when communication errors happen, but I believe it would just keep trying.
Re: seppoalanen
Sounds possible. I don’t have enough knowledge writing Active-X components to really comment, nor know how to actually install the thing!
General
Perhaps there is scope for a combination of all the ideas, but most of them assume the polling software to be a little smarter or would rely on the polling software and PLC to be working at exactly the same time base, something that isn’t going to happen.
Maybe I could wire up a cable from the PLCs processor comms LED to a digital input to know when the comms is active, I could then take a digital output to a relay to disconnect the comms cable, update the registers and then turn the relay off !