Free, open source PLC emulator for SAP EWM MFS



PLC Sim is a free, open source, platform independent tool to test SAP EWM MFS connectivity and facilitate SAP EWM MFS implementation projects.
The software has been made available under copyleft GNU Affero General Public License v3.0


Main Features


The current release of PLC Sim supports:


  • Optional automatic telegram acknowledgment with handshake response
  • Optional LIFE telegrams filtering
  • Multiple communication channels
  • Structural display of telegrams with dynamic determination of the telegram structure from SAP data dictionary
  • Direct TCP/IP (ABAP Push Channel) and SAP Plant Connectivity PLC communication layers
  • Configurable handshake request and response indicators
  • Configurable telegram structure
  • Configurable switching of sender and receiver fields in handshake response telegrams
  • Configurable telegrams logs styling based on telegram types and handshake indicators
  • Application logging implemented with Apache log4j2 library


Architecture and Usage


PLC Sim consist of two independent Java applications working together


PLC simulation application


It implements a TCP/IP server that receives and sends telegram messages either directly to SAP EWM MFS through ABAP Push Channel or indirectly through a RFC connectivity adapter like SAP PCo or TCP/IP-RFC bridge that is part of the project.





TCP/IP-RFC bridge


The bride implements an intermediate communication layer between SAP RF and TCP/IP server. The application is implement with the Bridge class. It is started with two arguments:

  • RFC server Id as defined with a .jcoServer properties file – refer to SAP JCo documentation on how to define it
  • the application configuration properties file


While running the bridge supports the following console commands:

  • help, ? – displays help message with supported commands
  • status – prints the RFC server and communication channels statuses
  • stop, exit, bye – stops and exits the bridge


The commands are case insensitive.


Current Limitations


  • PLC communication layer type B “Proprietary Communication Layer” is not supported yet
  • One telegram structure only – all telegram types have to have the same structure
  • Channel synchronization is not implemented yet
  • PLC Sim is not localized yet. English version is implemented.
  • Life telegram has to be of LIFE type.
  • Login credentials for SAP Java Connectors need to be defined in a JCo properties file.




I would like to express my deepest gratitude to:



This project would have not been possible without them.


GitHub repository


The project is available on GitHub in the repository mfs-plc-sim

It is still in its infancy and being actively developed. I would appreciate any comments, feature requests or bug notifications – post them with GitHub issues.


!!!Contributors are most welcomed!!!