Ignition Community Live with Grantek and Opto 22
The Quickest and Simplest Method for Getting Plant Floor Data into Ignition: Applications, Case Studies and Live Demos54 min video / 47 minute read
The power of Ignition by Inductive Automation can be further realized with rich data from the plant floor. Grantek and Opto 22 will share and demonstrate how to use Ignition software with the groov RIO edge I/O system and Ignition Edge-enabled groov EPICs to quickly obtain ancillary sensor data and secure your legacy PLC systems, allowing you to fully optimize your manufacturing operations at scale. This Ignition Community Live features Doug Yerger, Principal Engineer at Grantek, in a conversation with Benson Hougland, Vice President at Opto 22. They will discuss how to improve processes, reduce maintenance costs, and obtain better data for business decisions.
Geoff: Welcome, everyone. We'll get started now. My name is Geoff Farrer, and I wanted to welcome you to Ignition Community Live Episode 15. I'm the marketing manager at Grantek, and I will be the moderator of today's session. Grantek is a Premier Integrator and Enterprise Integrator with Inductive Automation, and we're happy to join our partner, Opto 22, as host for today's session. This episode of Ignition Community Live is titled “The Quickest and Simplest Method for Getting Plant Floor Data into Ignition: Applications, Case Studies and Live Demos.” I'd like to introduce today's host, Benson Hougland, of Opto 22, and Doug Yerger, of Grantek. And with that, I'll pass it on to Benson.
Benson: Okay. Thanks, Geoff, and hello, everyone. You might be able to see some video there as well. I'm broadcasting live from Opto 22 studios here in Temecula, California. Very excited to work with Grantek and Doug on this demo of our RIO system communicating directly to Ignition, so getting sensor data directly into the Ignition platform. My name is Benson. I've been with Opto for 25 years and... Now, Opto is a 46-year-old, privately held industrial automation manufacturer, and we also develop software that runs on our hardware. We have installed BASE in the hundreds of millions and thousands of customers worldwide. We have a reputation in the industry for truly combining the notion of OT systems with their ruggedness and reliability with IT systems and their open-source capabilities and capabilities for data-sharing and, of course, reducing friction between IT and OT. And you're gonna get a first-hand look at that today. It's mostly live demos, so we're very excited to get started. Doug?
Doug: Hello, and I'm Doug Yerger. I'm a principal engineer at Grantek. I've been with Grantek a little over 11 years, but I've been doing automation since 1989, when I first learned to program my first PLC. Grantek specializes, and as you can see on the slide, we have food, beverage, CPT, pharmaceuticals, as well as many other industries. And we go from the plant floor through MES and ERP integrations.
Benson: Great. On today's topic, again, very excited, mostly a live demo, a little bit of slides here and there, but essentially, what we're gonna do is we're gonna wire up two sensors, and let me just pop my video back in here so you guys can see a little bit of what that might look like. I got a couple of sensors here that I'm going to wire up, and a stack light right over here, and we're gonna wire up that to groov RIO, and then I'm gonna configure that I/O, and then also set up MQTT with Sparkplug B to send that information right over to the broker so that Doug can...
Doug: And then I'm gonna... Over here in Pennsylvania, I'm gonna configure Ignition Maker Edition to reach out to that broker and pull in that data that Benson's publishing. We're gonna be able to see that live. And then once we complete that, I have a RIO here in Pennsylvania that I'm gonna show how you can configure Ignition via Modbus to communicate with it very quickly. One quick note before we move on is, while I'm using Maker Edition today to show its full feature capabilities, you should remember that it is designed for non-commercial use and should not be used outside of those non-commercial enterprises.
Benson: Yeah, good point, Doug, but we're excited to see the Maker Edition in maybe one of its first live demos, so exciting for that. If we have time left, I'm not sure we will, but if we do, we'll also be able to show something else, it's cool. I'm gonna pop up my demo cam here for you. And behind me here is a couple other devices, including the groov EPIC, this device here that's actually running Ignition Edge, communicating to the Siemens and Allen-Bradley PLC, and we can show that data also moving up to the broker, and Doug can look at that, or I can show it from my gateway. Again, that is time-permitting, so we'll keep you posted on that.
Benson: Okay. So, what is groov RIO? Well, I would imagine that a lot of folks on this ICL call are familiar with Ignition, but you may not be familiar with RIO. And RIO is basically an industrial ethernet I/O module, and that is web browser configurable. And what's really cool about RIO is how many unique field combinations you can do with it. And the reason for that is because it's software-configurable for each of the I/O channels. You're gonna get to see that live here in just a moment. It's ideal for monitoring, for acquiring data, obviously, maybe control of some standalone equipment or devices, but one of its real interesting things is it doesn't require a PLC or a PC to get the data where it needs to go. We can actually publish the data directly from the I/O module itself. And this might be really effective for things like OEE, where you just need to get a couple status points from a machine and start moving it into software applications, or maybe even layering over an existing control system. So, you don't wanna mess with the PLC, you just wanna parallel some I/O points out of there and get that directly into infrastructure so other subscribers, software subscribers, can get access to that I/O data. When you think about RIO, we say it's not your father's remote I/O. This is a digital transformation application. And what we've heard from a lot of people is this is Ignition I/O, so it's really a quick way, again, of getting that data into the system.
Benson: So, we're gonna go right into demo time, let's hit it hard. I'm gonna go over to another screen here and move over, and hopefully you guys can see what I am looking at, and this is my little demo panel here. I'll try to keep focused on you guys, but also I've got a camera right above. And her, I've got my stack light I described a moment ago. I've got my cool little door sensor here, and I've got an ICTD. An ICTD is an integrated circuit temperature device. And what's cool about these, guys, is they're just little two-wire temperature sensors, and they can go a distance of 2000 feet. So, that's kind of cool, and it'll become important when Doug talks about his application that he's working on coming up.
Benson: Then I've got my RIO right here in the box, so here's your first unboxing video for groov RIO. Let's take a look inside. First thing's first, we've got a nice little termination tool here in the bag. I've got my own sitting here on the desk, so I'll set that aside. Next thing I've got here is my terminal. My terminal is a 26-pin terminal with a cage clamp design for the wiring, so we'll set that aside for a moment. Oh, one other thing that's kinda cool in there, single captive screw there for wiring that or holding that down into the RIO.
Benson: Okay, let's pull this guy out, discard the box, there we go, and there is my RIO. You see a label on the side there? One of the things we wanna get off of that label before I mount it onto my demo panel is the hostname. You see, when I connect this to an Ethernet network, it'll go out and use DHCP services and obtain an IP address. It will then also register its DNS name, this default hostname, in the DNS on your computer network so that we can access the device by its name. Let's take a look. The default hostname is right there. I'll go ahead and write this down for use in just a moment, 049Charlie-66. Okay, terrific. That'll become important in a moment.
Benson: All right. You can see there, I've got a built-in DIN rail clip. I'll mount that guy right on there. All set. Now I'm gonna take my terminal connector. It only goes in one way. I'll go ahead and plug that in there. Perfect. And I'll grab my handy-dandy screwdriver, and we'll go ahead and screw that in. There, nice and secure. Okay, terrific. Now, we gotta give this guy power. I've got two little spade lugs down here at the bottom, and those are for 10-32 volts of DC power. But what fun is that? This thing is PoE-powered, so I've got a switch back here in the back corner of my desk here and that's a PoE switch. Simply take a Cat 5 cable, and I'll plug it into Ethernet 1, and we should see some LED start blinking, and indeed we do. Very cool, the device is starting to power up.
Benson: We're gonna go now over to my other screen, and we pull that up now and go into Demo 2. All right. And I'll turn that. So, here we are again, and I've got a browser window up. I've got my demo screens. I've got both myself and our demo table here. The first thing I'm gonna do is I'm gonna wire this guy up. I'm gonna wire my temperature sensor, my door sensor, and so on. Now, while this is booting up, I'm gonna use my other RIO, which is right here on my desk, and this one's hostname is RIO-Benson. I'm gonna go ahead and go over here and click up here onto my shortcut and log into that one. And the reason why is because I wanna see what the wiring diagrams are. Now, I can go to our website and figure all that out, but I think it's funner and more cool to actually see that the RIO itself does have all the wiring diagrams. So, I'm gonna click there, go there, and there's the wire diagrams for all the sensor types that are supported by the groov RIO.
Benson: I'm gonna go to ICTD input here. As you can see, there is the wiring diagram. Okay, so let's follow the instructions. In Channel 0, I'm going to put my ICTD, and it says I should put the black wire into Pin 1, so let's do that. There's the black wire, stick it in there, and release the tool, and we're done. The white wire should go into two. So, I'll push two, stick 'em in there, and thank you, Ben, for putting those ferrules on there for me, making that a little bit simpler. Boom, I'm all done. My ICTD is now wired up.
Benson: Let's go now to the door sensor. The door sensor is just a dry contact, but what's cool is RIO will actually provide the excitation voltage, the wetting voltage, for this dry contact. So, let's go back and take a look at the wiring diagram for that. There we go. Switch power to input. We're gonna go to Channel 1, so when one of my LEDs here, I'm gonna put into Number 4. I'll do that and stick it in there. And the second one will go into number five, and we'll do that. For all you instrumentation techs that may be on the call right now, hopefully, I'm doing this satisfactorily. And then there's the other end of my sensor. We'll configure that I/O in just a moment.
Benson: Okay. Last one is my stack light. Now, my stack light is a digital output, and it needs 24 volts to work. Thankfully, I've got 24 volts here to my little terminal strip, and I'm gonna bring those two wires into the RIO as well. Let's take a quick look at how that's wired up. We'll go discrete sinking output. We're gonna go into Channel 2 here, and as you can see, I'm gonna get my power LED and put that into number seven. So, I'll take my power LED, and we're gonna drop that into Pin Number 7. Push down my tool, stick in my power LED, boom, and the return is going to go into Channel 8. I'll grab my return here, push into 8 and, voila, all set. Nice little tug here, make sure I'm all set. I'm in good shape.
Benson: Now, we get to configure the I/O. To do that, obviously, I don't wanna do it on RIO-Benson. That's this device over here. We're gonna now log onto this guy 'cause he's clearly booted up. We're gonna take off this part here, and we're actually gonna log into the hostname I just typed in. So, Opto-04-... Oh, looks like it's there. Thankfully, I've probably done this before. I'm gonna hit "enter," and, of course, it says the connection is not private, and that, of course, is true. I just pull it out of the box, there's no security, no certificate setup. I'll just click "advanced" and get past the warning, and let's see if we can... There we go.
Benson: Now, when you first fire up RIO, it's gonna recognize it. It hasn't been commissioned yet, so it automatically goes to the commissioning page. And the reason for that is because, one, we wanna know what IP address it got, for example, but it also means that I have to set up an account. You see, RIOs don't have, nor do groov EPICs have a default username and password, no device on the plant floor should. So, when you first boot it up, you have to create that account. To do so we're gonna go "let's get started." But before I move on, real quickly, you can see there the IP address that I did obtain from the DHCP server. I can write that down. I'll just write that down real quick. And that's just to have it as documentation should, for some reason, DNS doesn't resolve properly or whatever, kind of a back-up, but I really don't need to access the IP address from here forward, as long as my network services are running.
Benson: Okay. Here, I'm gonna type in my username and password. And it should be noted here that when you do this, this is the admin account for this device, and if you happen to lose these credentials, we can't help you. This is... Just like any system, you're gonna set it up, you'll need to remember it. One nice thing about the terminal tool though is it does fit into the “reset to defaults” pin, so that's the only way out if you lose your credentials. No worries, we're gonna go ahead and create the account. And as soon as we do, obviously, we have to log in to that account, so we're gonna do that now. I'm gonna type in "live" and hopefully I got it right. Good, I don't have to reset to defaults.
Benson: So, here I am now on to this RIO, and as you can see, it's a web server, it has all the pages. Everything I need to configure this device is literally on the device, so all my wiring diagrams, all my documentation, everything is there. Now, one of the things about RIO and most of our products is we'll actually do temperature conversion for you on the device, you just have to let us know which one we want. So, I'm gonna go into I/O config here, and I'm gonna select Temperature Unit is Celsius from the factory. I'm gonna do this in Fahrenheit, and there we go. I'll click "save" and all set.
Benson: Let's get to the I/O. There's a lot of stuff here, account, security, all kinds of stuff. We don't have time to go through that in this particular ICL, maybe another one. Okay, so here we go, Channel 0. Let's start off with configuring this device. We're gonna come in here and give it a name. In this case, I'm gonna call it Studio Temp. There we go. Now, what I've just done is given that particular ICTD a name. The single source of truth, at this moment that I type this and hit "save," that will become the tag name throughout the entire system. Whatever software needs to get to that data, it will always be that tag name. Pretty cool.
Benson: But here's where the magic happens. Channel Type, this is where I give the Channel 0 the personality of an ICTD, and look at all my options here, tons of them. But what we care about right now is ICTD, so let me go to that, and it fills in all this information for me. Now, the next step is what data do I want to publish to the MQTT broker so that Doug in Pennsylvania can retrieve or subscribe to that data and build his application. So, I come down here to Public Access. I'm gonna select the read because naturally I wanna send the value as a read point, it's a temperature input, but I can also change the dead band. Now, if you know MQTT, you know that it reports on exception. Only when values change do we publish that data. Now, as a temperature, it's gonna float around quite a bit, so we may get a lot of traffic. I don't think I need it to be at that resolution, so I'm gonna actually put a dead band in here about half a degree. That means that when it changes outside of a half a degree, then it publishes its data.
Benson: Now, I'm also gonna click "min" and "max." And this is cool because RIO will keep track of the min and max values of any analog input automatically for you, any time it's powered up. I wanna send those values over to Doug as well. And then lastly, I'm gonna hit "writable." Now, why would you write on a analog input or a temperature? Well, because maybe Doug wants to be able to reset that min and max after each day. So, he wants to know over a given day what the min and max were, then his application can rewrite that back. Click "save," all set. My first one is done, there's my temperatures, I'll go ahead and clear my maximum here, and we'll just test it out. I'll give it... 78? It's a little warm in here, I thought it was just me. Okay. We'll give that guy a little warm-up there and, there we go, he's starting to go up. And that's in good shape.
Benson: All right, let's go on to Channel 2, gotta move quickly here. Let's go to configure. And same thing, single source of truth, this is a door sensor. I'll keep this one simple, I'll just call it a door, and this is where the magic happens again. Now, in this case, you might say, "Well, it's a digital input." But actually it's not, it's something that's switch input, power digital input, this is where we'll provide that excitation voltage. And it should be noted that that excitation voltage actually is coming from the PoE power, which is kinda cool.
Benson: All right. One other thing about RIO on Channels 0 and 1, we will actually have some pretty advanced features for digital inputs. And that's indicated here by this feature button. I'm gonna click it, and these are the features I can place on that digital input. In this case, I'm gonna make it a counter so that every time the door opens, I will count it, and that's kind of cool, and I wanna send that up to Doug as well. Now, I'll send it to the broker, so Doug can subscribe to it, but you can see I can do a bunch of other things here. Again, something for another time.
Benson: Let's go ahead and make sure that we send the state of the door up to the broker and the counter value, and we'll make it writable again. And the reason for writable again is to clear that counter, say, after a given day, we wanna reset it back to 0, we're gonna save it. Now that I'm in here, I can test it. I've got my two sides here, put them together. Yeah, look at that, already working. Perfect. Now, I can test that my digital input is working, that I've indeed powered it correctly, and I'm all set there.
Benson: All right. Last one, the digital output. Now, this is my stack light here. As I said, I have 24 volts. I need to go ahead and configure that, so I'll do so here. Once again, I'm gonna give it a name. I'm gonna call this red stack light. Great. Let's go ahead and select what kind of module that is or what signal that is, and here it's a 5-30-volt DC digital output. Okay, perfect. Now, again, I want to know the state of it, but I really care about writing to it, because I'm gonna let Doug actually post on a topic, on a Sparkplug B topic, which I will, the RIO, I should say, will subscribe to and make a change. So, we'll actually see Doug control my stack light from Pennsylvania. Okay. I'll hit "save." The beauty of this as well is I can toggle it on and off. There, you can see, my light is going on and off, so I can test it and commission my IO. I'm all set.
Benson: Okay. Last thing is, where are we gonna send the data, and how are we gonna send it, under what topic name space? But before I get there, what we're gonna do is do this securely. We're actually gonna set up an encrypted connection to the broker, a TLS connection. That's the beauty of MQTT, is I just can use SSL/TLS as my security model for moving this data very securely. This is an encrypted channel, so we're gonna make sure there's no man-in-the-middle attacks.
Benson: To do that, I have to get a security certificate from the person who put the broker together for me. Now, my broker is a Chariot broker from my friends at Cirrus Link Solutions, they provided us a Chariot broker. We're running it on AWS, just a small EC2 instance, a T2 micro, just a small little guy. And it's a very efficient broker. And in there, we've created a security certificate, so I need to put it here in the RIO. Beauty is that all those tools are built into the RIO to go and get my certificate. I'm gonna get it off my hard drive, and I'm gonna upload it to the device. What happens here is that when I make that initial connection to the broker, I'm going to exchange those security certificate keys to ensure that, one, I'm talking to the right broker, and, two, I'm gonna create an encrypted tunnel that I'm gonna move all of the data through. So, very, very secure. And as you'll see later, security is a very important consideration for IIoT.
Benson: Okay. Now that that's loaded in there, last thing is just configure the MQTT. I'm gonna click on the button that says that, and click on "configuration." This couldn't get any simpler, watch. First things first, the beauty of MQTT Sparkplug B is that it defines a topic name space, and this is how the tags will show up in the gateway from MQTT Engine, you'll see in a moment. I'm gonna go in here and put in my group ID. I'll be going to Opto 22. And then I want to put in an edge node ID, I'm gonna call this Ignition Live. And then I can put in a primary host ID, which is important, but we're gonna skip that for this demo. And then the last one is the device ID. I come over here to device, any unique ID here. In this case, I'm just gonna call it IgnitionIO.
Benson: And then I'm actually gonna add one more thing. The RIO will actually historically cue up many records, and in this case, I'm gonna put... Let's put 3600 records. So, that's not time, that's not 3600 seconds or anything like that. That's 3600 publishes we're gonna cue up in the event that we lose comms. There we go, all set. I've now created my MQTT topic name space. Now, I'm gonna add a broker. The broker, of course, is, "Where are we gonna send the data to?" I told you we put this broker up on Amazon, and I have a domain name for that, and it's called chariot.group.com.
Benson: Now, I'm gonna talk to this guy securely. I'm gonna put in the secure port for MQTT, which is 8883. Then I'm gonna put in a client ID that can be any number, just a random number. Now, I've also got to log in. I told you we were encrypted to the broker, but I also have to authenticate to the broker so I can see my ACLs or my access control lists and so on, so not just anybody can log into the broker and grab all your data. I'm gonna go with that user name and password, select SSL, select the certificate I just uploaded, click "okay," and save. And I'm done. That's it. Now, I just wanna start the service, so I'll do so. And what's happening now is the service is now collecting or cataloging all the data tags that we said we wanted to publish to the broker. It's issuing a birth certificate and sending all those tags out. Now, anybody who wants the data and has the access rights and the right account can go in there and pull that data directly into their applications.
Benson: With that, I'm actually gonna move the presentation over to Doug in Pennsylvania. That's all from Temecula. Let me see if I can do that here. And, Doug, there it is.
Doug: And thank you, Benson. Now we have in our publish subscribe mentions, Benson's gone ahead and configured his side there to publish it up to the broker we have up in the cloud. Now, on my side, I need to go ahead and configure our subscription to that broker and that name space. So, I'm gonna go ahead. We're gonna start by looking, logging into our gateway here. And I have to type a password, much more successful. We're gonna go in.
Doug: What I'm gonna show you first is we're gonna come in here, we're gonna come down, we're gonna look at our modules first. And what we wanna see here is... The only extra module we have installed is MQTT Engine. The other modules, the Distributor, the Transmission, and the Recorder, we don't have those installed, so we're not even gonna have a chance to use those. We only need the Engine Module to actually do a subscription and using those tags here in Ignition. Before I configure that, I wanna go ahead and open up the designer. Under all providers, we're gonna have our MQTT Engine listed here. And I just wanna show edge nodes right now, there's no elements under it, and I just wanna keep an eye on that as we go through our configuration here, and you'll see how quickly that's gonna go ahead and populate when we get to that point.
Doug: So, what we're gonna need to do is go into our MQTT Engine settings. Under General, the first thing we're gonna wanna do, since we, by default, for security reasons, it blocks the ability to write from your client, we wanna go ahead and clear those so we can actually write to Benson's devices and see what's going on there. We're gonna go ahead and save these changes on this page. We're gonna go ahead and go to servers, and before we configure our server, just like Benson did, we're gonna have to upload a certificate so we can connect to that broker.
Doug: As Benson had, I also have a copy of the certificate here on my side, and we're gonna just gonna call that the Opto 22 Certificate, so it's a little easier to identify as we're configuring. Certificate is loaded, we're gonna come over here to settings. We're gonna create our new server. We're gonna go ahead and call this the Opto 22 Chariot Server, the SSL. I'll just gonna go ahead and pick it, since we've used it before, but if you notice it's the exact same URL that was used by bensonsslchariot.groov.com, port 8883. The username we're gonna use, we're gonna use a different username than Benson did, but since we have access to the same access control list that he's published that data on, we'll be able to see this information.
Doug: Now, we're gonna go ahead and choose our certificate. And we can just go ahead and publish. And if we watch over here, we already have an arrow here showing our devices. We go ahead and refresh this, just to make sure we get that publication down here. We see there are Benson.
Benson: Should pop in in a moment. We're doing it secure, so it takes just a moment longer for that to come in.
Doug: We're gonna refresh then. Hopefully it shows up here very quickly. As you do notice, we have everything that was listed in our ACL. We should get our birth certificate any second, and then we should see this populate.
Benson: And while we're waiting for that, indeed, you can see several other devices that are publishing on that same topic name space, under Opto 22 group ID, including another, my RIO Benson here. We've got a turbine back here, a turbine controller that's connected to the AB controllers. And what's interesting here is that, in this case, Doug didn't have to enter in any tag names, they all just appeared in his new instance of the Ignition Maker. So, we're just gonna give that... I've confirmed over here, Doug, that it is publishing through another gateway, so I know we're in good shape, it's just gonna take a moment for you to receive that birth certificate and start subscribing.
Doug: Okay. I did notice you had a capital I in your live, hopefully that's not creating a problem with our access control list.
Benson: No, it's not. The access control list, just so you guys know, the way that that works is that, these topics, Opto22 is the group ID. In this case, we see RIO-Benson as the edge node ID. You can actually limit who has access to each of these under that. Doug actually has access with his username and log in to the group ID Opto 22 and demo centers. But over on my gateway, I'm seeing a lot of other devices 'cause I'm logged in a little bit differently.
Doug: And we'll go ahead and we'll show you a few features here while we're waiting for that to populate through there. As you can see, all of our tags are actually... We're bringing in that device ID that he created when he created each channel. This is on the, Benson, his RIO-Benson, but you can see it created all those. And on our side, we didn't create any information at all. And if we actually open up this temperature value, you'll see it even brings over our units with it straight from the RIO. So, no configuration on our side and we have all that information that we want. We can see it just refreshed, and now we have our Ignition Live showing up.
Doug: If we come in here, we're gonna go ahead and browse. You'll notice he had his group ID, it was Opto22. His node ID was IgnitionLive, and his device ID was IgnitionIO. We can expand Ignition IO up to MMP modules, channels, and then we can see those three tags that he created. We'll expand all of these, that means they refreshed again on me. Oh. Modules, channels, we'll go ahead and expand these three, and we can see the values on here. And then if Benson would grab his ICTD, we'll see these values change. Or if he moves his door switch, we'll see those change.
Benson: I'll do one better. I actually have brought up some video here for you guys to see. And here is my door sensor, so as I put that together, we should see that state go on and it just incremented to nine. So, I'm doing this in Temecula and Doug's in Pennsylvania, and he's seeing that data just like that. I'll go ahead and grab my temperature probe and will hold that, and we should start seeing that temperature go up, as it changes outside of the dead band, and then we'll also see our min and max values as they start to go up as well. But what's really cool is... Can you control something on my end, Doug?
Doug: Let's see if we have it configured correctly. First, let's try the easy one, we'll go ahead and turn on a stack light.
Benson: There it goes. So, in the video, you should see that my red stack light came on. Here's my hands, nothing behind the curtain.
Doug: That's me changing the stack light from here. And then, for the counter, if we decide, "Oh, we're gonna set that back to zero." And now if he goes ahead and moves...
Benson: And do that here.
Doug: This counter, we'll see that going up and down.
Benson: Here we go. That was pretty quick. In about half an hour there, we were able to wire up sensors and get it into the Ignition platform, and describe every step along the way.
Doug: Correct. We've now published, and then I've subscribed. So, we have this fully functional. But what if you don't wanna use MQTT, whether in-house or using a cloud broker, like we're using right now, and you wanna use one of the more tried and true ones? Well, to do that, I have a RIO here in Pennsylvania. I will go ahead and log in mine just to show you the configuration that we have here. On my I/O channels here, I have two thermocouples, and then a temperature and humidity sensor that are analog inputs. So, we basically have four analog inputs coming in here.
Doug: What we're gonna do is we look at our I/O config, we're gonna make sure... We're gonna set it over Modbus. So, we're gonna just come in here and make sure it's enabled and it is set to begin the end, just standard checks on our configuration there. And then what we're gonna do is we're gonna come in to our I/O tools, and this is a great feature of the RIO. I can go look and say, "I wanna do an analog channel read here," and all this is doing is it's telling me what my addressing I need to use on Modbus is. The RIO is always module zero. We're gonna look at Channel 0, and we can see that's gonna be Modbus Unit 21 address zero. For Channel 1, the value is gonna be 32, 64, and then 96 for Channel 3. So, we need those... This is all we're doing on our groov right now. All we wanted to do is see those numbers, everything else is already enabled by default.
Doug: So, we're gonna come back over to our Ignition gateway, come down to our OPC device connections. We're gonna create a new device, Modbus TCP. We're gonna go ahead and give it a name. This is gonna be our Grantek RIO. Our host name, Grantek RIO 1. Same name that's up here. We have to use port 8502 as opposed to the default 502. Just looking at what our advanced properties are, one thing we need to double check is that we are using zero-based addressing. We're gonna go ahead and turn that on, so we are using a zero-based addressing. Some versions of Ignition, this actually says one-based addressing, so you just wanna get that setting so it equates to zero-based addressing for the RIO. We're going ahead, say, "Create new device." Let's see, it's going to connect.
Doug: Now, we've connected to our RIO device, but unfortunately, the Modbus protocol does not allow us to do a tag browse, so we can't see those tags directly. So, what we're gonna need to do is actually do a mapping for them. We're gonna do one manually, and then I'll go ahead and import the configuration. To create the mapping, you need to give it a prefix. It can be any prefix you want, as long as it's not one of the reserved Modbus names such as HR. We're gonna do these one at a time, so our start and end is gonna be AI0 through AI0, so we're gonna have just that one that we're creating. Since we're gonna be doing 32-bit length on our floats, we need to do a step, and that's telling it to grab two at a time.
Doug: We're gonna give it our unit ID, our address was zero, and then we need to come in here and say we're gonna grab a holding address of Float. If we want, we can go ahead and hit "save" here. We can come over here, we'll refresh our browser, go to the OPC browser, come and browse down through our devices. You can see our GrantekRIO is here, unit 21, and we have AI0. We can go ahead and just drag that into our tags to start with, and we'll see if we're gonna have a value.
Doug: To get the other ones, I'm gonna go ahead and go to the mappings here. We're gonna choose our file. This one will be in my downloads, this Modbus config file. We'll go ahead and import that. You can see it's Channel 0 is going to zero, 1 is going to 32, 2 is going to 64, 3 is going to 96, that exact mapping that the RIO gave us itself to tell us to use. Go ahead and hit "save." Come back in our designer, refresh our OPC browser. And now, under unit 21, we're gonna see all four of those tags. So, we can go ahead and grab those other tags quickly.
Doug: One thing to point out for MQTT over Modbus... Sorry, I stuttered there a little bit, I was just waiting for this to fill in. But what we're looking at here is, here, we didn't get a good name. We know it's analog zero on node 21. Whereas, in MQTT, it told us it was the studio temperature. And if you notice in here, we have no unit. The engineering units is blank because nothing was published, because this isn't a subscribe-publish. It's pulled, so I'm just reaching out to it and saying, "Please, give me your values." There's a lot more configuration on this where MQTT is publishing that information, and it's common across anyone who's using it. If you would have multiple people trying to read this Modbus information, you'd obviously be reconfiguring the same information over and over again.
Doug: So, that covers setting those back up. I guess, Benson, I believe we'll go ahead and jump back to the presentation.
Benson: Yep, and we'll screen through that. But I can tell you that, as a result of what I just saw, it seems like MQTT is quite a bit easier than Modbus. But Modbus is still tried and true, as you said. So, we'll screen through the rest of these slides. Doug, I think you wanna talk a bit about this application that you're working on, and we got about 11 minutes left.
Doug: Yep, we'll run through this real quick. There's an application we're working with one of our customers with. It's an automatic storage and retrieval system. If you're not familiar with what those are, the yellow squares you're seeing here in this huge warehouse section are pallets, and the purple vertical things are cranes that automatically take the pallets and store them, and then, of course, retrieve them back based on the shipping orders. The issue this customer has is some of their products, not all of them, but a few of them, are temperature-sensitive. Currently, what they do is, come June 1st, they just don't allow those pallets to be stored above about halfway in the vertical direction, and they keep that blocking in place until September, mid-September, I forget the exact date. So, they decrease the efficiency of the system, simply because they don't know what the environment is out there.
Doug: So, what we've proposed is we can put one, two, a handful of RIO devices here, and using something like that ICTD sensor, that has a 2000-foot range, so we can run temperature sensors vertically to get an idea of where that temperature is, as well as throughout the system, and get that information back. Now, a lot of people would go, "Well, we want that back into the control system." But what you got to remember is, these cranes, there's an overarching management system that tells it, "Pick up a pallet from here and store it there." It doesn't know anything about the pallets, and to be honest, it doesn't care about them. That system that controls it all is Ignition, so that temperature information, all we need it for is to make those decisions on where to store it, so it doesn't need to go through any PLC. Ignition is what needs it, we can pull that straight into Ignition now using MQTT, and eliminate all that setup and maintenance and programming on that PLC side, and bring it straight into Ignition.
Doug: Applications for IIoT and using the Opto 22 RIO for that, remote monitoring, similar to what we've talked about there. Anywhere you wanna get data out in the field, PoE, you plug it in, you can start getting some of that data in there. Energy efficiency, whether you have motion sensors, whether you wanna see turning off lights, or whether you wanna see if there's activity, just seeing how the temperature is. And the list goes on, on different ways you can do it, many, many applications. And then, in the vertical markets, whether it's a data center, a warehouse, building automation, you can see there's a nice distribution here of individual markets that almost have all equal shares here of what... Who's interested, and where they want this distributed information from. Well, they say oil and gas, automotive, life sciences, these top three individual ones. So, one thing to remember is, those are all using control system. Everything here is a control systems thing. But a lot of them don't need to be used for control, they're simply for monitoring and recording, so we can pull that out of the PLC and bring it straight into Ignition and your historians.
Benson: Right. I think it also speaks to, Doug, the fact that you don't necessarily always need a PLC now just to get some instrumentation data into software. Now, there's other ways of doing that with these more, let's say, smart Ethernet I/O-type modules. But that's not to say that there aren't challenges that still exist. Obviously, this is some research that was done on the top IIoT challenges. Securing the datas continues to be one of the most primary issues that people are trying to overcome. I think we've demonstrated how we can secure that data from the source of the sensor, all the way through, encrypted and authenticated, to the software that needs to use it. And then in terms of integrating the data, again, we've already clearly demonstrated that once we get into the Ignition platform, and we did that quite simply, integrating it with anything else, whether it's cloud services, local databases, HMIs, all of that is supported very easily with the Ignition platform.
Benson: Clearly, what we're trying to do, both the Inductive Automation with Grantek and Opto 22's groov RIO, is make that as simple as possible, while at the same time overcoming these challenges. We did have a question in the question pane about contact information. Thankfully I put this slide together quickly. If you have some questions about groov RIO and Opto 22, we welcome you to send us an email. We have engineers who are standing by, obviously, ones on the call here, or live chat on our website that is manned by engineers, not by... Well, let's just say, it's... We got well-qualified people that are responding to the chats on our website. And for Ignition questions and Grantek, obviously, that's the email address you would use for them, and then again, they would be able to get back to you with any questions there.
Benson: We wanna make sure we're getting some questions, and it looks like some of them are coming in. And real quickly, one of the things I promised I might be able to show you is this guy here, which is the demo behind me. And I'm actually gonna pull up the... I'm gonna pull that up here and into a smaller screen, and there you go. Now, you can see the demo behind me, and the demo that I was doing with groov RIO. And, of course, all of that data is coming in to the broker, and we're able to access that from Philadelphia, also can access it right from here.
Benson: But what I'm showing you right now is, actually, this EPIC here is running Ignition itself. So, instead of running Ignition, like Maker Edition on Doug's PC in Pennsylvania, this groov EPIC can actually run an edition of Ignition called Ignition Edge. And the reason you might do that is, if you have existing PLCs in the field, and you don't necessarily wanna parallel the I/O, you can use the Ignition software that's built in on a product like groov EPIC, there are others as well, part of the onboard program. But I'll just quickly come over here to configure on my screen for Ignition Edge, come down to devices. And just like Doug did, he connected to Modbus device, but I've got my Allen-Bradley driver and my Siemens driver, and they're connected. That was pretty straightforward. And then if I look at my gateway that's located here in the building, I can see those same tags, the same ones that Doug saw, but I can see him here on my local gateway. But one thing you may notice is that I'm getting a lot more... A couple more edge nodes in there that Doug couldn't see, and that's because I'm logged in with a certain username and password that gives me access to tags across the entire system, where Doug's login only gave him access to the group IDs, demo centers, and Opto 22. Just another way of making sure only the right people get the right data.
Benson: With that, I think I do wanna turn it back over to Ben to see if we have any questions that you wanna bring up, or anything you saw interesting there.
Ben: Thank you, Benson. Awesome demo, you guys. There is a couple of questions here that I would like to touch on, that I think are worthy of mention. Does Opto 22 perform closed-loop control based on a feedback signal? Yes, there are four PID loops built into the RIO, so you can configure those four PID loops to look at an analog input and control an analog output, for sure.
Ben: Benson, I'll let you talk to this one, this one's fantastic. Do we need different modules for the different sensor signals, like 4 to 20, 0 to 10, or odd number couple? And, of course, the answer is no. That's the beauty of RIO, is all those configuration options are around 60,000 permutations.
Benson: Yeah, indeed, you're right, Ben. From one single module, we can configure software, configure any of these channels for those various points that I did, through the web browser. There is only one part number, and you only have to stock one, so imagine how many spares you can eliminate with this type of configuration. So, it can be different for... Like Doug is using thermocouples and a humidity sensor, I happen to be ICTD door sensor, but we're using the exact same product.
Ben: Right. Another really good feature that we haven't mentioned on the RIO is it does actually have a USB port, and the USB port can be used for memory sticks, USB memory sticks, WiFi adapters, and of course also, interestingly, you can configure a USB to serial adapter, and then Node-RED can run on the RIO and can actually read Modbus RTU data through that serial adapter.
Benson: Yeah, that's a good point. And that adapter is useful for USB mass storage as well, for data logging, but obviously, you wanna move that data up in the Ignition platform and let it do your historian. And a shout-out to the folks at Canary Labs, they also support MQTT Sparkplug B, and can connect directly to the broker and pull in I/O data directly into their historian as well. So, there is more and more software companies that are offering MQTT Sparkplug B, and MQTT in their software, to do something with the data. And, of course, Canary Labs is there. If you would like to see a personal version of this demonstration, use that email address I provided earlier, and all of our engineers are prepared to offer a live demonstration, setting all this up for you personally. Just give us a ring. That's why the studio is here, so we can show you how it's done.
Ben: There's a couple of ones thereabout. Does RIO support the Sparkplug primary host ID? Actually, Benson, we have a minute, why don't you talk to that primary host ID?
Benson: Yeah, you bet. Let me come over here to Demo 2 here. And when you set up your gateway, you can also set up a primary host ID, so when... Let me come back to here and actually go to the gateway we have running here, at Opto 22. And when you set up the primary host ID, what it simply means is that, when the RIO device is queuing up its data, it's essentially... Let me put this camera in so you guys can see me. When we're queuing up the data, we wanna make sure... One of the reasons why we might queue data is because our primary host, which is, in this case, would be Doug's Ignition Maker instance running in Pennsylvania. If that host went offline, we're gonna still queue up. So, whether it's the broker that goes offline, or the primary host, we'll start queuing the data, waiting for the primary host to come back up. I don't know all the details. That's a great question for Wes, or Arlen, or anybody at Cirrus Link. In short, it confirms that the historical data goes to the correct primary host, who may be doing the tag historizing, and so on. A good question.
Benson: Any closing thoughts there, Doug, from your end, from a Grantek system integrator perspective?
Doug: No. I'm very much looking forward to using MQTT in the future. That's a great protocol. I think we're gonna see it start really getting... Taking over for some of those applications, especially that remote I/O, where having to build a panel and put a remote rack and getting power out there, and in some communications protocol, and doing all that, where now we can get PoE, which is probably in that area already, get PoE out there and get that data back in very quickly, very easily and very securely.
Benson: Sweet. Okay. And I saw another question come up and I wanna make a point of this. This is rather important. One of the questions we get a lot is, "What kind of IT involvement do I need to put together to, say, allow Doug from Pennsylvania to actually write to an output here?" The answer is zero. You see, when I got on the network with my groov RIO, and I got a DHCP address, that means I also got a gateway. And if the network is properly configured, you're gonna have a gateway to the internet. And that's the same as your PC, you get an IP address, you get a gateway, so you can go to google.com. Same idea here, it's all outbound. I actually initiate the connection to the broker, to send and publish all that data, and I keep that connection live, and that's my state. So, I always know the state of my RIO. From Doug's end, if I unplug my RIO right now, it's gonna pop in his Ignition gateway or in a designer as offline. And that's because, when the RIO makes the connection with the broker, it stays persistent. So, we know state, and we can subscribe to any changes that might come back. It requires no port forwards, no opening up of firewalls, none of that, and it's all secure.
Benson: So, in terms of, when you start thinking about how you gotta put these systems together, if you go to your IT department, they're like, "Whoa, whoa, hey, we don't want any more devices on our network," you can say, "These devices are DHCP. They're all outbound connections. We don't have any firewall ports open. The only port that's open on this guy is 443, so I can get to the web server." For Doug, he did open up another port, a 8502, so that it would respond to Modbus requests. But the point is that you can really lock down these devices now, whether it's RIO, whether it's EPIC, or some of the other edge devices that are coming on the market now. So we're really... I think that the industry is doing a terrific job of addressing the question and the issues relative to security. So, enough of that rant, but I think it's an important point, I wanted to make sure it was clear.
Benson: Okay. Anything else? Thank you for the great comments and the questions, we appreciate that. We enjoyed putting this on. It was great working with Doug, and Grantek. Those guys are sharp. And, of course, we love working with Inductive, as we have for years. Doug, if there's nothing else, then I think we're probably gonna be close to ready to be signing off here.
Doug: That works for me. Geoff, do you have any closing remarks?
Geoff: Well, thank you, everyone, for joining us. And as Benson mentioned, if there are more questions about Ignition or Grantek, feel free to email us at firstname.lastname@example.org. Thank you for attending.
Benson: Great. Thank you, everyone. Have a wonderful week. And we'll see you on another ICL coming up soon.