Transcript for:
Introduction to Emulate 3D Software

Perfect, we're recording now so whenever you're ready Tyler you can take it away. Sure, absolutely. Thanks everybody for joining us this morning. My name is Tyler Phillips, I'm the Emulate 3D account manager for Rockwell Automation. Prior to joining Rockwell I was with Emulate 3D and we were acquired by Rockwell about two years ago.

So what we'd like to do today is give you an introduction to the Emulate 3D software. We'll kind of follow this format and we'll see how it goes. So what we'd like to do is we're going to spend about 10 or 15 minutes reviewing a few PowerPoint slides just as talking points to discuss the software and level set where we are, what Emulate 3D does, what it doesn't do, what it's used for, what it's not used for, so that all of you can understand exactly where we fit in the market, what the software is used for, the different applications. and those types of things. Then once we complete that, we'll give you a demo of the software, and we'll spend 30 or 40 minutes doing that.

We'll wait around maybe ankle deep in the software and show you the different functionality. During this time, either while we're looking at PowerPoint slides or while we're demoing the software, feel free at any time if you'd like to just unmute yourself and say, hey Tyler, hey Mike, I've got a question. Joining us shortly will be Mike Sarbo. Mike's a commercial engineer with Rockwell Automation and Mike also came to Rockwell from Emulate3D.

Mike and I have worked together for many years at Emulate3D. And so you know a little bit about our background. I've spent most of my career, nearly 30 years now, in discrete event simulation software, discrete event industrial simulation software, and HMI.

And Mike has been with Emulate3D for about eight years now. Prior to that was user of our software almost since the very beginning, which was back in 2005. Mike's a real expert with the software, and you'll enjoy watching him demonstrate that to you. I'm going to use a few slides here as talking points, like I mentioned.

Let's go through those. Again, there are no interruptions here. Feel free at any time to unmute yourself or use a little raise your hand or even dump something into the chat.

and we'll be happy to help. And if you put something in chat and we don't see it for some reason, don't be shy. Just unmute yourself and say, hey, I have a question. So using these slides here, as I mentioned, Emulate 3D was acquired by Rockwell Automation about two years ago.

It was actually January of 2019. So we'll be coming up here in a month or two on a two-year anniversary as being part of Rockwell Automation. Prior to the acquisition, we were an Encompass partner with Rockwell and we... we have continuing partnerships with many companies.

Our partnership with Rockwell was like many of ours specifically because our Emulate 3D software communicates with Rockwell hardware. And we'll show you how that works, but specifically for the purpose of testing controls that have been written for machines that don't exist yet. So either for systems or machines that are being designed and are not yet deployed.

we give you the ability to test controls against a virtual machine. Let me talk about the different things that Emulate 3D is used for. When we were founded in 2005, we were founded specifically to develop a software for virtual controls testing.

We saw a huge need in the market for a high fidelity tool that could do that. In the development of Emulate 3D also came with that. this very rich discrete event simulation 3D environment that allows us not only to do controls testing, but also to create very powerful visual models of systems, and also perform simulations with those models. That is testing the system for things like throughput, or time and state, or utilization, or demand, or loading. The software gets used across a fairly large range of applications.

in a very large range of industries for those three things demonstration modeling simulation modeling and emulation modeling if we were to take a look at the industries that we're used in we would find out two things really quickly one is that it's a very big list and two that as the developers of the software we may not even be able to give you a definitive list because a large number of our customers are systems integrators, engineering firms, and OEMs, equipment builders, OEMs, and machine builders. And because of that, we're not always in touch with the application that the software is being used for as it applies to the industry for those things. So we're sometimes surprised when we hear about a specific use case in a specific industry that we hadn't really imagined before. But if we were to kind of group these...

applications into large areas, they would look something like this. Warehousing, distribution of fulfillment, baggage handling, manufacturing, packaging, and all types of consumer packaged goods, as well as I mentioned earlier, machine builders and equipment OEMs. What those all have in common as it applies to emulate 3D is they are discrete inside the four walls. We focus on discrete processes, discrete equipment, discrete handling, discrete packaging. Emulate3D does not get used for continuous process for things like water flow, what else, mining, gas and energy.

Those types of things are really a different type of simulation, a different type of modeling, a different type of physics than what we deal with. We're really concerned with discrete systems and the parts that flow through them, what we call the loads. Those would be things like boxes or car bodies or bottles of coke or vials of insulin or anything that you can imagine going through that type of system.

And not only how they interact with each other but how they interact with the equipment that's handling them, whether that's a robot or conveyor or packaging equipment or piece of process machinery. So you can see some images there of some from taken from models from some of our users in different applications. When we talk about the software today, we're going to use three terms.

We don't do that to confuse you. Often people believe that we sell three different pieces of software. We don't.

Emulate3D is a single framework and single application, but we do use three different terms to discuss the software, and those terms are essentially used to discuss different licensing levels or different license functionality within the software. So the software can be licensed at a variety of levels. in order to support the specific use cases and needs of a customer at the most economic entry point for the license. So we're going to talk today for the next few minutes about Demo3D, Sim3D, and Emulate3D.

