About The Open Emulation Platform
Our Simumatik Open Emulation Platform (OEP) is designed with one objective: to strengthen the skill development of engineers.
The OEP provides a totally flexible digital environment, allowing the user to create anything they can imagine.
Our Platform Architecture
All of this is delivered by our platform architecture. The OEP is divided into:
- Cloud storage: Where all data is stored, such as systems, components, and their assets.
- Emulation server: Where the models are built and executed.
- Web-app client: Use to browse the cloud data, and edit components, and to interface with the emulation server.
- Gateway service: Used to connect the emulation server with third-party software and hardware.
The emulation server can run on a local machine, a machine in a local network, or in the cloud. That means that we can give multiple users the opportunity to collaborate in real-time and computer requirements will be low if the server is running online.
The Concept - How It Works
Emulation means that the digital systems and models you build will look and behave like their physical counterparts.
- Visuals: A models geometry, assets and attributes
- Physics: The physical properties of a model, including material, collision shape and kinematics. All used to replicate physical interaction using a physics engine.
- Interface: A models connection points, allowing it to be connected to other components or third party software. These include electric, pneumatic and mechanical ports for example.
- Behavior: The logic that can used to put together other aspects and bring the model to life. It is programmed using a Python script.
Each aspect is flexible and together they allow modeling almost any component you can imagine - from basic products, sensors and motors, to PLCs and robot controllers. However, not every component requires all aspects to be modeled.
A System Hierarchy
A system is composed of assemblies and components. Components are the building blocks. When placed together they create an assembly. Multiple assemblies make up the system.
The idea of component-based modeling is simple. Each element in the system with a specific or independent use is considered a component. Our platform allows users to create these systems and component and share them with the rest of the users if wanted.
The emulation model follows the same natural principles that are applied to engineering drawings. In the example below, we see the cylinder, valve and pump can be modeled as components and connected. If connected correctly, you will achieve the same result as a physical system. If you miss a connection, the emulation will also behave accordingly.
In Simumatik, connections between components are made with the help of ports. Each component can have ports of a certain type (e.g. electric, pneumatic, etc) which can be configured as inputs or outputs.
The rule for making a connection is simple. Two components can be connected if their ports are the same type (e.g. electric) and the connection is made from an output to an input port. Also, one output port can be connected to several input ports.
The diagram below shows a basic electric circuit including three components. C1 is a battery connected to C2, a switch, which is connected to C3, a light led. C3 is finally connected back to the negative pole of the battery. The electricity will flow when C2 is pressed, causing the light to turn on.
Third-party software/hardware integration
Some components may need to exchange information with other software or hardware, such as a PLC or a robot controller. Therefore, Simumatik has developed the Gateway, a complementary software that acts as an intermediary between the OEP and a third-party platform, such as RobotStudio, RoboDK, Codesys, TIA Portal, etc.
From the user perspective, components can make use of special elements called drivers, which are abstraction layers ready to send and receive variables from the outside. They are in charge of handling the communication, so components can focus on handling the I/O information.
The following diagram shows an electric circuit including four components. The new item introduced in this circuit is C4, a Programmable Logic Controller. A PLC will allow us to control the logic of the whole system by reading its inputs and generate some outputs according to the internal state. In this case, we could enable the O8 output port in order to turn on the light, when it detects a signal in the I6 input port.
Check our third-party integration section to know which are the possibilities.
The emulation server is an application that includes different engines (physics, behavior, and interface) in order to run emulation models.
Once a model is loaded on the server, it does not require a client to execute it, just for interacting. Actually, the server does not render the scene for the clients, each client renders the scene independently, which reduces considerably the resources required to execute the model at the server-side.
This arquitecture allows more scalability and makes possible to execute complex models even if the user does not have access to a powerful device to execute the client.
The server is a cross-platform application that can be executed on Linux or Windows. The online version is executed on a Linux machine and local versions are available for subscribed users.