Ignition Community Live with Matthew Raybourn
Accelerate Development with the Ignition Exchange33 min video / 22 minute read
Learn all about the Ignition Exchange and how it can help fast track your solutions.
Discover how easy it is to download and import resources into your own application.
Then gain an understanding of how you too can create and share your own resources with the community.
Matthew: Welcome everyone to Ignition Community Live. And today's topic is Accelerating Development with the Ignition Exchange. So I'm your host Matthew Raybourn. I'm a sales engineer here at Inductive Automation. I've worked with the Exchange since its release. And now we're gonna take a closer look at this free online repository. So the Exchange is a collaborative community for sharing Ignition resources with the common goal of improving applications created in the platform. And these resources are more than templates, they can also be UDTs, reports, pipelines, sophisticated script packages, and more. So today we're going to highlight the Exchange. We're going to go over how you can use it from searching for a resource to downloading and then importing it, and we are also going to go through the process of creating our very own shareable object. To use the Exchange, you can find it right on our site using the menu in the top right. From there, you can browse through the library of assets, filter them by category, type, version, or you can just use the search bar if you're looking for something more specific, even sort them by what's brand new, most popular or recently updated. So let's go ahead and do that now, we can actually jump right over to the Exchange and try it out.
Matthew: So right away, we are already greeted with a list of available resources. And of course we can search, filter, and sort them. So if I go over to the categories here, I can actually go in, maybe I want a dashboard-related component here. And so we can do that just like that, as well as the sorting and search functions available at the top here. So each card here represents a downloadable resource. And we can select it to find out more information, and here's a good one right at the top. It is Travis's home automation dashboard from the demonstration last week. So we can go through. We can read what this is about, we can see what type of resource it is. What skill level it should take to implement it and use it, as well as the required modules, if any and also the Ignition platform version that it was designed for.
Matthew: We can also see a little preview of the resource itself, a description of it, as well as some installation information. So if there's anything special you need to do for this resource, then you can see that here, as well as specific versions. The Ignition Exchange allows you to update your resources over time, and then you can include automatic links here to download those previous versions. And one thing to note here is that if you find something in the Exchange that is close to what you need, but maybe it doesn't necessarily have all the features you want, or it's missing something key, you can always download the object here, the package, try it out, incorporate those features into your own. So you can use that as a starter. You can take what you need right now and then maybe come back later for something else that you don't need at the moment here.
Matthew: Let's actually go back and check out a couple more of these. We could do that and then go right back to the start here. And let's actually just look at what's the most popular resource here, what do people like to use in the Exchange? Right away, we see some trending, we have some analysis and charts as well as even the Ignition 8.0 Demo Project. So the entire demo project, including the Perspective demo, as well as Vision, is included right here so that you can download it yourself and really make it your own. So this highlights the other use of the Exchange, is that not only can you take these resources to incorporate them into your own projects, but you can also simply go into them to find out just how they were made.
Matthew: So if you wanted to see how a particular drop-down or pop-up window was created, then you can go in, import this into your development Gateway and actually see how it was implemented. If we go back here, we can look at a couple more here. We've got ... Factory Packs is another great one, a lot of different faceplate style templates that you can use. And as noted here, it requires Vision as well as Allen-Bradley drivers. So we go back one more time. And another thing to point out here is that these resources, as I mentioned, they aren't simply just a template. They can include additional files, so when you download it, you actually get more than just a project import. So let's try that out here. So let's go to this first one here, the Ad Hoc Trends component for Perspective. And so we can preview it of course, we could see what it requires, make sure our Ignition Gateway is at least capable of importing that. And now we can download that resource. And as simple as that, we now have this resource available for importing into our own project. And as I mentioned, if there were additional files with their tags or something else, then we can actually import all this in one step without having to break it apart or import them individually. Having said that, you can of course open up your Zip file if necessary and import individual pieces that way.
Matthew: So let's go ahead and import this into our system here. I'm just gonna switch over to my Ignition Gateway, and then make sure my trial is now available, so that way I could test this all out. And all I need to do really is go over to my config page, go into this option here for Ignition Exchange and I can begin importing that package file. So if I simply click inside the box here, find my Ad Hoc Trends, import that, I can go through and pretend to read the instructions and then once it is all ready ... If I have a specific project that I wanna import this resource into, I can select it here, I can also create a brand new project, right from this interface, so that way I don't have to switch back over to the Designer to start that and then back over to the config page and get that all going. So I'm going ahead and import that, and that was it. The resources are now available and I can actually begin using them.
Matthew: So I'm gonna do that now, I've already got my Designer open. Now as is ... my views aren't actually there yet, but all I have to do is really just update this to pull in those new views here. And so in this case, what I've actually got in my project is now the Ad Hoc Trends component and this component is actually usable as is. So not all resources are going to be like that, that really does depend on what the resource is. If it's a scripting library, most likely you will have to just use that throughout the project. In this case it was more of a stand-alone usable component. So I'm just going to target that to a new page in my project here, save that and then once that is all set, I can actually switch over to it in my demo here, reconnect to my Perspective session and now I have the Ad Hoc Trends available for use. And I could go through ... By my example tags here for my fountains, and I can see the pressure as it goes up and down. And so you can take this and just use this as is like I did this way, or you can create new views and drop it in there. It makes it that much more powerful to be able to just place this wherever I need to and I didn't have to configure anything.
Matthew: And so that's kind of the goal that we'll get to as we go through all of this. Now, another thing that this view includes is that I've actually taken a separate resource available from the Exchange and incorporated it into this first resource, into the ad hoc trend, so there's the color picker that Travis had put together. So I'm gonna go in and now that I have this included as that part of the interface, I go in and use it. And so you can do the same with your own resources and combine them and make them even more powerful, more flexible.
Matthew: So from here, let's go ahead and see what we could do. If we have a resource that we put together, a screen or a template, we can see if it's a good fit for the Exchange, if there's anything we need to do it to import it and make it really successful. So I already have an example screen here, I've got my smart fountains that I've set up. I'm able to monitor them, I can see them actually working here, and now we're gonna see what this is all about. So each of these templates is built, in my case, just off of this one single parameter. That makes it really easy for me because I can go in and just change that and it automatically points to all the right tags.
Matthew: Now, the potential issue here is that this is very specific to my use case, so to make it more of a successful resource, make it reusable in other people's projects I might wanna rethink that approach a little bit here. So instead of just working off this single number and then assuming a lot of different other parameters, I can kinda break this apart and actually use it in a little bit different way here. So for this more specific example, all I'm really doing is taking this original single fountain number and I'm creating a binding here that's indirect, using that number. So it's not too complicated. If I did need to adjust, if I downloaded this off the resource, I could just go here off the Exchange. And I'd go and you'll tweak this as necessary in the template and sort of fix it the way it works for me, and then I would actually be fine there.
Matthew: But there's potentially other things that we could do here to make it much more flexible, more parameterized. So the first one of course here is, we can look at this. Maybe instead of providing the number itself, we can provide a whole base, this base tag path. And then from there we can create indirect bindings off of this base tag path and then just point it to the specific subtags, the child tags inside this directory. So that has the benefit of not relying on the actual root structure here, I can just provide it a different tag provider, maybe a remote tag provider, a different structure to begin with, and then as long as I have the same tags underneath that, that would actually work out just fine.
Matthew: And this is another good technique here, is that I've actually broken out my main values into one single place as custom properties. So that way if I did need to change them later, all I have to do is go into this one area, fix it, and then I'm good, I don't have to go through all of these other elements here and kinda combine and fix all those individual bindings. So that's a pretty good approach there. There's another one as well that will work too. And that is, instead of using the tag cap and exposing that, we can actually just expose the parameters directly, and then doing that means we don't actually rely on tag pass or anything itself. So in that case, we can take the same template and instead of requiring that we bind it to a tag of some sort, we can bind it to a database, for example, or even other properties inside the same screen. So that makes it even more flexible. Someone else can use this right away in their project by just supplying these different parameters. And maybe their system doesn't even support this fancy sort of lighting, and so we don't have to worry about that. They can just show the different pressure levels of their smart fountain and then they can just use it as is. And so that's another great way to create this sort of resource that is reusable, potentially modular. We can use this inside a repeater and create a single binding that pulls in all the values we need and then actually use it in place like that.
Matthew: So that's at least some different approaches that you can take to really open this up to where it's more likely to be a successful, reusable package that you can then put onto the Exchange and make it used by more people. And from there they can take it and they can extend on it as well, add more to it. So now that we have this new resource ready to go and we've tested it and we've seen that it does actually work the way that we want, then we can actually start getting it ready to incorporate into the Exchange. And so, of course, definitely would recommend go through, test it out, make sure it actually does work the way that you think it will. As well as ... It would be a good idea to try to use this inside a new project. That way, you know if there's any other hidden dependencies. So if there's any style classes that you need to include, you'll want to use those. Any other scripting libraries, then you can definitely test that out to make sure you include just what is needed to import this resource into your own project here. And so to do that, once I have this ready, I can select it, get this resource ready to export and then export only what I need in this case.
Matthew: And now I have that part of the resource available for eventually importing into the Ignition Exchange. And once you have this ready, you can go through, if there's other resources, say tags, you can go through and export those as well. So if you wanted to create a more UDT-based template or a report or something else that is based off of other data. Even example, SQL dump files that you can use. So if you have a really sophisticated either dashboard or reporting or something, and you wanted to include example data, then you can certainly include the additional files there as well. Now, in our case, we have a very simple example here. So at this point, we're actually ready to import it, and I'll go over that briefly.
Matthew: The overall process really is just to go into the Exchange. Inside, once you've logged in with your account, you can go create a new resource here and then select what type of visibility you can go through, fill out the form of course, give it the specifics. That way later, someone can find it the same way we were able to just search for dashboard pieces or different ways like that and you could do that, too. As well, it's good to include a screenshot, so that way someone can actually see what they would be downloading. Now in some cases for things like scripting, it's not as clear for a screenshot, but you could certainly get creative and include whatever type of image you want there. Once you have this ready, you go through the entire process, you attach those files, and then it actually goes to a review. And so on our side, we actually will download that resource, import it into our own system, just like we did with the Ad Hoc Trends, and we will try to use it ourselves.
Matthew: And so what we're looking for is that it is able to be imported. If there's any instructions, maybe it's a more complicated resource, we'll try to go through those, make sure that it's clear, it makes sense. And then once we have it imported into our system, we can try it out, and if it seems like there's any sort of issue or potential issue, then we'll reach out and let you know, and then you can follow up and then resubmit it. And if not, if it's all good, then it will be able to be included in the Exchange live.
Matthew: And so that's kind of the whole entire approach here, as far as using the Exchange, leveraging what resources are available in it, as well as how you can contribute to it as well. And so at this point, we take a little bit more time, kinda go through maybe some more powerful examples here. So in this case, ICC Machine Learning workshop materials. This is a great one because it goes back to that point I made where you may or may not use this as-is inside your project. But at the very least, it shows you a real working example, how to use a certain specific machine learning or regression in clustering, so you can go through, try it out, actually see how it works behind the scenes, and then use that knowledge, that understanding and add that to your own project. So that's another good one there. There's different scripting ones available, so different kinds of charts and interfaces, entire transaction groups, more of a universal type of feature, a Click-to Graph. So, it doesn't necessarily have to be a dedicated template. It can be something that actually plays into other templates and things.
Matthew: Another great example here: Perspective Historical Playback. So we actually use this now in our online demo project. And so the way this actually works is similar to what I had mentioned about just exposing the values that you need. So using actually a combination of what the tag is and the actual real-time value, we can now go back and then pull the history for this specific tag. So we can see either real-time or historical playback. And since the underlying templates that we're using really just need to show either a set of history or a specific real-time value in that demo project, then we can tie it all together without having to go back and do a whole lot of rework. And so now we can just use this component and sort of drop that into place. Now if you don't have your template set up that way to begin with, it would take a little bit of work to change things around and make them work in that sort of sense. But you can certainly go in, try it out, and see if it works for you. So, yeah, I definitely recommend if you haven't seen the Exchange, if you haven't played around with it or seen what it can do or what's out there, then feel free to go in. You can review all the different resources here. Maybe you want to start using the Exchange just to hold onto your own resources, not make them public yet, and then that way you at least have a repository that you can access just all across the world here.
Matthew: And then maybe later, once you've kind of refined your resources, then you can go in and make some of them public ... There's a lot more you can do here. If you're familiar with the Cloud Template Library, this is a lot like that, but it extends it much farther than just templates. You can do even just UDTs. If you really like to create fully-featured UDT definitions for specific types of machines or PLCs or something, then certainly you can take those and share those as well. And so that's a very long overview of the Exchange and how it works, and what else you can do with it. It's not just about downloading resources and then copying them and then sharing them and that sort of thing, it's a whole lot more. There's a lot of them available already, and it's only really just begun. So definitely, you'll go through, check 'em out. If you have something you can share, throw that on the Exchange. We would love to have it.
Matthew: We'll be able to play around with it ourselves. We're gonna keep adding more to it, keep updating. I know, I keep saying that about my Ad Hoc Trends. I haven't updated it in a while, but there's some more features I wanna add to it, so I'm gonna try to make some time to get that going. And then, of course, you'll be able to see the updates and download it from there as well. Another thing I could point out with the new theming available in Ignition. There's actually some additional flexibility you can do with your templates. So if, instead of potentially using the style classes to stylize your example resource, you can try leveraging the new theming, so that when someone downloads it, it could potentially just work a little bit cleaner with their current theming system, and they don't have to go back and actually manage those classes and kinda tweak it from there, so that's another cool new feature that could tie into the Exchange like this.
Matthew: So at this point, we can ... you switch back over to the slides here in review. Once you have your resource, what can you do to package it up and contribute to the Exchange, once you found how this can be useful for you? And so, really, it's just once you have something that you are satisfied with, what you're happy with and you wanna share it, then go in. Just do a quick review of it. See how easy it is to import it into a new project. If there's any extra instructions or anything complicated, then you'll definitely want to make a note of that. I, at one point, had downloaded and tested a more complicated, an augmented reality type of resource. And as-is, it's probably one of the more complicated ones I had seen. But because the instructions listed enough information step-by-step, I was able to import it and actually see it working and move around in this augmented reality sort of sense, and that was really cool. So definitely instructions are very helpful. And then once you've got that all ready, just throw it on the Exchange, and then if there's any issues, if our side has any questions, we'll just reach out and I'll let you know and you could see how ... If there's anything you need to prove or anything you need to fix there. There's certainly some more trending examples, both Perspective and Vision, so it's not all about the brand-new Perspective. There's also a lot of Vision resources as well.
Matthew: And so you can go in and actually check into those, see how those are working. And so that's kind of the look here at the Exchange. And so at this point, I want to be able to open it up to any questions here. “Yeah, so what type of resources would you like to see more of on the Exchange?” So as far as me specifically, I do like the types of components, like the widgets and things that I can just use automatically, like this gauge. Especially, 'cause in my case, I'm not the best UI expert, so I can do a lot of the functionality, but not necessarily have the best sense of what would look best to the eye here. And so if there's something that was designed that just looked great and it doesn't even have to be fully functional, if it was just the graphical element, then that could be a good thing, at least specifically for me, and probably other users as well. Something thrown together that just has a really good appeal to it, good styling, and that sort of sense. That, in my case, would be nice ... so, yeah. I'm sure for other people, it might be the opposite. They might want to see the more logical side of things. How do you make something work the way it does? How do you do animations? Maybe even people that are brand-new to SQL queries. We could potentially see some ... a lot of different examples of how to do complicated queries, pulling data, and maybe even join different tables, and work that way.
Matthew: So that was a great question. Gonna go through a little bit more of the resources here. Here's that color picker that I had mentioned. So this is great because you can just download it and turn it into something else, whatever you need. I turned it into a simple pop-up, so that way I can use it as a little pop-up window inside the Ad Hoc Trends. So that's really, really neat. Yeah. There's definitely a lot more here. More complicated scripting, as well as ... example: navigation. Even user feedback, that's another good one. So, yeah, if there's any component that might not be part of the native component palette, then something you reuse a lot or wish you had, then definitely that could be a pretty good resource here as well. Yeah, and of course, if anyone listening out there has questions later, reach out to us and we will try our best to answer 'em. You can always check out the forum as well, and there's a lot of friendly users out there that would be happy to help with whatever question you have. Alright, everyone. Have a good one.