Skip to Content
Technical Articles

SAP EWM MFS Communication Customizing & Master Data

Introduction

With the built-in component SAP EWM MFS, automated material handling equipment (MHE) of warehouses can be connected to and can be conducted by SAP EWM. To achieve this, information has to be exchanged between SAP EWM and the control systems of the automated MHE. This blog provides insight on how to set up the system.

Customizing Interface Type, PLC and Communication Channel

Define PLC Interface Type

For different devices like pallet conveyors, case conveyors, single load handling devices, multiple load handling devices, shuttles, robots or elevators you might want to use different telegram types and/or different telegram structures. For each different interface, you define an interface type for the warehouse. To each PLC such an interface type has to be assigned, and telegram structures have to be defined per warehouse, interface type and telegram type.

Define Programable Logical Control (PLC)

Each external communication partner (May it be PLC based, some micro controller, a PC or even a sub system) for a warehouse has to be defined.

Attributes:

Interface Type

The interface type used to communicate with this PLC

Header Data Structure

The DDIC structure of the header of all telegrams used for this PLC as defined and named in the data dictionary.

Putaway WPT

Warehouse process type used for putaway warehouse tasks. Should be defined on communication point level, which is more granular. Used as fallback in case no putaway WPT is defined for a communication point.

PType MFS – Process Type Fault

Warehouse process type used for warehouse tasks in exception cases.

PType MP – Process Type MP

Warehouse process type used for postings of movements in a case conveyor context. This WPT is usually defined with the attributes immediate confirmation allowed, immediate confirmation proposed, and storage control is not relevant.

STrans-WPT – Stock Transfer WPT

Warehouse process type used for re-arrangement warehouse tasks in a multi deep storage scenario. If a HU in a deeper bin position cannot be accessed as it is blocked by one or more HUs in the front positions of the bin, these HUs a removed with transfer movements to other storage bins.

ExC MFS

The exception code used for warehouse task confirmation in case the actual destination bin differs from the destination bin in the warehouse task. This exception code should have the internal process code CHBD for the business context MF3 (MFS telegram) and execution step A0 (Background).

Mapping

For objects like bins, communication points or resources, you might want to use different names on EWM level than on PLC levels. E.g. on EWM level bin names should be readable by human beings like <storage type>-<aisle>-<side>-<stack>-<level> whereas the PLCs mostly prefer a format like <aisle><side><stack><level>.

If mapping is switched on

  • it will be checked whether the table /SCWM/MFSOBJMAP (to be maintained as master data by transaction /SCWM/MFS_OBJMAP) contains appropriate entries
  • a mapping BAdI will be executed, if implemented

Identification

This identification will be used to fill the field sender in the telegram header (as the PLC name will be used to fill the field receiver in the telegram header). If the field check telegram is ticked on channel level, the content of the field receiver in the header of the received telegram will be compared with this identification.

PLC Mode

There are three different modes.

If you are working in a push mode and driven by warehouse tasks (this especially applies for resources), you have to choose “Pallet Conveyor System and Rack Feeder”.

If you are working in a pull mode and only react on telegrams from the PLC, you have to choose “Case Conveyor System”.

If you have a hybrid scenario, you have to choose “Case Conveyor System and Rack Feeder”.

In general, it is recommended to work with PLC mode “Case Conveyor System” where possible. Although there are some restrictions like missing capacity management for communication points the benefits outweigh this. Compared to the “Pallet Conveyor System and Rack Feeder” with the “Case Conveyor System” telegram processing can be significantly faster due to a slimmer warehouse task handling. E.g. warehouse task confirmations are decoupled to an asynchronous process. Also, the rough destination bin determination allows faster processing and later warehouse task creation and bin reservations.

Define Communication Channel

Here you have to define the attributes of each single connection (named channel) that will be used.

Attributes:

Telegram Retries

Defines how often a telegram will be re-sent, if no handshake for the telegram was received

Interval Tel. Retry

