Is it possible to set the Target Name of a Run-Always expression in a Transaction Group to a SQL Tag?
I’ve set the ‘Target Type’ to ‘Other tag’
I’ve tried every syntax I can think of for the target name but it doesn’t change the value.
I’m not getting any errors in the group.
The SQL Tag is tgrpNBatch and is a memory int4.
The tag is not used anywhere else in the group and the group executes on a trigger.
I’ve assumed that the ‘Run-Always’ expression is independent of the trigger.
The expression item is updating correctly; it’s just not writing to the target.
Syntax I’ve tried:
Also, is there any document explaining the different syntax relating to [~], [.] etc.?
Sorry, Tim, I deleted my post. Sadly, I think I misread your issue. Are you already using the SQLTag that you want to write to in the group?
EDIT: If not, try adding it to group (as read-only, if you don’t want to affect or be affected by the database.)
Thanks for the response.
I’ve done that and it works when the trigger fires.
But when the trigger is off, the tag doesn’t get written.
I’m assuming the target can be an SQL Tag that doesn’t have to be in the group?
Thanks for any help.
Looks like they will always evaluate, but not necessarily write back. From the Manual:
All of the groups follow a similar execution cycle. The core evaluation may differ, but the general cycle is the same.
- Timer executes, group enters execution
- Is the group paused? Break execution.
- Is the Gateway the cluster’s master? If not, break execution. Transaction groups only execute on the master.
- Evaluate “run-always” items: OPC items, SQLTag references, and Expression items set to ignore the trigger.
- Is trigger set/active? If there is a trigger defined, but it is not active, break execution.
- Evaluate “triggered” items: Expression items not set to ignore the trigger.
- If applicable, read values from the database
- Execute a comparison between items and their targets
- Execute any writes to other Tags or the Database that result from execution.
- Report alerts
- Acknowledge the trigger, if applicable.
- Write handshake value, if applicable.
If an error occurs at any stage besides the last stage, execution will break and the failure handshake will be written if configured. The group will attempt execution again after the next update rate period.[/code]
Looks like #5 is what’s hanging you up.
Can this evaluation be handled by an expression SQLTag? IIRC, you can write the results to another tag.
That explains it.
I saw that section in the manual but assumed ‘Ignore Trigger’ applied to writes as well.
And yes, I’ve a couple of other ways of getting the result I want; the group would have been convenient.
About the documentation: The manual is very high-level. Is there any in-depth documentation for ignition?
I’m just using SQL Bridge at the moment but will be starting a project in a few weeks that will require a client as well.
It’s the basic stuff that’s catching me:
-Syntax relating to ,[~], [.] etc.
-Definitions of datatypes (int4, int8, etc) as used in ignition
-Realworld examples of Transaction Group use.
My background is SQL, VB, C#, Wonderware, Archestra, Siemens, Rockwell.
I’m getting to like Python, it’s very clean.
Your ‘IIRC’ threw me for a moment
Thanks for the help, I appreciate it.