realvirtual.io
  • Building Digital Twins with Unity and realvirtual.io
  • Basics
    • Installation
    • Demo Model
      • Old Demo Model
    • Editor User Interface
      • Hierarchy Window
      • 3D Views
      • Quick Edit
      • Move Pivot Points (Pro)
      • Selection Window (Pro)
      • Material Window (Pro)
      • Measurement (Pro)
      • Kinematic Tool (Pro)
      • Model Checker
    • Runtime UI
      • Group Manager
      • Debug Console
      • Responsiveness
      • Runtime Persistence
    • Importing and exporting
    • Folder structure
    • Tutorial
    • Physics
    • CAD import (Pro)
      • CADLink (Pro)
      • CAD Checker (Pro)
      • CAD Updater (Pro)
    • Reusable Components (Prefabs)
    • Cadenas parts4cad
    • Publishing the Digital Twin
    • Revision management
  • News
  • Login & Download Updates (Pro)
  • Components & Scripts
    • Realvirtual
      • Environment Controller
    • MU, Source and Sink
      • Source
      • Sink
    • Motion and Kinematic
      • Drive
      • Kinematic
      • Group
      • Joint
      • CAM
      • TransportSurface
      • Guided Transport
      • Drive behavior
      • Chain
      • Chain element
      • Motion for developers
    • Sensors
      • Sensor
      • Measure
      • MeasureRaycast
    • Picking and Placing MUs
      • Grip
      • Gripper
      • Fixer
      • Pattern
    • Changing MUs
      • MaterialChanger
      • PartChanger
      • Cutter
    • Scene Interaction
      • 3D Buttons
      • Screen Overlay Buttons
      • Scene Selectables
      • Lamp
      • Interact3D
      • UI components
      • HMI components (Pro)
        • Start your own HMI
        • HMI Tab
        • HMI DropDown
        • HMI Puschbutton
        • HMI Switch
        • HMI Value
        • HMI Text
        • HMI Slider
        • HMI Message
        • HMI Marker
      • ModelZoo (Pro)
    • Interfaces
      • Interface Tools
        • Signal Manager
        • Signal Importer Exporter
        • Signal Catcher
        • OnValueChangedReconnect
      • Signal Importer / Exporter
      • ABB RobotStudio (Pro)
      • Denso Robotics (Pro)
      • EthernetIP (Pro)
      • Fanuc (Pro)
      • FMI
      • Igus Rebel
      • MQTT (Pro)
      • Modbus (Pro)
      • OPCUA (Pro)
      • PLCSIM Advanced (Pro)
      • RoboDK (Pro)
      • RFSuite (Pro)
      • SEW SimInterface (Pro)
      • Siemens Simit Interface (Pro)
      • Simit Shared Memory (Pro)
      • Simulink (Pro)
      • S7 TCP
      • TwinCAT (Pro)
      • TwinCAT HMI (Pro)
      • UDP (Pro)
      • Universal Robots (Pro)
      • Wandelbots Nova (Pro)
      • Websocket (Pro)
      • Windmod Y200 (Pro)
      • Custom Interfaces
    • Performance Tools
      • Combine Meshes (Pro)
      • Create Prefab (Pro)
      • Hierarchy Cleanup (Pro)
      • Mesh Optimizer (Pro)
      • Performance Optimizer (Pro)
    • Defining Logic
      • Unity Scripting
      • Behavior Graph
      • Logicsteps
      • Unity Visual Scripting
      • Recorder
    • Robot Inverse Kinematics (Pro)
    • Volume Tracking (Pro)
  • Multiplayer (Pro)
  • Extensions
    • ModelZoo
      • Beckhoff TwinCAT
      • Siemens S7
      • Denso Cobotta 1300
      • Wandelbots Nova Fanuc CRX
      • Universal Robots UR10
      • Fanuc Roboguide
    • realvirtual.io AIBuilder
      • realvirtual.io AI Builder Overview
      • Generate AI Training Data
      • AI Training
      • Testing AI in a Digital Twin
      • Deploying the AI
    • realvirtual.io Simulation
      • Conveyor Library
      • Path System
        • Path finding
        • Line
        • Curve
        • Workstation
        • Catcher
        • Pathmover
    • realvirtual.io Industrial Metaverse
      • Setup Guide
      • VR Modules
      • AR Modules
      • Multiuser
    • AGX Physics
    • VR Builder
    • CMC ViewR
  • Advanced Topics
    • Render Pipelines
    • Mixed Reality with Meta Quest3
    • Upgrade Guide
      • Upgrade to 2022
    • Open Digital Twin Interface
    • Usefull Addons
    • Improving Performance
    • Supported Platforms
    • Compiler Defines
    • For Developers
      • Important Classes and Interfaces
      • Assembly Definitions
      • Starting your development
      • Class documentation
      • realvirtual Init Sequence
      • realvirtualBehavior Lifetime Methods
      • Testing
    • Newtonsoft JSON
    • Troubleshooting
  • Release Notes
  • AI Digital Twin Assistant (GPT4)
  • License Conditions