Defines after which period of time a telegram will be re-sent, if no handshake for the telegram was received

Highest Send. Seq. No.

Highest sequence number for outbound data telegram; after this number was reached, the sequence number for outbound will start again from 1.

Highest Recv. Seq. No.

Highest sequence number for inbound data telegram; after this number was reached, the next expected sequence number for inbound will be 1.

Fill Character

Space characters in telegrams will be replaced by this character.

HS Confirmation

Value for the header field handshake that indicates that the telegram is a handshake telegram

HS Request

Value for the header field handshake that indicates that the telegram is a data telegram

Handshake Mode

These are the valid options:

We recommend using the option A – Send Complete Telegram

S/R Switch

Indicates that sender and receiver are switched in a handshake telegram. We recommend ticking that option.

Admits parallel processing of received telegrams. If left empty, received telegram from one channel are processed one by one in the sequence they were received. Otherwise, up to the defined number of process can be run in parallel to process received telegrams. Be aware, that the defined number of processes is in balance with the number of overall available work processes.

Life Tel. Interval

Depending on the content of the attribute Life Tel. Type this value defines the period of time

  • after which a LIFE telegram will be sent, if there was no traffic on the channel
  • after which the connection will be re-started, if there was no traffic on the channel

Life Tel. Type

If filled, a LIFE telegram will be sent, if no traffic was on the channel for a defined period of time.

If not filled, the connection will be re-started, if there was no traffic on the channel for a defined period of time.

Note: If you use one channel just to receive data telegrams, so that EWM sends only handshake telegrams via this channel, this channel can be monitored by the system by defining a Life Telegram Interval and leaving the Life Telegram Type empty. In this case, the communication partner should send LIFE telegrams via this channel to make sure that there is some traffic on the channel within the Life Telegram Interval.

Get Seq. No.

Indicates, whether sequence number should be used for LIFE telegrams as well. We recommend ticking that option.

Start Character

You can define one or two characters that will be placed in the beginning of a telegram. If you set some start character you have to respect this in the definition of your telegram header structure.

End Character

You can define one or two characters that will be placed at the end of a telegram. This especially can be used, if you have telegrams with different length being exchanged on this channel. If you set some end character you have to respect this in the definition of your telegram structure.

Telegram Length

If you define a value here, all telegram structures have to be defined such that the length of all telegrams is the same. This applies not only to data telegrams but to handshake telegrams as well.

Check Telegram

If you set this attribute, sender and receiver will be checked on telegram receipt.

ExcCode MFS

Here you have to define the exception code that is set for a channel in case loss of connection is detected (No acknowledgement received after data telegram was repeatedly sent). If you use an exception code with the internal process code “REST”, the system will close the connection and try to re-establish the connection.

Standard Error

Here you can define the error code that will be sent in an acknowledgement to the PLC in the header field Protocol Error (comm_error), when EWM detects some error for a received telegram on protocol level (invalid sequence number, wrong telegram length etc.). We recommend not to set this value, but to define specific error codes as described in one of the subsequent paragraphs. You might set this value to have a fallback in case you did not set up the value for the communication error for a specific exception situation.

No Synchron.

You can switch off the synchronizing mechanism, that can be executed when the connection is established. We strongly recommend ticking that option.

No Alive Check

You can switch of the Alive Check. Not recommended as this disables connection monitoring by the system.

Assign Communication Channel to Objects

If you use more than one channel to communicate with one PLC, you have to set up criteria for the channel determination. The decision, on which channel EWM MFS will send a telegram, is based on objects like resource, communication point or telegram type.

Attributes:

Object Type

These are the object types used to determine a channel for telegram sending:

Channel Object

Contains the name of the object for channel determination.

Define Ranking Order of Communication Channel Objects

If you use more than one channel to communicate with one PLC, you have to set up in which order the objects of a telegram will be checked in order to determine the channel for sending the telegram.

Attributes:

Object Type

These are the object types used to determine a channel for telegram sending.

Master Data PLC and Channel

