This is not an easy request, but the problem has come up with several of my customers multiple times. The typical PLC user is not experienced with communication.
We have Modbus function blocks for every type of communication, and they individually work great. The problem I have run into with users is you have to write a quasi-driver to use them. Specifically, you have to write logic to handle the interference between reads and writes, and if you're harvesting data from multiple non-contiguous registers or data types from a single slave the timing logic can get really messy. It gets even more complicated with multiple slaves.
I propose a data-type table containing slave ID, register address (the real Modbus one, not the -1 offset we currently use), table length, integer or long data type, Unitronics target address, a polling rate for reads, and an MB to trigger writes. Multiple writes could be triggered by the same MB. The handshaking between all these activities would be transparent to the user.
This is how every HMI screen I've ever worked with does it. The user never sees the gymnastics behind the scenes to coordinate the multiple read and write requests.
Joe T.