Build-A-Thon
100 min video / 76 minute readSpeakers
Kent Melville
Director of Sales Engineering
Inductive Automation
Travis Cox
Chief Technology Evangelist
Inductive Automation
Kevin McClusky
Chief Technology Architect & VP of Sales
Inductive Automation
Behold, another Build-a-Thon is upon us, complete with all the intrigue, feats of daring design, unexpected surprises, and singing that usually accompany such a monumental event. This year, teams from two top integration companies will battle to see who can design the best Ignition project. Don't miss all the excitement of witnessing the crowning of a new Build-a-Thon champion live at this educational, one-of-a-kind competitive SCADA event!
Transcript:
00:17
Kent Melville: Hey guys.
00:19
Kevin McClusky: How are you doing back there?
00:19
Kent: I'm hungry. Do we have any snacks?
00:23
Kevin: We just ate lunch.
00:25
Kent: I'm hungry now.
00:29
Travis Cox: Alright, Kent. Here you go, buddy.
01:00
Otto Mation: In a land where possibilities are unlimited and integrators can become warriors who forge alliances with dragons, comes the next chapter in our Build-A-Thon saga where smart people fight over an orange jacket. We first met our 24 teams of innovative integrators on an arduous adventure of automation through The Lands of Ignition, where they overcame challenges that included answering Ignition version trivia at the Tree of Editions, uncovering secret passwords at CSS Cove, and unscrambling Persnickety Puzzles at Perspective Peninsula. They won our hearts as they quickly answered Ignition trivia using brains, not brawn, to move boulders to reveal secret passwords and out-style a quick-witted quill. Two teams ultimately emerged victorious from this quest, and now our heroes will face the Mysteries of Machination like MQTT, data modeling, and visualization. They'll have their boundaries pushed, their mental strength challenged, and their driving skills put to the test. Which one of these teams will effectively use innovation and teamwork to win the coveted orange jacket? Which hopefully it fits this year. Prepare yourself for a showdown like no other and remember that the destiny of these challengers will be in your hands.
02:39
Kent: Hello, everyone. Welcome to the 2024 Build-A-Thon. Who's excited to be here? Yeah? Awesome. Well, I am your host, Kent Melville, and I will be walking you through this, the premier event in the world of competitive SCADA. And you'll notice that I am alone on stage. No Travis, no Kevin. That is by design. In fact, I made a little bit of a deal with them. I said, for the promo video that we showed a little bit earlier, if I sit in the car seat, which obviously was their idea, not my idea, if I sit in the car seat and have to pretend like I'm a child, then you have to let me do the live event solo. And they agreed, but do I take them at their word? No, I don't trust those guys as far as I could throw them.
03:22
Kent: And so on the side of the stage, I have actually constructed barriers to keep them out. So hopefully we're gonna have no issues today, and it's gonna be a wonderful, safe event. But I really liked that video we just watched, which introduced you to what happened back in July. We had over 20 Premier Integrators compete in our Build-A-Thon elimination challenge for a chance to come and be here on this stage. Out of those 20, only two remain. And without further ado, I would like to introduce our competitors for this year's Build... Wait, what is happening? Oh no, this better not be Travis and Kevin trying to crash the party. Oh my goodness.
04:06
Kevin: Kent, you didn't think we'd really be able to keep us away, did you?
04:14
Kent: I hoped. I hoped we could keep you away.
04:15
Travis: This year's theme is Breakthrough. You think that's gonna stop us from breaking through?
04:24
Kent: Guys, this is a huge mess. Who's gonna clean this up?
04:28
Kevin: Kent, I think you know who.
04:28
Travis: Come on, Kent, those blocks aren't gonna clean up themselves, buddy.
04:33
Kevin: Well, we're happy to be here.
04:35
Travis: Thank you.
04:35
Kevin: Ready for the real show? I do feel a little bit bad though. I mean, look at him over there. Hey, Kent, do you want some help?
04:49
Kent: Yeah, that would be great, guys.
04:50
Travis: I think we could help you out a little bit.
04:51
Kevin: Yeah. All right, I'll hold this side.
04:54
Travis: Yeah, he has to come over here. There you go. One block at a time, Kent?
04:58
Travis: Wow, this is really; you're doing a great job.
05:01
Kevin: Have you ever cleaned anything up in your life?
05:05
Kent: Guys, it's gonna be great.
05:06
Travis: Oh my god.
05:07
Kevin: Well, I think we just, we got to get some help from somebody else.
05:13
Travis: Yeah, like this is gonna take too long.
05:13
Kevin: Yeah.
05:14
Travis: Oh my gosh.
05:15
Kevin: All right.
05:15
Travis: Guys, can we get some team members to come in here and help clean up the mess that this guy over here, Kent, made? Oh my goodness.
05:23
Kevin: Oh man.
05:25
Travis: Well, I think it is time, while Kent's doing his thing over there, to unveil the panels for this year's Build-A-Thon. What do you guys think?
05:36
Travis: Let's do it.
05:37
Kevin: Yeah, we're pretty excited about this. Right over here, we give you...
05:42
Travis: We give you a convenience store.
05:43
Kevin: Convenience store. And for panel number two, we give you another convenience store.
05:52
Travis: Another convenience store.
05:55
Kent: Well, hey guys, that's nice. They're already powered up and ready to go.
06:00
Kevin: Yep, isn't that convenient? No need to gas it up.
06:06
Travis: That's right. We don't need to get these folks all pumped up 'cause they can see that this is a convenience store, a model convenience store, and gas station that was made by none other than our official hardware sponsor, the Build-A-Thon. Give it up for Opto 22, everybody.
06:22
Kent: So what you guys are saying is that our competitors have some prizes in store for us today?
06:29
Travis: Oh my god.
06:32
Kevin: Oh man. Kent, yeah. Just go back over there. All right. Well, while he does that, we are gonna have the folks from Opto 22 actually come out here and tell you a little bit about these panels that the competitors are gonna be using today. So with that, Vincent Hoagland and Terry Orchard, please come out to the stage.
06:56
Travis: Oh, this side, this side.
07:02
Terry Orchard: Thank you, guys. Yeah, this actually really started for Opto back in 2022 when you guys at Inductive Automation called up Opto and asked us to fabricate these panels for the Build-A-Thon three years ago. So we designed it, we built it, we controlled it, and then we returned again for the panels in 2023. And here we are, ICC 2024, and we're back again, this time with the idea of a convenience store or the Epic C store. So this is something we're familiar with that needs monitoring control. So we took that idea and scaled it down for the stage. I started by just modeling the whole concept in Fusion 360 design software, and then actually 3D modeled and 3D printed each of the different components on our Bambu X1. So everything from the street lamps and the fuel pumps, the cars, even the conveyor tracking gears were all 3D printed just specifically for this panel.
07:54
Terry: Then we leveraged the rest of our team here at Opto, and we had our in-house machinists build a frame that holds everything together and had our graphic designer create the images that you guys see in the car wash and in the C store. And we even stuck some little things in there. And then we finished it up with some dot addressable LEDs and really brought this all together into this sort of stage-worthy scale representation of a C store. So all of this is so that we can have something that our competitors have been working with to demonstrate their ability to show monitoring control. They've been working with these panels, and now we have them on stage. But over the last three years, the last three panels that we've put together for the Build-A-Thon, at the core, has always been this groov Epic. But what appears to be just a simple PLC is actually a lot more. So for that, Vincent?
08:41
Vincent Hoagland: Indeed it is, Terry, a lot more than just a PLC. So once Terry and his team actually assembled and built the panel, and then we had our master electrician actually land all the I/O points and wiring all through these I/O modules in the PLC, I got to work working with the embedded software that's on the Epic. First, of course, I had to get into the device through groov Manage. I commissioned it, created some accounts, set up security, certainly the networking, any firewall configurations. Then I grabbed my control program and started to build a control strategy that took all the I/O from the C store in through these I/O modules and then created the runtime that does execute in real time.
09:23
Vincent: Next, I identified various variables and I/O on the system and decided which ones I wanted to make public through the built-in OPC UA server. Then I just turned on Ignition Edge, already pre-installed, got the gateway up and running, and then licensed it with Ignition Panel Edition, Ignition Edge Panel Edition. Best part? Then I go into designer, and I crafted UDTs to basically model this entire C store into logical subgroups and then used MQTT transmission to publish those up. With those same UDTs, I actually built an HMI front panel right here, and that is Perspective running on the Epic right on the front panel. Thank you.
10:10
Vincent: Now, once I have all my UDTs completed, I have MQTT transmission from my friends at Cirrus Link Solutions, and now I'm publishing those UDTs up over this cellular radio that's over here on the side, only on change. Indeed, there are no inbound firewall ports open on either the router or the Epic. That means this C store is 100% secure. So, what can you do with all of these UDTs? Well, first, we have a car wash here, and we can start and stop the car wash and also monitor its rinse, wash, and dry cycles. We'll see that. Down here, we have an underground fuel tank, so we can monitor the fuel in the tank and we can also publish prices for that fuel right up on the display. Looks like somebody's already working through it. Once we have that, I also have here a temperature probe, so I always know what the temperature of the C store is, and indeed, we also have code running in the Epic that is reaching out to a weather API and pulling back the current conditions for wherever the C store is, its location, however that was configured.
11:21
Vincent: So once I have all that, I've also got all my lighting zones here that can be controlled, so that's all available in the UDTs. And finally, we actually have an energy monitoring module on this system. It's wired up to CTs, and we're getting real-time power. We're getting energy consumption, and all of those are available in the UDTs as well. So, Terry, I'm super excited to see what these teams are gonna put together, building their Ignition system with the C stores. And thank you guys.
11:53
Travis: Thank you, Benson and Terry. All right. This is definitely one of the coolest panels we have, and it is gonna be outside. We're gonna be upstairs after the session here, so you can see it up close and personal, and as they said, there are a couple Easter eggs in there, so go and look very carefully inside of the artwork that's there, but we're super excited to have it here this year.
12:20
Kevin: Yeah, it's pretty exciting. Next, we're gonna tell you a little bit about how to vote, right? So you're gonna need to vote at the end of the session, but it's kind of a lot of work to do this. Kent does actually do a pretty good job. Do you guys want to bring Kent back out? Should we do that? Okay. All right. All right. Kent, stop being lazy over there and come back out here and do your job.
12:43
Kent: All right. So how do we choose winners for the Build-A-Thon? It's not us. It is you, and so we are gonna be having all of you vote today, and so that you know what you're doing when we get to the end of this thing, we wanted to introduce you to voting now, early on. And so, how do you vote? Well, it's gonna be a poll in the ICC app. So hopefully you've downloaded the IA Events App, and if you go into that right now, you can actually go down to the bottom. You can go to agenda, and from that agenda, make sure you're on today, and one of the first events you'll see there is the Build-A-Thon. If you go ahead and click on the Build-A-Thon event and you scroll all the way to the bottom, you're gonna see some polls.
13:30
Kent: And is everybody seeing polls? Anybody there? Yeah? Good. All right. I want you to click on the first poll, just the first poll right now. You'll notice there is no poll; that is the actual voting. You can't vote yet until you see what the teams have actually built. We're watching you guys. So the way that you're gonna do this, for the first one, just for practice, I want you to go into the app. First one, I want you to vote for your favorite convenience store. Now, Travis and Kevin both like Buc-ee's from Texas, but if you are Team Kent, you're gonna vote for 7/11, but you guys can vote for whatever your favorite is. All right. I heard the booze for Buc-ee's. Thank you. Thank you. I needed the support.
14:07
Kent: All right. All right. Where are we here? So you'll be voting, and yeah, you should be good to go. We will be doing another practice for that second poll in a little bit, so if you weren't able to figure out this time, don't worry. Stay tuned. We'll be talking about it again. But let me tell you a little bit about what our challengers have been doing.
14:32
Kevin: Hey, Kent, Kent, you don't need to do that. Travis and I made a video.
14:37
Kent: You made a video? Guys, we talked about this. If I sat in that car seat, you were gonna let me run the show. I was gonna do it here at the live event.
14:43
Travis: Well, that's just showbiz, kid. Keep up.
14:48
Kent: You got to be kidding me.
14:51
Kevin: Kent, you didn't really think you can come between us and the Build-A-Thon, really?
14:53
Travis: Yeah, that's right. Let's roll that video.
15:04
Kevin: The challenge is to build a project to manage a fleet of convenience stores.
15:06
Travis: Each convenience store has a car wash, fuel pumps, lighting, refrigeration, environment, and energy monitoring.
15:13
Kevin: The stores have a local groov Epic PLC provided by Opto 22. The PLC program and data have already been designed. Each store is modeled as a single UDT that is published to a cloud MQTT server over MQTT Sparkplug from Ignition Edge running on the groov Epic PLC.
15:32
Travis: Your task is to develop a backstory about a fictitious owner and their plans to dominate the convenience store market and build an Ignition project from scratch to help them accomplish their goals. What is their plan?
15:43
Kevin: What requirements do they have?
15:45
Travis: What do they want to do and see?
15:47
Kevin: What does the architecture look like?
15:48
Travis: What is the rollout plan?
15:50
Kevin: The challenge gives you an opportunity to show off your Ignition skills.
15:54
Travis: The Ignition project must include all of the following: visibility into this and all future stores. Interaction with all three elements of the convenience store: starting a car wash, managing fuel prices and fuel level, and monitoring refrigeration unit. Lastly, the ability to commission a brand new store from the runtime.
16:12
Kevin: Be creative, and feel free to add any additional features you want. This is your opportunity to separate yourself from your competition.
16:38.4
Kent: Well, what do you think? Pretty cool? Awesome. All right. Well, I think it is about time that we actually bring our teams out. And so we are very excited to welcome out onto the stage, Team DMC. Give it up for them, guys.
17:00
Kent: Come on over. All right. Well, welcome, everyone. It is so good to have you in this Build-A-Thon this year. DMC is well known in the industry, but for maybe the few people who don't know who you are, could you tell us a little bit about DMZ? Or DMC. Am I saying DMZ? I'm so used to talking to architectures with all of you. DMC, tell us a little bit about DMC.
17:26
Brandon: Yeah, we are integrators based out of... Our headquarters in Chicago, Illinois. We have been around since 1995. We have offices now all over the country. I think 15 offices now from San Diego all the way up to New York. And, yeah, we love working with Ignition in helping our clients out.
17:46
Kent: Good answer. That is exactly what I want to hear. Awesome. Well, we are so glad to have you, and we'll be hearing from each of you here in a little bit. But for now, we'll go ahead and have you take a seat in your chairs back here. But give it up one more time for DMC.
18:00
Travis: Now, one thing to note about DMC is that this is their second time being up here on stage. I think this time they're out for some blood.
18:09
Kevin: Yeah, that's right. Last time they had the racing uniforms, right? And this time, if you remember a couple of years ago, they only lost by a hair. So they know what they're doing. They're the folks who've been part of this already. So that might be a leg up.
18:24
Kent: Yeah, I mean, they're in t-shirts now. They're relaxed. They're ready to go. Seems like they're confident. Should be good. But I hope they're not too comfortable, 'cause we do have an incredible other team. Please help me welcome out BIJC. Come on out.
18:46
Kent: Well, hey, thank you so much for being here. They're kind of local-ish. But for you guys, it was a little bit farther to come out this year, huh?
18:57
Jonathan: A few thousand miles, yeah.
18:57
Kent: Yeah, absolutely. We are very excited BIJC being our first international competitor in the Build-A-Thon, hopefully the first of many. But since you're across the pond, please tell us a little bit about BIJC. Where do you come from?
19:09
Jonathan: So we're based in the southeast of England. And we've got about 10 to 11 people, sort of relatively small company. But we've been working with Ignition since 2014 now and absolutely love it.
19:31
Kent: Well, absolutely great. We're very excited to have you, and small but mighty. And so we're very excited to see the projects that you guys have built. So with no further ado, we'll let you go ahead and take your seats. Give it up for BIJC.
19:45
Kevin: Yeah, it's small and mighty, and these teams went through the competition that you saw alluded to earlier. They're an amazing... Both of them are amazing sets of engineers here. We had a lot of really good folks who were part of that competition. I did wanna acknowledge everyone who participated. It was not an easy competition, and these folks are crème de la crop. So well done. BIJC back quite a ways with us as well. You heard 2014, Chris Taylor, he got the award earlier in our earlier session for the Community Impact Firebrand Award.
20:22
Kent: And give it up for Chris Taylor, everybody. Hopefully you saw him in the main keynote. So excited for the work that he's doing in the community.
20:28
Travis: I think these teams are fired up, Kent.
20:31
Kent: I think so too. And so now that we have all this momentum, let's talk about voting again. Alright, so real quick. I want you to pull out your apps, and I want you to prove to me that you know how to do this. You're gonna go once again to the ICC app. I'm even gonna do it with you here, okay? And then we're gonna go at the bottom. We're gonna go to Agenda. Make sure that you are on the 19th. You're gonna go ahead. We got a great hero image there for you showing the Build-a-Thon DMC vs. BIJC click on that. Scroll all the way to the bottom. You're gonna see a second poll. And this one is gonna ask you, What is your favorite convenience store snack? And the right answer for this one, it's an open book test here. I'm telling you guys all the answers to these things. But the right one is obviously the fruit snacks that I was eating in the promo video earlier. But you can vote for whatever you want. Go ahead and submit that. And you also can view the results. Thank you. 83 of you have already voted for what I told you to. You've got this down. Well done, everybody.
21:29
Kent: And it is fun. You can also look within the first one. I'm looking to see that people voted with me. 7/11. Oh, Buc-ee's! No! Buc-ee's has 143 to 138 7/11 votes. I guess you guys still have a little sway here. All right. But there will be a third poll that will be added, and I believe we're gonna be removing those other two to eliminate distractions at the very end. That's gonna be how you're voting for these teams. So now you know how to vote, but who should you vote for? In order to figure that out, we are gonna be having a series of three presentations from each team. You'll notice three competitors, and so each person will get a chance to present. The first two they can prepare for, but the third one is a bit of a twist where they're gonna have to do something live on stage in true Build-a-Thon fashion.
22:26
Kent: But which team gets to go first? That's the question. And to determine that, we will be doing our Build-a-Thon commemorative coin toss. And so we are gonna be welcoming our first presenters from each team. So, Sheila, please come on down. Jonathan, please come on down. And to make sure that this is fair, we're gonna tell you how I'm gonna do it, okay? I'm gonna flip it up into the blinding lights, and then it's gonna come down, and maybe I will catch it, but I'm gonna do my best. And then I will take it and flip, and whichever is on the top, we go with. Now this is not your typical coin. It is not heads and tails. Instead, you can see that this was the coin that we used for the very first Build-a-Thon with integrators competing. So shout out to Vertech and Flexware for really setting the stage for integrators in the Build-a-Thon. Give it up for those teams.
23:21
Kent: Alright. So as such, it's your second time here, so we'll let you go ahead and call it in air. You're gonna call Vertech or Flexware, and whoever wins the coin toss will choose whether they go first or second. Make sense?
23:36
Sheila: Yep.
23:36 Kent: Make sense?
23:37
Jonathan: Sure.
23:37
Kent: Alright, here we go. Kent, don't screw it up.
23:39
Sheila: Flexware.
23:40
Kent: I can't see anything. It's a redo. Hold up. But she said Flexware. That still counts. I can't see anything in the lights. It is Flexware. Alright. You called Vertech, correct?
24:00
Sheila: I said Flexware.
24:01
Kent: She said Flexware? She said Flexware? Help me out, crowd. Yes? Alright. I don't know what I'm doing up here. The light's blinding me, and I turned into a deer staring at the light. I can't do anything. What do you think? Are you gonna go first? Set the stage? Set the tone? Get the first impression? Or do you want that last say? What do you think?
24:17
Sheila: We wanna go first.
24:18
Kent: Going first. Bold move. I like it.
24:18
Kevin: Alright.
24:18
Kent: All right. Well, thank you, Jonathan. Go ahead and have a seat. Well, Sheila, stay up here. Stay up here. You're not done yet. Alright. So, for this presentation, you will be walking everybody through just an overview of your project. We are gonna be giving you eight minutes to go through it. You do have a timer right here, so you're gonna be watching that as it counts down. No pressure. No stress. And we're excited to see what you have built. And then afterwards, the next presentation will be a technical deep dive where we'll get to see a little bit more under the hood. But for this one, we really just wanna see all the cool features that you've rolled into this thing. So, you ready?
24:55 Sheila: Yeah. I'm excited to show you guys.
24:58
Kent: Alright. Well, we'll let you come back here. So, are you gonna have the laptop here to guide us through?
25:02
Sheila: Yep.
25:03
Kent: Alright. Well, take a seat. Everybody, give a cheer. Let's see if they've got some good stuff for us here. Alright. Take it away.
25:09
Sheila: DMC just did our first project for a villain, Gru and the Minions from Despicable Me. Gru and the Minions reached out to us to help them take over the world by dominating the convenience store market. Gru knew Ignition was the best platform for this job. Right now, they only have one store, but they want to expand their empire and have hundreds of stores this year. Also, during the design phase, they requested it to be easy to monitor stores and drive profitability. So, we kept those in mind as we built our project. Now, I'll show you how we implemented these requests.
25:54
Sheila: So, our first screen here is a map. Right now, we have our one store here, and the store icon tells us the status of the store. If it's red, there's an alarm. If it's yellow, it's unprofitable. If it's green, everything's good. If you hover over the store, you can get some more additional metrics about how the income and expenses are going. We can also, with this drop-down, click our store, and it'll automatically zoom in to show a closer view of where that store is. This pin right here will pin this in place, and clicking on here also opens up our side panel. Pinning it allows this to stay open as we move around our map.
26:47
Sheila: This side panel over here has additional controls and things to monitor. So, starting first, we have our fuel. You can see all of the prices here, and if you look at the model, you can also see the prices there. And these buttons over here allow us to change the prices of the fuel. So, we increased our price to $5.14. We also have our monitoring of the fuel level, which the simulation was turned off and is now... Is it on? To continue going through that as that's working... Oh, there we go. Now the simulation of fuel level is turned back on. And we also have the ability to refill some of our, when we run out of fuel. I'm gonna add 100 gallons. We'll do 1000, and then it'll show up more better. And that just changed our expenses. We just spent more money on fuel, and the fuel level changed.
28:06
Sheila: Over here, we have information on our freezer. This is the power the freezer compressor is using and the status of whether the freezer door is open or closed. When the freezer door is open, we have an alarm. As you can see, the freezer door also turns red on the model. Down here, we also have a summary of the weather. So, when you're monitoring remotely, you can see what the current weather at this convenience store is. Last but not least, we have everyone's favorite part of a convenience store gas station, a car wash. So, we're gonna run that for everyone.
29:03
Sheila: And then down here, we have a few more screens. Dashboards we'll come back to, but this will go to a dashboard already selected for this store. And then we have a screen for light controls. So, if we go here, you can see all of our lights are on. We have the buttons down here to turn all lights on or all lights off. But then you can also click on the specific light to control that individually. So, if I click on Epic Store right here, it turns that off. We can also click on one of these to turn that on and off. So, a nice, fun way to easily see which lights are on or off. And we're gonna leave them all off for now.
29:54
Sheila: Going over to our left navigation, we have our dashboard. Here you can click your store, set a date range. And this is where it's very easy to see all of our revenue and expenses. We have how much we've made from fuel, convenience store purchases, car washes. And we did some simulation to get all of this data. The convenience store data and buying fuel data wasn't part of the PLC, so we added some simulation for that. As well as the car wash, we ran that automatically over the last few days so that we had some historical data. Over here we have the amount of money we just spent on fuel and then our energy expenses for running this store.
30:55
Sheila: Our transaction tab goes through all of our transactions that we've had in the last six hours, which we could edit that up there as well. We have our car wash sales, store sales, gas sales, and gas expenses. You can see our gas expense that we just demonstrated earlier. And then there's summaries down below that add up all the transactions and total expenses below each table. Lastly, we have our energy. And we can see that we just turned off those lights, and the energy levels dropped down right over here. Continuing on in our left navigation, we have the store configuration. Gru and the Minions really care about expanding their empire, so we wanted to make it as easy as possible for them to add new stores. So when new stores come online, they're gonna show up here and make it really easy for them to add.
32:02
Sheila: Lastly, over here we have our alarm screen. You can see that the door was open earlier and previous fuel level low alarms. So all of that will show up here nice and easy. So that's a nice overview of our store. We can see now that the fuel level is no longer low; our store is green and profitable, so we're doing great. And that's an overview of our project. We hope you enjoyed it.
32:43
Kent: Well, great job. That was an incredible project and just less than a minute to spare. You used your time effectively. It was great. After Coin Gate, where I dropped the thing in staring at the lights, I did neglect to do one thing, which was to get to know you, Sheila. Sheila, we're excited we got to hear about DMC. We're excited we got to see the project. But what the people back home wanna know is: who is Sheila? Tell us a little bit about yourself.
33:09
Sheila: I'm Sheila. I work out of DMC's New York office. I've been working at DMC for like three years. Outside of work, I like to do a lot of running, into long-distance running. I also like to travel a lot. Right before this, I came from Budapest, which was fun. So nice little 20 hours of travel on Sunday.
33:36
Kent: Yeah, great way to be well-rested for the event. I love it. Yeah, dedicated. I like it. Awesome. Well, Sheila, thank you so much for introducing us to not just yourself, but to this incredible project. I was offstage, and the creator of the panel, Opto 22, they were talking about how impressed they were with the project. But they don't get to choose. You get to choose. We'll see if you guys were impressed with the project. But I'm also, when we have our peanut gallery here, they broke in. They might as well say something. Travis and Kevin, what did you guys think of the project?
34:06
Travis: Well, I got to say, it's incredible to think that this was built in just two days. So in the morning on Monday, we gave them a challenge, and two days later, a complete project from scratch was built. It's so cool to see.
34:22
Kevin: Yeah, I was impressed with a couple of unexpected directions, starting front and center with the map there and the scale, and planning for that scale was something that I wasn't expecting. And then the expenses, and just having that bottom line there to see, is this profitable? Is this not profitable right now? I thought those were really nice touches.
34:44
Travis: Absolutely.
34:45
Kent: Yeah, and I know that Gru has had problems with funding in the past for his empire, and so tracking his profit, very important. Sounds good. All right. Well, they're not the only project to see today. We do have another one. We are excited to see BIJC, what you have in store for us. And Jonathan, it's gonna be you that's doing our first presentation, right?
35:04
Jonathan: That's right.
35:05
Kent: All right. Well, I'm not gonna screw it up this time. We're gonna have you introduce yourself first. And so, yeah, Jonathan, tell us about yourself.
35:12
Jonathan: So I'm Jonathan. I've been with BIJC for seven years now and absolutely loving it. Fun fact about me: I'm a musician. I play about five or six different instruments and really enjoy it.
35:24 Kent: Well, there you go. I thought I was a musician, too, but everybody gave me terrible reviews for last night's performance. So next year it's just you, is what we're saying, right?
35:32
Jonathan: Fine. Yeah.
35:33 Kent: Anybody wanna see Jonathan next year? Yeah?
35:36
Jonathan: All right. Maybe. We'll see.
35:39
Kent: All right. Well, with that, you also are gonna get eight minutes to present. And so without any further ado, give it up for BIJC. Let's see what they've got.
35:51
Jonathan: So we were given this challenge by an eccentric businessman who wants to take over the world. His business name, Totally Epic Autos. The fact that it spells out the acronym of tea is completely coincidental. So he wants to take over the world with his convenience stores. And let's get cracking. Okay. So his first store didn't work out too well. You can see it here. It's in Boston. It's in the Harborview. And there is nothing there to see because that is now completely defunct. So unfortunately, tea is no longer available in Boston.
36:39
Jonathan: So let's take a look at the store. So we've got our HVAC control. We can see that we can change the temperature set points. He wants to take over the world, so we put it in metric as well as freedom units. So we've got the PID here as well. We can also turn that off if we just wanna view the temperature. If we wanna open the fridge door, we can do that here, and you gets a nice little animation to show that the fridge door is open. There you go. We get the alarm. It goes red, and that will close itself. He's measuring his energy because the less energy he uses, the more profit he makes. We've got some store statistics here, so that money he's making. And of course, we have the September employee of the month, Travis. Let's take a look at the banned list. I'm very sorry, Kent. You are banned. You're not allowed. I don't know what you did, but it was obviously quite bad.
37:38
Jonathan: So in the fuel station, again, because we want to take over the world, we have the opportunity to view it in the local currency, so they're linked up to a currency API. We take the price in USD, and that's what's stored in the database, but on the local store, it will show the correct prices. We have some statistics on all the pump information, so the money that they've made there, and we can change the fuel level if we want to. So let's say we take a delivery of 1000 gallons. We can say fuel is delivered, and that should bring it in. That brings an event into our events table that Lewis will tell you about a little bit later, and that's lovely.
38:23
Jonathan: Okay. So the car wash. Now, again, he has information about the money he's made there, but we have a timer, and this is dynamic, so however long the rinse cycles, the dry cycles, that will update whenever you need and will be the correct ratio. So let's take a look at what happens. So we get some bubbles. When we get to the rinse station, it goes underwater, and we get some dry. Now, if those animations don't conform to the guidelines within the advanced HMI handbook, I don't know what does. So we have some alarms. We have our journal. We have alarm configuration. Now, we can change these alarms on the fly. We don't need to go into the designer, so let's say that the anomaly trigger should be at a set point of false. We can then go back to our alarm table, and we can see that alarm has come straight back in, so a nice little feature there. And if we look at our store config, we've got some manual controls and some store status, so we can change the status of the store there.
39:35
Jonathan: So down at the bottom here, we have city information. We can change the price of the fuel. Amy will do that for you later. And one of the big things that we've done is the events table, so it's a single table in the database that is extensible. We can do whatever we like with it. And it doesn't matter what type of event goes in there; we can get all the information we need. So we can see, here loads of information. Whatever event it is, it just breaks down everything nicely. And if we extend that time, let's say we take a couple of hours off here, these numbers on the totals change, and it all looks good.
40:19
Jonathan: We also have along the bottom the information about your weather, wind speed, how much you've made over the last seven days, and the year to date. And of course, we can see where our store, the one Big Apple in New York, is; we can see that. We can click on it, and it takes us straight to our store. And that is about it.
40:42 Kent: All right. Give it up for BIJC.
40:51
KM: Two incredible projects, both very different, but both bubbly, so we like it. But Travis, Kevin, very interested in your thoughts on this second one.
41:00
Travis: Well, I wasn't expecting to be employee of the month. I work pretty hard for it, so it's pretty exciting to see.
41:05
Kent: I do feel a little bit attacked in that I get enough... What is the... Antagonism? I can't think of words today, but I get attacked by you guys all the time. But for you guys to throw me on the banned list...
41:21
Kevin: So, so right now, apparently Travis is team BIJC and you're a team DMC.
41:27
Kent: Yeah, absolutely. But we're not biased.
41:29.
Kevin: There were a couple of things that I really liked in that presentation. Some of the animations were nice flavoring on top, right? Obviously, they don't increase the functionality significantly, but they can really make a big difference for customer projects when they see that in terms of how it feels when it's delivered, especially when folks are showing it to somebody else or they're gonna give their users access to it. And I really like the fuel consumption or the amount spent and the mount consumed over the last few days there, is that you could see yesterday, you could see today, you got the buy charts there, that would give you an at a glance as a business owner, how is this performing?
42:06
Travis: Yeah, and the event tracking's really cool; just to be able to see all the events and be able know exactly what's happening, store owners need that.
42:14
Kent: And soon you guys will be using event streams in 8.3 to take all those events and send them up to Kafka or something amazing like that, right?
42:19
Jonathan: Yes.
42:21
Kent: Absolutely. Subtle plug for our product. No. But speaking of subtle plugs, no, a big thing that we do every year at the Build-A-Thon is we like to talk about this year's Exchange winners.
42:39
Travis: And that's right, Kent. The Ignition Exchange is near and dear to my heart, and it's really what makes this community unique because everybody's so willing to go and contribute and share resources they built with Ignition, including these two amazing teams right here.
42:51
Kevin: Yeah, and the Exchange was announced on this stage at the Build-A-Thon back in 2019, actually, the best Build-A-Thon ever.
43:00
Travis: Yeah. Why? Was it because you won?
43:03
Kevin: Yeah, he's a bit of a sore loser. I did win, but no, that year and every subsequent year since then, the Build-A-Thon, we've taken the opportunity to take the resources that are submitted in the course of the previous year before the Build-A-Thon, and pick out winners. And so this year is no different.
43:24 Kent: Yeah. So, let's get to that. Let's see these winners. Before we show the top three, which will be featured on the Ignition Exchange, we do have some honorable mentions. So let's go ahead and take a look at that. The first category is devices. And for this, part of what we wanted for the Ignition Exchange was a place that people could create templates and face plates based on specific equipment that they used all the time. And we've had some incredible submissions to the Exchange that do that. And we dream of a day where any hardware you could go buy off the shelf would have an equivalent template on the Exchange. We got a little ways to go. We're gonna rely on you, the community, to help us get there. But really wanted to give an honorable mention to this Cognex Vision Web Socket Demo, also the 1734 Animated I/O, and also the Mettler Toledo Library. All submitted by different members of the community. Thank you so much for participating. Wanted to give you a shout-out here. All right. Yeah, give them up.
44:37
Kent: And two more that fit this category that we really wanted to highlight. We also have this Compact Logix 5069 Animated I/O and also, of course, the groov RIO EMU Faceplates. And so give it up for these two as well.
44:56
Kent: All right. Well, next up is gonna be third place. So our first official winner of this year's Build-A-Thon Exchange Challenge is, let's take a look, The Jupyter Kernel. All right, well, this came from Andrew Geiger. And you may look at this and say, I don't know what that is. That's fine. You should go check it out. But what this does is this resource allows you to develop and run scripts for Ignition inside the JupyterLab Notebook environment. And so people have often wanted to do the actual experience of writing code in Ignition rather than doing that in our designer, doing that in a external IDE of some sort. This allows you to do that, and allows you to run the scripts and do all kinds of cool stuff all within Jupyter. So, if you are one of those power users that is constantly writing cool scripts to enhance the capabilities of Ignition, this is a mandatory resource to go check out. Give it up for Andrew Geiger.
46:05
Kent: All right. In second place, we have none other than this Historical Tag Analysis by Eric Gruber. This one is a, well, the other resource we just showed was this really complex resource that is gonna be really cool for a select few. Something that really made this one stand out is that this is a simple resource that could be used by everyone. And so what this is is it's a Perspective view that allows you to generate a hit list of historical tags using which ones have the most storage in a specific timeframe. So you can go and start not just looking at, oh, all my history, but I can start seeing which of my tags are generating the most history and start doing some analysis to go and check it out. And so we think it is gonna be really powerful for a lot of people. We see analytics and deeper analysis to your, into your projects really being a big focus in the industry right now. And so we love seeing resources along those lines coming to the Exchange.
47:06
Kent: All right. But now we are ready for first place for this year's Exchange Challenge. And so we give you the Task Toggler. Once again, we picked this one because this one actually has a very, very high level of polish. And the other thing is that this is just one of several very polished resources that came from Artech Integrated Solutions. And so what this one is, is it allows you to track notes and time spent on daily tasks, and as you can see, I'm scattered constantly up here. And so I need something to help me track my tasks throughout the day. This is a great example of how to do that. And it's built for mobile, highlighting the responsive nature of the Perspective app, and works in any browser. Artech not only created this but many other resources. And so please go to the Exchange and see there are other things, like one that allows you to group and reorder rows in the Perspective table, a PDF annotator, and many more. So, please help me give a round of applause for Artech Integrated Solutions.
48:23
Kent: All right. Well, it's time to do a deep dive. It's time to see behind the scenes how these teams have built these incredible projects. And we'll be going in the same order. So we're coming back over to DMC, and Nicoli, that means you're up. For the people at home, who's Nicoli? What do we need to know about you? And in fact, I think you may be familiar; it's almost like you've been here on this stage before, is that right?
48:49
Nicoli: Yeah, that's for sure. This is my second time. I think I'm on the other side of the stage though, so this is a little unfamiliar.
48:55
Kent: I didn't want you to feel too comfortable. Had to shake it up a little bit. Yeah. But yeah, who is Nicoli? Tell the people at home.
49:02
Nicoli: Yeah. I am a systems engineer from our San Diego office. I love Ignition, work with it all the time across a whole bunch of variety of projects.
49:14
Kent: Awesome. Engineer, a man of simple, concise statements. I like it. But he was really leaving time, 'cause we're gonna give you 10 minutes now to present behind the scenes how you built this incredible project. Take it away.
49:28
Nicoli: Yeah. So I really wanted to dive in and start by kind of explaining the how we implemented this navigation strategy. So we really wanted this map to drive navigation. And we started by just thinking of it being very flexible and driven by what tags are currently existing in our tag provider. So this map you see on screen and the ability to navigate to it is fully driven by basically what tags are existing in our backend. And we're popped into the designer now because we wanna... We only had 16 hours to sort of finish this project, but we want to give you a very authentic look into kind of how we were able to implement this. So, the first thing, we have a script that to generate our map is basically browsing our tags and looking for UDT instances that we've created for each of these stores. So, if more stores were to become available and be implemented into our tags, we would automatically generate them on the map, and we would also, they would show up in this search dropdown.
50:44
Nicoli: We also put a large emphasis on sort of different elements of CSS that we could include into our project, utilizing Ignition's built-in style sheet and style classes. There's a few different ones. You obviously saw this growing card. We really like the idea of having icons, but also the ability to get more details and kind of show more on screen when you're able to hover over this card. Some other notes: our menu is a little bit dynamic to give you some feedback of which one you're hovering on. And obviously we saw the car wash run earlier there. There's whole different levels. There's some that are a little bit more functional and nice for the operator to see, and then you can obviously implement stuff that is also more fun.
51:37
Nicoli: But how we ended up doing this is, if we take a look at the style sheet for our cards, you'll see that we implemented a class that, basically, we are hiding this black card with all the data behind our icon. How this is working is that we've basically forced this icon to be at the top left of this view. And what happens when it's not hovered is that we're basically scaling it to be zero in size. And this Z index is also hiding it behind the icon in front of it, and we simply scale it. So it's mostly being driven by these, like, three lines of CSS, and just implementing them in kind of the correct way can create this cool effect.
52:39
Nicoli: One other thing that may be difficult to notice is that when we're far out, the icons become small, and as you move in, the icon ends up becoming larger. This is somewhat built into the Google Map component that we used, but we implemented it a little bit differently. So, we basically wanted to really dictate the size of this. And so we also basically set minimum widths and minimum heights as well as maximums for the card. And basically, the CSS just creates a little bit more of a modern feel and reactive sort of environment for your project. As for this car wash, I'll run it one more time. This is just adding multiple layers of CSS on top of each other to sort of get this car going around feel, and a little bit of indicators on the colors and the bubbles as well. It's all just more layers of CSS. And we'll be publishing our project to the Exchange. So feel free to take a look after this presentation.
53:58
Nicoli: The next thing I wanted to talk about is that we are dynamically building all of our tags. So, Opto is pushing MQTT tags to us in in the engine, and we have a script in our gateway events that is basically always browsing for potential new MQTT tags and instancing our own UDT in our tag provider. We then implemented our own UDT that extends the Opto MQTT UDT to add a few more additional things. So, we get values like what latitude, longitude exactly we want it on the map. We store UUID to associate with all of our database data and some additional parameters. How this connects is just with a simple tag path pointing at the MQTT, like root UDT instance, and all the tags inside figure out their path from there.
55:06
Nicoli: We also wanted to note that on our, to also be very flexible, basically all of our views, pretty common practice for us is to pass in this single tag path that basically points to the UDT instance so that if we were to add more stores, we'll have zero configuration of these views going forward. I also wanted to highlight a bit how our SVG works for this lighting. We developed this SVG with open-source software called Inkscape. I'm no graphic designer, but I did my best to make it look somewhat reasonable. And what this is doing is it's binding to the different tags we get for the lights. So, if I turn all these lights on, you'll see them basically connect and show up on screen. And we're connecting to the individual shapes on this SVG to basically change the fill color. So, if I was to update what color we wanted the lights to be, I could do that all from one place and quickly update the project.
56:44
Nicoli: What then is happening on top of this SVG is that we are layering invisible flex boxes to basically act as our triggers for controlling the controls. So all of these invisible flex boxes on screen are configured with a script to basically change the status of the light. Cool. Hopping back real quick to our map, I just wanted to also point out that like we ended up deciding not to use a docked container for our sliding controls. What you'll actually see is that we are hiding it off screen right now, just utilizing some of the other styles we have access to. And so if I make the overflow visible, you'll see it off to the right. And just on, when we click on these icons, it will basically shuffle itself onto screen. And so when this is marked as hidden and you see it in the actual application, it's still on screen, but just hiding.
58:00
Nicoli: And we kind of liked implementing it without the docked container to have a little bit more flexibility in this. And ultimately, it doesn't take much to make this work. We added a bit of a transition to get the sliding effect, and we're simply driving a tag that is adjusting a transform on the view. So, if I change this to 600, which is what we set the width of it to, it will slide off screen. And it's all driven by either clicking on the icon or clicking on the map to get rid of it.
58:45
Nicoli: Lastly, I just wanted to also thank Opto 22 and Inductive Automation. Opto for their incredible PLC work and the whole mockup, also giving us plenty of documentation to make this work, and Inductive for this opportunity and the kind of just letting us hit the ground running with a gateway and database already set up.
59:06
Kent: Well, thank you. Yeah, give it up for Opto, right?
59:17
Kent: I am so glad this year that we have given the teams more time to do a deep dive and actually see how they built these projects. I was thoroughly entertained. Thank you so much for going through that. Travis and Kevin, what stood out to you guys?
59:31
Travis: Well, I gotta tell you, it's impressive to see the use of CSS in the project, right? To do all those little animations and polish and be able to transform that. So, and to be able to have that be available on the Exchange for everybody to be able to take advantage of, that's pretty awesome.
59:46
Kevin: That is really awesome. Yeah, I mentioned earlier that having some of that sugar that's on the screen, basically, it does make a project feel a lot more polished. DMC's project, absolutely, like that each of the mouseovers, everything that somebody might be used to inside a web application. If a new user's coming to this and they're wanting to interact with it, you hover over that car wash button; it has the little slide in that just makes it feel good, right? And I think that this project really feels good.
1:00:15
Travis: Absolutely.
1:00:19
Kevin: And it is built in a way that obviously there's a lot of expertise there putting into that that here's the CSS that everybody here can take advantage of; it's really cool to see.
1:00:27
Kent: That is really cool. All right, give it up for DMC. What a great presentation. Tough act to follow. But if anybody could do it, it would be Louis. Louis, tell us a little bit about yourself.
1:00:44
Louis: Okay. So I am one of our SCADA developers. I'm largely known as the Python guy around the office. If you look through any of our scripts and you find something doing 10 different things on one line, that's probably me. I'm a father of two, and I have an extremely understanding wife because it's actually my wedding anniversary today.
1:01:05
Kent: Happy anniversary.
1:01:06
Louis: And I'm here.
1:01:07
Kent: Happy anniversary. Hope you're watching.
1:01:11
Louis: It's fine. It's the ninth this year. She's told me emphatically, not next year. That's 10th, not allowed.
1:01:16
Kent: That's smart. I just hit my 10th, so I understand. It was a big deal.
1:01:21
Louis: But yeah, that's me. I'm a Python guy around the office. I've been using Ignition for how long, Charlie?
1:01:28
Jonathan: Four years.
1:01:28
Louis: Four and a half years now. Sorry, my youngest was born like two weeks before I started at this job. So as long as I remember how old he is, I know how long I've been working on this.
1:01:37
Kent: There you go. Well, speaking of counting, you are going to have 10 minutes here to give the people a deep dive into your presentation. Are you ready?
1:01:46
Louis: Yeah. Why not?
1:01:47
Kent: All right. Well, take it away.
1:01:49
Louis: Okay. So, first of all, I just want to put you all at ease. We do understand, with the color of our shirts and the fact we are, in fact, not at home, there is an element of danger with us. But we are surviving. It's all going well. So first thing I want to show off is that these screens were designed first to run full-screen in a 1080p environment. However, we understand that that is not always the case. And somebody might be running it on a laptop, whether they're out and about or traveling around. And two of the things we wanted to achieve was, one, that these panels we've built will work inside various different sizes and when both the lower bar and the top browser bar are there. But also, as you may notice, as they shift in and out, they get moved around and off the screen, but they are always active. We don't have to worry about any loading appearing or anything else like that.
1:02:49
Louis: So what I will do is, well, if I work from the back to the front, so we have, much like DMC, we are not attaching anything directly onto the MQTT tags themselves. We have a reference provider with a reference UDT through which we can add lots of extra little tags, extra little systems, little bits and pieces that we want just attached in there that all the stuff we want at the hub end but isn't necessarily needed at the edge where it's all collected. These get created through the front; there's a section on the front end where, when things appear, there's a couple of scripts that run that will generate the bits we need in the database to back these up and then fill them out as it goes through.
1:03:40
Louis: And speaking of the database, if I can make sure... Yeah, that's that one. We tend to use this website; it's called DBDiagram, and it's incredibly handy for just mapping out what you're going to have in your database. Very quickly, throw it all together. There's a markup language here called DBML that just allows you to get things up and see exactly what the shape of them are going to be before it ever touches the actual database. And every now and again, as we're kicking it about, we go, oh, hold on, we need an extra column here, we need an extra column there. Well, I do all of that in our design phase, and this website allows us to export out to several vendors, which just kicks out the script, we throw it at the database, and we have all of our tables in there with all the relationships put in place for us.
1:04:28
Louis: On these, we have decided to, we have our stores table, which stores all of the information related to those stores. So that's things like the latitude, longitude, where it is, the route path of our reference UDT, the size of the fuel tank that's underneath the store. And each of those belongs to a city, and our prices are all set on the city level rather than the store level. Same as each city might have a different fuel delivery truck size, and those are our default truck sizes that we use to run that front-end box that you saw. However, my favorite on these is our events table, and it's fairly simple; it's just storing when something happened, where it happened, and what it was in terms of a type ID. And our type IDs are built into ranges, so the 100 range is the car wash, the 200 range is the fuel pump, and so on and so forth.
1:05:28
Louis: But the real magic of this is the extra data column, which is just a regular old string. We are using ours to store various JSON objects, so when a car wash happens, we all know what the source was for that and how much it cost at the time. So that when it comes to calculating these prices and how much has been made, it's as simple as just scanning through those events and just calculating the cost and ripping it straight out of that extra data. The UI itself, as we've built it, I want to give a particular thank you to David Rojas. If I can bring this back up. So this little set of tabs at the top, that is an Exchange resource called the Simple Tab Control. We use that everywhere. It is so good for so many different reasons, and it drives so many of our projects. If we just want something up there to just tab across things, the man's done the work for us, so I want to say thank you.
1:06:34
Louis: Where am I on this? Lost my mouse. There we are. So the advanced style sheet as well allowed us to get all of our key frames in for all of the lovely animations you saw. We also stacked some extra little bits in here as well. We tend to collect together a lot of... Our classes are built out of... There's a style library called Tailwinds that gives us lots of little building blocks that we can use to collect together and just build out our nice, easy, simple-to-use classes that we can drop wherever we need them.
1:07:22
Louis: So I'm going to show you how the panel viewer works. There you are. So this is the panel viewer that you saw. And if I just quickly pop that to New York so we can get something going. There we are. And in here, it is simply an XY container with a couple of embedded views thrown inside it. Now, each one of these is keeping track of the current viewport height, with a little check in there because, unfortunately, in the designer, we don't always get our primary view width and height. It takes itself to zero, so we're just running at the moment off of that default size for the view itself. And then beyond that, it's just consuming that. We are building our offset, just to plug that straight into the middle, which just lands the page directly in the middle.
1:08:21
Louis: And the scale, now, these ones are currently set to; they're one-to-one, but using that viewer height, using the width and the height that is output by each view, we can just generate a nice, quick, easy scale and then plug all of that into our CSS Transform 3D, which just gets it where it needs to be. And as I said, this will work; if I start shrinking that down, it starts bringing itself down, back up again, and it just means that if I pop that back out to full screen, it sets itself to the as-designed sizes. And I think that is...
1:09:04
Louis: Oh, no, the events. Almost forgot. So talking of the events, as I said, these are simply just JSON strings that we attach to each event. And this is extremely extensible if they want to track something else. We realized as we were building through, we actually managed to completely forget storing transactions in the store. But it's cool. We're literally just straight into the event types. Well, there's a type 601 now. Let's get that in there. And then for backfilling this data, I just had to run everything into the event table and just attach all the data that we need. So we have, as you can see from these car washes, the remote start is when it comes off of here. If we were to run the Manual button, we'd get a new event that says, Manual button Start Source. The fuel pumps track when they start. Hopefully they stop at some point. And at the end of that, it will calculate how much fuel was used. So on our fuel level check, it's every time that fuel level goes down, assuming it's a fuel pump that started, we'll store that start value, pick up the value off the end, go through the middle and multiply it by whichever fuel was in use at the time. And that is, I think, me done.
1:10:28
Kent: All right. Well, give it up for BIJC.
1:10:31
Louis: Yeah, there we go.
1:10:38
Kent: Very cool, and thank you for, was it dbdiagram.io?
1:10:42
Louis: Yeah, honestly, it's one of the most helpful things that we have found in terms of the free tools around.
1:10:47
Kent: I believe it. Travis and Kevin, I hope you're taking notes. I've seen your database schemas, so good tool for you. Just a pro tip. But really a great project. Really great to see behind the scenes how it's all put together. What were your thoughts?
1:11:03
Kevin: Yeah, I think there were a lot of really, really cool things that were built in there. One of them that I wanted to pull out and highlight, as the screens change, all of the math that's behind that and the transforms that are there, it's really, it looks really impressive, and it's also, the way that you implemented it is really simple, too, which is part of the beauty in it. So any screen, as you were showing, any size that that was going to, it's going to be dropped there in the middle. You're able to fly those in from the other sides and fly them out, all of that. Really impressive to me.
1:11:37
Travis: And I'm a fan of ERD diagrams, so it's always good to see the behind-the-scenes, see what's actually the database, and the simplicity of the event table with JSON makes it so powerful, right? Because you can have a Flex Repeater or a table. I don't know exactly what you get, but maybe a Flex Repeater to make it, to show that information there. It's pretty exciting.
1:11:54
Kent: Yeah, I really appreciate you brought up the flexibility of the data model there. I love seeing the JSON, so that people come up with new things to store to their data model after the fact; it's very extensible, right? So a lot of cool stuff. It's going to be a tough decision for you all to decide who's going to be our champion today. Two incredible projects. But with that, I think we can go ahead and start getting ready for our final presentation.
1:12:22
Travis: Wait, Kent. No.
1:12:22
Kevin: Wait, wait, wait, wait, Kent.
1:12:24
Travis: Not too fast. I mean, look, come on.
1:12:27
Kent: Oh boy, what is it now?
1:12:28
Travis: I think that there is a wizard amongst our midst, and that is Inductus the Gateway Maker from the Lands of Hecht.
1:12:41
Kent: Oh my gosh, there's a real wizard up there.
1:12:43
Kevin: Oh, great wizard! Will you please summon our curveball? Magic.
1:13:03
Kent: All right.
1:13:05
Travis: There was no one doing that. It just does it.
1:13:07
Kent: Give it up for Derek Chambers of Flexware, our Ignition wizard. All right. Well, I guess, you know, with Ignition, scalability should be like magic. So I guess this does play in nicely as a metaphor here. But we have a third panel. What does that mean? Travis, tell us a little bit about it.
1:13:30
Travis: Yeah, so if you didn't catch here in the architecture, what we set up for these two teams was simply an Ignition Cloud Edition instance in our AWS account. So each team had their own cloud environment, and we are publishing the data from, as Benson said, from the Epic over MQTT as a UDT through Sparkplug to a chariot broker in the cloud that their Ignition Cloud Edition servers are connected up to. So it's a really simple architecture. We are literally, all that you saw here live was literally being published to the cloud. All the applications they're showing were in the cloud, and the data, the responsive, how fast it was was going all through cellular from these panels. But part of this challenge, is to, for the curveball here, is to show how they're dominating the convenience store market, right? They've got to have more convenience stores being added over time. And so we thought, well, let's bring out another one and see how well they can adapt to a second store being added to their system. 'Cause as we know, with MQTT and Sparkplug, it is auto-magic. Those tags will just show up.
1:14:43
Kent: All right. Well, then I guess the third challenge, the third presentation they're going to get to see for these projects, is we are going to have our teams see the MQTT UDT get published up; well, the UDT published up over MQTT. It's going to be in the broker. Their projects are going to discover it, and we have to see how easily it can commission that new site inside their projects. And it should be easy, right? Easy to roll out new sites. They probably planned for this. They had scalability in mind. We saw the lack of Boston earlier, so we know there's a concept of scalability. So let's see what they can do. Travis and Kevin, for this one, I think it's going to be a little more interactive. We're going to start with DMC. We're going to go ahead and go into their presentation, and we'll have them treat you guys as the customer. So I don't know which one of you is Gru.
1:15:40
Kevin: I guess I was the minion.
1:15:41
Travis: I guess I'll be Gru today; I don't know.
1:15:42
Kent: You're Gru? Kevin the minion. That's my boss, everybody. But you guys are going to come and talk over here. But before we do that, we do want to... Not that page. We do want to come over here and get to know Brandon. So Brandon, the final presenter. That's a lot of trust from your team to have you finish this thing off. Tell us about yourself.
1:16:12
Brandon: Hi. So I'm Brandon. I'm based out of our Chicago office. I've been at DMC just over six years. Fun fact: I'm originally from Tanzania. Grew up, spent most of my life out there. And have lived in Chicago since college. Also a new dad.
1:16:29
Kent: Congratulations.
1:16:24
Brandon: Thank you. And yeah, excited to be here competing.
1:16:31
Kent: Yeah. Awesome. All right. Well, Travis, you want to come and...
1:16:37
Travis: Yeah, let's get this thing started off. So let's bring their screen up here. Because right now, we only have one store, right? And we said that we might be adding new stores. So we're going to go ahead, and right now the transmission on this is turned off. So our team in the back, let's go ahead and turn on transmission to get this data published up to the cloud. They'll give that a few seconds for that to happen. But we'll see how the team will be able to respond, right? What's going to happen here while this is going on?
1:17:08
Brandon: I mean, this is exciting. Your empire is already expanding. Day three. One of the two stores.
1:17:15
Travis: And I have a DeLorean.
1:17:16
Brandon: Wow, that's a nice car.
1:17:17
Travis: This is pretty exciting.
1:17:20
Brandon: But yeah, we know we wanted to make it easy for you to add new stores and expand your empire. Well, it's already expanded. And so the way it works is we're browsing those MQTT tags, and when it detects new UDT instance, it will automatically create those tags and add it to our local configuration and give us a notification that there's a new store that needs to be configured.
1:17:39
Travis: So my empire's expanded now.
1:17:40
Brandon: And your minions are very happy about it. So if we click on this button, it'll take us to the store configuration page, where it will allow us to see all the store, all the new UDTs that have yet been configured. So we wanted to make it easy, so just with a few clicks, you can customize your store and have it ready to use.
1:17:57
Travis: So even somebody as silly or as stupid as Gru here as myself can do it?
1:18:02
Brandon: I think you can do it. So if we click configure store, there's a couple of things that we can change. We can change the location where we get our weather information, which that came pre-configured from the MQTT tags. We can also update the store name. Again, those are preset on the MQTT tags. And lastly, we can decide where we want it to be on the map. So I can pull up this map editor, and I can pick where I want it to be. And so, I don't know, let's just put it like over here.
1:18:27
Travis: Let's put it in the forest, huh?
1:18:29
Amy: Yeah, let's put it right in the forest. So hit confirm location, and then we hit configure store, and it's done.
1:18:36
Travis: Oh my gosh.
1:18:36
Brandon: It's configured. It's all it needs to do. So it's ready to use. So if we go back to the map, we can zoom out, and we can see our new store added. Not yet profitable, but we'll work on that. Start selling some gas. But I wanted to highlight a couple of features that make it easy to use. So as you can imagine, when your empire expands to hundreds of stores around the world, navigating between them could be difficult. But in this drop-down, it allows us to navigate between the stores. And so you can also search for your stores in here. So I can be like Inductive: find the store, navigate to it, and it'll bring it back. And so it allows you to switch between stores very quickly. Also, you can zoom out and still see the status of your stores across the country and how they're performing. So you also can navigate them this way as well.
1:19:19
Brandon: Also, we wanted to give you flexibility to change your stores if you need to move locations, get a new center. So you can, from here, you can update the name and the weather location. You also can reselect a spot on the map where to put it. Again, because, as Nicoli mentioned, all of our views are dynamic using the tag path, so all these views are completely dynamic and reusable. All we have to do is pass in the new tag path, which we do by clicking on the store, and it's already ready to use. So we can set the fuel prices, we can monitor the fuel level, so if we want to add some fuel, schedule a refill, we can do that as well. And then, of course, obviously, we can run the car wash.
1:20:16
Brandon: We also have the light controls, and you can see they're all on, but we can turn them off, and we can have full control of these lights. It's all dynamic. And then the dashboards also, we can select our store, we can see our new store, and we can see how it's been performing over time. And you can see we just bought some fuel, and we haven't been selling gas because we just opened it, but as we sell gas, it'll soon be profitable for us. And so, yeah, some of the best practices that we use to really make it easy to add new stores is passing that tag path as the global identifier for each store makes it easy to like create these screens and make them dynamic. We also created a UUID, a UUID in the database to track all of the transactions to make it easier to filter and sort those transactions. Yeah, so hopefully this app allows you to manage your expanding fleet and be profitable and dominate the convenience store market. Yeah, and I hope you like it. And yeah.
1:21:16
Travis: Thank you so much. Appreciate it.
1:21:26
Kent: Alright. Travis, are you satisfied as the customer?
1:21:29
Travis: I'm pretty satisfied, but I do have plans now for a hundred more, but we got to do it next month.
1:21:32.9
Kent: Perfect. Awesome. Well, Kevin, I'm gonna have you come join me over here as well.
1:21:38
Travis: Yeah, Kevin.
1:21:39
Kent: You're done being a minion. You got to start your own empire over here. Take over the world, right?
1:21:45
Kevin: Hey, Travis. Can I buy a store from you?
1:21:48
Travis: Thanks, man. Here you go.
1:21:49
Kevin: All right. Got it.
1:21:52
Kent: Alright. Well, we are excited to see your project in action, see how it does with the same challenge of commissioning a new store on the fly. But before we jump into that, Amy, we're so excited to have you here representing BIJC, the closer at the end, saving the best for last, is that right?
1:22:13
Amy: I hope so.
1:22:14
Kent: Yes. Well, yeah, please introduce yourself to us.
1:22:18
Amy: Well, I'm Amy. I started at BIJC about a year and nine months ago with no experience. So I think that says something about Chris's hiring practices. But I've learned so much, and I've really learned a lot in that time. And I'm really excited to see in the years to come using Ignition more and more and just becoming more experienced in it. And a fun fact about me is that I'm from Kenya. So with the Olympics, really good at long-distance running, I am not. So I feel like Sheila should be the honorary Kenyan because she's clearly doing better than me at the country sport.
1:23:00
Kent: Great to see in the midst of a competition, a gesture of goodwill, keeping things clean up here for the teams is great. It's that time. We're gonna have you go ahead, and Kevin is going to be your customer. He wants to take over the world, and he is gonna do it with one more convenience store. Let's see it.
1:23:22
Kevin: I am excited. I just bought a store for 20 bucks. Thank you, Travis.
1:23:24
Travis: You're welcome.
1:23:25
Kevin: And I would like to put it on my system. Can you show me how we do that?
1:23:30
Amy: Yes, that will be no problem, fingers crossed. I really don't wanna utter that phrase. It definitely worked earlier, so.
1:23:39
Kevin: We believe you.
1:23:40
Travis: We believe you. Sometimes these things take just a minute to...
1:23:42
Amy: Okay. So.
1:23:43
Kent: Oh, is it there?
1:23:45
Amy: I know. So we have a new store, and it's flashing red to indicate that we have to do something with it. So if I click on here, Folsom is not an existing city that we have in our city table. So we have this configure new city popup where we can put in some initial prices or we can do some promotional levels just to get people interested.
1:24:07
Kevin: Alright. Let's not give it away. That's $2.50.
1:24:12
Amy: What do you want it to be?
1:24:15
Kevin: Let's call it eight bucks, and then when people don't buy...
1:24:16
Amy: Oh. Jesus. Okay.
1:24:19
Travis: But Kevin, you don't even, you have an electric vehicle, man. You don't even have gas.
1:24:24
Kevin: I don't know what it costs.
1:24:27
Amy: Okay. And then we can set the car wash price as well. What do you want that to be?
1:24:32
Kevin: Oh, 10 bucks.
1:24:33
Amy: 10 bucks? Okay.
1:24:34
Kevin: That seems reasonable, right?
1:24:36 Amy: Yeah, I think it is.
1:24:36
Kevin: I don't wash my car either.
1:24:41
Amy: So here, if we were in a new country, 'cause you're looking to expand, we can set for that specific currency, but we'll keep it as US dollars.
1:24:49
Kevin: Beautiful.
1:24:50
Amy: And we'll keep the truck size as 3000 gallons. So when I click this button, it will create a new city in the city table. And then we need to now configure the new store itself. So we have these settings here for the tank car size, and we need to actually put it on the Harris Center. This is where I don't know where I am on the map.
1:25:11
Louis: Just right over there.
1:25:16
Jonathan: Over here.
1:25:19
Kevin: There we are.
1:25:20
Amy: There we are. And now when we click create, we'll see that now it switches to yellow to indicate that this site needs commissioning. So, let's go to our new store. There it is. Well, you're already employee of the month, so well done.
1:25:46
Amy: And let's see if anyone's managed to make the banned list in that short space of time.
1:25:53
Kent: How did you know?
1:25:55
Amy: I think it's actually actually a blanket country ban. Maybe a global ban. I think that's actually more of an achievement, Kent, than a failure. So well done.
1:26:06
Amy: So here you can see, we can operate all the same things that we could on the other one. Simulate the door opening. We can also... Oh, where's my mouse? There it is. You go to the fuel station, we'll see those new updated prices there. We also have the city pop up here so you can edit that in real time. You might have had a change of heart and decided to charge cheaper prices if you want. So you could set that down, and that will update on the screen shortly. There you go. And now we are happy with the prices, and we're happy with the store. We can go over here, and we can take the store out of commissioning and set it as active. That will also change its status on the map. So now it's green. Oh, sorry. And now we can operate on the car wash. Let me click on it on the map again. I'll go that way. Just to prove you to you that it really does work.
1:27:15
Kevin: Yeah, and I get my little animation there too.
1:27:17
Amy: Yes.
1:27:18
Kevin: That's my favorite part.
1:27:22
Amy: So yeah, that is our new store commissioned and up and running. I will like to say that I'm definitely not under duress and that, and that Kevin has informed us that he does not know where my family lives. So please don't feel bad about not voting for us because I will definitely be here for the next ICC.
1:28:00
Kent: Awesome. Well, incredible job to both teams. What a Build-A-Thon. Only thing that's left now is for you to decide which project you like better. And so at this time, we do invite you to pull out your phones. Hopefully you haven't been on your phones the whole time; you're paying attention up here. Come on, stay with me. But go ahead, pull out your phones. You're gonna go once again to the IA Events app, and you're gonna go into this event. You're gonna go ahead and go to the agenda at the bottom. You're gonna go to today, the 19th. And you're gonna scroll until you see the Build-A-Thon. You're gonna click on the Build-A-Thon, you're gonna scroll to the bottom, you're going to see the polls, and you should have a poll there that you can click on to vote for your favorite team.
1:28:47
Kent: Alright. So yeah, I think at that point, I do wanna say these panels by Opto 22 truly are incredible. And as was alluded to earlier, after this session, we will be taking the panels upstairs. Give us a little bit of time to get them up there. But we will be plugging them setting up so that you can come and check out the panels, turn on a car wash, and see all the great work that Opto 22 has done. Alright. Yeah, give it up for Opto, right?
1:29:24
Travis: So, yeah.
1:29:25
Kevin: Alright. Well, I think as they're getting their final votes in here, we have one thing. Go ahead and take a couple of minutes to vote. But we have something that has to do with music and it has to do with the video.
1:29:37
Kent: I think you're right, Kevin. We can't have a Build-A-Thon without...
1:29:40
Kevin: A music video.
1:29:41
Kent: A music video. All right. Enjoy.
1:30:14
Kent: 2018, it all began. I watched from the side, Travis and Kevin; the pioneers filled me with pride. Perspective was the challenge. A new dawn in our side. Travis took the crown that year. His brilliance shining bright. The next year brought a re-match, the Ignition Exchange, in play. Kevin's historical playback stole the show that day. I stood there in the shadows, admiring their might, wondering if I would ever step into the light. From Travis's first victory to Kevin's shining win, their rivalry and friendship is where it begins. Man. The Build-A-Thon rocks! The Build-A-Thon rocks! The Build-A-Thon rocks! Yes, it does! The Build-A-Thon rocks! The Build-A-Thon rocks! The Build-A-Thon rocks! The Build-A-Thon rocks! Yes, it does! The Build-A-Thon rocks!
1:31:52
Kent: Each year I see the teams, Vertech, Flexware, and more. Roeslein, DMC, Corso, and Design Group, they all soared. Opto 22's creations, a spectacle to behold mixing tanks and Galton boards, stories to be told. I feel the weight of history, the legacy they've made. Travis and Kevin, my heroes, their shadows never fade. But in their light I find my strength to host and to inspire; keep the spirit of the Build-A-Thon burning like a fire. 'Cause the Build-A-Thon rocks! The Build-A-Thon rocks! The Build-A-Thon rocks! Yes, it does! The Build-A-Thon rocks! The Build-A-Thon rocks! The Build-A-Thon rocks! The Build-A-Thon rocks! Yes, it does; the Build-A-Thon rocks!
1:33:02
Kevin: The Build-A-Thon's a wonder, a testament to skill. We gather here to innovate, with passion and with will. But Kent, my friend, you seem so down; you're down for plain to see. Just take my hand 'cause you and I, and us, we all agree. The Build-A-Thon rocks! Yes, it does! The Build-A-Thon rocks! Every day! The Build-A-Thon rocks! Yes, it does! The Build-A-Thon rocks! Amazing socks songs! The Build-A-Thon rocks! Like the Rednecks! The Build-A-Thon rocks! Golden marble! The Build-A-Thon rocks! Yes, it does! The Build-A-Thon rocks! The Build-A-Thon rocks! Like dinosaurs! The Build-A-Thon rocks! Like birds! The Build-A-Thon rocks! Yes, it does! The Build-A-Thon rocks! Pop rocks! The Build-A-Thon rocks! Classic rocks! The Build-A-Thon rocks! Yeah rocks! The Build-A-Thon rocks! Yes, it does! The Build-A-Thon rocks! Yes, it does! The Build-A-Thon.
1:34:23
Kent: Magic.
1:34:30
Travis: Let's all give it up for the best MC, master of ceremonies, Kent Melville, everybody.
1:34:44
Kent: I love working for Inductive Automation, where we don't take ourselves too seriously, and love being part of the IA Department of Funk. Thank you so much for joining us last night. Thanks for indulging this music video. We love you guys.
1:35:03.7
Kent: I think it's that time. Who wants to know who the winner of the Build-A-Thon is this year? Yeah? Yeah? Alright. Well, we are closing polling. Polling is done. At this point, we are going to go ahead and reveal the winner, and we're gonna put it up on the screen. So I give you this year's Build-A-Thon Champion, DMC; look at that!
1:35:30.2
Kent: DMC, go ahead and come on up here. It was close. Congratulations to both teams. Thank you for participating, seeing so many votes. As is the tradition, when you win the Build-A-Thon, you get a coveted orange jacket. Something that the music video made very clear that I have never done, so I have a green jacket. But to provide the orange jackets, we are going to invite on stage last year's Build-A-Thon winners from Barry-Wehmiller Design Group. Give it up for Design Group, everybody.
1:36:12.1
Kent: Alright. You may go ahead and present the jackets. And do they fit this year? Yes. Look at that. We did something right, folks. Alright, I give you your new champions.
1:36:32
Kent: Alright. Well, these teams will be around for the rest of the day. Please go congratulate them, tell them what you loved about their projects. Go and ask for tips about your next project. It is great to see the best of the best here on this stage, and we look forward to doing it again for you in the future. Also, we are very excited to do this in the morning of the last day so that you can have a chance to play around with the panels. But if the Build-A-Thon is not closing out the conference, what is? Well, we have a closing keynote for you later today. I talked about this last night, but there will be a special announcement in that session. We do hope you stick around, but for now, we just wanna say thank you and have a great day.
Want to stay up-to-date with us?
Sign up for our weekly News Feed.