# UDTs with several controller brands in one project

**URL:** <https://forum.inductiveautomation.com/t/udts-with-several-controller-brands-in-one-project/29431>\
**Category:** Ignition\
**Created:** [October 28, 2019, 2:28am UTC](https://forum.inductiveautomation.com/t/udts-with-several-controller-brands-in-one-project/29431 "2019-10-28T02:28:28Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![john.eichler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/john.eichler/32/24632_2.png) [@john.eichler](https://forum.inductiveautomation.com/u/john.eichler)\
**Post date:** [October 28, 2019, 2:28am UTC](https://forum.inductiveautomation.com/t/udts-with-several-controller-brands-in-one-project/29431/1 "2019-10-28T02:28:28Z")

</div>

Hi All.

I will soon be deploying ignition at our factory. We have a range of PLCs - Siemens, AB, Schneider and others.

In my last ignition project, I used UDTs linked to faceplates but this was only using S7-1200 controllers. This approach saved a lot of time and made maintenance and additions very simple.

What is the best approach for tags when using multiple controller brands? Is it better to set up many tags with basic data types (bool, real, int etc.) or to maintain a library of UDTs and faceplates for each controller brand?

Any experience or advice would be welcome.

Cheers.

---

<div class="post-metadata">

**Author:** ![witman](https://avatars.discourse-cdn.com/v4/letter/w/d2c977/32.png) [@witman](https://forum.inductiveautomation.com/u/witman)\
**Post date:** [October 28, 2019, 3:04am UTC](https://forum.inductiveautomation.com/t/udts-with-several-controller-brands-in-one-project/29431/2 "2019-10-28T03:04:20Z")

</div>

If you use indirect binding for your templates, they’ll work alright with different UDTs for the different controllers as long as you give the same tags the same names and structure on the Ignition side (doesn’t matter if they have differing names/structure in the controller). You could also setup UDTs in Ignition that by default match up with your main controller UDTs, and then use OPC path overrides to link them up to controllers with differing UDTs. Using scripting to create the instances with overrides can make this reasonable. Either of these approaches would allow using the same templates with all the controllers.

---

<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:** [October 28, 2019, 9:39am UTC](https://forum.inductiveautomation.com/t/udts-with-several-controller-brands-in-one-project/29431/3 "2019-10-28T09:39:56Z")

</div>

+1 for @witman’s approach. Be sure to _ **not** _ use UDT parameters in your templates, just pass a tagpath string. Then indirect bind individual elements of your UDTs to properties in the templates. This allows you to point your templates at totally different UDTs, as long as they have they needed elements with the same names.

---

<div class="post-metadata">

**Author:** ![witman](https://avatars.discourse-cdn.com/v4/letter/w/d2c977/32.png) [@witman](https://forum.inductiveautomation.com/u/witman)\
**Post date:** [October 29, 2019, 6:28pm UTC](https://forum.inductiveautomation.com/t/udts-with-several-controller-brands-in-one-project/29431/4 "2019-10-29T18:28:07Z")

</div>

> [@pturmel](#):
>
> Be sure to _ **not** _ use UDT parameters in your templates, just pass a tagpath string. Then indirect bind individual elements of your UDTs to properties in the templates.

Yes, thanks for clarifying. This is what I meant by "use indirect binding."

---

<div class="post-metadata">

**Author:** ![john.eichler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/john.eichler/32/24632_2.png) [@john.eichler](https://forum.inductiveautomation.com/u/john.eichler)\
**Post date:** [November 3, 2019, 9:45pm UTC](https://forum.inductiveautomation.com/t/udts-with-several-controller-brands-in-one-project/29431/5 "2019-11-03T21:45:44Z")

</div>

Thank you for the quick reply. Sorry it took so long to respond.

John

---

<div class="post-metadata">

**Author:** ![john.eichler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/john.eichler/32/24632_2.png) [@john.eichler](https://forum.inductiveautomation.com/u/john.eichler)\
**Post date:** [November 3, 2019, 9:46pm UTC](https://forum.inductiveautomation.com/t/udts-with-several-controller-brands-in-one-project/29431/6 "2019-11-03T21:46:44Z")

</div>

Yes, this sounds good. All my existing templates have a tag path (string) input. I’ll do some testing.

Thanks

John