And then when Mike's demoing the software, he'll say, hey, I'm working right now in Demo3D, or now the functionality I'm going to show you is actually part of the Sim3D license so that you can understand that. And if any of you were to dig deeper in this, we'd be happy to explain it further. But so Demo3D is the heart of the tool. It is the core modeling environment.

It's this 3D world where you can set up equipment and load it up and get it to flow. It's all true to time and scale. You can create beautiful visual experiences, including AR and VR, to communicate ideas. This might be used with internal stakeholders or a combination of internal and external stakeholders.

Many people use the Core Demo 3D technology and software features for... sales opportunities, so creating models that go along with proposals. But it is the core and the heart of the Emulate 3D framework.

In addition to Demo3D or sitting on top of Demo3D, you can open up this functionality we call Sim3D, which allows you to take the models that you've built and begin to experiment with them in a multi-variable kind of environment, where you're able to set up as many variables as you like within a model and change the values of those variables and run experiments back to back to back in order to get a view of how those variables or the change of those variables impact certain aspects of the model. In the case you're viewing here, we've taken a very simple example. We have a storage and retrieval system where we're changing the number of bays, the number of shelves, and the number of vehicles. You can see there in that spreadsheet-like table at the top, and we're running five different runs of the model and we're looking at how throughput is impacted.

based on those variable models. So you're able to start to analyze the system and determine the best design for those systems. That's SIM3D.

And then emulate3D, or what we sometimes call controls testing, is that functionality that sits at the top of the emulate3D core that allows dynamic digital twins of machines and systems. So using that base demo3D package, you're able to... bring in your CAD, import your CAD, assign all the IOs, and then with the Emulate 3D or the controls testing part of it, connect to the controllers or to the controls emulator and run the system. using that hardware or software as if it were a real piece of hardware. In fact, I always say if you could inquire of the controller when it's connected to Emulate3D and ask it what it's doing, it would just say, that's a dumb question, I'm running a piece of hardware, it's what I do, even though it's not, it's running a digital twin.

And it's because we don't do anything different with the controller than it does when it's running a piece of hardware. We don't import the code or recompile it or interpolate it or anything like that. So that's the three areas.

And if you were to look at it from, say, a project progression view, they might look like this. It's just one other way to kind of understand these levels of functionality. The demo 3D core used often to build prototypical systems or prototypical models for understanding SIM 3D to analyze those models and to improve and finalize layout and design.

And once that design is hardened, emulate 3D controls testing in order to move the commissioning off of the critical path. and the goal of saving time and money and risk for that commissioning process. So you can probably already see that because there are many levels of functionality within the Emulate3D software and because it can be used in a wide range of applications that the value propositions can be highly variable and they are indeed highly variable.

They can range from a customer who simply says if I can win one more project a year by modeling, creating models for my sales proposals than I do otherwise, then that's my value proposition. Other users at the other end would be saying, on any given project, I need to realize a 75% savings in time on my commissioning than I was doing it without it, then that's my value proposition. But if we were to kind of condense those as they're expressed by our customers over the years and continually through our interactions with them, at things like user group meeting and through support and through our commercial engineering function, they would look something like this, right?

Demo3D ensures that everybody's on the same page, that you're reducing your risk, that everybody has understanding. Sim3D allows you to make impartial decisions about the systems that are being designed and therefore reduce the investment risk by making sure you're investing in the right material handling and the right system and the right production equipment. And then Emulate3D is really about saving time. money at commissioning about taking away not only the risk but the amount of time that's spent in that risky position at the end of a project when the commissioning is occurring and again if you have any questions feel free to jump in here if anybody has any questions so let's talk for a few minutes about the software itself and kind of how it's built or how what it looks like and what it feels like and then mike's going to come in and give you a really good idea and give you kind of a a shallow view throughout the different functionality, we'll probably have about 30 or 35 minutes to do that. So Emulate 3D at its core is a dynamic 3D modeling environment.

It consists of a discrete event simulation engine. It's a fully featured discrete event simulation. You can do anything with that engine that you could do with any discrete event simulation engine. But we essentially have wrapped it with the functionality for the way we view the world and the way we create models in this 3D environment.

It also has active and switchable physics engines, and these engines all work together to create this 3D environment. We are an open development environment. We provide a fully documented API to all our customers, and you can work at a very low level if you choose to. In fact, we're a.NET application, and essentially anything you could do in.NET, you could do inside Emulate 3D if you chose to do so. That's certainly not required, but we have.

many customers that choose to work at that level for various reasons. We are integrated with Visual Studio for that purpose and in addition we have a wide range of options for connecting to things like CAD and to controllers and different types of data input and output and creation of video output those types of things. The concept, one of the concepts that's important within Emulate 3D is we are a catalog based application and when we say that what we mean is you will create the systems in your model. You will create the machines in your model and the systems in your model by using catalog components. We provide many catalog components when you install the software.

These are things like generic material handling components that can be modified and changed the way they look and the way they act. But also, most of our customers, if not all, end up creating their own catalog items by importing CAD of their equipment and their systems and turning those into catalog objects that they will. use over and over again.

