# Ignition OPC UA Server namespace

**URL:** <https://forum.inductiveautomation.com/t/ignition-opc-ua-server-namespace/45401>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [April 8, 2021, 4:53pm UTC](https://forum.inductiveautomation.com/t/ignition-opc-ua-server-namespace/45401 "2021-04-08T16:53:41Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![levi\_jacobs](https://avatars.discourse-cdn.com/v4/letter/l/ba9def/32.png) [@levi\_jacobs](https://forum.inductiveautomation.com/u/levi_jacobs)\
**Post date:** [April 8, 2021, 4:53pm UTC](https://forum.inductiveautomation.com/t/ignition-opc-ua-server-namespace/45401/1 "2021-04-08T16:53:41Z")

</div>

We are working on upgrading a system from 7.9 to 8.1, and noticed that addressing tags on ignition’s OPC server seems to have changed?

For example, I have this tag: **[default]testme**  
Using ignition’s opc quick client in 7.9, if i subscribe to that tag the address shows: ns=2;s=[default]testme

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/6/768af5889fb86e83ad65af275a0425bed108580b.png)

In 8.1, doing the same thing shows: nsu=urn:inductiveautomation:ignition:opcua:tags;s=[default]/testme

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

Is there a reason for this?  
Is there a way we can keep the old opc addresses going into 8.1?

Thank you.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [April 8, 2021, 5:25pm UTC](https://forum.inductiveautomation.com/t/ignition-opc-ua-server-namespace/45401/2 "2021-04-08T17:25:30Z")

</div>

You can still use the index-based namespace prefix, both formats should work, and as long as you’re connected to a server that is deterministic in which namespace URIs is assigned to which index in the namespace array then it won’t matter. (Like ours)

Dragging from the OPC Browser will use this new format, though, and there’s nothing you can do to change that.

edit: to further clarify, only namespace indices 2 and above default to the new syntax. It is assumed namespaces at indices 0 and 1 will always have the same URI. So when dragging from the OPC browser you may see the old format if the Node belongs to the namespace at index 0 or 1.

---

<div class="post-metadata">

**Author:** ![levi\_jacobs](https://avatars.discourse-cdn.com/v4/letter/l/ba9def/32.png) [@levi\_jacobs](https://forum.inductiveautomation.com/u/levi_jacobs)\
**Post date:** [April 8, 2021, 5:45pm UTC](https://forum.inductiveautomation.com/t/ignition-opc-ua-server-namespace/45401/3 "2021-04-08T17:45:56Z")

</div>

Great. I tested using the index-based namespace and it’s working for me.

One other thing. It looks like in 8.1 there is a slash between the tag provider name and the rest of the tagpath.  
7.9: **s=[default]testme**  
8.1: **s=[default]/testme**

This isn’t a huge problem. Just wondering if this how addressing is going to work from now on?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [April 8, 2021, 5:48pm UTC](https://forum.inductiveautomation.com/t/ignition-opc-ua-server-namespace/45401/4 "2021-04-08T17:48:45Z")

</div>

> [@levi\_jacobs](#):
>
> Just wondering if this how addressing is going to work from now on?

Yeah, my guess is we inadvertently changed that between 7.9 and 8.0. I won't change it back now because it's been that way for too long and would break things for current 8.x users.

---

<div class="post-metadata">

**Author:** ![Eugene49](https://avatars.discourse-cdn.com/v4/letter/e/c6cbf5/32.png) [@Eugene49](https://forum.inductiveautomation.com/u/Eugene49)\
**Post date:** [October 24, 2023, 1:47am UTC](https://forum.inductiveautomation.com/t/ignition-opc-ua-server-namespace/45401/5 "2023-10-24T01:47:22Z")

</div>

I would like to re-clarify.

On Ignition OPC tag, it points to OPC Path: `ns=2;s=some_identifier`  
On Ignition OPC Browser, same tag has the following path: `nsu=KEPServerEX;s=some_identifier`

How did `ns=2` equal to `nsu=KEPServerEX`?

I know that `ns=2` refer to the index of array, where "KEPServerEX" lives.

But how do I validate that, where is the ns Array?  
In other words, If I am to write a UDT. which pattern do I follow?  
`ns=2` or `nsu=KEPServerEX`  
Say I want to use `ns=2`, how do I know that its `ns=2` not `ns=3` for example?

Thanks.

---

<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 24, 2023, 10:45am UTC](https://forum.inductiveautomation.com/t/ignition-opc-ua-server-namespace/45401/6 "2023-10-24T10:45:48Z")

</div>

> [@Eugene49](#):
>
> Say I want to use `ns=2`, how do I know that its `ns=2` not `ns=3` for example?

You don't know. That's why the name is used. OPC spec indicates that ns=0 and ns=1 are the only ones that you can be sure won't get moved by the OPC server arbitrarily. Above ns=1, only the names are reliable.
