Technical Articles
Open source PLC emulator: configurable telegram structures
Configurable telegram structures
This is the open source PLC emulator release 20230410 announcement. With this release the emulator supports configurable telegram structures.
Let’s see how it works in the channel synchronization scenario.
Channel synchronization is established with the following telegrams:
- SYES “Synchronization Setup” sent from MFS to the emulator
- SYBE “Synchronization Begin” sent from the emulator to MFS
- SYEN “Synchronization End” sent from the emulator to MFS
After that the channel is synchronized and life. LIFE telegrams start to flow.
Telegrams exchanged during the channel synchronization
The configurable telegram structures functionality mimics the SAP MFS configuration: SCM Extended Warehouse Management -> Extended Warehouse Management -> Material Flow System (MFS) -> Telegram Processing -> Define Telegram Structure
Telegram structures configuration in SAP MFS
SYES, SYBE and SYEN telegrams are of ZMFS_TELETOTAL structure, whereas LIFE telegrams are of shorter ZMFS_TELESHORT one.
The emulator recognizes the telegram type, reads its structure and automatically adjusts the telegram display dialog window. The works for all telegram types and structures.
ZMFS_TELETOTAL telegram dialog window
ZMFS_TELESHORT telegram dialog window
That is of course a simple demo. Each telegram type can have its own structure now. The structures are indicated in the emulator properties file:
# Telegram structures telegramStructureHeader=/SCWM/S_MFS_TELECORE telegramStructure.LIFE=ZMFS_TELESHORT telegramStructure.SYES=ZMFS_TELETOTAL telegramStructure.SYBE=ZMFS_TELETOTAL telegramStructure.SYEN=ZMFS_TELETOTAL telegramStructure.WT=ZMFS_TELETOTAL
Other enhancements in this release
Telegram types are no longer hardcoded. they can be freely defined in the MFS configuration. Only LIFE telegram type needs to be specified in the emulator properties file:
# Telegram types; only LIFE type is used for now telegramType.LIFE=LIFE
SAP Java Connector server and destination names have been centralized in the properties file. They can still be specified the old way as the emulator runtime arguments for backward compatibility.
# Java Connector settings jcoDestination=S4D jcoServer=MFS
Sample properties file MFS.properties has been provided with comments for better usability.
The telegram dialog window displays the telegram creation date and time as well as its direction:
- inbound – from MFS to the emulator
- outbound – from the emulator to MFS
Closing remarks
The project is available with copyleft license as GitHub repository. Additionally the newest JAR file is provided in the master branch.
I would appreciate your comments, bug notifications and feature request. Post them as issues in the project repository.