So most users of Emulate 3D will be using combination of standard catalog items that we provide and custom catalog items that they provide, some leaning more towards the former and some towards the latter depending on the application. But in essence, a catalog object is an object that lives independently of a model. It can be emailed around, it can be saved in different folders, it can be modified and resaved.

The example here on the right hand side is a piece of single zone cart roller. It has a visual representation that you see there that looks like a roller conveyor, but it also has some smart equipment. It has motors, it has photo eye, it has direction of travel, the rollers move, they have coefficients of friction, there's acceleration and deceleration and speed. And in addition to that, it has a logical representation in the script that's attached to it, and that script does all kinds of things.

Some examples would be it tells the graphics how to change if the user modifies them. So if the user wants to make this section longer by grabbing a handle and making it longer, it tells the object how to populate the rollers and the support legs. It also tells it how to work when it's attached to other objects. Does it transfer load?

Does it not transfer load? When does it start, stop its motor, etc.? So as you'll see when...

when Mike's creating some simple models to show you, he'll be pulling some items out of catalogs that already exist in Emulate 3D. I think you guys will be able to imagine how those could be custom objects from bringing in your own CAD. There's many ways to define the way a model works from very simple drag and drop objects to different types of programming.

Probably won't get much time to touch on many of those, but it probably suffices to say that Regardless of the level of detail required within the model, we have the components that you require to do that from something quite simple to something very complex. And lastly, and we'll finish up with this before we look at the software, we have a wide range of connectivity to not only CAD, but to different controllers. We have plugins for SolidWorks and for Autodesk Inventor that initiate or instantiate our CAD as the model. functionality within the CAD tool that is the tool the functionality is used to mark up the CAD with the aspects that are required to make it a smart machine we also have exporter tools for a variety of other CAD packages and we continue to expand our integrations with CAD in addition to integrating with SolidWorks and Inventor you can import a lot of different CAD files into Emulate 3D and the same ability to mark those up exists inside the software as it does in the plugins We also communicate with the most name brand controllers on the market today, not just Allen Bradley equipment, but a wide range from Mitsubishi all the way down through B&R and Beckhoff and Omron and Siemens and Schneider and others.

And that's all done with a native SIP protocol that we maintain in our tag browser. We also allow you to invoke different protocols if required, like TCP or UDP or OPC or OPC UA. to communicate with other hardware or other software is required to populate the model. So that gives you a quick overview of the Emulate 3D solution, but I think all this will come together as Mike demonstrates that software for you. So Mike, if you want to bring up your screen, we'll let you take it away.

I think probably we've got about 30 minutes or so, so we don't need to wade too deeply into anything like flow control or anything like that. If we can give them an idea. demo 3d and sim 3d and emulate 3d i think we'll be in a good place all right thanks mike okay can everybody see my screen yeah it looks good excellent thank you okay so uh as as tyler explained right it's uh you might hear some different terms the different licenses uh demo 3d sim 3d and emulate 3d and controls testing and ultimate all these different terms um but it's always this one piece of software so this this is This is the software and while we're not CAD, we are a 3D modeling space and we do have our own objects that we can create things with in lieu of having CAD or in addition to having CAD. things, you know, representations of your machinery.

And then some of these things are machinery straight away. So for example, the straight bell conveyor, right, that is a, it's our most basic conveyor object. And we'll see when we get into catalogs, there are lots of other structures that are built on these same kinds of building blocks. And everything is parametric, meaning I can resize it dynamically.

Using these control points or using the properties, if we go over to the properties grid and type in some exact value, you know, the parameters, the properties that I have here describe what that machine looks like and the colors that it is and, you know, the dimensional characteristics. But then more importantly, for something that is a piece of machinery like this conveyor, there are deeper properties that have to do with the way that it behaves, how it is a machine and how we... how we interface to it. So if I dig up the motor property here, right, and expand that further, that's got places for us to set the speed, X cell, D cell, the state of the motor, whether it's on or off, the direction, and then all of these other pieces of information between have to do with the feedback that we would get back from this conveyor motor object, right?

So different ways to get positional feedback, like a pulse encoder or a gray code. pulse counts, things like that, or motor position. And so wherever we have a property, that's a place that not only can we see the value, but we can change the value. And I can change it dynamically in this properties grid, but we can also connect up other simulation logic control to these properties within the model, or we can connect up PLC tags to these values on any of the pieces of machinery in Emulate 3D. And so these are essentially like contacts on the machine that I can talk to with my real controls or simulated controls.

Now, when I start up the model, the physics engine turns on and time starts ticking away. You can see the time down here on our clock. And this load creator starts dropping boxes onto the conveyor and the conveyor motor is running.

If we look at that motor again, the state is on. It's running at that speed. When we first started, it would have accelerated up according to this rate of acceleration.

And the boxes go to the end and they tumble on the ground because we're not doing anything smart here, right? It's a piece of hardware and it's running. And this is the way that we need to think about it so that we can do a good job of building controls testing or virtual commissioning models with emulated 3D software. We need things to go wrong when we don't tell them to do something right.

And so we have this kind of chaotic situation. If I turn the motor off, you know, it decelerates to a halt and everything comes to a rest. Here we go. We can clean this up a little bit. Let me select that again and we'll turn the motor back on.

