Inductive Automation Blog
Connecting you to ideas, tips, updates and thought-leadership
from Inductive Automation
With a demand for flexibility and a strong focus on quality, SCADA systems play a crucial role in ensuring smooth operation of processes within the highly regulated Biotech industry. As a leader in the field, Cytiva is accustomed to developing solutions designed for the lab environment. Attend this session to get a peek into the technical aspects where Ignition has been leveraged to help meet customer demands, including dynamic OPC connections and integrated eLearning.
Transcript:
00:01
Cindy Smith: Hello, welcome, good afternoon. I'm Cindy Smith, I'm the Candidate Sourcing Manager here at Inductive Automation. Welcome to today's session, How Ignition is Boosting SCADA in the Biotech Industry. To start things off, I'd like to introduce our speakers. Chris Bollom, Senior R&D Project Engineer with Cytiva. Chris is a Project Engineer with Cytiva's Automation, Digital and Learning Group, and has experience running various technology projects within the biotech sector for the last six years. As Project Manager for the mPath Link SCADA system, Chris oversees the use of Ignition Perspective to deliver flexible solutions for end users. Chris is responsible for identifying post-launch customer requirements, planning feature additions, and overseeing releases to the market to leverage the benefits of Ignition. Andrzej Kolon, Principal Automation Engineer with Cytiva, is a highly skilled Automation Engineer with 16 years of experience specializing in PLCs, HMIs, and SCADAs.
01:01
Cindy Smith: With a tenure of seven years at Cytiva, previously Paul, he held this role, excuse me, he held the position of Principal Automation Engineer in the Automation, Digital, and Learning Group. In this role, Andrzej led automation efforts for various biotech projects, and he began his journey with Ignition SCADA in 2019 as the Automation Lead for the mPath Link development. Presently, Andrzej is actively engaged in new technology research, and providing mentorship to fellow automation engineers within Cytiva. Please help me welcome Chris and Andrzej.
01:38
Chris Bollom: All right, this is cool. Cool. Good stuff. So, thanks guys. So, what we'll go through today is a little bit of our perspective working for a company called Cytiva in the biotech industry of how Ignition is supporting us in terms of delivering our customer needs. We'll talk a little bit about some of the key demands from the customers, and then Andrzej will go through a bit of a deep dive into how we've leveraged Ignition on some specific topics. Already had an introduction from us, so. We'll have a little overview quickly on who Cytiva as a company are. So, effectively, we're a global provider of technologies and services aimed at accelerating drug development. So, there's a range of products, which I'll touch on in a second, but essentially we're producing consumables and hardware to support our customers made drugs. We have sites all across the world, and myself and Andrzej are based in the UK down in Portsmouth on the South Coast. We do have quite a big presence in the US as well, particularly on the East Coast here. So, in terms of the products that Cytiva offer, it's the full end-to-end solution, which covers small batches up to 2000 liter volumes, right from upstream manufacturing and in terms of bioreactors through to the downstream purification and filtration devices to produce an end product.
03:06
Chris Bollom: Predominantly, Cytiva focuses on single-use technology, so that's really to deliver the flexibility that our customers ask for. And you can see on the board there where we'll be focusing on mPath Link, which is a SCADA platform aimed at the process development phase of manufacturing, which is really in the early stages before we get to large-scale manufacturing where customers really demand flexibility. So, we'll start, we'll delve into that in a little bit more detail in a second, but first we can focus on some of the needs that our customers are asking for in that process development sector. So, customers, first of all, are really looking for scalability at this stage because process development is fairly early on, customers don't know the full extent of the equipment that they'll require, so they wanna start small and build equipment in as they go. Added to that, flexible access is something that customers want in a clean room environment, they don't wanna be gowning up every time they need to check what their process is doing, they'll wanna be able to remotely access their equipment and monitor their processes. Added to that, customers really ask for out-of-the-box use.
04:18
Chris Bollom: They're often smaller customers in this process development sector, they won't have large automation teams, they'll often be scientists that wanna just get the software and start using it to start their processes as quickly as they possibly can. And they're also demanding flexibility and access to data, mainly because in that process development space it's quite early on, customers don't know exactly how they're gonna transfer into manufacturing at that stage and they want to be able to change things and experiment with how they can produce the best yields possible. So that led us as Cytiva to launching the mPath Link, SCADA platform, which is built on Ignition. It was launched back in 2021, utilizing Perspective, but there was a version working on vision a few years before that. The main purpose of it really is to provide a standard UI across Cytiva equipment. As I mentioned, this is really aimed at the process development stage of manufacturing, so quite early on in the development process, but the intention is to try and expand that software across Cytiva's range of equipment.
05:30
Chris Bollom: And since 2021, we've got quite a robust process in terms of capturing needs from the field, and we've had a number of updates and iterations just to really hit those demands of the customers. And that wouldn't really have been possible without using Ignition, so linking that back to those key use cases from our customers. The first point around scalability that our customers are asking for, obviously the license model for Ignition is critical to helping with that. When customers want to scale up and buy more equipment, the traditional tag-based licensing models would be a problem to them. We obviously don't have that with Ignition. And Andrzej will delve into the technical side of this in a second. But one of the key things that we've done with this is the ability to add OPC connections in runtime, which makes it really easy for customers to purchase more equipment and add that into their processes.
06:26
Chris Bollom: Utilizing the perspective modules obviously been critical for us as well, particularly with some of these customers being startups, they're quite receptive to modern technology, want the ability to utilize tablets and mobiles. So we launched mPath Link with a mobile app so customers can access that, and that obviously takes away that need for customers to gown up and enter a clean room every time they want to do something. One of the other topics that Andrzej will delve into a little bit more is e-Learning as well, that supports that out of the box approach. With, as I said, people being generally scientists using this software, they wanna get going with it straight away. So we've utilized Ignition to add in some videos and e-Learning modules within the software. And then finally, as I mentioned, people will want to play around in this space, try and improve yield. And Ignition's really helped with that with a range of different charting tools. So we've added in features over time, things like a batch compare module, which allows customers to try and essentially get a golden batch and identify how they can make process improvements to improve their yield. So I think I'll hand over to Andrzej let's go through a little bit more detail on the technical side of this.
07:43
Andrzej Kolon: Thank you, Chris. Hello everybody. So we now concentrate on how the general architecture looks like in mPath Link. We have to go for a bit of the hardware, so then we've got like a perspective on how actually the software is built as well. So if you look at this slide at the bottom of it, we have a unit level, which is a dedicated hardware. So it can be anything. It can be a flask, it can be a dedicated bioreactor like you see here. It's a rocking bioreactor. It's this one here, and this is just a flask with few additional sensors and things like that. So basically this is the hardware that does something which is really particular peculiar for the particular process. On the higher level, we've got the controller level, and basically this is what we call controller or tower.
08:32
Andrzej Kolon: Basically what it is is a set of sensors and activators like gases or pumps, and they are controlled. There's a PLC inside, it's a back of PLC. It's OPC UA server. That's quite crucial here. And what it actually consists of is all the I/O and sensors that are in general, general purpose ones, and they pretty much can handle commonalities between all the processes. There's one-to-one relationship between a tower and the bioreactor. And this explore via OPC UA to our mPath Link, SCADA server. And that is currently on a standard deployments, that's Windows stand Ignition Gateway, 8.1.17, and Microsoft SQL 2019. All of that runs on a PC, dedicated PC that we sell as well and as a standard offering. And it provides as a visualization, we provide perspective workstation for mobile and for desktop applications. And it's basically supports everything that perspective workstation supports.
09:57
Andrzej Kolon: When it comes to Ignition Gateway itself, it consists of three projects. The global project consists of everything that is common for all the other projects. And then we've got mPath Link project and that's main desktop application. And then we've got a mobile version of the application. We decided to split those together because we had quite a distinguishable different user cases for each inside. It's much easier to manage those two applications as well, two different applications as a well. Well, like, as a separate application really. Now I'm gonna present a little bit of the video of how the actual software looks like we're using perspective, obviously with all, well, hopefully a lot of bells and whistles that comes with it. It's a modern UI. We design our UI with our UX team.
10:57
Andrzej Kolon: We've got internal UX teams. All the workflows are basically designed by them and we just follow what they want us to do. Perspective is really great with it. The UX is always focusing on new approaches, new workflows, all these standard web application kind of front end. And, yeah, with Perspective Module, it's really easy to meet those requirements. So I'm gonna play this video and we're gonna talk a little bit about it. So that's how the application looks like. You have access to individual units and the main dashboard. We don't have a limit to have amount of units we support in one application. It's a dashboard that is specific for the unit with few KPIs, process screen. We're gonna talk about process screen a bit more.
11:50
Andrzej Kolon: Alarms, trends, that's events recipe system, everything you have access to. You have also access with your cog icon to additional settings for each bioreactor and for the main system level as well. You can set up a lot of stuff here, specific to particular units. You can set up alarms. You can enable, disable alarms so everything is flexible. We provide maximum flexibility so the customers can set up their equipment exactly how they want. They can disable alarms, enable any alarm they want in the system. E-Learning as well. I'm gonna talk more specifically about e-Learning. You also have process screens I've mentioned with access to individual face space for each I/O that is configured for the system. So that's how it looks like everything is parametrized. And that's really, really quick with through how the application looks like. It's really minimalistic. And another video I want to focus on, it's actually running again.
13:17
Andrzej Kolon: Is what Chris already mentioned. So we're gonna deep dive a little bit into how we create units in runtime and how we add OPC UA connections in runtime. So that video will present how our customers that don't really have a big automation knowledge, if at all actually handle application fully from the front end. Bear in mind, these are mostly scientists that we are dealing with. So they know... They are really clever people, but they know pretty much everything they can about the process, not necessarily a lot of software/automation knowledge. So, yeah. This is how you see the software when it has nothing configure on it. You just log into the system. You log in and you go to settings and use add your controller. You select from available types. We have two types of the controllers. One is with pumps. The other one with this, without pumps, you just name your tower and you put IP address in. So that's the only bit that they really need to know. That can change. That can be different subnet, it can be whatever the IT department told them to put in or anything else. And then they need to put host name. If they don't know what it means, they just click on a help here and the software will tell them where to look to see what the actually the magic number is. Once they figure that one out.
15:06
Andrzej Kolon: They just click add and OPC UA connection is created. I clicked the, No, on the creating the units because it was the second thing explicitly I wanted to show. So once they add the connection, they can start setting up the unit and here they can select from all the available types of the units. They put the unit name and you see a lot of other main cases that... Main setup parameters they can have. They put all of those how they want, and they are at the page where they can set up the I/O. So pretty much what's happening here, they can add remove I/O. We just have a good guess of the default I/O settings. And based on that, they can modify everything. Here it's additionally we support user configurable I/O. It can be anything. It can be input, output, analog, digital, whatever they need they can do once they create it and agree on everything, they safe, we're happy, boom, job done. They have a unit and pretty much from here they can start running the processes straight away. They have a default batch they can run. So pretty much it takes two minutes to set up the whole software to run. And there's unlimited support to your connections, and there's unlimited support to the amount of units you can create.
16:22
Andrzej Kolon: So, now we'll focus on how it actually works from the back of things and we focus at the beginning at how we create this OPC UA connection. So what happens is at the top you can see how the application presents the controllers. Here's a example of three controllers, three controllers that are set up with different IP address and stuff like that. So pretty much what it does, it just represents exactly what is happening on the gateway side. So all the connections you can see at the bottom, they're standard gateway connections, and we just show them on the application. You can ask why we are doing that at all. So the reason why we're doing it is it's much easier for the customer to go through the process of setting it up, like I just shown a movie. But also we don't want to give customer necessarily access to Gateway. So he can ask, like he can modify a lot of things and also damage a lot of things. And we don't necessarily want to allow that to happen.
17:24
Andrzej Kolon: So how it works is there's a magic link at the top and this link gives you access to internal ignition gateway database, and pretty much everything that can be configured using your ignition gateway web server, you can see here. And you can interrogate and you can basically check what's happening and how it's happening. So this is the URL for that. You've got the list and you can query the database and you get the results at the bottom. So we, as I said, we're gonna focus on OPC servers. So this is the example of OPC servers. We just select OPC servers. We get all the fields here, and as a result, we get free servers like you've seen on the previous spring screens. So we've got free servers. All the names are exactly like that.
18:19
Andrzej Kolon: You've got type description and read only. And what is really important is the OPC server IDs. So that's gonna be really important because once you get your OPC servers and you work out how this is actually presented, and what are the fields you get to the OPC UA connections. We are working only with OPC UA. Our towers are back of towers, as I said, and their OPC UA server. So we know that we support only those back of towers. So we know that we are looking for OPC UA connection settings. So you can see at the bottom, and you can see here a little bit more at the top. These are all the fields that you can set up when you're going through your Wizarding Gateway. You can actually see all of those settings here as just fields. And what is really important here, you can see the server settings ID. And this ID links with servers. So each connection setting record has an equivalent and is assigned to actually the server itself. So that's pretty much how the link between server and its settings is made in the database. So we work with SDK, and I just noted here a few things that are really critical for the thing to actually work. And we work with SDK. It's 8.1.17. It doesn't, this does not have change too often.
19:47
Andrzej Kolon: So it worked. We went through 8.1.7, then 9, then 17 and it just never never changes. We're working with a context of Ignition Gateway. We also work with OPC EE server settings record and we work with OPC UA server type and also what is important we are interrogating, and there's the bit here, we are interrogating extension points. Extension points, the way I understand them, is pretty much capabilities of your gateway. So you're pretty much checking what the gateway is capable of and returns that it's actually capable to work with OPC UA. So how does it actually work when you want to program something? We use something called persistent interface and we create new persistent interface. So first of all we create a new server, so what we're doing is we create new OPC server setting record. We pass from the code name, server type and we just save this persistent interface. So that's the first bit you need to do. And then once you get that server saved you can start playing with actual settings of your connection. So what we're using here is we're creating a new OPC UA connection setting record that's pretty much one row here.
21:35
Andrzej Kolon: And we use, again, persistent interface and we associate that with one of the server's IDs that we already saved and pretty much we have access in that way to any of the settings from your Gateway. So that's pretty much how you can save anything, you can pass this all as the parameters, you can do whatever you want. Here it's not the problem, it's far more than I'm listing here. At the end of the day what is really important is to get persistent interface and save it. And as the last thing you need to notify the Gateway that actually something has been added. So you can say it has been added, there's option to have it modified and removed as well so quite a lot of interesting things you can do with it. It's all available in the documentation. So that's how we create OPC UA connection in runtime and there's a lot of interesting stuff there and some magic URLs and some magic fields. Here I'm gonna show you now how we create a units in runtime.
22:43
Andrzej Kolon: It's quite an interesting approach as well in my opinion and also this functionality doesn't involve any SDK or any additional code at all. So let's say not off-the-shelf supported by Ignition. That's kind of more mainstream usage of Ignition. So first of all I wanted to show this is... And this is common for all the empathic applications. What we're trying to do is to move as much configuration of the software to database. So if we can store some data inside the database, default values, user configurations, other sort of configurations, we store them in the database and our UI is responsive based on query results from the database. So we try to hard code as little as possible inside the perspective. So we've got our OPC UA connections, our controller towers and we basically store that information and we just query if we need it and we store those query results in session parameters and we just throw them at the screens where we need to. So we can see those towers are the bottom three towers I believe.
24:03
Andrzej Kolon: So we do the same with our units and that's what we're gonna concentrate right now on. We've got three units and we also have exactly the same idea. Whatever we have units, basic information is stored in the table and if we need to present it in the perspective page, we just query stuff, return the values and we sort them out on the view. Our units also consist of folders. So every unit is a folder. Every folder has additional folders inside that are pretty much specific to the I/O that we are using and every I/O is a UDT. Well, it consists of groups of UDTs basically. We have our UDT definitions. This is static and we use parameters to those UDTs.
25:04
Andrzej Kolon: So pretty much we, I will show you how we instantiate those UDTs with parameters that are here. That's how we create the tags for our OPC UA connection. So basically, what you've seen in the video is as soon as customer saves the bioreactor, we go through a series of events that are happening and we trigger code and you notice there's certain default parameters customer can add, remove from different I/O and we just constantly create a dictionary where we store all those changes and all those configuration settings and at the end we create a data set out of them and we pretty much, the first thing we do, we insert to a table that you've seen already a new bioreactor is created with unique ID and then we start to go through that dictionary of the I/Os and we create I/Os. So here we focus on 1270 ID and you can see 1270 bioreactor has all those I/Os with all some basic configuration already predefined based on some parameters inside the database and the ones that were put on them configured on the UI side.
26:23
Andrzej Kolon: So, here what is important, we're just gonna quickly go through that. It's ID78, which is our nano temperature. We're gonna follow through that example here. So we've got another table in which we store additional information of what's happening with our I/O, what are some other default IDs, and what is really important is what are the UDT types. So here, what is really important is what actually UDT we're gonna use and what is the sub-UDT if any, that we're gonna use. In this case, it's 2 and 19 that's quite important. So the next thing we're doing is we actually try to understand what the 2 and 19 means. And 2 is our input object, and it's a path to our UDT. So if you've seen our previous screen, there's a UDT which is actually called input object, and there's also a PT100, which is 19.
27:22
Andrzej Kolon: So basically, we understand that we have now... We will be working with input object, and there's actually a PT100. And we start to create folders for our bioreactor, and pretty much we create what we see here is an object, and the object details, and we're just instantiating with system.tag.addtag. We create sub-paths, sub-objects if necessary, and we pass parameters and attributes for I/O path, which is our input object and PT100. So that becomes our input object, and this is our PT100 object. So the next thing we do, and we focus here on an Int, which is analog input row. We're working with another piece of default I/O setting, which just helps us instantiate those UDTs with a certain magic parameters that we are expecting from our PLC. So PLC has an object structure.
28:37
Andrzej Kolon: It's an array of, actually here, control object inputs, and there's 31 of them, and they are always there. They are static, and we either use them or not. That depends on the scanner, actually, and the way it's actually implemented and configured by the customer, but pretty much we're talking about 31. And this is our prefix based on that we know, and we're passing parameters of temperature, index, and control object. Our server is one of the servers we already created, and pretty much we resolve to that, which gives us communication quality. Actually, good to see it. It's nice. Anyway, that's how it works. The last bit of presentation I want to show is how we implemented a pretty simple, but really satisfying, in my opinion, bit which is e-learning. It's quite flexible, again. Again, it's the same concept. As much information as possible, we store in the database, where we can change the content without actually modifying the code itself. It's quite important.
29:51
Andrzej Kolon: It's quite important for us, because, for instance, in this case, we didn't know what the content of e-Learning will be at the moment we were implementing the solutions, so we basically didn't know what the database will look like, so we had to be really flexible here. So, there are two options here. One is we store user manuals, and that's just the PDFs, and the customer can add their own PDFs if they want to have any SOPs they want to add. But pretty much this is the standard setup with our user manuals and the option to browse and add new ones if they want to. And there's an option of e-learning, and this is quite interesting. It's contextualized based on unit type, and it actually also gives you an option of having a QR code or an external link that you can click on.
30:49
Andrzej Kolon: So, how pretty much it works, like we'll see in a second, but what we have is our e-learning portal. Cytiva has an e-learning portal, and customer can log in and access all the necessary manuals and all the necessary videos that explain how to do certain things by just watching them on a second monitor, if they have one, or just the scan, and well, if they have a monitor and they have actually internet access, but also they can just have a mobile or a tablet, they can scan QR code and pretty much go for video and follow the video on the real device and actually start making things happen. So, again, the database, the database is a set of names, paths, type, which is either document or PDF, sorry, video or PDF and bioreactor type, and that's pretty much it.
31:48
Andrzej Kolon: And we query the database based on the context on the webpage that we are accessing, and eventually we're getting to that one component, which is just one single tile, and we repeat it as many times as we need to in perspective, and we link, we bind labels here to a content of the query that we have, and also we generate on the fly and runtime a QR code just using a standard ignition barcode. We just bind it, and it just works. It's quite easy, quite flexible, and you can pretty much expand the system to however many what pages, links, URLs you want, and then pretty much, you don't have to modify any code. You just chuck stuff into the database and it just works. It's quite cool, I think, and quite simple. Chris, over to you again.
32:47
Chris Bollom: Cool, yeah. And this is just a final one of sort of, I guess, next steps that we're looking towards with this. So, obviously, we've been hearing about it most of the day, but fully intend to utilize the better version of 8.3 and see what we can potentially do moving forwards with mPath Link. And we're definitely finding that customers are becoming more receptive to cloud technologies, so connecting up to various modeling software packages and things like that. So potentially moving towards investigating Ignition Cloud and Edge is something that we might well do there as well. And then two pieces more internal to Cytiva that we're potentially looking at doing with this of expanding mPath Link across our product range. And really to do that, moving more into the manufacturing scale, customers are looking more for robust batch management solutions. So potentially integrating some sort of batch engine to mPath Link is also something that we're looking to do there. So I think with that, that's it from us then. So, yeah. Welcome any questions.
33:50
Cindy Smith: Any questions?
34:00
Audience Member 1: For the e-learning, when you guys implemented that, does it give them credentials when they watch the videos, like credit? Like checking the credits of like the operators who logged in and they watched it and they took a test and they kind of get credit for that? I've had customers ask me about implementing something like that within Ignition.
34:20
Andrzej Kolon: So pretty much how it works is just the access to external web page that Cytiva owns with all the content. And that's additional web portal they have. They would have to log in with their credentials that they purchased.
34:35
Speaker 4: Oh, so it's like external manage. Okay.
34:37
Andrzej Kolon: It's external, correct. Yeah, we don't store the data locally on the server because it changes too frequently and it's updated independently of how we update our software.
35:00
Audience Member 2: Hello. I saw on one of the screenshots that you had some sort of flag or counter that determined the order of the tiles, the units that you're creating, the controllers. Was that what was happening? Was there like a specific thing that was ordering, like when a user creates a new controller, does that like control how that grid looks or how was that laid out?
35:25
Andrzej Kolon: Yes. So basically it's based on creation time. So that's how it's being shuffled around on the page. Yeah. There's no customization on this particular case.
35:34
Audience Member 2: It was still a pretty cool solution. I liked it.
35:36
Andrzej Kolon: Thank you.
35:45
Audience Member 3: Hey, thanks guys. So it might be a bit of a pivot, but I guess the question is, 'cause you mentioned early on a lot of the customers that you sell into tend to be smaller companies. It's not always big firms. So what's the technical maturity of a lot of the customers that you're selling into? And then how do you find, like do they have a lot of IoT solutions, maybe like MES Lite or something like that? And then how's the integration of this solution into that existing technology stack? It's a bit of a broad question, but do you tend to find it's a complex process or it's a relatively simple or what's it look like?
36:24
Chris Bollom: I guess I can do the first bit and you can talk about the integrations 'cause you worked on that a little bit more. But there's a variety because we work with some small customers. Their technical maturity won't be very high at all 'cause they're essentially looking to get acquired in this industry. So we'll be quite new into this. We'll pretty much use the solution that gives them the best opportunity of starting off. But we also have large customers in this space. And probably the thing there, I think, is everyone's trying to move to a more modern architecture. But particularly in the biotech industry, people are quite cautious to change and adopt new technology. So particularly initially working with Ignition in this space, it was a challenge both internally and externally to push that on people in a typically conservative industry. But I think we're starting to see people more willing to adapt, as it was mentioned here in sort of more modern technologies. And that's something we're looking to do. But I guess you can mention some of the integrations that potentially worked on.
37:25
Andrzej Kolon: Yes. So pretty much in PD scale, where we operate at the moment, customers don't really require off-the-shelf solutions. Well, they do, but we don't provide it at this stage. We have a lot of proof of concept that we are working on how to make things more plug-and-play. And obviously with the solution that we have, OPC UA connections for servers actually are pretty, pretty easy to do. But customers, they start to ask for that more and more, but it's still considered a PD scale. It would be nice to have everything orchestrated or pulled even into one database. But they're more concerned about actually making the thing work in general. So what I do in order not to kill all my cell cultures, what to do not to produce anything, not even a big amount, just make it work, actually. So that's where they concentrate on, obviously.
38:30
Andrzej Kolon: So we're getting it more and more, and we're getting there. We do a lot of proof of concept, like Chris mentioned here, batch engine, but overall the integration bit is more for us. Like if a customer doesn't want to use our standard offering in terms of PC that we're running on, we would be installing or he would be installing the software on their servers or a different kind of thing. So bigger deployments, we basically prefer to do it on the servers or maybe even bigger desktops. It's like really that kind of scale. So you can have like five, six bioreactors running and then basically you're still pretty much using a benchtop. So integration is more like where you install that thing. We did a few OSI PI integrations and things like that to some higher level logic, but that's with OPC UA so it's really simple with Ignition.
39:35
Cindy Smith: Thank you, Chris and Andrzej for your presentation today, and thank you all for joining us. Enjoy the rest of ICC.


