/simumatik-gateway

Simumatik 3rd party integration tool

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Simumatik Gateway

The Gateway is a middleware between the Simumatik platform and other 3rd party platforms. It defines a generic communication driver based on a thread, used as a base to developed specific driver compatible with any platform, including PLCs and Robots among others.

Getting Started

Assuming that you have Python3 and Pip installed, you need to clone the repository and install the dependencies:

git clone https://github.com/Simumatik/simumatik-gateway.git
cd simumatik-gateway
pip install -r requirements.<os>

You are now ready to launch it. You can use the debug flag to see all the messages:

python src/gateway.py debug

Finally, go to the Simumatik App and connect to the Gateway. You have more information available in the learning documentation.

Keep in mind that some drivers will need a special setup-up to work. Don't forget to check their code for more information about dependencies.

The current dependencies only work up to Python 3.11 32bit

Drivers available

Right now, the following drivers are supported in the Gateway:

  • ACS SPiiPlus
  • Allen Bradley Logix
  • CPRog CRI
  • Development (own purpose)
  • EthernetIP Generic Device
  • Fanuc Roboguide
  • Hokuyo UAM
  • Kuka VarProxy
  • Micro800 HTTP (Rockwell Automation CCW)
  • Modbus TCP
  • MQTT client
  • Omron FINS
  • Omron NexSocket (Sysmac Simulator)
  • OPCUA client
  • OPCDA Client
  • Siemens PLCSim
  • Siemens PLCSim Advanced
  • RoboDK
  • RobotWare (ABB RobotStudio)
  • ROSBridge
  • S7Protocol
  • Siemens Simit (using shared memory)
  • Simulink UDP
  • SQLite3
  • Twincat ADS
  • UDP generic
  • Universal Robots
  • Yaskawa PLCi

Architecture

You can learn more about the Gateway design and structure on the Architecture section, which walks through the most imports part of the code base.

Contributing

Before opening an issue or PR, please read the content in the Contributing section.

Build

It is possible to build an distributable package of the Gateway using pyinstaller library. To do so, simply run the next command:

pyinstaller gateway_package.spec

The executable file and all additional files will be included inside the folder dist/gateway.