Turn it off. We got a nice controlled stop. Right.

So how this happens, how this all works, I'm going to turn on the physics rendering view and we'll run this just a little bit more. There we go and I'll bring it to a halt and pause. So right now, right if we look with the physics rendering view on this is showing us why things, the physics is happening, why things are doing what they're doing right now. And so we see some extra information around the load creator is a sphere and that's a congestion zone.

So it's a thing that has a physics body type called sensor and these boxes have a physics body type called load and loads can block sensors. And so this load creator is examining its load congestion sphere here and notices that there's something blocking it. So it can't make another box until that's cleared. Now when we examine the boxes, we see some more information. These little red dots, those are the points of contact that we calculate between the box and the work surface of the conveyor.

And these blue lines coming down represent the force of gravity on that point. Now I'm going to run the motor for just a moment more here. Let me turn this back on and then I'll pause it again.

And now we see a little bit more, right? So now where these red dots are, there's also now a yellow line coming away from that. And that's because the conveyor motor is on and the conveyor is pushing.

on that point, on that contact point. And so that yellow line represents the force in the direction that the conveyor is applying on each one of those points. And that value here, this number, is the coefficient of friction between the material of the box.

If I look for friction material, there it is. Friction material of the box called corrugated and the friction material of the conveyor belt called rubber. And those terms, they don't mean anything.

They don't relate to any real world substances or standards, but... In our model, we have a matrix that lets us describe what happens when any two materials meet. So these are all the built-in materials, and you can remove them and add new ones or replace them or rename them, and you can realign all of the different values and define your whole friction matrix based on the modeling that you're doing.

And so the reason that you might do that is just to create some different scenarios, some different variation in the model when you're running it so that when you are you know doing your control assessing activities that it's you're testing against an imperfect world a world with variation because if if everything's perfectly repeatable uh it's it's not that interesting of a of a task to to validate it right it's pretty easy to validate something that does exactly the same the same thing every cycle but when you get some variation it's a much more interesting experiment and so our emulate 3d volumetric physics environment allows us to do that and allows us to treat machinery like hardware. And I'm going to give you one more example of treating it like hardware and then I'll go into catalogs. So here's a new basic box and this could be any 3D object from imported CAD or, you know, it's a box from our new library.

It could be something from a catalog. It doesn't matter. It's a piece of geometry.

And what I want to do with this geometry is again treat it like a piece of hardware. I want to put in a mechanical guide here and move my boxes across to the left and you can see that right now that's not happening right and um and that's another a power of our parametric behavior our parameters our properties that drive everything right. Right now this box if I look at its body type property and everything has a body type like if I look at the load its body type is load the conveyor is deflector And this box that we added is just visual only.

So there are these different fundamental body types. And so sensors can detect the presence of loads and deflectors in vehicles. Loads are these transient objects that we pass around in the model, and they can be pushed around by deflectors and detected by sensors.

And deflectors are like the immovable object. And so while they can push loads around, the loads can't push them back. And so these are very ideal for things that mechanically guide loads.

So let me turn the physics view off, right? And so again here, it's just like hardware. I've got a piece of metal or plastic or something. And if I introduce it to some loads, I can move those loads around. I can guide them with a static kind of fixture.

Or if I motorize it, right, I can use it as a plow or a lift or a shuttle or anything that I want to build. So the ability to treat. This stuff like hardware is what makes Emulate 3D the ideal testing tool for controls validation. Any questions before I jump into the catalogs? Very cool.

All right. Thank you. So as we get into catalogs here, I'm going to wipe this out, do a brand new model. We'll start in the Quick Start catalog.

So this is the same catalog that was in Tyler's presentation, and I'm going to zero in on that same piece of conveyor that he had there. So this is a roller conveyor, and we were just looking at a belt conveyor, and roller conveyor and belt conveyor are only different in that one has belt and one has rollers. But the other functionality, it's common, right?

It has a motor, it's got friction material, speed, XL, D cell, uh, positional feedback, all of this kind of stuff. It all... it's the same, it's common.

This particular conveyor component from the Carton Systems folder is a single zone module. It's a single zone roller conveyor and it has, it's an assembly, right? So we see this photo eye and that photo eye is not just for looks.

That is, that's a functional photo eye for this piece of machinery and furthermore this conveyor has a script on it. And so every one of these instances that I make of this conveyor, it has its own local programming, and so it does an intelligent job of material handling, not just like the raw conveyor hardware that we were just looking at. So it's built out of that stuff, still uses all that same physics, still and it switches the motor on and off and everything automatically, and I don't have to think about those low-level operations. But as I snap together, segments of this conveyor, I'm building an intelligent system of machines.

And now when I start the model up, I get this perfect controlled non-contact accumulation. The motors are switching on and off, the photoizer detecting the presence of the boxes and so on. And it's doing all of that same low level physics, right?

All of that's in there. but I don't have to think about switching the motor on and off. I don't have to think about what's happening with the photo eye. I'm thinking about this at a high level.

