- Alright, so
- [Male Student] Selling IIOT.
- Selling IIOT.
So this is selling the benefits of IIOT to SI's.
The second video.
We actually weren't going to do this
but I'm gonna get a little, this is more technical.
I want to kind of explain the value.
I touched on some things in the previous video
that it might have lost some people.
So this video should help shore that up, alright.
So what I've got over here is I have,
we're going to use Ignition for our example here.
It doesn't have to be Ignition.
This could be a couple of other,
this could be Flow software.
We could be Flow support MQTT, Ignition support MQTT,
Factory studio support.
There's a bunch of platforms that support it,
but in this case I'm going to explain Ignition.
I'm going to use Ignition as the example.
So this is an Ignition window, okay.
And I'm going to show you how you use IIOT to build
dynamic, self aware screens.
So this is my tag structure inside of Ignition.
These are my tags.
Now these tags, using Spark Plug B from RPLC'S
we can generate these tags using MQTT.
So I can bring on new lines, right.
So I can bring on line 1
so our screen over here lines up with the line.
We basically built a line screen, okay.
And I'm going to explain what that means in a minute.
But this, these boxes also line up with our PLC's.
So line one, once our PLC publishes into the name space,
this is the client ID.
Line one is going to show all of the objects
that live inside that PLC, using MQTT.
In the old days what you got to do is,
you have to have your OPC server point to this PLC.
You have to build all your tags in your OPC server,
and then they'll be here.
There's a ton of engineering that goes into
just getting the line and all the tags in.
What MQTT does is it takes all that away.
Here's the other thing,
in the old way your screens have to know
what all the tags are that exist already.
How many lines you already have.
Because you're gonna statically bind,
if this is an indirect window,
you're going to statically put in what the lines are.
What MQTT allows us to do
is build the window fully dynamic.
That is if the line exists,
therefore it has a visualization
and I'm going to explain that here.
That's what I'm doing.
Alright, so we're looking at Ignition
and we're looking at an IIOT solution here.
So these are our tags inside of Ignition
and all of these are MQTT topics.
Okay, so these are all inside of the MQTT engine,
inside of Ignition.
That's what we're looking at here, okay.
So on my window,
I've built a window that has basically two things.
It has a root container.
If you develop in Ignition
you know there's a root container.
We've created a custom property on the root container
called parent path.
We're going to use that for our indirection.
Okay, Zach you already know how this works.
We're going to use parent path for our indirection.
Our parent path is a pointer
to the string value of this path, okay.
So what that means is if my parent path is line one,
it looks something like this.
ACME, plant 1, line 1.
My objects, my V1 object,
the way that I'm going to get my values for V1
is I'm going to take my parent path
and I'm going to say my tag in an expression
is parent path plus valve 1, okay.
You already understand that, right.
So that's how the window itself is actually built,
through indirection.
And anybody who develops with Ignition
this should be familiar.
I'm gonna take it one step further.
So what we've also done is there's a template canvas
sitting on top of the window,
and that template canvas is basically a data set.
It has a date set that has a row, a row, row 1,
would be all the information valve 1.
Row 2 is valve 2.
Row 3 is pump 1,
and row 4 is pump 2.
Okay.
Now, that data set
that's running inside this template canvas
tells us which template should go where,
and where should it get it's values from, okay.
So you can build a dynamic screen using template canvas.
We do this all the time.
What essentially what we do is,
we build this data set,
every time this parent path changes,
what we do is we go and build the data set
and tell the screen which components
should go on the screen.
For example, on line 1,
I may have valve 1, valve 2,
pump 1, pump 2.
But line 2 may have
v1, v2, and p1.
So when we change the parent path to line 2,
once it just shows up,
then what we do is we rebuild this data set.
It automatically changes on a property change.
It rebuilds the data set,
and only puts three templates on the window.
When I point back to line 1,
we rebuild the data set for the template canvas
and all four show up.
Now, that's just one part of it.
What's the second part?
The second part is, all of these things just show up
when you plug the PLC in.
You plug the PLC in, you point it to the broker.
They show up and now you have self-aware scada.
- [Male student] I know the answer
but how would the line 1, line 2 show up in the drop down?
What function would you use?
- So there's a couple of ways to do that.
In some of our projects we do it differently,
but for the most part what we're doing
is we are recursively browsing
before we populate the drop down.
So what we say for the drop down itself,
is that that drop down is for plant 1, okay.
And then we have our drop down here.
When the window is opened up,
when the window is opened up we point to plant 1,
and we go look at all of the child objects
which should be our lines in plant 1,
or it could be our areas as well.
And then we populate the drop down
based on which ones exist recursively.
Now, you want to know the advantage of Ignition 8,
and again if anybody who doesn't know
anything about Ignition, I apologize
but the big advantage of Ignition 8
is that you will no longer have to recursively browse here.
You'll be able to subscribe to this.
Yes.
So Ignition's new tag structure allows you to
not only subscribe to individual tags
but also the properties of those tags.
- Yes, so you will no longer need to browse
to see what exists there.
You can subscribe to it.
- [Male Student] Last question.
- Yeah.
- Can you build this window
and make it available for download on Github?
- In fact I already have an example of the window,
we can do that.
Yeah, I already, in fact
- [Male Student] But we should build it live
and then show the screen accordingly.
- Yeah, well we can do is, here's basically what happens.
Right, for the self-aware scada here's what happens.
I build in my PLC.
So this is my PLC.
I build a valve object,
and I build a pump object.
Then inside my PLC I create instances of that object.
In this case I've created two instances of the valve,
and two instances of the pump.
So when I have a v1, and a v2, and a p1 and a p2,
as soon as I plug the PLC in,
and I'm going to publish over MQTT
then what's going to happen is it's v1, v2, p1, p2.
Then what happens is when we go to our window,
which is also built,
we have this v1 template,
is a template that I developed for that object.
So when I think of it as the proposition for the SI,
is I write the build the object inside my PLC
that is valve
and then I make an object that lines up with my valve.
And it can include lots of stuff.
For example, underneath our valves
we could have a folder called alarms
with high high, high, low, low low.
And then on my template I could right click
and go to a popup window that allows me to do my set points
for high high high, low low low.
I can have a fully integrated, fully dynamic,
self-aware scada system.
Which we've done already, we've done it many times.
In fact I have a great example in a plating application.
Where they can add it PH sensors, conductivity sensors,
and if the conectivity sensor exists, if it's there,
it shows up in the name space and shows up on the screen.
If it doesn't then it's not there.
If they're using two tanks as opposed to one tank,
all they got to do is add the second tank.
It just shows up and the second tank is on the screen.
So, this is the value of IIOT.
Again, and I'm inside baseball.
Force multiplication to other SI's keep asking me,
how are you guys doing this?
And I keep saying,
well, stop doing it the way everyone taught you to do it
and look at what's here.
So the answer here is,
this is the dream architecture, right.
You know, what we say, we were talking about
how do you digitally transform for executives right.
You go to the executive
and you say architect your dream, right.
We took the same medicine.
We architected our dream solution.
We said, in a perfect world
how would a systems integration go.
- [Male Student] They don't even call you
they just add the device.
- That's right.
In the perfect world they just add the device.
You know, there are system integrators that say,
well then I'm not going to get paid for any of this.
You're right, you're not.
You're going to get paid for it once,
but what you're going to do is sell the solution
they're going to buy.
You're not going to engineer it at all.
You're going to build one time
and they're going to buy the solution from you.
But you want to know where they're going to hire you.
They're going to hire you here.
They're going to ask you to turn this into information.
Right now, right now they're not spending money here
because they keep spending it on this, right.
There's your value proposition for SI's.