# Normal OPC tags or systemopc.readvalues for large UDT arrays

**URL:** <https://forum.inductiveautomation.com/t/normal-opc-tags-or-systemopc-readvalues-for-large-udt-arrays/28402>\
**Category:** Ignition\
**Created:** [September 19, 2019, 5:37pm UTC](https://forum.inductiveautomation.com/t/normal-opc-tags-or-systemopc-readvalues-for-large-udt-arrays/28402 "2019-09-19T17:37:31Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![tordvd](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tordvd/32/11525_2.png) [@tordvd](https://forum.inductiveautomation.com/u/tordvd)\
**Post date:** [September 19, 2019, 5:37pm UTC](https://forum.inductiveautomation.com/t/normal-opc-tags-or-systemopc-readvalues-for-large-udt-arrays/28402/1 "2019-09-19T17:37:31Z")

</div>

Hi,

I need to pull UDT data from an AllanBradley PLC. Here are some details:

- The UDT consists of 20 float/int(s), and there are 400 of them.
- They are stored in the PLCs as a UDT array. “Tag[400] (UDT)”
- I am going to present each tag in a powertable, (each UDT member will be a column)
- I have a digital trigger of when to pull data. No more than every 2 sec.

What is the most **efficient way** to fetch these data in terms of CPU/Memory and opc-device utilization?

- Is it OK to create a UDT tag and populate a folder with tags Tag\_1 -\> Tag\_400. Then loop through the folder and populate the table.
- Is it better to pull all values from a script, and put the data directly into the table.

I also need to use some of the UDT members outside of the powertable.(alarm status).

Last thing, the customer dont have the transaction licence

One more side quest or the reader: If it shows to be feasible to pull all tags normally using UDT tags populated by OPC tags:  
It would be **awesome** to create each UDT as a “row” template, in order to present the data in a template repeater. Would this put excessive stress on the client/server( when loading 400 templates)?

Best regards!
