Simit Shared Memory

Connecting Siemens Simit with realvirtual.io

Introduction

Shared memory is also called mapped memory files. It is a Microsoft standard for fast inter process communication on one computer. See this link https://docs.microsoft.com/de-de/dotnet/standard/io/memory-mapped-files

Because the access to the shared memory interface is very fast, this interface does not need to use multi threading like most other interfaces.

Generally everything can be written into a shared memory file. This means, that a standard format for the memory is needed, if two processes want to communicate data over shared memory. The realvirtual.io Shared Memory Interface is based on the Simit shared memory standard. Simit is a tool for virtual commissioning, specifically for the modeling of sensor- and actuator behavior models. It has very poor 3D capabilities, this is why a connection to realvirtual.io is a good complimentary fit. Please check here for more information about Simit: https://new.siemens.com/global/en/products/automation/industry-software/simit.html

The realvirtual.io Simit interface can be used to connect Simit to realvirtual.io but it can be also used for connecting other processes to realvirtual.io. If you want to learn more about the Simit Shared Memory Interface data structure you should check the Simit documentation: https://cache.industry.siemens.com/dl/files/047/109741047/att_893474/v1/SIMIT_deDE_de-DE.pdf

Here is a short Youtube Tutorial showing you the interface in action:

Interface configuration

For using the Shared Memory Interface you need to add an interface to your scene by selecting Tools > game4automation > Add Component > Interface > Shared Memory or you add the Script SharedMemoryInterface to an empty Gameobject.

Next you need to configure the Shared Memory Interface . The SHM Interface needs to get a name (in the Example “Simit” which is exactly the same as in Simit (see the picture):

Simit should be configured like this:

Please make sure, that the Shared Memory Name is identical to your setting in Unity. Please also make sure that “Signaldescription in header” is set to true.

You can now push on Import Signals in the Shared Memory Interface inspector. You will get all Signals available in Simit created as Sub-Gameobjects under your Interface (in the example the signals Test2 and Test). Please keep in mind, that no signals are deleted automatically. Import signals is only adding and updating but not deleting any signals. If you now push Play in Unity you will see, that during simulation the signals are updated automatically.

Please check the Realvirtual.io Class Reference for more information about the properties and methods of this component. © 2022 in2Sight GmbH https://realvirtual.io - 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.

Last updated