So this is where the demo 3D, the demonstration engine comes into play. I've got catalogs of smart components that I can just snap together and build up a system with. Even things like robots, right? So I put in a robot here and we'll put on a tool and get a controller. That's my robot.

This is my robot's home location and we'll grab a couple of these, put them here, put them here, and then so I didn't really explain this too well but these these little triangles sticking out of the conveyor those are the connectors and that's when when I get these segments close together you see those red boxes and the green boxes light up it's like a magnet it snaps it together and gives me a physical alignment. It's giving me that communication network through the system that I've been building up here, right? And while the robot doesn't, I don't want to necessarily physically snap it to the conveyor because I want to position that differently.

It doesn't have to be in line in order to work. I can use these connectors to also just logically wire up. So there I've just field wired that conveyor to the robot controller and then out from the robot controller to both of these little sections of conveyor.

And with that done. we can run the model again and now when the box gets to the end of this conveyor the signal goes to the robot and the robot does a whole transfer process and because we're running in the demo 3d engine and i've not given it any um you know any explicit decision on where to put things it's going to do round robin dispatching automatically so that i can quickly put together a concept model without doing any kind of programming without you know, having to think a whole lot about it. I'm just laying out equipment, press the play button, and everything goes. Everything from these catalogs works this way. So we can put together systems with robots and ASRS, elevators, lifts and shuttles, vehicles, and all of these kinds of things, and they all work under the same premise.

Now, I'm not going to show you the code behind this next idea, this other idea, but I'll explain it quickly. So these systems of equipment that were laying down, think about this as the mechanical layer. This is all of the bits of machinery, and every single one of these has its own low-level operation that it's doing. Just like when the box hits the photo eye, there's a signal that goes to the conveyor. It processes the signal.

It says, hey, do I have a place to send that box, yes or no? If I don't, stop. If I do, send it along.

The robot has the same kind of fundamentals about it. right i don't have to think about those things but if i'm doing a simulation model and there's some kind of trafficking that i want to consider i want i want things to come from a particular place and go to a particular place there's a high level simulation logic that we use that's drag and drop programming almost just like drag and drop of the equipment and the the core of that is i i get something from somewhere and i tell it where to end up and all of these intelligent pieces of equipment in between respect those high-level commands. So it's almost just like putting a very high-level layer of command structure over top of the mechanical layer, and the mechanical layer all just automatically handles itself. We don't have to go back in and ever tell the motors what to do or look at the photo eyes.

Now, when I'm doing a controls testing model, as we see later on, I would be more interested in, you know, what a photo eyes signal is, and I'll be more interested in driving... you know some motion axes to particular positions and things like that and we'll get into that but for now we're just doing very simple demonstration level modeling and in fact i'm going to switch over next to get into some sim 3d features so far everything we've looked at again is demo 3d professional and it is demo 3d professional even if i'm importing cad or using that drag and drop programming language it's all that's all demo 3d professional level stuff the sim 3d features are going to be design of experiments and execution of lists of experiments and collecting data about those models. But before I go there, any questions about what we're seeing here?

Okay, moving on. So I'm going to open up another model. Sorry, was there a question? yeah can you hear me yes jeff um at this point in the demo is the are the i'm going to call them the blocks of the rollers and the loads that's being created are the physical properties of the box being considered um i think i heard you say yes like the weight of the box um And is the weight of the box going to dictate the horsepower on the rollers and, you know, the size of the motor and that kind of thing? Or is this just...

No. So our physics engine is... It's rigid body physics and all of our motions are kinematically driven.

So the loads will collide with each other. If I'm doing a pressure accumulation kind of system... I could squeeze boxes and they might pop off of the conveyor and fall on the ground, or I might overrun a stop belt or something like that.

That's possible, but we don't do motor sizing. The motors of the conveyors actually are not affected by the loading conditions. The same with the robot, not inherently. You can do things to override or write your own control logic with scripting, with our scripting engine. And.

artificially introduce these kinds of situations to the motors or to the robot. So one example is something that I've seen a lot of our users do, is they will examine the mask because the boxes or whatever the loads happen to be, they do have a mass property and the robot control, right, there's this drag and drop programming language and if I just open up one of these, this is the first signal that goes to the robot, executes this little bit of code. And I know everything about the load that we're picking up because it's an argument that comes into this coding environment. And I can say, hey, load, how much do you weigh?

And based on that weight, I could tell the robot joints to all run at a different speed. If it's a very light load, I could move the speed to one particular amount. And if it's between this mass and this mass, maybe a different speed. And if it's heavier than this mass, maybe it's a full stop and the robot just won't do it.

So you can do that thing, that kind of thing, but the physics engine isn't managing that for you. That's more of an abstraction, an abstract kind of process that you impose over the system using the logic. Quick question. When you're using the full Emulate 3D, would loads then be taken into consideration? So at that point, you're testing the machine to see if you have everything sized properly?

No. Nope, the physics engine still doesn't manage that. We do have dynamic joint mechanisms which use force rather than kinematic animation, but it takes a lot of tuning to get that right, and it doesn't really relate to the real world conditions inherently.

It's something you kind of have to backfill and tune and get right by matching it up against behaviors that you find in the real world situations. And so, you know, our tool is just not designed for that kind of analysis. It's more about the logical operation of the controls than it is testing the mechanical capabilities of the equipment. Yep.

