# Speeding up block transactions

**URL:** <https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [February 17, 2022, 5:11pm UTC](https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268 "2022-02-17T17:11:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cody\_Fiscus](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Cody\_Fiscus](https://forum.inductiveautomation.com/u/Cody_Fiscus)\
**Post date:** [February 17, 2022, 5:11pm UTC](https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268/1 "2022-02-17T17:11:25Z")

</div>

I have a transaction group that contains 63 item blocks of 10,000 segments. Due to the nature of the data the TG is set to read to ensure that the data is fresh when the TG is triggered. I am using an Siemens S7-1500 hosted OPC server.

It simply times out every time. In total the size of the data is around 3 mb.

Extending the time out and dropping segments to 1000 takes 88 seconds to transfer.

If I drop the size to 1 of each of the 63 items the transaction fires in .19 seconds. .11 Seconds in subscribe mode.

Is there anyway to speed this up? It is simply too much data to handle for a transaction group? Or is this likely a limitation of the Siemens OPC server in giving us data.

Any ideas or suggestions would be appreciated.

---

<div class="post-metadata">

**Author:** ![josborn](https://avatars.discourse-cdn.com/v4/letter/j/4bbf92/32.png) [@josborn](https://forum.inductiveautomation.com/u/josborn)\
**Post date:** [February 19, 2022, 12:05am UTC](https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268/2 "2022-02-19T00:05:02Z")

</div>

Fair warning, i don’t ever use transaction groups. That said, that sounds like a lot of data. You might want to include some more info or images of how your transaction group is setup, also what does your memory and CPU usage look like when the transaction group is running? It could be you are maxing out your cpu and or memory with such a large operation.

---

<div class="post-metadata">

**Author:** ![Cody\_Fiscus](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Cody\_Fiscus](https://forum.inductiveautomation.com/u/Cody_Fiscus)\
**Post date:** [February 22, 2022, 3:57pm UTC](https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268/3 "2022-02-22T15:57:54Z")

</div>

This is what the system looks like while the transaction is running.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/7/47a4d540ea674e01582d67f7975824d284318dc4.png)

This is what the trend looks like after the transaction finishes, a quick jump in utilization and done.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/e/5e6978f45314715f13eea3ee481b470a4679022d.png)

---

<div class="post-metadata">

**Author:** ![Cody\_Fiscus](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Cody\_Fiscus](https://forum.inductiveautomation.com/u/Cody_Fiscus)\
**Post date:** [February 22, 2022, 3:58pm UTC](https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268/4 "2022-02-22T15:58:28Z")

</div>

This is the tag set up of the TG.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/5/351e097f79aa8995e555ace77cd81e70610705b4.png)

With each of the block items looking like this.  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/2/12539111f79adc84801382d2a2d01b35101aa893.png)

---

<div class="post-metadata">

**Author:** ![Cody\_Fiscus](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Cody\_Fiscus](https://forum.inductiveautomation.com/u/Cody_Fiscus)\
**Post date:** [February 22, 2022, 3:59pm UTC](https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268/5 "2022-02-22T15:59:54Z")

</div>

Some additional settings:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/1/113c8532f3e7038003cea041ffca66889a4cda57.png)  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/e/5e48b2759a7dfbde03c6a4d1a64764e80f065792.png)

---

<div class="post-metadata">

**Author:** ![bschroeder](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bschroeder/32/13260_2.png) [@bschroeder](https://forum.inductiveautomation.com/u/bschroeder)\
**Post date:** [February 22, 2022, 4:03pm UTC](https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268/6 "2022-02-22T16:03:40Z")

</div>

I’m no Siemens expert… but would this be better off using system.opc.readValues [system.opc.readValues - Ignition User Manual 8.1 - Ignition Documentation](https://docs.inductiveautomation.com/display/DOC81/system.opc.readValues) in a gateway tag script?

You could then control the size of blocks etc… you would need to read the values though system.opc.readValues and then log them via system.db.runPrepUpdate [system.db.runPrepUpdate - Ignition User Manual 8.1 - Ignition Documentation](https://docs.inductiveautomation.com/display/DOC81/system.db.runPrepUpdate) or similar.

---

<div class="post-metadata">

**Author:** ![Cody\_Fiscus](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Cody\_Fiscus](https://forum.inductiveautomation.com/u/Cody_Fiscus)\
**Post date:** [February 22, 2022, 4:43pm UTC](https://forum.inductiveautomation.com/t/speeding-up-block-transactions/56268/7 "2022-02-22T16:43:43Z")

</div>

Looks like this could be an option. I will experiment with it.

Customer wants all data handled in TGs if possible. Have gotten some flak for using stored procedures to do more “complicated” things.

But if TGs will not work, they will have to accept it.