/SCWM/MFS_PLC Maintain Programmable Logical Controller

For each PLC you have to maintain the way EWM will communicate with this PLC.

Attributes:

Communication Layer

These are the options:

SAP Communication Layer – You chose this option in case you use PCo as an RFC- TCP/IP converter

Proprietary Communication Layer – You chose this option in case you use an RFC- TCP/IP converter

SAP ABAP Push Channel TCP Socket Communication Layer – You chose this option, if EWM MFS communicates via pure TCP/IP with the PLC

Note: We recommend the usage of the ABAP Push channels as you do not need an additional System (like PCo) anymore. Furthermore, by using the dialogue APC TCP Log in the Warehouse Management Monitor you can directly analyze what happened on the TCP/IP level.

Further details on the communication layers can be found in the following guides:

RFC Destination

Either a TCP/IP RFC connection (in case a RFC – TCP/IP converter is used) or an ABAP RFC connection (in case ABAP Push Channels are used) set up via SM59.

Sending FM

Only to be defined in case of a proprietary communication layer – Function module called for sending a telegram.

Starting FM

Only to be defined in case of a proprietary communication layer – Function module called for establishing a connection.

Stopping FM

Only to be defined in case of a proprietary communication layer – Function module called for shutting down a connection.

FM Status

Only to be defined in case of a proprietary communication layer – Function module called for checking the connection status.

Log

Switch on the logging of telegrams in table /SCWM/MFSTELELOG. We strongly recommend ticking that option.

/SCWM/MFS_CCH Maintain Communication Channel

For each connection to be used, you have to define the IP address and the port of the socket server:

Attributes:

Host

IP address of the socket server

Port

Port, on which the socket server is listening

Customizing Telegram structure

Define Telegram Structure

Per warehouse and PLC interface type you have to define, which telegram types are used, and which structure is used for which type.

Attributes:

Telegram Category

These are the valid options:

Structure Name

DDIC structure that was defined in the data dictionary

Note: If you use fields in that structure that are not member of the structure /SCWM/S_MFS_TELETOTAL, you have to define those fields in an enhancement structure of /SCWM/S_MFS_TELETOTAL as well.

Customizing Protocol errors and exceptions

Define EWM Exceptions for Communication Errors

Here you have to define exception codes for protocol errors received in handshake telegrams from the PLC:

Attributes:

Exception Code Communication

For each value defined for the protocol error in your interface specification you have to make an entry here – even if you do not assign an exception code. Exception code MSEQ in the example above can be used in case the PLC complains about a wrong sequence number. EWM MFS then sets the sending sequence number of the channel to zero and then re-sends the telegram with this sequence number.

Assign Telegram Errors to PLC errors

Per warehouse and PLC Interface Type, you have to define which protocol error (header field comm_error) has to be set in a handshake telegram for which exception on protocol level.

Attributes:

Telegram error

The protocol error that occurred; these are the possible values:

E Tele

The value, which will be set in the protocol error field of the handshake telegram.

Restart

Here you can define, whether the connection should be reset.

In case you missed it, you can find the introduction to the entire blog series here.

To make sure you are notified of updates in this blog series, please follow our assigned tag, SAP Extended Warehouse Management. Once published, the links will appear below:

For more information about SAP Extended Warehouse Management, please follow us on social media, our YouTube channel or our community pages:

SAP EWM Community:

https://www.sap.com/community/topics/extended-warehouse-management.html

SAP Digital Supply Chain Channel:

https://www.youtube.com/channel/UCELmE2CEAkcwqpBLnuZHufA

EWM LinkedIn Community:

https://www.linkedin.com/groups/1952257/

For a complete list of Q&A from the EWM community, please access this link:
https://answers.sap.com/tags/01200615320800000705

In case you do not find your specific question there, feel free to post your question via the following form:
https://answers.sap.com/questions/ask.html?primaryTagId=01200615320800000705

Be the first to leave a comment
You must be Logged on to comment or reply to a post.