# RTAC-hosted OPC-UA and IEC-61850 data structures

**URL:** <https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [March 27, 2023, 6:42pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662 "2023-03-27T18:42:14Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [March 27, 2023, 6:42pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/1 "2023-03-27T18:42:15Z")

</div>

Here's a 61850 question that's probably not related to the new 61850 driver...

I'm sure many of us in power systems are familiar with those blue boxes from Pullman, WA that fill the bulk of our installs, including their RTAC platform. RTACs use IEC 61850-7-3 data types, such as Measured Value `MV` commonly used for analogs.

OPC-UA server was recently released as an option for RTACs, and we are optimistic about using this as our link to Ignition rather than DNP3. I can either address the specific tag name, in which case Ignition will return a JSON string that is not a tree in the tag browser. Or I can specifically target an attribute such as `.instMag` or `.Status` to pull the actual tag value I want.

But I'd rather have Ignition parse the metadata coming over on this structure, including timestamp and quality.

**Is there a way I can handle how Ignition parses data structures from an OPC-UA server?** Thanks!

An example JSON coming from a point on an RTAC (in this case `.instMag` is the actual tag value):

```python
{
  "instMag": 0.0,
  "mag": 0.0,
  "range": 0,
  "q": {
    "validity": 1,
    "detailQual": {
      "overflow": false,
      "outOfRange": false,
      "badReference": false,
      "oscillatory": false,
      "failure": false,
      "oldData": false,
      "inconsistent": false,
      "inaccurate": false
    },
    "source": 0,
    "test": false,
    "operatorBlocked": false
  },
  "t": {
    "value": {
      "dateTime": 133239072380000000,
      "uSec": 563724
    },
    "quality": {
      "leapSecondsKnown": false,
      "clockFailure": false,
      "clockNotSynchronized": true,
      "accuracy": 31
    },
    "daylight_savings_time": {
      "enabled": true,
      "activated": true,
      "offset": 60
    },
    "UTC_Offset": 0,
    "source": {
      "value": 4,
      "priority": 0
    }
  },
  "db": 100.0,
  "zeroDb": 2.0,
  "rangeC": {
    "hhLim": 1.0E+36,
    "hLim": 1.0E+35,
    "lLim": -1.0E+35,
    "llLim": -1.0E+36,
    "minVal": -1.0E+37,
    "maxVal": 1.0E+37
  }
}

```

---

<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:** [March 27, 2023, 6:54pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/2 "2023-03-27T18:54:56Z")

</div>

You'll have to make expression or derived tags that pull out, and manipulate if necessary, the information you're interested in.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [March 27, 2023, 6:55pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/3 "2023-03-27T18:55:40Z")

</div>

[https://docs.inductiveautomation.com/display/DOC81/jsonGet](https://docs.inductiveautomation.com/display/DOC81/jsonGet)

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [March 28, 2023, 3:46pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/4 "2023-03-28T15:46:08Z")

</div>

I guess I could set up UDTs for these 61850-7-3 data types and then nest them within my existing UDTs to parse the various values and metadata, but that would make life messy with tag paths everywhere else such as `[provider]path/to/tagName/instMag` instead of `[provider]path/to/tagName`. But that seems to run counter to a logical and semantic deployment of tag structures. I guess it's a trade off to determine if I want/need that metadata or if I want to simply map the root tag path to the value itself.

---

<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:** [March 28, 2023, 4:04pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/5 "2023-03-28T16:04:20Z")

</div>

Do you know if they apply the quality and timestamp metadata to the `instMag` (lossily mapping from 61850 to OPC UA) or not?

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [March 28, 2023, 4:50pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/6 "2023-03-28T16:50:52Z")

</div>

I'm working on some lab testing to compare that behavior to our previous DNP3 implementation, and may test out Ignition's new 61850 MMS driver as an alt as well.

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [March 31, 2023, 4:11pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/7 "2023-03-31T16:11:13Z")

</div>

When we forced invalid data or a different timestamp, these did not show up in the primary tag's `.Quality` or `.Timestamp` properties. I can map to these properties with separate attributes in the 61850-7-3 datatype by addressing `.q.validity` or `.t.value.dateTime` but that still doesn't solve my problem since everything in Ignition is built around the tag's own properties for things like quality overlays, historization timestamps, etc.

I imagine this has been a difficulty for anyone connecting to a OPC-UA server that outputs 61850-7-3 data structures like SEL RTACs. Any suggestions on how to handle this? I don't want to go back to DNP3 for this.

How are Ignition's `.Timestamp` and `.Quality` tag attributes populated and is there a way to map in certain sources for this? Thanks

---

<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:** [March 31, 2023, 4:29pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/8 "2023-03-31T16:29:55Z")

</div>

> [@msteele](#):
>
> How are Ignition's `.Timestamp` and `.Quality` tag attributes populated

for OPC tags they are derived from the StatusCode and timestamp given to us by the server.

> [@msteele](#):
>
> and is there a way to map in certain sources for this? Thanks

No.

> [@msteele](#):
>
> I imagine this has been a difficulty for anyone connecting to a OPC-UA server that outputs 61850-7-3 data structures like SEL RTACs.

This seems like a new product, or at least the first time I've heard of anyone using it. The way they chose to model it retains all 61850 quality and timestamp information but makes it difficult for clients to consume. I don't really have any clever ideas right now.

It would be nice if they at least mapped the severity of the 61850 quality to an equivalent severity in the OPC UA StatusCode, and the timestamp to the OPC UA SourceTime component in the DataValue, then used those derived values when accessing the primary value attribute for a given struct (our driver takes this approach).

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [March 31, 2023, 4:51pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/9 "2023-03-31T16:51:33Z")

</div>

> [@Kevin.Herron](#):
>
> This seems like a new product, or at least the first time I've heard of anyone using it.

Yes, they just released OPC-UA server as an add-on in RTAC R150 a few months ago. We are (were?) very excited to use it for projects. I'm reaching out to Schweitzer support to see if there's any way to update StatusCode and SourceTime on the server side.

---

<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:** [March 31, 2023, 4:54pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/10 "2023-03-31T16:54:56Z")

</div>

> [@msteele](#):
>
> Yes, they just released OPC-UA server as an add-on in RTAC R150 a few months ago.

Hmm... we have an SEL-3505... I wonder if we can get the same add-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:** [March 31, 2023, 4:56pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/11 "2023-03-31T16:56:53Z")

</div>

Ah, looks like R150 is the firmware version. I'll have to look into this. If nothing else it's good to have more embedded OPC UA servers to test with.

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [March 31, 2023, 5:04pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/12 "2023-03-31T17:04:06Z")

</div>

OPC UA is only supported on SEL-3350, 3555, and 3560.

Our go-to is the SEL-3555 (We also run Ignition on SEL-3355s - the same substation-grade hardware but with Windows Server). The older RTAC models are based on a PowerPC architecture and are not getting certain new features.

SEL via their local distributors are usually great about lab/loaner units if you're interested in testing.

---

<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:** [March 31, 2023, 5:18pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/13 "2023-03-31T17:18:42Z")

</div>

Darn. We have an SEL-3555 too but I'm pretty sure it's just on loan to us.

---

<div class="post-metadata">

**Author:** ![FrankP](https://avatars.discourse-cdn.com/v4/letter/f/34f0e0/32.png) [@FrankP](https://forum.inductiveautomation.com/u/FrankP)\
**Post date:** [May 18, 2023, 7:38pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/14 "2023-05-18T19:38:10Z")

</div>

@msteele, If you guys need another heavy user of "Blue Boxes" to hit up their sales and support team on the same issue, please let me know 🙂

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [May 19, 2023, 2:36pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/15 "2023-05-19T14:36:33Z")

</div>

@FrankP we had a meeting with some of their product team on this recently. SEL is aware and working on a change to their OPC-UA implementation. It is dependent on a change to an upstream library for their OPC-UA implementation, but they're pushing on that as well. I don't want to get into more detail or specifics on their behalf, but our course of action is to keep using DNP3 for our active 2023 projects with a goal of using OPC-UA for future projects.

---

<div class="post-metadata">

**Author:** ![joshdunstan](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/joshdunstan/32/43306_2.png) [@joshdunstan](https://forum.inductiveautomation.com/u/joshdunstan)\
**Post date:** [January 24, 2024, 4:17am UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/16 "2024-01-24T04:17:15Z")

</div>

Hey there,

Did you end up getting any more intel out of SEL and have begun using OPCUA?

I'm in the same predicament, though mine is datatypes. It seems there's an issue with how the RTAC presents "DATE\_AND\_TIME" over OPC, defaulting to FILETIME which is a 64 bit (vs 32 bit) var, which causes things to break on the client end.

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [January 24, 2024, 2:54pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/17 "2024-01-24T14:54:38Z")

</div>

Nope, still using DNP3 for RTAC to Ignition data flows. Last we heard, they would need changes to a Codesys library.

We're meeting with some RTAC product managers later today about another topic, so I'll see if I can sneak in a request for an update on this topic.

---

<div class="post-metadata">

**Author:** ![joshdunstan](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/joshdunstan/32/43306_2.png) [@joshdunstan](https://forum.inductiveautomation.com/u/joshdunstan)\
**Post date:** [January 24, 2024, 10:39pm UTC](https://forum.inductiveautomation.com/t/rtac-hosted-opc-ua-and-iec-61850-data-structures/71662/18 "2024-01-24T22:39:27Z")

</div>

Thanks mate,

Have you just been using the native Ignition driver (we have lots of issues with it), the new one, or the 3rd party?
