# Alarm Ack Status animation

**URL:** <https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687>\
**Category:** Ignition\
**Created:** [July 5, 2017, 3:42am UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687 "2017-07-05T03:42:41Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![westlam](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@westlam](https://forum.inductiveautomation.com/u/westlam)\
**Post date:** [July 5, 2017, 3:42am UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/1 "2017-07-05T03:42:41Z")

</div>

I’m trying to animate a Template object when the tag is:

a) In Alarm - Change the back ground colour  
b) UnAcked -Blink a rectangle that surrounds the numeric display in the template.

I’ve got the colour change working. I’ve added a custom prarameter that feeds in my UDT.

The Alarm boolean has a list of sub tags that show in the tag browser and I’d like to use

Tag.Alarm.AlarmActiveUnackCount \> 0 as my animation trigger…

The problem is that these child tags don’t pass into the template. I’ve searched through the manual and forum and can’t find any solution to this.

Any suggestions?

---

<div class="post-metadata">

**Author:** ![zacslade](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/zacslade/32/3587_2.png) [@zacslade](https://forum.inductiveautomation.com/u/zacslade)\
**Post date:** [July 6, 2017, 5:45pm UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/2 "2017-07-06T17:45:54Z")

</div>

Just to clarify, when you say “sub tags”, do you mean the blue stuff, like “Value”, “Documentation”, “Name”, “Quality”, etc?

If so, then the way that I would go about it is to pass in the tagpath to the alarm tag, rather than passing in the tag itself. Then, do indirect bindings to all of the properties you need.

One more thing: you might want to run some tests with AlarmActiveUnackCount just to make sure it does what you think it does. If you’re looking for the number of active and unacked alarms in general, then you will probably have to do something fancy with system.alarm.queryStatus(…).

---

<div class="post-metadata">

**Author:** ![westlam](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@westlam](https://forum.inductiveautomation.com/u/westlam)\
**Post date:** [July 6, 2017, 6:27pm UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/3 "2017-07-06T18:27:21Z")

</div>

Thanks Zac,

Yes, the blue tags.

The intent is to show when a transmitter is in alarm and the unackcount allows me to blink when it is new or unacknowledged.

I ended up using the tagpath variable that came in with the UDT and I was able to build up the full tag and make it work.

tag({BSI\_AI.BSI\_AI::Meta.TagPath} + “/HH\_Alarm.AlarmActiveUnackCount”) \> 0

The UDT is fairly large and is needed for the Faceplate so I didn’t want to pass in separate tags to do this.

Thanks for your reply.

Mike

---

<div class="post-metadata">

**Author:** ![zacslade](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/zacslade/32/3587_2.png) [@zacslade](https://forum.inductiveautomation.com/u/zacslade)\
**Post date:** [July 6, 2017, 6:47pm UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/4 "2017-07-06T18:47:36Z")

</div>

Excellent! Glad you got it working. One more tip, even though it sounds like you’ve got it figured out.

If you plan to show several instances of this template on the display at once, then since you’re passing in a large UDT, it may end up being slow. When you pass a UDT into a template, the template subscribes to all of the parts of the UDT even if they aren’t being used, so it can result in slow load times on the client.

That’s the reason I suggested using the tag path. this way would mean you make a string parameter and pass in the path to the base UDT instance, and then do indirect bindings to all of its parts.

Anyway, test out what you’ve got and if it works well, then no problem. But if you encounter a lot of client slowness, then this is something you can try.

---

<div class="post-metadata">

**Author:** ![westlam](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@westlam](https://forum.inductiveautomation.com/u/westlam)\
**Post date:** [July 6, 2017, 7:33pm UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/5 "2017-07-06T19:33:42Z")

</div>

> [@zacslade](#):
>
> large UDT, it may end up being slow. When you pass a UDT into a template, the template subscribes to all of the parts of the UDT even if they aren't being used, so it can result in slow load times on the client.
> 
> That's the reason I suggested using the tag path. this way would mean you make a string parameter and pass in the path to the base UDT instance, and then do indirect bindings to all of its parts.

Thanks Zac,

I see your point. I'll look into doing that. I'm building up a framework now and want to get it right.

Any performance gains now will pay off later.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 7, 2017, 1:05am UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/6 "2017-07-07T01:05:27Z")

</div>

[quote=“zacslade, post:4, topic:14687”]  
When you pass a UDT into a template, the template subscribes to all of the parts of the UDT even if they aren’t being used, so it can result in slow load times on the client.[/quote]  
FWIW, this is the reason I _never_ use UDT parameters.

---

<div class="post-metadata">

**Author:** ![westlam](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@westlam](https://forum.inductiveautomation.com/u/westlam)\
**Post date:** [July 7, 2017, 3:32pm UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/7 "2017-07-07T15:32:12Z")

</div>

PTURMEL and ZacSlaDE:

I just tested this and confirmed the behaviour.

72 Tags to client for Direct Binding and 5 for Indirect. 2 different tags with the same UDT template.

This is a big item to note. It isn’t mentioned in the video’s anywhere.

We just finished an app with all direct binding and this would have been good to know.

At least my future apps will be better.

Thanks for the hints. It’s very much appreciated!

Mike

---

<div class="post-metadata">

**Author:** ![westlam](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@westlam](https://forum.inductiveautomation.com/u/westlam)\
**Post date:** [August 11, 2017, 5:41pm UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/8 "2017-08-11T17:41:53Z")

</div>

Question:

I’ve got the tagpath method working well in my template and popups. I’m struggling with being able to write a valve back to the PLC.

Using the Tag() function allows me to display a tag with no issues. Can’t figure out how to write it back using a numeric entry field.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 13, 2017, 6:15pm UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/9 "2017-08-13T18:15:53Z")

</div>

The easiest way to write back is to use the bidirectional checkbox on an indirect tag binding. (-:  
You’ll have to use a custom string property to contain the dynamic part of the tag path and reference it in the indirect tag binding, in lieu of using the tag() expression function.

---

<div class="post-metadata">

**Author:** ![westlam](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@westlam](https://forum.inductiveautomation.com/u/westlam)\
**Post date:** [August 14, 2017, 3:13pm UTC](https://forum.inductiveautomation.com/t/alarm-ack-status-animation/14687/10 "2017-08-14T15:13:56Z")

</div>

Ahhh, Thanks.

I was going down a rabbit hole making it a lot more complicated that I needed to. Way to many options with this software. Just allows me to get in trouble. 🙂

Thanks again.
