# "system.opc.readValue" returns bad quality

**URL:** <https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149>\
**Category:** Ignition\
**Created:** [May 3, 2022, 8:42am UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149 "2022-05-03T08:42:00Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aitor\_Garitaonandia](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aitor\_Garitaonandia](https://forum.inductiveautomation.com/u/Aitor_Garitaonandia)\
**Post date:** [May 3, 2022, 8:42am UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149/1 "2022-05-03T08:42:00Z")

</div>

I am using Ignitions OPC UA server (Ignition OPC UA Server), I have configured an Omron FINS/TCP connection with a PLC. I can read the tags from the OPC Quick Client and from the Tag Browser, but when I try to read the tags using “system.opc.readValue” it returns a None value and a bad quality: Bad(“Bad\_NodeIdUnknown: The node id refers to a node that does not exist in the server address space.”).  
Thanks for any answer.

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [May 3, 2022, 8:58am UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149/2 "2022-05-03T08:58:35Z")

</div>

I’m thinking there’s an issue with the path you’re passing to the function. Can you show us the full call ?

---

<div class="post-metadata">

**Author:** ![Aitor\_Garitaonandia](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aitor\_Garitaonandia](https://forum.inductiveautomation.com/u/Aitor_Garitaonandia)\
**Post date:** [May 3, 2022, 9:10am UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149/3 "2022-05-03T09:10:41Z")

</div>

Thank you Transistor

```auto
server = "Ignition OPC UA Server"
path = "[default]_Prueba señal Omron FINS/TCP__Ciclo Pulidora exteriores D5505"
qualifiedValue = system.opc.readValue(server, path)
print "Value: " + str(qualifiedValue.getValue())
print "Quality: " + qualifiedValue.getQuality().toString()
print "Timestamp: " + qualifiedValue.getTimestamp().toString()

```

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [May 3, 2022, 9:42am UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149/4 "2022-05-03T09:42:28Z")

</div>

Tip: use the `</>` code formatting button when posting code. It doesn’t matter in this instance but it does preserve code indentation and apply syntax highlighting. It’s essential for Python and makes any code much easier to read. There’s an edit button (pencil icon) below your post so you can fix it.

---

<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:** [May 3, 2022, 10:05am UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149/5 "2022-05-03T10:05:03Z")

</div>

I see a non-ASCII character in `path`. Use the `u'something'` syntax for string constants with unicode characters.

---

<div class="post-metadata">

**Author:** ![Aitor\_Garitaonandia](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aitor\_Garitaonandia](https://forum.inductiveautomation.com/u/Aitor_Garitaonandia)\
**Post date:** [May 3, 2022, 10:31am UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149/6 "2022-05-03T10:31:14Z")

</div>

If I understand you correctly, you mean something like this

```auto
server = "Ignition OPC UA Server"
path = u'[default]_Prueba señal Omron FINS/TCP__Ciclo Pulidora exteriores D5505'
qualifiedValue = system.opc.readValue(server, path)
print "Value: " + str(qualifiedValue.getValue())
print "Quality: " + qualifiedValue.getQuality().toString()
print "Timestamp: " + qualifiedValue.getTimestamp().toString()

```

But i have the same results.

---

<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:** [May 3, 2022, 10:33am UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149/7 "2022-05-03T10:33:32Z")

</div>

Wait. What is `[default]` ? That looks like a tag path, not an OPC Item Path. You need to use the OPC Item Path.

Or perhaps you meant to use a `system.tag.read*()` function ?

---

<div class="post-metadata">

**Author:** ![Aitor\_Garitaonandia](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aitor\_Garitaonandia](https://forum.inductiveautomation.com/u/Aitor_Garitaonandia)\
**Post date:** [May 3, 2022, 3:40pm UTC](https://forum.inductiveautomation.com/t/system-opc-readvalue-returns-bad-quality/59149/8 "2022-05-03T15:40:46Z")

</div>

I have tried using an OPC Item Path with the function `system.opc.readValue` and also using the tag path with the function `system.tag.read*()`, and both have worked.  
Thank you pturmel.