Powered by GitBook
On this page
  • Introduction
  • FMU / FMI Background
  • Import and Usage of FMUs
Edit on GitHub
  1. Components & Scripts
  2. Interfaces

FMI

PreviousFanuc (Pro)NextIgus Rebel

Last updated 18 days ago

Introduction

This interface is outdated on will be removed in the next release. The base Github repository is not managed any more () and we can't find a work around for the problems.

The FMI Interface is only available in realvirtual.io Professional

The Functional Mock-up Interface (FMI) is a free standard that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. It is supported by 150+ tools and maintained as a Modelica Association Project on GitHub. The code is released under the 2-Clause BSD, the docs under the CC-BY-SA License. (Source ).

Based on the FMI interface you can connect integrate very detailed simulation models which have been developed for special domains with tools like Mathlab, Modelica, Amesim, Dymola and others into your Unity - realvirtual.io solution.

This FMI interface is implemented based on the Unity-FMI-Addon by CATIA Systems which is licensed based on the BSD 3-Clause License. For more information see here .

We implemented this interface for and during the ITEA Project AITOC ()

FMU / FMI Background

The FMI interface is a standard interface to so called FMUs (Functional Mock-up Units). FMUs are compiled C code in the form of DLLs which can be created by a lot of tools. An FMU can be everything which is having different Signals like Parameters, Input and Outputs. The detailled behaviour of a Pneumatic Cylinder or an Electrical drive can be for example an FMU. But an FMU could be also a very large Simulation model of a whole machine for example.

In realvirtual.io FMUs are called each Physics cycle. First the Inputs of the FMU are set by the realvirtual.io PLCInputs and then the FMU is called to calculate the next step in the size of the Physical timestep (Time.fixedDeltaTime). After this all FMU Output signals are transfered to the realvirtual.io PLCOutputs.

Each FMU is handled as one FMUInterface. This means, that you need to define as much interfaces as the number of FMUs you want to use in your model.

Import and Usage of FMUs

FMUs are distributed as .fmu files. This is a ZIP file with the needed DLL and additional information about the parameters, inputs and outputs included.

To use an FMU in realvirtual.io you need first to add an FMU interface to your scene:

After this you can select the FMU path and load the FMU into your project by selecting the button "Import FMU & createsignals".

Now the FMU is imported into your project and all signals of the FMU are created as PLCInputs or PLCOutputs:

During the FMU import the ZIP-File is opened and the included FMU data is placed to *Assets/StreamingAssets/FMU/[FMUName]*. This assures, that the DLL is included in your project and can be delivered with your realvirtual.io build. Additionally a ScriptableObject including the needed parts of the model description is created under *Assets/realvirtual.io/private/Interfaces/FMI/Resources*. This scriptable object is referenced by the FMU interface.

If you don’t need all the imported signals you can delete them. They are only recreated upon a new import of the FMU. You can now use the FMU as all other interfaces for example by connecting the FMU outputs or inputs to realvirtual.io behavior models like drives and sensors.

© 2022 in2Sight GmbH - All rights reserved. No part of this publication may be reproduced, distributed, or transmitted in any form or by any means, including printing, saving, photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the publisher.

https://github.com/CATIA-Systems/Unity-FMI-Addon
https://fmi-standard.org
https://github.com/CATIA-Systems/Unity-FMI-Addon
https://itea3.org/project/aitoc.html
https://realvirtual.io