Speakers

Chris Bollom
Senior R&D Project Engineer
Cytiva

Andrzej Kolon
Principal Automation Engineer
Cytiva
Whether you're new to Ignition or just want a refresher, this session is made for all. The Inductive Automation Training team covers all the basic knowledge and fundamental features you need to get started with Ignition.
Transcript:
00:01
Jayson Thorpe: Hello everyone, welcome to Learning Ignition Fundamentals. We're about to get started here. How about that keynote, huh? I wanna thank you all for joining us for this session.
00:13
Aryanna Brown: My name is Aryanna, I am a Tier Two Software Support Engineer Team Lead here at Inductive Automation. I've been working here for about three years, and if you have ever sought support with our software, you've most likely spoken to me or my team.
00:27
Jayson Thorpe: My name is Jayson, also called JT. I'm a technical trainer, I'm on the training team at Inductive Automation. I started out in support, but I'm in the training department now. If you've taken any of the core classes or any of the other training courses we offered at Inductive Automation, you may have met me before. And today, we are talking about Learning Ignition Fundamentals. So we're gonna be going over some pretty preliminary information on Ignition, what is it, how do you use it? Why do you use it? Pretty much those big three main questions. Summarize, Ignition is a platform, it's an application development platform for you to build, design your own industrial automation applications for SCADA, HMI, MES and more. Some of the cool things about it, it's cross-platform written in Java, so it's operating system agnostic, web-based deployment and modular design. We're gonna talk about that modular design here in a moment, and the web-based deployment as we go through our demonstration today.
01:28
Jayson Thorpe: Since its inception, Ignition has evolved quite a bit. We have four different editions of Ignition to choose from. We have our Standard Edition for most use cases, we have Ignition Edge, for edge of network devices, usually gathering data, forwarding it to a more centralized gateway. We have our Ignition Cloud Edition, if you need to leverage hosting your gateway in the Cloud, this is available through web-based marketplaces like Amazon Web Services, and then we have my favorite Ignition maker edition for your home automation personal non-commercial projects. Ignition's modular design, what does that mean? Modular design essentially means that all of the major functionality you may want out of your gateway comes with a respective module, this means that you can easily customize your installation, things like the two different visualization modules we have, Perspective Vision are each their own module. Things like tag history, SQL Bridge, what this means is that you can really customize. Oh, oh. Oh, well, that's our last slide for now, anyway.
02:39
Jayson Thorpe: What this means is you can really customize your gateway or your entire network of gateways depending on what you need different gateways to do. You're not paying for things that you don't need a certain gateway to do, only for the things that you do need. So for this demonstration, we're gonna be going and installing Ignition, getting started with it, we're gonna start designing pretty quickly here. But what we wanna show you is that anybody can go to inductiveautomation.com, download Ignition, install it, and get started designing in about five minutes. Here we are in Inductive Automation's website, and anywhere at the top right, you can go and download Ignition for your respective operating system. We however, today have the downloader or the installer already downloaded, so we're just gonna run it. And we're gonna go through a basic install, which means we're gonna go with all of the core modules here.
03:36
Jayson Thorpe: Now, I said that we can download Ignition and get started in about five minutes, which in the SCADA space is a very quick amount of time to download our application. Once we download the appli... Once we install Ignition, here we are just making a couple of decisions as we go, we are gonna go with just the typical default installation to include all of the core modules. One of the things we also decided was the service name and the port that Ignition is going to use. And here we are, the gateway is already starting up, and once the gateway is installed, we pick which edition we wanna run. And what we're about to see here in the web browser, right now, we're using Google Chrome, let's create our user and password. But what we have here, in a few minutes, we've installed Ignition and we're running our gateway. Here in the web browser we're looking at the Gateway web page, which is the interface to your Ignition installation. Since Ignition is cross-platform, written in Java, you can load this on to a Linux box or of course, Mac or Windows, have your gateway running in a server box in a closet somewhere, and anybody that's able to reach that gateway over your network, will be able to interface with the gateway web page that we're gonna see here.
05:02
Jayson Thorpe: Gateway started. We're gonna start from scratch, we're actually gonna end up loading up a gateway back up here in a moment. What we see here is the Gateway webpage. Anybody who, you may notice, a local host is what we're accessing. Otherwise, this would be the IP of the gateway. Anybody on our network that can hit the gateway host can access the gateway web page. And here on the home page where we start out is where we can download some of these software peripherals to run a designer and also our Vision and Perspective run times. Next stop on our... Oh, still on the home page, we have links to the user manual, links to our community and as the exchange of our forums, different ways to get started with Ignition and to learn more about it as you go. Thank you. Now we're gonna go to status page, where we do have to log in, and the status pages is where you can get a bird's eye view of your entire Ignition sub-system. We can see the status of how many connections we have, like database connections, our device connections, how many tags we have, and even performance metrics.
06:15
Jayson Thorpe: On the config tab, the last stop of our tour here, is where you go to change any of those settings that we're looking at over in status, if we need to add a new gateway connect or add a connection, like a gate network connection, your database connection, OPC device, all of that would be configured here. Now, you may notice that green banner at the very top. One of the things I mentioned earlier is Ignition's flexible licensing. That trial mode, timer counting down from two hours is built into the Ignition platform. Anybody can download Ignition and run their gateway on this two-hour trial license where all of the core modules are fully functioning and we can build our reports, build our notification pipelines, build all of our displays and our HMIs all on this trial license. And when that two-hour timer goes up, we just go back to the gateway and reset it. Now, what we're doing right now, Aryanna is about to restore a gateway back up, which is in our downloads folder. And we're doing this to basically set up a few preliminary environmental points for our project.
07:25
Jayson Thorpe: And while this is going, let's also install the designer launcher. Now, the reason we're uploading a gateway back up is like I said, we have some project resources already built, some data points in the form of tags. And as this designer launcher is installing, me and Aryanna are gonna switch places, hot potato, and she's gonna take you through the designer once it's fully installed.
07:55
Aryanna Brown: Thank you, JT. Once we have our gateway up and running, we'll take a quick little tour and I'll show you what we've got going on in this back up.
08:11
Jayson Thorpe: Now, one thing to know is during or right now, we're not pointing to any gateways, but right now we have our launcher local to our Gateway, but Aryanna is gonna go into what are the different options for anyone on your network that may need to use the designer.
08:31
Aryanna Brown: So now that we have restored our gateway back up, let's take a look at what's in it. If we head over to the status page, like JT just showed you, log in, we're gonna see that we have some tags. Some of these I've created, we have two device connections, two programmable device simulators, so that when we show our demonstration, we can get started right away with real live unique values. And then, we have a database connection, and that database connection is for us to show trends. And as you see here, the throughput is about 0.8 queries per second, so this will show you the status of your database connection, and right now, it's healthy. I also have a partially built project in this back up that we'll go ahead and take a look at closer in the designer. First, we're gonna wanna launch our designer launcher. Now that we have this open, we're gonna go ahead and add our designer. Now, notice we have two tabs, one is on your network and the other is manual. Manual will allow you to input your Gateway URL manually should it not appear under the on your network tab. The on your network tab is gonna show you all of the Gateways it recognizes on your current network.
09:52
Aryanna Brown: Right now, it's only ours, so we're gonna go ahead and select our Gateway. Once we've selected our Gateway, we're gonna go ahead and open our designer for this Gateway, which should list all of the projects that we have configured for this Gateway. Once we get this open, we'll take a quick tour of the designer, and then we'll get started in showing you a Vision client runtime application.
10:23
Jayson Thorpe: Now Aryanna, how many designer sessions can we be running concurrently from the same Gateway?
10:27
Aryanna Brown: You can run as many as you'd like. As long as you can connect to it through your network, both I and JT can be working on the same project at the same time, if we'd like.
10:38
Jayson Thorpe: All right, I'm just gonna sign in here.
10:45
Aryanna Brown: Perfect. Now, we only have one project on this gateway, but you can create projects for each device, each substation, whichever you prefer. Now that we have our designer open, it is so pretty. Look at it. The possibilities are endless. If we head to the top left-hand corner, you'll notice our project browser, this is gonna list our various modules that can be configurable within the designer, such as our reporting module, which will auto-generate PDF reports to email, saving a directory, even print. We also have our visualization modules, Vision Perspective, scripting, any module that is configurable in the designer. Under that, you'll see we have our tag browser. In our tag browser, we have two tabs, one is tags, the other is UDT definitions with a drop down above it, to select our tag provider. UDT definitions provide a single structure of tags that map to unique data points in your server or device. If you notice we have one for compressor and one for sensor.
11:57
Aryanna Brown: Now, earlier, I mentioned our programmable device simulators, those are coming from a dairy. So these sensor UDTs are representing a refrigerator, humidity and temperature. If we head over to the tags tab, you'll see that we have real-time instances of these definitions. So we have one for each of our compressors and each of our sensors. Now that we've taken a quick little tour, I'm gonna go ahead and launch a Vision client runtime application to show you guys what operators or end users would typically see. While that's loading, I'm just gonna go ahead and show you guys. I've created a template here, notice that it says sensor three, I've only created one of these, this is a resource that we can use to dynamically create multiple instances for a given device or data type. We're gonna go ahead and log in just as operators or end users would. And this is our overview page. Notice that we have those sensor, three of our sensor templates in our overview page.
13:18
Aryanna Brown: Now, I did not create three different sensor templates, I created one and then parameterized them so that I can put in sensor one, sensor two, sensor three to give me those unique real-time values for each of those sensors. With this functionality, that means we can also read and write to and from these UDTs, and we can switch back and forth and see the unique values that these UDTs give us. Now we're gonna head over to our alarms page and let you check out some alarms. Oh, oh. We don't see any alarms. That's okay, let's head back to our designer and we're gonna configure an alarm on our UDT definition so that it takes on every single real-time instance. Now that we're in our UDT definition, we're gonna head to our sensor UDT, down to our humidity tag. Once we're in our humidity tag, we're gonna go down to alarms and add a brand new alarm, we're gonna give it a fun name, like humidity high alarm. Once we've given it a fun name, we're gonna modify the display path. Now, the display path is how it will be displayed in an alarm status table, an alarm journal table, it's exactly as described, how you would like it to display for that instance of the alarm.
14:50
Aryanna Brown: We're going to be using Ignition's expression language to dynamically create these display paths so that they are unique to each of their instances and alarms. Once we hit apply, we're gonna go down and let it know when we'd like the alarm to go active. Given that this is humidity, let's go ahead and make it 95. Once we hit Apply and Okay, you'll notice that we get alarms for each of our sensors. Look under the display path, we have this sensor one, sensor two and sensor three, I only had to configure that once and it dynamically created my display paths. Now, if you head back to the designer, you'll notice under our tags tab, each of our real-time instances for these sensors have the alarming icon showing that there is an alarm configured for each of these tags. Now we're gonna head back to our runtime application and take a look at some tag history. Oh, no. Same issue. That's okay. Just the way we modified a global resource to show you how we can get alarms, we're gonna now modify a project resource to get our tag history displayed.
16:16
Aryanna Brown: We're gonna head over to our history window, and if you notice on the left-hand side in that tag browser, there's this little clock looking icon, that means that history has been configured on these tags and they are currently storing tag history. So we're gonna go ahead and just drag and drop both of them on to our easy chart component, and now we have some values. Now, it is not... Oh, let's go ahead and take a look at it in the client. That was very quick. Easily deployable. Now it's not expected that operators be able to drag and drop. If you look here, if we get rid of this, they can no longer add them back, so we're gonna head to the designer and add a component so that operators can have the same functionality in their project client runtime that we have in our designer.
17:11
Aryanna Brown: We have a tag browse tree component that we're going to be using, and it is exactly as described. It's gonna allow us to browse our tags within our runtime application, so we do not need access to our designer tag browser. We're gonna make it pretty and formatted. And then, once we've done that, we're gonna modify the Tag Tree mode. Now, this is important because the Tag Tree mode will just differentiate between real-time tag paths and historical tag paths. Historical tag paths are tag paths that have been historized for tags that are currently storing history or have stored history. Now that we've changed that to Historical tag paths, operators can only select tags that have history. So we're gonna go ahead and hit save and watch this automatically deploy to our client. And if we get rid of our tag pens, our operators can easily drag and drop tag history onto their chart. Now, that I've gone through Vision and a client runtime application and showing you how to visualize that, JT is going to show you how to build a similar application in our Perspective module.
18:31
Jayson Thorpe: Thank you, Aryanna. So quickly, we've seen how we can manage our tags or manage the tags that are giving us the data from our devices using UDTs, make a change in one place. We see that change populate out to all of our instances. The UDTs that are giving us the real-time tag values are actually pointed to our PLCs. We made an update to one of the interfaces of our Vision client as well, and we deployed that instantaneously. And now, we're gonna go and do something similar in our other visualization module Perspective. For that, we just got word that our organization has bought some new motors. We bought some new hardware. It's installed. We have those connected through our OPC server. We're getting values from our motors in the form of tags through our OPC server. What we're gonna do here is go and design a UDT to match the motor structure in our OPC server. So we're gonna make a new data type.
19:29
Aryanna Brown: Oops, gotta go to that tab.
19:31
Jayson Thorpe: Ah, there we go.
19:33
Jayson Thorpe: In the UDT definitions tab, we're gonna create a new UDT. We're gonna call this motor and we do need to give it a parameter so that we can take the addresses for the PLCs or registers for each individual data point, tell it which motor we want to view, and we are able to redirect our OPC item paths across our server. What you see Aryanna doing here now is browsing our OPC server looking directly onto our devices for the different data points. You'll see we have at least eight different motors. All of these have an identical structure of the same two tags. This is why we're building a UDT, so that we don't have to build a new set of tags for each individual motor. We're just gonna add two of those into our UDT and then using our parameter for the motor number and Ignition's expression language, we're gonna plug in the parameter in place of that motor number to create a dynamic OPC address. Excellent. Now, we have our UDT defined. We have the two data points for every motor we're gonna want to view. And now we need to create our real-time instances, which we can do quickly with one of my favorite names in Ignition, the Instance Creation Wizard. We just have to tell it which UDT we would like to create instances of, give it a base name and pattern for the name and the parameters. When through, check that name tag name pattern.
21:13
Aryanna Brown: Oh, thank you.
21:13
Jayson Thorpe: Whew.
21:16
Jayson Thorpe: Very nice. Now, as soon as we hit Okay, we're gonna see eight instances of our motors. And using that parameter, each one is actually giving us a different value from our devices. Awesome. Now, we have the data actually coming into our system. In order to display this data, we wanna go to Perspective and start building some displays and interfaces. We're gonna build a view to not only show us information for each one of our motors, but also to be able to change the state of that motor to be able to turn it on off. So we're making a new view called motor view. We are gonna use a flex container, which in Perspective, one of the main considerations is the different sizes of screens that your sessions will be run on. What devices are your operators gonna be using? Perspective is chockfull of different layout options to be able to gracefully display your session on different device, specifically different screen sizes. And the flex container handles scaling of the components pretty nicely.
22:24
Jayson Thorpe: Now, so that we know which motor we are viewing, we're gonna add a label component here. And once again, using Ignition's expression language, which very easily can let you take different values from across your system to generate a single value, that's really where the expression language strength lies. In this case that one value we want to generate is just a string of text.
22:50
Aryanna Brown: We forgot to create a parameter.
22:52
Jayson Thorpe: Yes, we did. In order for this label to dynamically display, we do need a parameter just like our UDT definitions. There we go. Very nice. And after this label, we're gonna go and... Well, let's finish configuring this label here first. Now, since we've added the parameter, we can easily go and browse any of the properties across this view of all the components. Right now, the one we want is that motor number parameter. Just so this view is a little bit more interesting to look at, we're gonna go into the symbol factory, which is a library of scaled vector graphic images built into Ignition for us to use in our projects here. We have a simple motor four that looks pretty nice, but now we need to get the components to not only see the value of some of our motor tags, but also to be able to control the state of them. We have an HOA tag that we're gonna use to turn our motors on and off. So we're gonna grab a multi-state button for that, which lets us view and send out a read or... Sorry, a write to a tag.
24:02
Jayson Thorpe: So we're gonna go and use that parameter to once again set up an indirect binding, this time directly to any of our motor tags. Once we switch out the motor number with our dynamic parameter and make this binding bidirectional so that we can not only get that value and see it, but also send a signal back to the tag from this component. We need the same binding on this other property to indicate a value. So we're just copying the binding, pasting that real quick. And let's go into preview mode in the designer and turn on read and write mode. And let's see that motor one HOA tag change value now. Excellent. And all we have to do is change the value of that parameter to point to a different motor, but I think we've proven the point. Now let's get an LED display to actually see how much current's running through our amp or through our motors. And then, we're gonna go and quickly get this displayed over into our session. For this LED display component, we just have to once again bind to any of our tags using our parameter, we can dynamically redirect our view instances.
25:23
Jayson Thorpe: All right. Now, we have all of the information for our motors displayed. We're gonna go and create one more view, and we're gonna load that up with a few different displays to show to our users depending on the size of the screen they're viewing our session on. We're using a Breakpoint Container here. Remember I said Perspective's all about displaying your session on different screen sizes. The Breakpoint Container has two Subcon Containers. One will display when we're beneath a certain width, width being the container or the size of the screen being displayed on. And for the small view for when our operators are on their mobile devices, we're gonna use a carousel component for this. Carousel component, we've all seen it's equivalent on various webpages. Something that just takes an image or a set of cards can swipe them horizontally.
26:23
Jayson Thorpe: We're gonna load up this carousel component with different instances of our motor view. You can see here Aryanna is just telling our carousel, which view we want to embed, setting a unique value for that parameter. And just like that, we have four instances of four of our motor devices coming in through our OPC server. And now, we have to build out the large view. What are the users gonna see when they're on a, when they're viewing our session on a monitor or a wide screen. For that, we have a tab container. Tab container also has multiple sub-containers that can display on demand. For this tab container, we're just gonna deep select this container here, and we have two views in the learning Ignition fundamentals folder that we pre-built for this demonstration. And we're just taking those views and embedding them directly into this tab container. And then here, Aryanna is just adding more views. She's gonna name those tabs something useful. And then, we're gonna go and get this view right into our session as a webpage.
27:50
Jayson Thorpe: All right. So, I don't know if anybody's been timing me, but how long has it taken us since we started building our UDT? 10 minutes? Maybe maybe about 13. We're about to take all of that work and get it all in front of the people that need to see it. All of our operators running our session. So, let's see. Oh, view can't do...
28:08
Aryanna Brown: The tab containers.
28:08
Jayson Thorpe: That itself?
28:09
Aryanna Brown: Yeah. I'm not sure, it's embedded.
28:14
Jayson Thorpe: Delete that?
28:15
Aryanna Brown: Yeah. Okay. Here. And drag and drop.
28:22
Jayson Thorpe: There we go.
28:35
Aryanna Brown: Well, we may need to only have alarms stick.
28:38
Jayson Thorpe: Yeah, but deep select it.
28:39
Aryanna Brown: I do.
28:40
Jayson Thorpe: Let's try one more time. Interesting.
28:45
Aryanna Brown: I think it's the view itself.
28:47
Jayson Thorpe: Yeah. Oh, I see.
28:48
Aryanna Brown: Yeah.
28:49
Jayson Thorpe: It did drop it inside itself. Okay, cool. So delete it from there.
28:52
Aryanna Brown: Oh, there it is.
28:55
Jayson Thorpe: There we go.
28:55
Aryanna Brown: There we go. There we go.
28:57
Jayson Thorpe: Now when we go to the Tab Container, perfect. There we go.
29:00
Aryanna Brown: Okay.
29:02
Jayson Thorpe: All right. Slight setback happens to the best of us. Now, let's go to our page configuration. We have all these different views, all of the different displays built, but not all of these are gonna appear in our session. This is where we manage which pages are accessible in our session, which pages are exposed via URL in our session, and what pages are navigable too. Here we're just taking our homepage, that forward slash root URL, pointing it to the overview view that we just built. As soon as we save our project and launch our session we'll see the fruits of our labor here. Here we see the large screen version where we can switch back and forth between alarms and history. And we're gonna use the developer tools in Chrome just to simulate a smaller screen here where we not only see the small view that we built with all of our motors, but can you go make that a little bit smaller again and show off that flex container doing its work.
30:03
Jayson Thorpe: Notice how when we're narrower, the Flex Container is scaling up and down for us. These are just a couple of options in Perspective to handle graceful layout scaling for different types of devices. And that does end our demonstration for today. We're about to take questions here, but we didn't even get a chance to look at, take a deep dive into that is of the reporting module, alarm notifications, things that not only get realtime data in front of people that need to see it, but also that historical data, things like reports, calculations, MES downtimes, but also getting that historical and aggregated data in front of those who need to see it as well. Thank you.
30:51
Aryanna Brown: That concludes our session. Thank you for coming.
31:01
Jayson Thorpe: And now we do have a microphone walking around the room if there are any questions. We have 15 minutes for questions, everyone. Yes. Right down here.
31:09
Audience Member 1: What's the difference between Vision...
31:10
Jayson Thorpe: Sorry. We will ask you to wait for the microphone because we are streaming or this will be... It's either being viewed live. It is.
31:19
Audience Member 1: What's the difference between Vision and Perspective?
31:22
Jayson Thorpe: Biggest difference is one, the Vision client's gonna run as a Java client in kind of the more client-host relationship. The biggest difference with Perspective is different screen sizes. You run Perspective session in a web browser, any device that can get online, access a web browser can run a Perspective session. This is not the case with Vision.
31:45
Aryanna Brown: They also run separately. Perspective runs on the gateway whereas Vision clients will run on the machine that they're launched from.
31:53
Jayson Thorpe: True. Any other questions? I know everyone's all hyped on 8.3...
32:00
Aryanna Brown: I know.
32:02
Jayson Thorpe: From that keynote. Yeah. In the back in the middle.
32:09
Audience Member 2: I saw on the 8.3 feature keynote, Rockwell and Siemens S7 I/O drivers. What are the other standard drivers that are included?
32:24
Jayson Thorpe: Let's go. Well, you know what? You can come talk to us after. I mean, we could show you on the Gateway right now. Actually, let's do that. Let's show you. Well, one of the things is different, the drivers that come standard on the gateway are for Siemens, Allen-Bradley, even Legacy versions of both of those different ones here we can see the drivers that just come standard on fresh out of the box install, but different vendors make different drivers as well. So there are very few devices that you're not able to connect to directly. But even if you can't, the fact that Ignition acts as an OPC server means that whatever OPC server you do have connected to those devices, Ignition's gonna still connect to that.
33:06
Audience Member 2: Very good. Thank you.
33:10
Audience Member 3: JT, I don't see a module for MQTT.
33:15
Jayson Thorpe: MQTT is a separate module. That one is available as a few different modules. We have the...
33:22
Aryanna Brown: Engine distributor and the broker. We also have the transmission. So if you are looking for those modules, you're definitely gonna have to go to a Cirrus Link. And they're technically a third party module, but we work very closely with them. So they won't be available to you on the actual Inductive Automation website, but we will help you support it.
33:44
Jayson Thorpe: Yeah.
33:46
Audience Member 4: How many active or consecutive sessions can you have? Is there a difference between Vision and Perspective? What's the payload? How heavy is it against the Gateway?
34:00
Aryanna Brown: So Vision, like I said earlier, that they're gonna be ran on the machines that they're launched from. So truthfully, if you have kind of a heavier project that's gonna be more intense, you have to make sure each machine that is launching that application for Vision can handle that. In Perspective though, it's in a web browser, so since it runs on the Gateway, if there are performance type issues, it's dependent on your gateway and the specs of the machine that your gateway is hosted on and what you gave your gateway. So truthfully, it's kind of endless. You can give it as many resources as you want, as long as your machine can handle it, go crazy.
34:40
Jayson Thorpe: The key is that the license, the Ignition license is never gonna limit you on how many databases you can connect to how many devices or OPC servers or how many concurrent runtimes of Vision or Perspective or designers. You can have as many going of all of those as you want in any combination. The license is never gonna restrict that for you. Yes, thank you.
35:02
Audience Member 5: If you're new to Ignition, where would you suggest you start to get in to get a good introduction and learn about the system?
35:09
Aryanna Brown: This is a great question.
35:11
Jayson Thorpe: We have... Well, sorry, you say I'll show.
35:14
Aryanna Brown: I'm glad you were going to it right away because I'm sure we were thinking the same thing. Inductive University, it is a great, great tool. New hires use it with us just to get them started. So I highly, highly recommend it to get you guys started as well.
35:33
Jayson Thorpe: So yeah, you can download it really quickly and get started with it really quickly and using this free library of video tutorials, you don't even have to log in to watch all of these, but if you log in, you can take challenges and build towards a credential here in the Inductive University. But essentially, this is almost a whole course on getting started with Ignition and being able to do some really cool stuff with it without even having to open the user manual or even attending a class. And all of this is for free, Inductive University. Yes. Down. Yeah. I see you.
36:02
Audience Member 6: Yeah. So you showed a toolbox earlier with like check boxes and then the carousel.
36:08
Jayson Thorpe: Oh. Yeah.
36:09
Audience Member 6: Can advanced users make their own, like software developers? Can they make their own controls and visualizations?
36:16
Aryanna Brown: Oh, like components?
36:17
Audience Member 6: Yes.
36:19
Aryanna Brown: I don't believe so.
36:22
Jayson Thorpe: And I've seen some pretty interesting things done with Java Swing, but that's like as a Java developer.
36:28
Aryanna Brown: I would think if you created your own module at that point you could do whatever with it. But I don't believe you can create your own components. We do allow, if you search through our forums and our community third party resources to allow to get in there and kind of modify what you can but not necessarily create components from scratch.
36:50
Jayson Thorpe: Those people that, some folks that do have that skillset to develop modules, if a lot of folks share those modules with each other on the Ignition Exchange, there's a lot of free user made resources here. And a lot of stuff that we've put out actually via Inductive Automation has put some stuff really cool modules on here. Anything from modules to project resources, a lot of that is done by other folks and the community is really great about sharing and caring.
37:21
Audience Member 6: Okay. Thank you.
37:22
Jayson Thorpe: Yeah, absolutely. And then, oh, over there and then this gentleman right here.
37:26
Audience Member 7: On the Inductive University, is there a way to monitor the process of people that you have assigned to go there to learn?
37:36
Jayson Thorpe: I think you can track this on your user portal through your organization portal. Yes. Cool. So that is trackable on your organization's portal.
37:47
Audience Member 8: I think users almost do.
37:48
Jayson Thorpe: Oh, okay. Cool. Thank you.
37:51
Audience Member 9: So, speaking of the Exchange, the project you guys just showed, is that on the Exchange for download, or we're gonna check out later?
37:58
Aryanna Brown: It is not.
38:00
Jayson Thorpe: No, but that's not a bad idea actually. Maybe we'll have to see if...
38:02
Audience Member 9: Maybe kind of study it, kind of get better understanding.
38:04
Jayson Thorpe: Yeah. That's not a bad idea. One thing you can do though, let's see, if we go and start a new project, if we went to go and create a new project right now, there are template projects included in the Gateway as well. So, you can just, for example, like Vision tab Nav, that's gonna create a project with some tab navigation already built in Vision, Perspective has similar ones. So you can actually just write a white out of the box installation, get some prebuilt resources to start playing around with some kind of like what we did here.
38:36
Audience Member 9: Brilliant. All right. Thank you.
38:38
Jayson Thorpe: You're very welcome. Oh, down here. Thank you.
38:46
Audience Member 10: So when you were showing the changing parameters and how easy that was, on a qualified system for like life sciences, is all of that audit trail, is everything on your audit trail that you make changes to just to ensure that once you're on a qualified system, anything that changes, you can go back and...
39:05
Aryanna Brown: Yes. So, we have an audit log. Now, not everything is logged in that audit log as of right now. But if you head to our manual page, it will list everything that is and you will at least be able to see who went into the project and how they changed it. If they changed the project, it will say like, project modification and who it was, it may not necessarily tell you exactly what it is they did. But anything that's more gateway scoped, it will tell you. So, if they wrote to a tag, if they modified a tag, if they actually modified the tag, it'll tell you that. Things that are more project resource-based, it doesn't, it's kind of hit or miss on what it will actually log right now.
39:46
Jayson Thorpe: The designer doesn't really track exact changes to like, in every individual component, but you will be able to see who logged in, who did save any changes. And even with scripting built in throughout and some extension functions or sorry, system functions people set up their own logging pretty effortlessly through the scripting that's already built into Ignition as as well.
40:06
Aryanna Brown: There's a scripting function to write to our audit log.
40:10
Jayson Thorpe: Exactly. So anything that that audit log doesn't cover, you can probably cook something up as well to make sure it does. Back there in the back.
40:19
Audience Member 11: Yeah. Is there a cross reference browser for your graphics and tags and everything?
40:22
Jayson Thorpe: A cross reference browser? I'm not sure what you mean by that.
40:26
Audience Member 11: Finding out where your templates are used.
40:29
Aryanna Brown: Oh, so like a find and replace type? Yeah, we do. We have a find and replace tool within the designer. And you can put in like a keyword of what you're looking for and it'll pop up and list everything that, whether it's a property binding, a component of you, a window name.
40:45
Jayson Thorpe: Script.
40:46
Aryanna Brown: Script as long as you kind of know a keyword, it'll try to find it within your project. So yes.
40:54
Jayson Thorpe: And that's one of those things that every couple versions there is something new to make managing the various moving pieces of your projects a lot easier. That's not necessarily new, but every couple versions there's something that lets you find things in your projects a little easier.
41:12
Aryanna Brown: Yes.
41:16
Audience Member 12: So with 8.3 coming out pretty soon beta, will there be videos posted on university that kind of goes over the new features to kind of get a start on learning that stuff? Like the drawing tools for instance?
41:27
Jayson Thorpe: Not right when it's released, but we absolutely are going to start you know, coming from the training department, we wanna be able to teach people. People are gonna wanna know how to use it. We want to teach people how to use it. We absolutely are gonna be building resources to learn Ignition 8.3 as soon as we can.
41:43
Aryanna Brown: It may not be immediately available, but.
41:44
Audience Member 12: Okay. That's fine. Will the docs be a good place to start to kind of see that stuff kind of comes...
41:49
Jayson Thorpe: Absolutely.
41:49
Audience Member 12: Through later on to just get that information as soon as possible?
41:52
Aryanna Brown: Absolutely. Yes.
41:52
Audience Member 12: Okay. Perfect. Thank you.
41:53
Aryanna Brown: Yes.
41:57
Jayson Thorpe: One more.
41:58
Audience Member 13: I saw that you had to log in when you launch each of the individuals, if you are tied to Active Directory LDAP, can you configure it so that it's gonna take the user who's logged into that machine?
42:10
Aryanna Brown: Oh, so that it automatically, yeah, like Windows authentication type thing? Yeah.
42:15
Jayson Thorpe: Indeed.
42:20
Aryanna Brown: Any other questions?
42:22
Jayson Thorpe: If you are raising... Oh, down here in front.
42:23
Aryanna Brown: Oh, all right.
42:27
Jayson Thorpe: We would like for the mic just so it's available in the recording.
42:31
Audience Member 14: You kind of touched on the driver support, but do you guys support OPC, all the flavors like DA, A&C Alarms and Events, all those different versions? And then on top of that bus protocols, like is there a means in which to get PROFIBUS, PROFINET, fieldbus? There was some talk earlier about HARP through a third party, but...
42:47
Aryanna Brown: I'm not entirely too sure, but I can find out for you if you come talk to me...
42:51
Audience Member 14: All right.
42:51
Aryanna Brown: After the session.
42:55
Jayson Thorpe: Start in the back.
42:56
Audience Member 15: My question's around managing users and role capabilities. Currently we have single sign-on integrated with Azure Active Directory, and the way to manage that is inside of Azure. We make a user a member of a group and that gives, is that the only way to assign privileges and access to inside Ignition? Or are there other ways?
43:21
Jayson Thorpe: So typically, when you do use a service like that, as an identity provider or I guess a user source, there's usually options for like a hybrid management where you, if the permissions allow, potentially make a change to the user in the gateway and then that would update the source of truth. That as an option for most config for most implementations of user sources like that. All right. If you're raising your hand, and we don't see you, wave it around, please. All right. Well, thank you so much everyone. We will be here if you wanna talk to us at all. Thank you. We won't keep you here anymore.
44:05
Aryanna Brown: Good job. Good job, dude.
44:06
Jayson Thorpe: Right back at you.


Speakers

Aryanna Brown
Software Support Eng II-TeamLd
Inductive Automation

Jayson Thorpe
Technical Trainer II
Inductive Automation