In my usual fashion I am going to overcomplicate this without fully understanding the platform -- since I know nothing about MODBUS and am not too sharp on REST -- but that's how I roll ;)
I would imagine that since this is a GET, and therefore a query for information based on predicates, that query-strings make sense.
It seems the simplest case is enumerating coils (i.e. an "index page"):
GET /coils
Then if you want to get data for a specific coil:
GET /coils/2
But if you want to retrieve the full data for multiple "nodes" at once:
GET /coils/(insert selection criteria here)
...where the criteria could be to either fetch all nodes in a given range, or all which have a given property (i.e. all which are activated, in an error state, etc based on what MODBUS defines).
Perhaps the "criteria" are expressed as part of the path, while a querystring could be used to select a subset of properties? Hmm, XPath comes to mind, assuming that MODBUS can be viewed as a hierarchy of nodes and attributes.
Another thing I wonder about, again not fully understanding MODBUS or most industrial control... if you're selecting a range, is it important to know what all the parallel values were at the same instant in time (i.e. such that they're aligned and you have a "state")? Or, can each value be fetched sequentially, in which case having several devices that are slow to respond means that you get values that were sampled at different points in time? Maybe this is irrelevant.
- Anton