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.
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
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
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.
Before opening an issue or PR, please read the content in the Contributing section.
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.