Other than initially assumed, the hardcoded S7 server limitation of "maximum of 1000 items per OPC UA service call" is obviously assuming serial requests.
The current batcher mechanism with asynchronous requests immediately gets BadTooManyNodes replies when it sends the second request containing 1000 nodes. (During the initial read phase.)
This might rather be a "maximum of 1000 items in outstanding (active) requests" limitation, which would make sense to protect an internal fixed-size queue from overflowing.
As a workaround, setting a batch size (nodes-max) of e.g. 100 seems to slow down the process enough to succeed without overflowing the PLC.
Other than initially assumed, the hardcoded S7 server limitation of "maximum of 1000 items per OPC UA service call" is obviously assuming serial requests.
The current batcher mechanism with asynchronous requests immediately gets
BadTooManyNodesreplies when it sends the second request containing 1000 nodes. (During the initial read phase.)This might rather be a "maximum of 1000 items in outstanding (active) requests" limitation, which would make sense to protect an internal fixed-size queue from overflowing.
As a workaround, setting a batch size (
nodes-max) of e.g. 100 seems to slow down the process enough to succeed without overflowing the PLC.