How can I efficiently read the entire array (or at least an entire zone with all its heaters) from my Siemens PLC without manually defining nodes for each variable?

I'm new to Node-RED and Siemens PLCs, and I'm using the node-red-contrib-s7 node to communicate with my PLC. Currently, I can successfully read and write data to individual records in a data block.

Problem :

I don't want to create a separate node for every variable because:

  1. More records will be added in the future. (New zones or added heaters to a zone etc)
  2. There are already many records, making it inefficient to manage
    manually.

Data Structure:

I have an array called zones, where:

  1. Each zone is a struct containing multiple heaters.
  2. Each heater also has associated data (e.g., temperature).

Goal:

I want to read the entire array or at least an entire zone at once.

Ideally, the data should be structured as a JSON object, where each zone contains all its heaters and their respective data.

This data will be used to display a real-time dashboard showing:

  1. The current temperature in each zone.
  2. The status of each heater.

Issue:

The node-red-contrib-s7 node doesn't seem to support reading entire structs, objects, or arrays at once. I haven't found a way to loop through the zones efficiently within Node-RED.

Question:

How can I efficiently read the entire array (or at least an entire zone with all its heaters) from my Siemens PLC without manually defining nodes for each variable?

Any suggestions or best practices would be greatly appreciated!

It seems there is no problem with your description. You just ask if can be done easier.

But anyhow, you can tidy all messages using nodes like change and join.

If you can enable modbus on the PLC, you can read holding registers up to 125 that the modbus protocol supports at once. (you will get an array of the values), and then you name each one to get a json object using readily available nodes in node-red.