Hi Becker,
Uninstall modbustcp node and use 'node-red-contrib-modbus' that has more advanced features.
basically you use the modbus-flex-getter node with the following logic setup
your inject node will trigger every x amount of seconds the setup functions that will in turn send request to the Modbus Flex Getter. The request may be simultanious but this will be no problem since in the configuration of the Modbus Flex Getter you set an option to queue the commands. After the reply is then joined together based on topic with the join node.
test flow :
[{"id":"8fc91da6.a9e6","type":"modbus-flex-getter","z":"6af7d61.65ee9a8","name":"","showStatusActivities":false,"showErrors":false,"logIOActivities":false,"server":"28c906aa.79aae2","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"keepMsgProperties":false,"x":600,"y":1740,"wires":[["93b4c0bc.489ad"],[]]},{"id":"7012947b.acb93c","type":"function","z":"6af7d61.65ee9a8","name":"","func":"msg.payload = { \n 'fc': 4, \n 'unitid': 1, \n 'address': 0 , \n 'quantity': 2 \n}\nmsg.topic = 'myDevice1'\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","x":340,"y":1700,"wires":[["8fc91da6.a9e6"]]},{"id":"edeb5f19.a9fc3","type":"function","z":"6af7d61.65ee9a8","name":"","func":"msg.payload = { \n 'fc': 4, 'unitid': 1, \n 'address': 2 , \n 'quantity': 2 \n} \nmsg.topic = 'myDevice2'\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","x":340,"y":1780,"wires":[["8fc91da6.a9e6"]]},{"id":"88de8439.4ef9b8","type":"inject","z":"6af7d61.65ee9a8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":1740,"wires":[["7012947b.acb93c","edeb5f19.a9fc3"]]},{"id":"d39e43fb.43c888","type":"debug","z":"6af7d61.65ee9a8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":970,"y":1740,"wires":[]},{"id":"93b4c0bc.489ad","type":"join","z":"6af7d61.65ee9a8","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":790,"y":1740,"wires":[["d39e43fb.43c888"]]},{"id":"28c906aa.79aae2","type":"modbus-client","z":"","name":"TCP1","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"192.168.1.66","tcpPort":"502","tcpType":"TPC-RTU-BUFFERED","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":1,"commandDelay":200,"clientTimeout":1000,"reconnectOnTimeout":true,"reconnectTimeout":2000,"parallelUnitIdsAllowed":true}]
ps. modify the function nodes based on your specific requirements