So I'm going to grab another model here. And it's a very simple model. It looks like there's maybe a lot going on here. There's some racks.

weird box and some conveyor segments and stuff like that. So what this represents is, imagine this is a truck dock and there's trucks backed up to here and every so often another truck comes along and it's unloading some pallets of something. And over here I've got storage racks and in between I've got a vehicle, in this case it's a forklift, and that forklift is being controlled by a vehicle manager.

And so what that means... right is this vehicle manager can take any vehicle and say well now you're a managed fleet of vehicles and and i get however many i put in this number field so if i say one i get one if i put five i get five of them and i'll dispatch my work um you see these connections this is just like when i connected up that robot to outfeed to to two of the um the conveyor segments and infeed from one and so we see that we are we're taking product from all three of these truck docks and we're gonna we're gonna service them with our fleet of managed vehicles that is going to feed the storage retrieval manager which is just a controller for rack systems kind of like the robot controller is to a robot So that's the system that we've got here. And I'm going to move into Sim3D experiments. And when I do, I'm going to want to collect some data about what's happening in the model.

So more than just watching the model run, I'm actually collecting throughput. And so this throughput collector, it's just a component from the catalogs here, data collection throughput. And so it's going to measure the throughput on my storage retrieval process. When I get into the Sim3D tools, right, that's when I, the first time I touch a Sim3D tool is when I hit this button, the experiments button, and that launches my experiment manager. And what this does is allows us to design a list of experiments that we can then execute in batch form.

So, you know, if I just make several experiments and run them, it'll run them all, they're all running for this duration. And that's great. I'll probably get the exact same results every single time I run those. But if I want to, um, here we go, delete those.

A more interesting thing to do is to change some kind of variable about the model for each experiment and measure the impact that that variable had on the results that I'm collecting. And it could be, it can be one variable or many variables. In this case, what I want to do is test the number of fork trucks in service to see how that impacts my system throughput, given that this is constrained and this is constrained, right?

And so I can add any property to the experiment manager. So I click on a property and hit this little button here, add to experiment properties. And so now that's a variable here and I can change that number. And now when I create more experiments in my list, right, each one of those is a position that I can change. And so what's going to happen now when I run, run all of the selected experiments, is it'll reset the model, set up whatever property values I put in here, and then run it.

And it's going to run it and collect the data that we're collecting. And when it gets off finished, it'll dump the data to the analysis tool, which is embedded Excel. So it'll dump the data here. Move on to the next experiment. Reset the model.

Delete all the loads, all the transient stuff. Reset our positions back to zero and set up then our model with two vehicles, with two fork trucks. Run it and so on.

So it runs through this list. And so when I hit run selected, we'll let it start up there. There we go. Our first experiment completed. Second, third, and so on.

And as we, you know, we can watch the model run, but we're also collecting this data and we're just putting it into this embedded Excel environment. And so we can do things that we do with Excel to present and examine the data. And again, because it is just Excel, we can save this out, you know, as just Excel files.

So very portable, portable results. and you can understand what's going on here very clearly. Now you can have multiple different kinds of data collectors and each data collector will add another tab in the Excel workbook and put its data there.

So if we also put in like a utilization report or something like that, it'll just populate this workbook and it'll collect all those stats simultaneously. So those that's the Sim3D features right that's that's what you get for that. So that's the analysis and the design and execution of the experiments. Any questions about SIM3D? All right, so next I want to move into, I'm showing you the CAD as the model tools and we'll build a piece of machinery and connect it up to a PLC that I've got sitting here and control this machinery with the PLC.

So let me do a new model. and I'll import some CAD. There we go. Right, and so this is some SOLIDWORKS CAD and it is just a simple gantry machine. And if I go to my hierarchy view and expand, you can see right that the whole CAD structure comes over the main assembly, the sub assemblies, the features, all of the information's here.

And as I move my cursor through this hierarchy, you can see the different pieces highlighting out in the model space, right? So I can select the carriage there and the Z beam there. And those are the two different objects that I want to add.

add functionality, add motion and motors to. So right now it's just CAD. They're these groups of collections of triangles.

They have no value as machinery, but I have the graphics of them. So this CAD as the model toolbar is a way to add the Emulate 3D machinery characteristics directly to the CAD graphics. So classically, you know, 10 years ago users would have imported their CAD and restructured it, restructured the hierarchy, mapping the CAD graphics over Demo3D, Emulate3D functional objects, like these skeletons of objects.

And so then it, you know, it's our stuff, it's Emulate3D's catalog components, but with the CAD graphics superimposed over them. So now this toolbar is like, if we took all of the Emulate3D behavioral characteristics and physics characteristics. and put them into a toolbar and you can just directly apply them to the CAD graphics. And now what's really cool about this is this toolbar, while it exists in Emulate 3D, it also installs into SolidWorks directly or Inventor or it's going to be in PTC Creo and Onshape and we're going to continue to expand that list. And so that same toolset goes into those CAD platforms.

