FYI - we're adding a feature request to make ODL a little smarter, rather than just blindly sending the same data at a fixed interval. But that's no guarantee if/when such a feature might get added.
In the meantime, besides working-around ODL completely, a few other ideas to ponder...
1) Use something like Kepware to interface to the SQL database, but you'd have to check with Kepware to see how they handle the same issue and if they have the option to not send data when the connection to the controller is lost.
2) Add a local controller (local to the OptoOPCServer computer) or just add SoftPAC on that same computer. Then have the local controller/SoftPAC get the data from the R1. Have OptoDataLink access the local controller/SoftPAC instead of the R1. The logic in the local controller would have to populate the data to the values you want to use when the local controller can't get data from the R1. You may have to log the data in ODL via a trigger in the local controller instead of on a time base. This way if there's not new data, nothing will get logged.
...and on the topic of using a trigger vs. just a time base, perhaps you could build a trigger into your existing system, even w/out these extra parts? Do you have a way of knowing if/when the network is up? Perhaps you could ping something from the PAC to make this determination? Or use the I/O watchdog in the R1?
While we're brainstorming here, another OptoForum user suggested this method for setting up a "watchdog" between a PAC and the PAC Display computer. Perhaps something similar could work for you?