# \[IGN-14056\] Reading description attribute from OPC UA server

**URL:** <https://forum.inductiveautomation.com/t/ign-14056-reading-description-attribute-from-opc-ua-server/90170>\
**Category:** Ignition\
**Tags:** perspective, vision\
**Created:** [May 9, 2024, 3:32pm UTC](https://forum.inductiveautomation.com/t/ign-14056-reading-description-attribute-from-opc-ua-server/90170 "2024-05-09T15:32:28Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Zachary\_Zipper](https://avatars.discourse-cdn.com/v4/letter/z/bbe5ce/32.png) [@Zachary\_Zipper](https://forum.inductiveautomation.com/u/Zachary_Zipper)\
**Post date:** [May 9, 2024, 3:32pm UTC](https://forum.inductiveautomation.com/t/ign-14056-reading-description-attribute-from-opc-ua-server/90170/1 "2024-05-09T15:32:28Z")

</div>

I have a bunch of Booleans in a Beckhoff program used as permissive / interlocks. These are being exposed to the OPC UA server which Ignition is connected to. One cool thing is that the comments of each Bool that explains each interlock is also pulled into the OPC server in the "description" attribute.

I am trying to create a perspective screen that given a path to an OPC node, will browse all the booleans variables in that node and pull their values and descriptions. I got the script part working in the script console, but when transferring it to perspective components it broke because the `system.opc.browseServer()` returns a _different_ object if you are not calling it in the vision client (and I assume script console due to my experience) according to the [documentation](https://www.docs.inductiveautomation.com/docs/8.1/appendix/scripting-functions/system-opc/system-opc-browseServer).

In short, the [OPCBrowseElement](https://files.inductiveautomation.com/sdk/javadoc/ignition80/8.0.12/com/inductiveautomation/ignition/common/opc/OPCBrowseElement.html) object has a `getDescription` accessor, but the [PyOPCTagEx](https://files.inductiveautomation.com/sdk/javadoc/ignition80/8.0.12/com/inductiveautomation/ignition/common/script/builtin/AbstractOPCUtilities.PyOPCTag.html) lacks this functionality. Can I ask what is the reasoning for this? Will there ever be a chance I can access the description attribute from an OPC server within the perspective scope?

---

<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:** [May 9, 2024, 3:36pm UTC](https://forum.inductiveautomation.com/t/ign-14056-reading-description-attribute-from-opc-ua-server/90170/2 "2024-05-09T15:36:18Z")

</div>

I can open a ticket to add a description field to `PyOPCTagEx`. Doesn't really help you out right now, unfortunately.

---

<div class="post-metadata">

**Author:** ![Zachary\_Zipper](https://avatars.discourse-cdn.com/v4/letter/z/bbe5ce/32.png) [@Zachary\_Zipper](https://forum.inductiveautomation.com/u/Zachary_Zipper)\
**Post date:** [May 9, 2024, 3:43pm UTC](https://forum.inductiveautomation.com/t/ign-14056-reading-description-attribute-from-opc-ua-server/90170/3 "2024-05-09T15:43:09Z")

</div>

Thank you for opening a ticket. Until an ADS driver comes I'm sure I will run into this again sometime in the future!

---

<div class="post-metadata">

**Author:** ![Zachary\_Zipper](https://avatars.discourse-cdn.com/v4/letter/z/bbe5ce/32.png) [@Zachary\_Zipper](https://forum.inductiveautomation.com/u/Zachary_Zipper)\
**Post date:** [May 9, 2024, 3:46pm UTC](https://forum.inductiveautomation.com/t/ign-14056-reading-description-attribute-from-opc-ua-server/90170/4 "2024-05-09T15:46:13Z")

</div>

Also why you are at it, can you include this mismatch in your ticket? It through me off for a good bit when I first tried transferring from the script console to the perspective screen lol

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/2/32c9cfd8cb5fccfbe99b89b21e4129d16dfc79fd.png)

---

<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:** [May 9, 2024, 3:47pm UTC](https://forum.inductiveautomation.com/t/ign-14056-reading-description-attribute-from-opc-ua-server/90170/5 "2024-05-09T15:47:46Z")

</div>

Can't do anything about that, renaming one or the other would break things. This corner of the scripting API is old and janky.

---

<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:** [August 23, 2025, 12:08am UTC](https://forum.inductiveautomation.com/t/ign-14056-reading-description-attribute-from-opc-ua-server/90170/6 "2025-08-23T00:08:18Z")

</div>

> [@Kevin.Herron](#):
>
> I can open a ticket to add a description field to `PyOPCTagEx`. Doesn't really help you out right now, unfortunately.

I just implemented (the equivalent for 8.3) this, hopefully for 8.3.1.
