Home / FactoryTalk Optix / Optix for HMI
The latest release of FactoryTalk Optix, v1.6, improves the handling of structured data types that originate from PLCs and OPC UA servers. You can now define variables created in the Optix design time environment with the same structured data type as those imported from the PLC or OPC UA server.
Transcript
(00:01) This video would take a minute to show one of the new features that came in version 1.6 of Fector Talk Optics. Version 1.6 came out there towards the uh right at the end of April um 2025 um and is now available to use and download from Rockwell’s website. So um just to show that we are using that uh latest release which is the 1.6.0.626 release.
(00:29) And I want to go to the um first go under the question mark go to release notes and always good to go review the release notes once a new version comes out and for our 1.6 six release, you know, we can see there’s been some updates around core capabilities, expanded architecture, and some data connectivity um and enhancements and improvements.
(00:50) But for what I want to talk about here in this video is the second bullet under core capabilities, which is basically improved handling of variables with structured data types that are imported from a PLC or from an OPC UA server. So these are the two places that we can take this. So some sort of structured PLC tag such as a UDT user defined um you know data type or uh uh if it’s coming in from an OPCUA server that’s what’ll work here in this latest version.
(01:27) So what does this mean and what does this look like? So, I’ve got a pretty much a blank optics application kind of pre-made. And I’ve I’ve got a Logix controller logix’s application that I’ve kind of already imported in. And there’s not a lot to this um tag structure at the moment. Uh if I do look at this, I have these two structured tags called uh S01 and S02.
(01:56) And there’s some structure to this. And what it what this really is is back in the control logics um there was a add-on instruction to create a sine wave. And I brought that into the project and then I made two instances of that um add-on instruction which came from the sample code library.
(02:18) But anyway, the structure for the uh add-on instruction looks like this. Now if we come down to you know still underneath the uh the comm drivers underneath my logix’s controller um we have the folder called types and we also see the data types and there is a sine wave uh data type or sin wave data type that’s the type which defines the structure that basically comes in these two um variables s01 and s02 and we’ve seen some um examples of the UDT in some previous videos and how we can use those in as an such as in the alias um capability in optics. But
(03:00) what’s new is that if I want to map these structured variables into the model folder, so perhaps I’m going to, you know, read these structured variables from a controller and then I want to map them into the model folder to be sent out say on OBCUA or MQTT or for whatever reason for some other contextualization purposes um up before version 1.6 six.
(03:28) Um, I would have had to have built that structure manually. So, what’s new here is essentially that I I now have a data type and when I create a new variable, I’ll have a data type that will actually be called sinwave because that’s the name of the data type structure that um I have imported.
(03:48) Right? So, your data type name will will vary and differ based on the name of your UDT. So, let’s go to the model folder. And right now, there’s nothing in the model folder at all. I’m going to simply rightclick. And when you rightclick and you can say new, you have the option for an object or for a variable. So, in this case, I’m going to actually choose a variable.
(04:13) And the name of it here is variable one. I can of course rename that um to whatever I want. And maybe since I’m, you know, using the sine wave uh structure as an example, I might call it sine one or sine 01. Now over here in the properties, we see that s01 by default came in as an integer 32. If I click on that data type and if I now say show all and if I scroll down into the S’s.
(04:49) So I’m looking for the data type that matches what came in. And we see now we have a data type called SIN wave which of course matches what came in here in my logic controller. So I’m going to choose SIN wave and say select. Now when I did that, we don’t really see any change here. We don’t see any structure underneath this sign 01 over here.
(05:17) But if I um if I were to expand this out a little bit, you see that now it says structured value. And if I click on the the little um edit icon, you see that here is the structured value. Here are the tags that are now part of the structured value. So I have the enable in out period phase shift amplitude sine wave. Um basically the same things we see right here under sign 01.
(05:45) Enable in out period phase shift amplitude sine wave um number of cycles and error. So that structure got got put there and I can say apply. Now, if I wanted to, I could make any of these um dynamic links. So if I wanted to map say sign01 here from the controller, I can essentially click on this dynamic link and I can of course map it to my com driver logs tags uh sign01 enable in and say select.
(06:26) Right? So, I could do that. But again, there’s still no structure showing here in the sign. But let’s just come to this screen here and let’s add something to this screen. Perhaps uh on my um main window I want to just add a base control such as a LED perhaps because this first um enable in enable out are booleans.
(06:54) So I can tie that perhaps the LED to one of those structured uh to that that structured uh variable. So if I click the dynamic link here on the LED. Now if I come down I have my model folder. I have my sign01 and I now have the ability to expand this and see the structure that is associated with that sign01 and I can assign it to enable in. Right.
(07:27) So um so again under the logics controller we have the structured variable the UDT structured variable comes in right and I of course could use use it direct from the controller but if I needed to map it to the model folder um the easy path now is to create a variable and then make it a data type that matches the UDT um that comes in from the controller and again in 16 this works with both the controller tags as well as if you’re bringing in data from an OPCUA server.
(08:03) And now this model folder is created and this sign uh or the sign01 variable is created under the model folder. If I had a a widget that I wanted to um make an alias on, I could actually take this variable and make that uh assign that to the uh to the to the alias of that widget. and to pass all these structured um all these structured variables right into the widget through the alias capabilities and optics.
(08:35) All right, so that’s one of the new features from 1 uh6. Again, invite you to uh look at the release notes and you can look at the other new features that came about in version 1.6 as well.
Tutorial List
- Linking pushbuttons to a Logix tag
- Dynamic Link Key-Value Converter
- Create reusable graphics
- Object model alias
- Alias with Logix a UDT
- Dynamic alias index with Logix UDT
- Popup Dialog Box
- Build a faceplate
- Create Variables with Structured Data Types
- Rockwell Automation Device Libraries for Optix
- Optix Presentation Engines
- New Windows for Web Presentation Engine
