Transaction group issue – Block group using previous / buffered data

Greetings,

I have a block transaction group to retrieve recipes from DB to an OPC trigger based. I’ve set up the tags for the OPC and the array for the block (up to 24 tags per block) and to retrieve the recipes, I have a SQL view which gives the rows/data needed to be written in PLC.

Everything should work fine, and it in fact does. But when I change recipes after some time (don’t know exactly what makes the buffer from previous download go away) the transaction group write in the tags data from the previous recipe downloaded to PLC. In other words, I download a 8 step recipe to PLC, when I download the next one with only 5 steps, the steps #6 to #8 uses the data from the previous recipe.

I do reset all tags after a successful handshake and I confirm the tags are 0. When the group is triggered, I’m able to see the values being written, so it seems to me that the Ignition query against the view has some kind of cache/buffer, providing wrong information to the transaction group.

Have any of you any kind of similar issue? I’m running Ignition 7.9.9

Thanks in advance and best regards

This is a known issue:

There doesn’t seem to be a bug number in the post. You may want to contact support to see where this stands. (You will certainly have to upgrade Ignition for any fix, once available.) The workaround would be to replicate your transaction group functionality with a script.

Thanks Phil, just opened a ticket.

I’ll try in the meantime to recreate your link’s proposed solution, but it seems a bit out of my league :frowning:

Best regards

I have the same problem, is this issue been resolved? We are using Ignition 7.9…

Hey Gilles,

I opened a ticket and they informed that the fix was already available for 8.x. After some argumentation they agreed to backport it to 7.9 and I think it went live with 7.9.18 (changelog pic)

I still couldn’t try it myself, so if you are able, please let me know!

There is one thing I’ve tried that almost worked for me was to set the transaction as Bidirectional BD Win.

In my plc sequence, prior to trig the transaction, I fill my PLC table with -1 values, then, I trig the transaction to get the data from the table and it does clear the buffered data…

My problem is that I am getting Failed execution flag doing so. And since I am using the Transaction handshakes to progress in my sequence it didn’t work for me.

I am not sure why I am getting the Fail execution, probably that my PLC table don’t use all the Columns in the SQL table or something like that.

So you might give it a try.

My solution is similar as yours, but I fill all available lines with NULL instead of -1, and it’s working well for quite some time.

I do plan to update and try the ‘regular’ solution as soon as possible, but as this process is critical, i’m waiting for a proper window to avoid any surprises