And this information, this machinery markup that we're adding to the geometry, saves with those CAD files. So that CAD file can remain the source of truth. We add the Emulate3D behaviors directly to the CAD. Now once we push the CAD geometry into Emulate3D, if we change these machinery characteristics, we can also suck that information back into the native CAD platform to keep the CAD model, the original CAD model, updated as well. So now I'll actually do some of this work, right?

So I'll take this carriage and I want to add a joint to it. So I need to describe a degree of freedom. And so that's a joint.

And I'll use a kinematic prismatic joint. And that says, hey, you owe me some more information. So it wants me to tell it which direction of travel it's going to have.

And I just need to find a feature that gives me an arrow pointing in the right way. And I'll set that to inverse kinematic at first just so I can drag it around and test it. And I'll set up some limits, 59 inches.

There we go. And then I'll do the same thing to the Z-beam. So the Z-beam gets a kinematic prismatic joint.

I want it to go down. Set it to inverse kinematic. And that gets 32 inches. Reset, run.

And now... right i can drag my carriage and i can drag my z beam but i forgot to do one thing and that's relate them so you know the hierarchy of the cad um shows me that the carriage and the z beam are siblings and so right now i've added an individual joint to each one of those and so that's why i can move them individually now they're both constrained by their the constraints that we designed but they're not they're not a compound system yet so i'll go back to that z beam and say actually i meant to relate you to the carriage mechanism there. And so now when I test it again, right, it's one single solving system.

Now the same thing that I'm doing here, the same kind of markup that I'm applying and making this single solution is exactly how you can build robots too. So while we're going to provide a lot of robot CAD models that already have this information, if you invent your own robot or you get some obscure one from somewhere, you can use this to add joints to the robot joints. and our controller will still control it. It's still a valid mechanism in Emulate 3D. So you can invent your own compound complex mechanisms like robots or anything else, linkages and everything, and our solver will drive it for you.

So now, so far, right, we've described the degrees of freedom, but there's no way to drive these things yet. I'm just dragging them around. It's like mechanical things out on my shop floor. And the next thing I want to do, though, is motorize these.

So my kinematic prismatic joint, I'm going to set it to forward kinematic now, meaning I can't drag it anymore. I'm going to explicitly drive its value with something like a motor. And then we'll go back to CAD as the model and we'll stack a motor onto this joint. So there's my motor.

And my motor is where I describe the performance characteristics. There we go. And now I can motor drive that.

But furthermore, what I want to do is add a particular kind of interface motor. And so I want to be able to drive it to position. So I apply a position controller, right, that stacks on, and I relate that to the motor. And what that gives me is a place where I can drive that motor. to position according to this performance curve.

Okay, so it's always going to just chase this position, whatever this position is. And so this is the property that we've now defined, we've added, we've endowed this CAD with this functionality. And now I can connect up my PLC control to that point on this machine and drive that position with my PLC controls. So I'm going to go to one more model, which is a little bit further along version of this one.

where not only do I have the motor, I've added the motor to the Z-beam as well, and then I add a gripper to it and then put in some simulated conveyor and interface it all together. And while that's loading up, I'm going to grab my PLC. So here I've got, you may have even seen one of these before. This is a Rockwell Mrs. Z demo box.

And so what that is, it's a nice little rig with a compact guard logics 5380 and a panel view 5510 HMI all connected up together. And I've got this plugged into my computer with an ethernet cable. And so we know that we've got those properties we've defined on the gantry.

I have to explain that. The photo eye down here on this conveyor has a property called is blocked and one called is cleared. And those are those are contacts, right?

So is blocked is like a normally open contact and is cleared as a normally closed contact. And I'm going to wire that up to my PLC to tell my gantry when there's a part present to go pick. So let's wire it up. So I want to choose the kind of PLC I want to connect to, choose the protocol I'm going to use.

That's going to be Ethernet over IP. and now I search my network to find any connected controllers. I have one here at this address running this program. I say okay and when we do that it interrogates the PLC and pulls in all of the tags that we can talk to. Now of those tags I'm just interested in these ones and I've already loaded them over here but to load them up right you just right click on a tag and say load tag and it creates a new row based on that tag and so like this gantry current position dot x that is the the value from the plc that i want to drive the position of my carriage and so it is mapped mapped to the carriage target position so remember that target position that we added by adding that joint adding the motor on top of the joint adding the position controller on top of the motor that's what defined that and so that just appears here and we bind that to the plc tag and the rest are like that as well You'll notice that three of them are read from PLC.

So these are outputs from the PLC, and one is a write to PLC. So it's an input to the PLC. And that is, the input is that PE2, that photo eye, dot is blocked, the normally open contact.

And then we've got our gripper, of course, that has a open and close, and it's another motor, but with a, instead of a target position, that motor, that gripper has a type of controller. actuation controller, which gives it an activate feature. So that's, I turn that true or false, and it'll activate and run its course.

So with all of that done, I hit connect, that binds and creates all the bindings between the PLC and the model. And then I turn on the model that'll start up the physics and the time, and that machine's running. And so this is the PLC, the actual PLC running this model.

And I can go over to my HMI and let me hit the stop button here. It'll stop at its next position. There we go.

