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.
The application is implemented with the Sim class and is operated with a single window:
Double click on a telegram line brings a structural telegram display/edit dialog:
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.
Acknowledgments
I would like to express my deepest gratitude to:
- Victor Cerullo – his PLC Emulator has inspired this project.
- Joerg Michaelis – his Blog Series about the Material Flow System Component of SAP Extended Warehouse Management has been an invaluable introduction to the configuration and workings of SAP EWM MFS.
- Hendrik Schulte-Bahrenberg whose WMexperts.online blogs have provided all-important technical insights into SAP EWM MFS inner working.
- Countless Java experts and enthusiasts who share their knowledge on the net.
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 welcome!!!