And I can jog the axes. All right. So I'm just, I'm just tapping on my HMI screen now, the real hardware HMI, open the gripper, close the gripper and so on. I'll put it back and run. It'll go back to running again.

So this is, this is real PLC. controlling virtual machinery and interfacing with not so not just you know the machinery that's in the the scope of my control logic but i'm interfacing with simulated conveyor and this is where you know the this emulate 3ds simulation engine uh demonstration engine all of that comes into play it can it can blend and mix with emulated equipment or plc controlled equipment and that lets me you know build up you my mechanical system that I'm going to control with my real PLC controls, and not just poke and prod the I.O. and see things move, but drop it into the context of a system that interfaces with other content that maybe isn't in my scope, or maybe it's something I built last year, and now I'm adding another piece to it in a brownfield application, or something like that, right?

So you can blend these models and simulate different parts and emulate different parts. And it all works together in one environment. um so any questions well mike i think that's a perfect place to uh stop so if we don't have any questions i think we'll uh turn it back over to angela i've got a question sure so um mike this is jeff hey i'm curious on what the i guess i'll call it the learning curve is for automation engineer that normally programs a PLC, is it the same person that's going to be using this software or is it a different person? Might be the same. I mean, what's your experience?

So there's, yeah, you know what, that's a really interesting question. And it's different companies, different customers that we have. view that in different ways.

We don't really prescribe necessarily who can and can't do this modeling, but I can tell you from one experience, we have one customer that explicitly says, no, the controls engineer is not allowed to do this model because they might cheat. They might make the model bend to the will so that their control logic, the way it is, is just going to work right. Whereas Instead, they say, no, no, no, the emulation model is the model, and if your control logic isn't running it right, then your control logic needs to be fixed.

And so the controls engineer isn't allowed to tweak the way that the model works. They might get to change the positions of the photo eyes and things like that, but they lock them out of doing certain fundamental changes. And that's just to keep the fidelity clear and clean. Others.

you know this it is the same person they do that and and the tools that we've implemented especially the cad is the model toolbar this is this is some of our newer tech um this was designed to really uh you know clean up and remove barriers to entry so that a wider range of user types user profiles can make functional machinery to do their testing with very quickly so you know classic old old way to do things before we had this technology to take that same kind of machinery and transform it into something that's functional for controls testing. It was a completely different workflow and it took a deeper understanding of Emulate 3D, where to get things from the library, how to change the structures and reparent things to other objects and script programming and things like that. And this tool set has Remove the need to do a lot of that work so that against the controls engineers and many other disciplines that don't really have an interest to learn emulate 3D in and of itself are able to get in and get right to this kind of work. From you know, from a layperson perspective, it looks pretty complicated. So when you buy the software, what type of training is is out there?

get somebody as proficient as you are. Sure, so we have standard, a standard training package, right? So to get started, it's, I don't know, it's, I think it's like $900 or something like that for up to six people. And this walks you through using these tools, using the catalogs, lots of concepts, the drag and drop programming, it's, It's pretty complete. And once you get done with that, there is a whole big online repository.

And I'll just give you a glimpse of this. So everybody creates their own login to the web store. And it's called store, but everything in there is free.

Training materials area here. So this is all training. And there are, the last I counted, 400 plus step-by-step walkthrough tutorials on all kinds of different topics.

And so, you know, like those CAD as the model tools that take that CAD and turn it into machinery, there's a whole, you know, top-level series of stuff there. And if you expand it, there's specific ones for using Emulate 3D, if you're using Inventor, if you're using SolidWorks, and so on. And then furthermore, you'll find other tutorials that just happen to use this technology to do more meaningful things.

So this is all, it's all categorized, but it's also searchable. So if I wanted to do something with a robot, I might type in robot and I'll find lots of different tutorials about using robots, using them for all of these different purposes and concepts. And there's, and when I start up one of these tutorials, so let's go to. This one, for example, and I'll make sure I'm on the beginning. So the tutorials all will tell you at the beginning what you're going to do and list out any materials that you need to complete it.

And the materials that you need will always be attachments to them or maybe if there's no materials needed, it just starts from the base level. There's always going to be a solution model attached as well. So if you're just looking for example models to take apart, a lot of people like to learn from example too.

There's a that finished completed model is also attached to release. So you read through and you walk through the steps, hit the next button to go to the next page. Some of them include video clips, like this has a video clip here, and you just process through and learn all of these different things, self-based learning.

So that's all available as a customer. Thank you. I've run into Megatronics in our area and I was wondering if you guys might have a listing that would go through competitive advantages of emulate 3d Versus similar products that around the markets. No, we generally don't do that For a couple reasons one is we're not really expert in the other products and to those comparison sheets are worth the paper they're on because whoever prints them always makes their product look like it's advantageous.

We can certainly tell you what our customers tell us that work with both products. The Siemens product is generally more expensive and more complex, and it is very Siemens-centric, where we're kind of agnostic, less expensive, and a single piece of software as opposed to multi-pieces. Okay, great. I'll get you guys involved when I run into the situations.

Sure, absolutely. Okay, we're a little bit past the hour here. I'm sure we have people with hard stops.

Any other questions?