Professional Documents
Culture Documents
PLC Direct Connection With SAP Extended Warehouse Management (EWM) 5.1
PLC Direct Connection With SAP Extended Warehouse Management (EWM) 5.1
Introduction
1 Introduction
SAP EWM 5.1. allows direct control of automatic storage retrieval in the warehouse. This dispenses with any
additional warehouse control systems between SAP and programmable logic controllers (PLC). SAP EWM
communicates directly with the control level.
Besides dispensing with an additional software system, this offers the benefit of a close connection between
the material flow and warehouse management. Thus, warehouse management system (WMS) strategies can
be adjusted to the condition and utilization of automatic storage retrieval more easily. Additionally, the WMS
provides the material flow system (MFS) with functions and data, for destination inquiries, for example. In this
way, system mapping represents physical movements in the warehouse more closely.
Crane2
Crane3
Highbay Storage Bins
RF1 Crane1
Conveyor System
TCAR Transfer Car
Pick Point
Full pallets
Pick-HU
SAP AG 2007
The figure above shows a 3-aisle high rack storage area. A transfer car connects the prestorage area with the
infeed and outfeed conveyors of the three aisles. The prestorage area contains an automatic identification
point (ID point) and a pick point.
These devices are usually controlled by means of real-time systems1, which monitor and switch the sensors
and actuators involved (light barriers, switches, motors and so on). These real-time systems obtain their
orders from the superordinate warehouse control level which derives them from the warehouse requests.
Logical Layers in Automated Warehouses
Warehouse Equipment
Material Flow Control Detailed Warehouse Tasks
SAP AG 2007
Crucial differences between automated warehouses and warehouses operated manually or by radio
frequency are:
The resources are passive (as in the case of stacker cranes)
Capacity bottlenecks must be watched and controlled much more closely
Technical malfunctions must be taken into consideration
Logistical malfunctions must not block the material flow (for example: bin occupied, unknown HU on
automatic storage retrieval system)
Architecture Variants
The following architecture variants are normally available for connecting automated warehouses to an SAP
system:
1
PCs can also take on such functions in places. They may be connected to EWM in the same way as programmable logic controllers
and as such, "PLC" always also refers to equivalently deployed PC controllers in the following.
Architecture Variants
SAP TRM
3rd Pty. 3rd Pty. 3rd Pty SAP MFS
Material Flow MFS MFS MFS
RFC-Adapter RFC-Adapter
The scenario presented here should explain how an automated warehouse is connected to SAP EWM.
The system consists of an automatic high rack storage area with three aisles and automated putaway and
removal. Each aisle is equipped with a stacker crane (SC). A transfer car (TCAR) links the putaway and
picking area with the high rack storage area.
The storage bins are of single depth, TCARs and SCs each have one load handling attachment (LHA).
A scanner is installed at the ID point. At the same time, the handling unit (HU) is weighed there and its type
determined using base recognition and contour control. At this point, the PLC reports pallets to the EWM
system. The EWM system is to assign a storage bin and use that to derive a corresponding conveyor
command for the PLC. Faulty pallets are to be diverted to the clarification bin automatically.
When a pallet arrives at the transfer point before the SC, its label is scanned once more. This is meant to
prevent putaway errors caused by order misalignment.
For picking, the HUs from which you want to remove material must be moved to the pick point and
subsequently returned to stock. Whole (remaining) quantities are removed by means of a separate conveyor
next to the pick point. Pick-HUs are also transferred there by means of the TCAR.
The warehouse is operated with four controllers (from the point of view of the EWM system). Three are used
for the SCs (in the upper section of the picture), while the fourth is used for the conveyor lines and the
transfer car (below).
RBG3
PLC RACK2
RBG2
PLC RACK3
RBG1
PLC RACK1
EWM
TCAR
PLC CONSYS1 IP
PP
Clearing GI
GR
In general, the capacity of the individual leg stages or points should be taken into account by SAP EWM, so
that the controllers are only provided with orders they can execute. This is especially important for TCARs
and SCs, as these will be blocked for other tasks if they cannot get rid of their load at their destination.
Material Flow
1. Put away
2. Removal Full Pallets RGB2
3. Replenish Pick Point
4. Put away from PP
5. Remove Pick-HU
6. Clearing RGB3
4
6
2
3
RGB1
TCAR
IP
PP
5
1 6
Goods Receipt Clearing Goods Issue
Putaway Process
In the goods receipt area, the delivered quantities are packed in HUs and equipped with bar code labels. The
bar code contains the HU number. One of the employees places the packed HUs onto the putaway conveyor.
The PLC moves it to the ID point anonymously. The ID point comprises a number of devices connected to the
PLC, such as
A scanner
A scale
A contour control
The PLC sends a logon telegram to the EWM system, containing the
HU identification
HU type
Weight
Error code
Faulty HUs are to be diverted to the clarification conveyor by the EWM system.
The MFS assigns a storage bin in accordance with the putaway strategy and directs the HU to the
appropriate aisle. During this, the capacity of the infeed conveyor in front of the aisle should be taken into
account, to prevent the TCAR from being blocked.
On the infeed conveyor, the HUs are once more directed past a scanner. The PLC sends another logon
telegram. If there are any errors (offset), the HU must be transferred to the outfeed conveyor by means of the
SC and diverted to the clarification bin.
The SC is equipped with a sensor system that can recognize whether a bin is occupied. If this is the case, the
SC will confirm the transport order by issuing the error Bin occupied. The MFS is then required to assign an
alternative bin or divert the HU to the clarification bin.
Complete stock picks should be removed to the goods issue (GI) conveyor directly.
Partial stock picks must be transported to the pick point. Here, a picking dialog takes place. When the goods
arrive at the pick point, the orders available for it should be displayed to the picker. The picker places the
quantities required on empty pallets and generates pick HUs. These are transported to the GI conveyor by
means of the transfer car. For withdrawal HUs that need to be returned to stock, a new storage bin search is
carried out at the point where they are transferred to the TCAR.
With a view to the processes in the example warehouse, we can set out the following general requirements
for a material flow control system.
Communication Requirements
The MFS must be able to communicate with a number of controllers in an efficient and reliable way. Problems
caused by link failures must be identified and solved automatically. The system must ensure that each
message is processed exactly once. Errors or delays in the processing of a message must not block the
sender. The communication interface should be suitable for different technical protocols (such as TCP/IP,
RFC1006, RK512, 3964R) and different message types.
The material flow system must be acquainted with the individual transport stages and take account of existing
capacity restrictions. It must be able to receive and react to malfunction reports from the PLC. It must be able
to assign pending orders to available resources according to their priority and to react spontaneously to
feedback from the controllers.
Errors occurring in the material flow, such as Noread at the scanner, must be treated in such a way as to
avoid any obstructions to the material flow in the warehouse.
The system must provide an overview of the current status of the orders and existing malfunctions. It must be
clear where the individual HUs are logically located in the warehouse and which system is currently
responsible for their further transport.
For error situations, there must be logs enabling the user to trace the path taken by individual HUs.
Telegrams must be logged for troubleshooting and analysis purposes.
For differences between the logical status of the data and the physical status, the system must provide
functions enabling the user to synchronize both, such as posting changes for a HU, canceling an order,
creating an order manually and so on.
It must be possible to block individual leg stages and to interrupt communication with individual controllers
temporarily.
Events that call for manual interference must be made available to the control station and there must be a
way of directing this information to individual persons or functions.
The following section provides an overview of the functions available in SAP EWM MFS.
The following functions have been implemented in SAP EWM for communicating with controllers:
Telegram communication via TCP/IP using an RFC adapter.
Securing communication by means of sequence numbers, telegram confirmation in SAP EWM
Automatic connection monitoring (automatic restart of the communication channel if necessary)
Options for starting and stopping connections
Telegram log
Configurable telegram formats and identifiers
Configurable action modules for reacting to incoming telegram types
Status overview for communication interfaces
Sequential communication for each communication channel
Parallel communication across communication channels with one or more controllers.
Unlike in the predecessor products (TRM, SAP EWM 5.0), both communication partners (both SAP EWM and
PLC) can now initiate a communication process.
Pull principle: PLC queries SAP EWM, SAP EWM replies.
Push principle: SAP EWM triggers an action, PLC carries it out and replies.
•Message oriented
•Asynchronous Send / Receive
•Life Check
SAP EWM
RFC
„push“
Task Confirmation
Channel 1
Response
Task
Event
RFC-Adapter
„pull“ Channel 2
TCP/IP TCP/IP
PLC 1 PLC 2
RFC Adapter
SAP EWM sends and receives telegrams on the basis of RFC calls. For the technical transfer of these
telegrams from RFC to the PLC and from the PLC to RFC, you need an adapter. This adapter has the
purpose of passing on the telegrams unchecked. It does not save them, supplement them or follow their
status, nor does it check whether they have been sent successfully or inform the sender in the case of failure.
The logic for securing transmission is integrated both in SAP EWM and in the PLC. Parameters for the
connections between SAP EWM and PLC are also set at the communication end points.
The logic for securing the connection and the adapter parameters only include the following:
The adapter actively ensures that it can be called from SAP – in other words, it checks at certain intervals
whether its connection to SAP is still active and logs back onto the SAP system if necessary.
For this, it needs access to SAP. The access data must be set in the adapter.
For the TCP/IP connection, SAP is planning to issue such an adapter (on the basis of SAP xMII) at the
beginning of 2009.
For other types of technology (such as RK512), you can and must use special adapters. The interface for
these is described in the appendix.
RFC-Adapter
SAP EWM 5.1 offers the following features for controlling the material flow by means of automated
warehouses:
Configurable paths (storage control)
Configurable capacity limits
SAP EWM maps the system to be controlled by means of communication points. Communication points are
stations in the storage retrieval system at which it communicates with the PLC. Here, the PLC registers HUs
(on the basis of scanner information or material flow tracking) and awaits new destination specifications.
EWM controls Single Steps
Aisle 1 Aisle 2
EWM
Final
Destination
Intermediate
Destinations
CP12
Task
CP11
Event
1
Scanner
CP02 CP01 TCAR
PLC
The concept for these communication points is an important aspect of warehouse planning. More
communication points lead to closer material flow tracking in EWM, but also to more intensive communication
and consequently more load on the EWM system. For each stage between communication points, a
warehouse task is created.
The ID point is a special communication point2. The PLC reads data from a scanner and checks the contour
of the HU to be put away using a measuring device. The HU is also weighed if necessary. Non-storable HUs
or HUs that have not been registered must be diverted to the clarification bin. To do this, SAP EWM
evaluates the error code in the PLC’s logon telegram and prescribes the path to the clarification bin if
necessary.
Put away
Aisle 1 Aisle 2 Aisle 3
Crane1 Craine 2
Built-in Functions
•Scanner telegram from PLC Crane3
•Evaluate / accept HU properties
•HU Type
•HU Weight
•Trigger put away strategy
•Reject in case of error
•Contur
•Noread
•HU unknown RGB1
TCAR
BAdI
ID-Point
•Consider state and capacity of
equipment in put away strategy
PP
GR Clearing GI
Avoiding Blocks
It is important, especially for vehicles, that the control system take account of the capacity limits on pick-up
and drop-off points. Once a load has been picked up, the system must be able to drop it safely at its
destination. SAP EWM can avoid dead lock situations and is able to react to availability events
spontaneously.
2
In the context of automated warehouses, the term ID point mostly refers to the point of storage bin allocation. Prepared and registered
HUs are identified automatically.
HU 2
„CP13“: Capacity 1
HU 1
TCAR
Stacker crane performance is significantly affected by the length and proportion of empty runs. For aisle-
specific vehicles arranged in the usual way (with the putaway and stock removal station at the same end of
the aisle), SAP EWM provides an interleaving strategy: Putaways and stock removals are transported
alternately. In order to find the right balance between order priority and path optimization, you can classify
orders (by latest start date) and thereby influence the scope of the order due list within which interleaving is to
be applied.
Order Pool:
Aisle 1
Latest Start Date Classification
HU 2
Queue Aisle 1 HU 3
HU Dir Earliest Start Date Latest Start Date LSD classified
LSD Classification:
Classify by 1 hour
GR GI
In cases of logical misalignment in the warehouse, the EWM system reacts flexibly. If the PLC reports an HU
to the EWM system in an unexpected place (due to a technical malfunction or after manual interference), the
system reposts the HU for the new location and looks for a path from there to its destination.
Destination
LP LP
Active task
CP CP
Original way
Deviation
(Material flow error)
CP CP
New way
Equipment Faults
If parts of the equipment are unavailable, this can either be reported by PLC telegram or set manually at the
control station. The EWM system then holds back orders affecting those parts of the equipment. Alternative
routes can be stored in Customizing. You have to implement a Business Add-In (BAdI) to determine the way
and extent to which they are to be used.
Equipment Fault
Aisle 1 Aisle 2 Aisle 3
Equipment availability can be set in EWM
•by PLC
•by supervisor
EWM stops tasks for faulty equipments
Implementaion of alternate routes possible
HU 2
TCAR
Supervisor: HU 1
CP02 blocked
PP
GI
GR Clearing
Bin Errors
Logical bin errors (a destination bin is physically occupied due to a posting or material flow error, a source bin
is empty) are automatically identified by means of special sensors on the stacker cranes and reported to the
EWM system. The EWM can react to this automatically.
For HUs whose destination bin is occupied, SAP EWM equipped to determine an alternative destination. This
can either be a firmly defined alternative bin/clarification bin (to be stored in the resource master data) or a
storage bin that has been newly determined by means of a putaway strategy (BAdI implementation).
If the error Bin empty occurs, the corresponding order is cancelled on the grounds that it cannot be executed.
Aisle 1 Aisle 2
EWM
c) new task
1 2
b) „bin occupied“
CP12
TCAR
CP02 I-Point
PLC
Aisle 1 Aisle 2
EWM
c) Pick denial
Storage bin
empty
b) „Bin empty“
CP12
CP13
a) Stock Removal Task
CP14
TCAR
I-Punkt
CP05
CP06
PLC
GI
The Warehouse Cockpit provides an overview of the current state of the PLC communication channels. The
following screen represents a snapshot of the status of the 4 controllers for the example warehouse:
The RFC adapter is not registered (first column).
For this reason, none of the four controllers can be reached (second column).
There are no outbound telegrams in the EWM outbound buffer (third column).
There are no faulty telegrams in the EWM inbound buffer. All telegrams received before the connection
broke off or stopped have been processed (fourth column).
There are no malfunction reports for any of the resources connected via PLC (fifth column).
The system is currently running through the process responsible for repeating unconfirmed telegrams at
intervals and for checking the connection by means of LIFE telegrams.
The warehouse management monitor is the central instrument for the warehouse activity monitor. It offers
you various functions enabling you to monitor the warehouse and react to problems. This relates to both the
objects in the warehouse (communication points, segments, resources) and the HUs with their corresponding
and the telegrams exchanged on their behalf.
Monitor Equipment
Telegram Log
The Alert Monitor is another important instrument. All important information, warning and error messages that
occur during warehouse operation are collected here.
Alert Monitor
The monitor is used by various functions in SAP EWM. You can limit the display to messages relevant for the
MFS.
Alerts are normally generated by EWM exceptions. You can establish a link between EWM exceptions and
other actions, such as notifying a control station employee by text messaging (SMS).
The largest part of MFS processing takes place in the background. This makes it all the more important to be
able to retrace how a certain error situation came about by means of processing logs.
The processing modules lay down granular accounts of their steps in the application logs. These can be
evaluated on the basis of dates and times. You can also find processing times here.
Application Log
By Date / Time
The majority of problems occurring in an automated warehouse can be solved by the system automatically,
such as by diverting unidentifiable HUs (NOREAD at the scanner). Orders for unprepared leg stages or
devices are held back. Some BAdIs enable you to use alternative routes in cases of overload or malfunction.
HUs reported at unexpected locations are reposted in the background and, if possible, transported to their
original destination without user interference.
There are, however, situations the program cannot solve by itself. These are usually deviations on the three
levels:
Physical state
Logical mapping in the PLC
Logical mapping in SAP EWM
SAP EWM provides authorized employees with a number of functions enabling them to amend the situation:
You can resend telegrams that have already been confirmed
You can confirm warehouse tasks manually
You can repost HUs to other locations from where they can be transported further
You can cancel orders
You can divert HUs from the system
You can lock communication points, segments or resources
You can stop communication for individual channels
3 MFS Basics
EWM maps the warehouse to be controlled on the basis of communication points, segments and resources.
Communication points (CP) are intermediate locations in the warehouse where communication with a
PLC takes place.
A segment is the connection between two communication points.
Segments can be grouped into segment groups, for example in order to manage their status on a shared
basis.
Automatically operated vehicles that pick up, transfer and drop off loads are mapped as resources.
Communication points, segments and resources have a certain capacity and can either be
malfunctioning or ready.
To transport HUs, EWM generates warehouse tasks (WT) and warehouse orders (WO) and arranges
these in queues. In the MFS, each warehouse order is assigned one warehouse task only.
Queues for vehicles are processed by resources. Queues for conveyor lines are communicated directly to
the PLC.
To execute warehouse tasks, the EWM system generates telegrams and sends these to the appropriate
PLC via communication channels.
MFS Objects
EWM LA
HU LB Queue Rsrc
CP CP CP PLC Channel
Segm
TELE
PLC
CP CP
CP RSRC
In order to keep the real-time systems PLC and EWM separate, you should avoid synchronous calls between
them. The interface is message-based. In order to ensure that each order and each confirmation is
transmitted exactly once, SAP EWM implements a communication protocol. This protocol must also be
implemented on the PLC side.
Communication Principle
The protocol is based on telegram sequence numbers: Each telegram is assigned an unambiguous number
by the sender. If these sequence numbers are used in the appropriate way, the following two potential
problems are avoided:
Telegram loss
Double processing
Avoiding telegram loss: the recipient acknowledges each telegram it receives. To do this, it returns it to the
sender with the original sequence number. The sender repeats telegrams for which it has not received an
acknowledgement within a certain period. It only sends the next telegram after the previous one has been
acknowledged.
Avoiding double processing: The recipient uses the sequence number to determine whether it has already
received the telegram or not. Telegrams received previously are confirmed but not processed. The sender
never sends a new telegram with the same sequence number as the previous one.
Both partners allow resetting the sequence number for the special purpose of setting up or synchronizing
communication.
EWM
Send buffer Channel 1
No Telegram Snd Ack
17 State Request CP13 Y N
18 TASK CP02 – CP03 N N Last No. received 923
RFC Acknowledge
Telegram
Telegram
No. 923
No. 17
Channel 1
RFC-Adapter
Acknowledge
Telegram Telegram
No. 17 No. 923
TCP/IP
Last No. received 17 Send buffer Channel 1
No Telegram Snd Ack
Exceptions in Communication
Conveyor Lines
SAP EWM provides you with the following message types for controlling conveyor lines:
SAP EWM: Warehouse task (HU – CP – FROM – TO)
PLC: Warehouse task confirmation (HU – CP – FROM – TO, with error code if appropriate4)
SAP EWM: Cancellation request for warehouse task (HU – FROM – TO)
PLC: Cancellation reply for warehouse task (HU – FROM – TO, with error code if appropriate)
PLC: Scanner message (HU – CP, with error code if appropriate)
SAP EWM: Status request for communication point, segment or segment group (CP/SEG/SEGGR)
PLC: Status message (ready/malfunctioning) for communication point, segment or segment group
(CP/SEG/SEGGR)
PLC: Blank message for communication point (CP)
3
The sender can only “escape” this situation if a) the expected acknowledgement telegram arrives or b) by manual interference,
(by deleting the unacknowledged telegram from the outbound buffer). The telegram is then considered as sent. If the recipient has not
received it, you can send it manually from the telegram log (with a new sequence number).
4
In the case of negative confirmation, EWM needs to be able to determine if the error occurred at the source or at the destination (in
other words, whether the HU has left its source location or not). This is shown by the entry in the field “CP”, the “reporting”
communication point. If the CP field contains the source, the HU has not left its source location.
Control of Conveyors
Attributes
Messages
„TASK“ HU 1
EWM to PLC
„Location left“ HU 1
PLC to EWM optional
„TASK CONF“ HU 1
PLC to EWM
Resources
Status:
SAP EWM: Status request for resource
PLC : Status message (ready/malfunctioning) for resource
Order cancellation:
SAP EWM: Cancellation request for warehouse task (HU – Resource – FROM – TO)
PLC: Cancellation reply for warehouse task (HU – Resource – FROM – TO, with error code if appropriate)
Control of Resources
Attributes
Cap. x / Ready
Capacity
Status CP01 R001 CP02
HU 1 „Pick from“
EWM to PLC Task: HU 1
FROM - TO R001
CP01 CP02
HU 1
PLC to EWM „Picked from“
CP01 R001 CP02
HU 1
EWM to PLC „Drop to“
CP01 R001 CP02
HU 1
„Dropped to“
PLC to EWM „Task Conf.“ CP01 R001 CP02
Note:
The standard function modules determine the meaning of a telegram not only on the basis of the telegram type (telegram ID) but also on
the basis of existing field entries. Thus, it is especially important for the different types of order confirmations from PLC to SAP EWM that
exactly the specified key fields are filled. The messages for half movements in EWM are not organized in the following way:
Incorrect example:
“TA1” HU “1” from “X” to “Y” (“pull”)
“TC1” HU “1” from “X” to “Y” (“pulled”)
“TA2” HU “1” from “X” to “Y” (“push”)
“TC2” HU “1” from “X” to “Y” (“pushed”)
Path Concept
You can divide warehouse tasks into smaller steps using layout oriented storage control. You can achieve
this by defining intermediate destinations for certain source-destination relationships. If no intermediate
destination has been defined, the EWM system assumes that the warehouse task can be executed directly.
If you have defined an intermediate destination, the EWM system sets the status of the affected warehouse
task to inactive and creates another, active warehouse task for the intermediate destination. Once this has
been executed, the EWM system adjusts the current location in the passive warehouse task accordingly and
checks whether you have defined a further intermediate destination. The EWM system only activates the
inactive warehouse task if no further intermediate location has been defined.
LB 1
HU
inactiv
Step 1
LB 2
activ
LB 1
HU
inactiv
Step n
LB 3
activ
LB 1
HU
activ
Final Step
For each communication point, segment and resource type, you can set a maximum capacity (number of
HUs). The EWM system then holds back orders that exceed this limit.
Availability Events
To ensure further transport if a capacity has become available again after a stop, the EWM system checks
the communication points and resources affected by an availability event. You can choose and set these in
the Customizing for each communication point.
Customizing Triggers
Aisle 1 Aisle 2 Aisle 3
HU 1
CP09
3.5 Strategies
SC Interleaving
The EWM system assigns each stacker crane with one putaway and one stock removal in turn in order to
reduce empty routes. (This function needs to be activated in Customizing.)
From this limited order pool, the system chooses one order for the next preferred direction (putaway/stock
removal) for each crane.
If there are several orders for the currently preferred direction, the system chooses the one with the highest
priority and, if there are several of these, the one with the lowest warehouse order number.
Aisle 1
Order Pool:
Latest Start Date Classification
HU 2
Queue Aisle 1 HU 3
HU Dir Earliest Start Date Latest Start Date LSD classified Prio LA
LSD Classification:
Classify by 1 hour
GR GI
HU 2
Queue Aisle 1 HU 1
HU Dir Earliest Start Date Latest Start Date LSD classified Prio LA
LSD Classification:
Classify by 1 hour
GR GI
Not included.
Not included.
Multi-Depth Storage
Not included.
Not included.
4 PLC Communication
Choose a telegram structure for the PLC telegrams (header and item)
Define interface type for similar controls (such as several stacker cranes)
Define PLC and communication channels
Map error codes for communication errors as exceptions
RFC Adapter
Test
Connection check
Test with EWM simulation module (internal to SAP)
Test with external simulation program
SAP EWM handles telegrams internally by means of a comprehensive structure that contains the superset of
the data fields provided in the standard for communicating with controllers. The specific telegram structures
are converted from or to /SCWM/S_MFS_TELETOTAL before they are sent or after they are received. This is
achieved by means of identical names for the fields. Therefore, it is important that the field names you
create for the specific telegrams are the same as the names of the corresponding fields in the
/SCWM/S_MFS_TELETOTAL structure. All data types, including figures and units of measurement, are
communicated as signs (no packed fields). Field lengths may differ.
Telegram Structures
EWM
MFS_TELETOTAL
SEQU_NO
TELETYPE
HUIDENT
HUTYP
...
RSRC
CP
Function CS
WT
Modul ...
SOURCE SEQU_NO
DEST TELETYPE
... HUIDENT Z_TELE
LENGTH SOURCE
WIDTH DEST
... MFS_ERROR
MFS_ERROR
SEQU_NO Z_TELE
TELETYPE
HUIDENT
SOURCE
PLC Event DEST
PLC MFS_ERROR
Structure /SCWM/S_MFS_TELETOTAL:
If you need any fields not contained in this structure, you have to extend the include structure
/SCWM/INCL_EEW_MFSTELE. Its data fields then also have the same names and are thus transferred from
or to the relevant PLC telegram.
In the Data Dictionary, you have to define the telegram structures to be used in communicating with the
controllers. These structures should be created in the customer name space. To do this, you can call the
Repository Browser in transaction SE80 (ABAP Workbench Object Navigator). You need a structure for the
telegram header and one for the actual telegram data. We recommend that you use the same structure for all
telegram types.5
5
Example: A PLC reads 212 bytes in a cycle. In most cases it will not be worth defining shorter structures for shorter telegram types if
the longest structure you need is shorter than 213 bytes.
There are a number of parameters for the PLC interface. In order to only have to define these settings once
for a number of similar controllers, you can use interface types. This is especially useful for stacker cranes as
there are usually several of them that are addressed in the same way.
… assign this type to the PLC objects and relate all further settings to the interface type rather than the PLC.
Each telegram is identified by a telegram type. This is a character string which informs the recipient of the
telegram’s meaning. If you determine the telegram structure to be used in each case at the same time, then
this Customizing activity is called Define Telegram Structure:
Use the option “for PLC Interface Type” (“for PLC” is used to ensure compatibility with the earlier SAP
EWM5.0) …
… and first only define the telegram types needed to establish and secure the connection. SAP EWM
provides a number of predefined telegram categories for which you now define the identifiers used in the
customer project.
At the same time, you can specify the name of the previously defined telegram structure.
Recommendation: In general, it is more useful to work with uniform telegram lengths. The increased
throughput you achieve is insignificant and sometimes paid for with a greater programming effort on the PLC
side or more complicated protocol analyses.
Each external communication partner must be made known to the EWM system as a PLC. It makes no
difference if it actually is a PLC. A PC control or, in the extreme case, even an external subsystem that
independently controls a certain part of the warehouse, is, in this sense, a “PLC”.
If you are using head controls, you should only define these. They pass the tasks on to the appropriate local
controls.
The PLC is the communication partner for the EWM system. In this example warehouse, there are 4 PLCs:
RBG3
PLC RACK2
RBG2
PLC RACK3
RBG1
PLC RACK1
EWM
TCAR
PLC CONSYS1 IP
PP
Clearing GI
GR
You can access the Customizing under Material Flow System (MFS) Master Data:
Interface Type
Name of the structure of the telegram header (see 4.1.1.2 Defining a Telegram Structure (DDICT)). All
telegrams that are exchanged with a PLC must have a standardized header. The structure must be
previously defined in DDICT and the name must be entered here.
Ensures compatibility with the earlier SAP EWM 5.0: Putaway process type to be used at the ID point.
As of SAP EWM 5.1., the putaway process type is stored at the communication point.
Needed at the ID point or for other scanners: Process type for diversion (such as in the case of a contour
error; does not differentiate errors from each other)
Is selected when the destination storage bin needs to be changed during a WT confirmation.
Mapping
Shows whether the communication point names need to be translated between EWM and PLC. If this is
marked, the program will search for PLC names for the EWM names and vice versa in a mapping table when
telegrams are converted. You can maintain the table in the application menu using transaction
/SCWM/MFS_OBJMAP – Map EWM to PLC objects. As storage bin addresses need to be unambiguous across
storage types in SAP EWM (and it is therefore recommended to include the storage type in the encryption), and
as this specification is, on the other hand, not needed for the PLC, mapping is usually required.
Identification
A sender ID which the EWM system is to enter in the telegrams to the PLC. (Name of EWM as PLC
communication partner). Has no meaning in SAP EWM. The PLC may expect a particular sender. If the
Check Telegram indicator is set in the communication channel, the EWM system checks whether this ID is
entered as the recipient when telegrams come in. If the Check Telegram option is on, telegrams without this
recipient name are not processed.
At least one communication channel must be defined for each PLC. The communication details are stored in it.
Telegram Retries
A value between 1 and 9. After the number of unsuccessful (unacknowledged) repetitions of a telegram to the
PLC entered here has been reached, the system triggers the exception defined below (see Exception
Code MFS).
If there has been no acknowledgment telegram for a telegram sent: After how many seconds should the
telegram be repeated?
Highest sequence number when sending telegrams on this channel: The following telegram is assigned the
sequence number 1.
Highest sequence number when receiving telegrams on this channel: The expected sequence number after
this is 1.
Fill Character
Empty spaces in a telegram can be replaced by a special character so that it can be read more easily in
protocols or during transmission.
Handshake Confirmation
A character informing the recipient that this is an acknowledgement telegram (logical confirmation).
Handshake Request
A character informing the recipient that this is an order telegram, not an acknowledgement telegram.
Handshake Mode
Here you can specify if telegrams should be acknowledged and what information should be contained in the
acknowledgement. The following options are available:
S/R Switch
Indicator specifying whether the sender and recipient should be switched in the acknowledgement telegram.
After how many seconds without telegram traffic (on this channel) should a Life telegram be sent.
Indicator specifying whether sequence numbers should also be assigned to Life telegrams.
Recommendation: Yes
Start Character
You can choose a 1-place or 2-place start character for telegrams here. The start character can be used to
check whether a telegram has been wrongly compiled in the communication layer. If so agreed, telegrams
without this start character are rejected.
End Character
You can choose a 1-place or 2-place end character for telegrams. Used in the same way as the start
character.
Note: Start and end characters are useful if you are working with different telegram lengths.
The end character is also necessary if the communication layer used (RFC – TCP/IP converter) does not
expand the telegrams received from SAP EWM to their full length6. The reason for this is that strings can
only be transferred from ABAP to the RFC layer if the complete length is used up. The telegram string is
too short if the last field is not filled.
Telegram Length
Specifying the telegram length. If there is an entry, you are working with a fixed telegram length. In other
words, the EWM system expects all telegrams, including acknowledgement telegrams, to be this long.
Shorter or longer telegrams are rejected.
Check Telegram
Here you can activate an additional check for fields that are usually not needed for processing. These are:
Sender, Recipient. If this check is activated, telegrams with the wrong sender/recipient are rejected.
Here, you enter an exception code defining system behavior in cases of connection failure. Despite several
retries (Telegram Retries field), SAP EWM has not received acknowledgement for a telegram it has sent. It
now makes sense to close the channel and establish the connection anew. You define and store this
behavior in an exception code which you enter here, for example:
6
When a communication channel is started, EWM transmits the telegram length to the RFC adapter. The RFC adapter should add as
many blank spaces to the messages received via RFC as are needed to reach that length.
Standard Error
Error code by which the EWM system signals to the PLC that an incoming telegram could not be processed.
It is set in the acknowledgement telegram to the PLC if no specific code for the actual error has been
maintained in Customizing (see 4.1.6).
No Sync
Here you can deactivate the synchronization telegram string which the EWM system uses to initiate or
reestablish a connection. Warning: In this case, you absolutely must activate the Life telegrams. Otherwise,
the connection will only be established with the first user telegram from EWM to PLC. The PLC cannot send
any telegrams until then.
This means you determine codes for errors affecting telegram communication. The following menu option
determines the codes that the EWM system uses to report errors in the communication protocol to the PLC.
H means: The sequence number was not checked because the counter in the warehouse management
monitor has been reset. The telegram has been processed nevertheless.
You can specify for all errors whether the communication channel is to be closed and restarted.
4.1.7 Communication Errors from PLC to EWM and the Reaction to Them
It is defined here which exceptions7 should be triggered in SAP EWM when communication errors occur.
Exception MBOF: Buffer Overflow: The PLC cannot receive any further telegrams at present. The EWM
system is requested to postpone the telegram and send it later.
Exception MSEQ: The PLC does not accept the sequence number (it has received a telegram with a higher
sequence number before). This can happen when the sequence number has been reset in EWM but not in
the PLC.
Exception MTEL: The PLC does not accept the telegram because it contains incorrect data, such as the
wrong recipient, or missing end character.
7
See appendix to Chapter 7.2. You will find an example for using and configuring exceptions in Chapter 5.6.3
Specify the timeout to a comparably low value. Do not use the default gateway value for CPI-C Timeout.
Once the RFC adapter is connected, the EWM telegram repetition process will be blocked for the specified
time, if the connection has been lost.
In the EWM system, the RFC destination must be set for each PLC. In the application menu, you can do this
using transaction /SCWM/MFS_PLC:
Here, a preliminary version of the future SAP RFC adapter is being used. Therefore, the setting is “SAP
Communication Layer”. Its interface is known to SAP EWM, thus you do not need to specify the function
modules here. (If you are planning to use other layers, you must enter their calling interfaces here.)
The Logging indicator activates the telegram log: All telegrams that are part of the communication with this
PLC are stored in the database and available for future evaluations.
The communication layer should be easily configured and only pass on data. This is why the PLC address is
also maintained in SAP EWM and not in the communication layer.
At the start call, the EWM system transmits these connection parameters to the communication layer.
Here, the SAP RFC Adapter SAP Plant Connectivity MDS 2.0 is used. It contains an RFC interface and a
socket interface. The application is based on .NET3.5 and is completely transparent both in its messages and
with regard to the socket addresses. It has to be installed on a Windows system (Windows XP or Windows
2003). SAP Plant Connectivity MDS is delivered with a “Management Console” and set up as a Windows
service. By use of the Management Console you define source channels and use them in agents. The agents
receive notifications, which are directed to destination channels.
An agent is installed as a Windows service by the Management Console automatically. It can be started and
stopped from the Management Console or using the Windows services.
A single agent can handle several channels. When a PLC communication channel is started in EWM, the IP
address and the port of the PLC are transmitted to the agent from SAP. A single socket channel and a single
RFC channel, connected by a single agent (service), can be used to address several PLCs, as shown in the
following picture:
EWM
Windows
.NET3.5
Service
RFCChannel
PCo
Management
Console
SocketChannel
Of course it is possible to setup more than one service and to have a separate service for each connection.
EWM
Windows .NET3.5
To configure a connection, first create a source channel. In SAP Plant Connectivity MDS, a source channel is
a PLC channel. The PLCs are connected via socket:
If the installation was right, there is only one choice: A socket Agent.
It is important that the option “Remove stream terminator when receiving data” is unchecked. Otherwise the
telegram strings, which are sent to SAP, will be too short.
Now create a new destination channel. The destination, in the words of SAP Plant Connectivity, is the SAP
system. To SAP there must be a RFC channel:
Select “RFCDestination” and name it like the SAP system and client (just as a proposal).
Then the client and server connection parameters have to be set. You have to specify the SAP connection
parameters and the program ID under which it is supposed to register in the system:
Make sure that the reliability option is activated. The RFC adapter then tries to reestablish the connection to
the SAP system at certain intervals (here 10 seconds) if an error has occurred. 8 Otherwise the channel won’t
reconnect to SAP automatically after a connection loss.
The user should be a specific technical user. (Required authorization: See 7.1)
Once the two channels have been defined, the service must be created, which connects them. Add a new
agent instance:
8
EWM is responsible for monitoring the connection to the PLC. See 3.1 Communication Protocol
Make sure that the right source channel is selected (if you have created more than one), and give the
instance a name. This name will appear as windows service:
The service will be created and added in the Agent Instances view:
It can be seen as Windows service under Start Administrative Tools Computer Management
Services:
So far the agent only knows its source channel. To connect the destination channel to it, a notification has to
be added9:
Again, make sure you select the right agent name, if you have created more than one. The name of the
notification does not matter:
9
This comes from the fact, that MDS is used in the MII environment as well: Source channels receive notifications from the PLCs, and
MDS can scan these notifications to take a decision to which destination they should be addressed. This philosophy is used here in the
EWM environment as well, even if MDS doesn’t have to scan the messages but just address them all to one destination channel instead.
Please note the chain in the title bar (in blue): Source channel agent Notification.
The trigger type isn’t used in EWM environment. But now the destination has to be added, the RFC channel:
As soon as you have set up the connection data, you can carry out a connection check from MDS to EWM:
Start option a): Start the service manually from the Management Console:
Start option b): Start the service manually from the Windows Services Utility
Start option c) Set the Service Start Mode to Automatic. It then will be started automatically with the
computer:
You also have the option of using EWM to simulate a simple PLC using ABAP. To do this, choose a
proprietary communication layer instead of the SAP communication layer when maintaining the PLC.
Moreover, you must not specify an RFC destination, so that the simulation runs on the currently used
application server. The simulation itself is implemented in the function module /SCWM/MFS_SIM_RECEIVE.
You must specify this as the send module.
With these settings, you will have set up the PLC simulation by SAP EWM. The simulation evaluates the
existing Customizing settings for the appropriate PLC and replies accordingly. Further simulation customizing
is neither necessary nor available.
As soon as a telegram has come in, the simulation sends the appropriate acknowledgement telegram. After
another 3 seconds, the simulation sends the following replies, depending on the incoming telegram:
Synchronization setup Synchronization start
Synchronization start Synchronization end
Status request Status message
Warehouse task Warehouse task confirmation
Cancellation request for WT Cancellation confirmation for WT
By specifying the parameter /SCWM/MFSSIM_VEL_FAC in the user master data, you can vary the 3-second
response time. You can enter the response time you prefer in seconds. Values below 1 second are not
permitted.
Please note: The simulation does not process incoming telegrams in a strictly serialized manner. The replies
are reciprocated after the response time, depending on when they come in. Thus, telegrams may overtake
one another.
If you want to test an item under more realistic conditions, and as long as you do not have a real PLC, you
are well advised to use an external simulation program that will both implement the communication log and
be able to respond correctly to future warehouse task telegrams.10.
This is an example of how to use an external simulation tool: The tool opens a port and waits for EWM (or the
RFC adapter ) to log on as a client.
10
Not included in the SAP delivery.
… under …
The way conveyor lines are connected to SAP EWM is here explained using the prestorage area as an
example. The following steps are necessary:
Setting up a warehouse type with storage bins and communication points
Setting up routes (storage control)
Defining how warehouse tasks are assigned to PLCs
Communicating warehouse tasks to the PLC
While a HUs are being transported through a warehouse, they are always in storage bins. All possible
locations of HUs must also be storage bins.
In an automated warehouse, the HUs move from one communication point to another. You can think of
communication points as additional attributes of storage bins. Every communication point is also a storage
bin, but only the storage bins on the automated storage retrieval system are also communication points,
whereas the storage bins in the actual warehouse are not.
You define all points in the system as both storage bins and communication points if they require any SAP
EWM action, such as
deciding on a subsequent transfer direction (setting the course),
taking account of capacity bottlenecks (priority control) or
transferring a HU from PLC to PLC or from conveyor line to resource or vice versa (change of resource).
It is clear that the number of communication points is the decisive factor influencing performance. The more
communication points there are, the more transport steps are controlled by SAP EWM, the more warehouse
tasks are created and confirmed and the more communication with the PLC takes place.
In order to obtain a good Warehouse Management Monitor overview of what is happening, especially in an
automated warehouse, it is useful to set up a specific storage type for the storage bins in the prestorage
area.11.
First, you must create a storage type. Then, you create storage bins and communication points and connect
them to each other.
In the following, you will find the standard settings for MFS-operated prestorage areas. The storage type role
H (automatic high rack storage area) is crucial. It controls the selection of MFS-relevant warehouse tasks and
HUs in the Warehouse Management Monitor.
11
The so-called storage groups (see the chapter on storage control) are another reason. In automated warehouses, storage groups
(four-character terms) are used more extensively than in manually operated warehouses. Within a storage type, storage groups are
unambiguous.
The ID Point Active and Pick Point Active indicators need not be set. As of SAP EWM 5.1, you can use
layout-oriented storage control for this logic.
For each communication point, you must create a storage bin and assign it to the communication point. The
storage bins need not have any particular attributes. However, the Storage Group (StGrp) characteristic you
define for them has an important role in storage control (see Chapter 5.2).
You are provided with a special tool for generating storage bins. To do this, you define a naming structure.
This tool then creates the storage bins automatically. However, if you want to give the storage bins “speaking
names” (similar to the communication points), a structure may not offer you the best options. In this case, it is
better to create storage bins manually. (It is probably not a good idea to dispense with speaking names for
communication points.) For the example warehouse, the result should look approximately as follows12:
It will thus give you a better overview if you express this identity in the names you assign. However, the
following restrictions apply:
Within the warehouse number, storage bin names are global
Communication point names have 18 characters and are valid both for the warehouse number and the PLC
Storage groups have four characters and are valid for one storage type
Recommendation:
Communication point: as short as possible, for example CP04, or start with the abbreviation for the
storage type, for example VZ01-CP04
The storage group can then be identical (for example: CP04)
Storage bin names starting with the storage type (for example: VZ01-CP04).
When communicating with the PLC, the standard EWM system uses the storage bin names. If the PLC
requires shorter names (or other names) as transport addresses, you can use a conversion table:
PLC mapping assignment for storage bin (for example: VZ01-CP04 CP04) (see Chapter 5.4.1)
12
The storage bin type (BT – Bin type) is not clearly set in this example. Please ignore this. Also, the bin access type (Acc. Type) is not
yet important here. It can be helpful in resource control. (See Chapter 5.5.1.2)
Communication points can be characterized by various communication point types. Later, this is used to
distinguish different ways of processing incoming telegrams.
Communication points contain the additional attributes the MFS needs for storage bins on the retrieval
system.13
13
The example warehouse could probably be operated with fewer communication points. For exercise purposes, we have been
generous with these.
Description of the communication point attributes (some are not yet important and will be used later in
Chapter 5.5):
PLC
Here, you enter the PLC controlling this communication point. If this is a pick-up and drop-off point between
two controllers (such as putaway/removal station SC), this is the PLC that will report if the bin is available.
The assignment of warehouse tasks to controllers is controlled by warehouse task queues, not by the PLC
assignment of the communication points involved.
Communication Point
Unambiguous name of the communication point (within the warehouse number and PLC)
Description
RPTyp
(Communication Point Type) This allows you to control specific PLC telegram processing for this point. A
scanner telegram for an ID point is processed differently from a scanner telegram that is only needed for
material flow tracking. When defining MFS actions, you can set the subsequent processing for each telegram
type and communication point type (see Chapter 5.4.3).
ID Point
A communication point marked this way is a storage bin allocation point. The storage bin search for all
incoming HUs is triggered here. Already existing warehouse tasks are cancelled. Any error codes attached to
the HU are deleted. Thus, further transportation is determined by the result of the putaway strategy
(depending on the material and process type).
If you do not wish this, you have to provide your own action module for processing the ID point telegram
(see Chapter 5.7.3)
End
In fact, this is a protection against Customizing gaps in automated warehouses. The indicator is meant to
convey to the program that it is not due to a configuration error if no further entry is found in the storage
control table.
With each WT confirmation, the program looks for a subsequent entry in storage control. If it finds such an
entry, the End indicator is not evaluated.
If it does not find such an entry, it activates the passive warehouse task if the End indicator is set. If the End
indicator is not set, the program assumes there has been a configuration error, and the inactive WT stays
inactive. The HU is stopped and no telegram is sent to the PLC.14
Clarification Bin
Shows that this is a clarification bin on the retrieval system. End point of diversion in case of error. A HU that
arrives here after being diverted on account of an error is not transported any further. An inactive warehouse
task is not activated.
If you want to access an external clarification bin, you can enter it under Clarification Storage Section. In that
case, the Clarification Bin indicator should not be set.
Scanner
Scanner communication point. The module for confirming warehouse tasks can react to the errors Noread
and Unknown HU issued by scanner communication points.
As of SAP EWM 5.1., the putaway process type can also be stored at the communication point. (Formerly in
the PLC only.) This entry makes sense for ID points. It affects the putaway strategy.
Delete Error
If a HU arrives at a communication point marked in this way, any errors set for the HU are automatically
deleted.
14
For more information on using the End indicator, also see Chapter 6.3
Reason: If a HU (for example, at the ID point) is diverted to the clarification bin, the reason for this diversion is
stored with the HU in the form of an exception code. This ensures that this information can also be accessed
at any intermediate communication points on the way to the clarification bin, even when the affected
warehouse task could not be created yet (such as because of a capacity bottleneck). When it arrives at the
clarification bin, you might wish that the error code be reset automatically so that the HU can be put on
without further inference from an operator, as when there has been a contour error displayed by the PLC.
Thus, the operator would not need any information from SAP EWM and would prefer to simply transfer the
HU back to the ID point after removing the contour error.
No Follow-Up WT
You can use this to deactivate the automatic creation of the WT for the next stage – even when you have
defined one. The automatic flow then stops here.
Useful for forced routes in the warehouse. The PLC registers a HU at a point (WT confirmation), but there are
no alternatives to the route to the next scanner, or these are not controlled by the EWM system. SAP EWM
then posts the HU to the communication point and it remains there for the time being. Only when it is
registered with the next scanner does the flow continue – from there.
Capacity
The number of HUs that are located or may be posted to this communication point at the same time (depends
on the capacity mode)
Capacity Mode
Exception code controlling processing in case of capacity overload. There are two predefined exception
codes:
STAY: Results in no WT being created in the case of a capacity bottleneck. The HU remains at the
communication point without an active WT until the next availability event.
NSND: Results in a subsequent WT being created but not sent to the PLC in the case of a capacity
bottleneck. The HU remains at the communication point with a prepared, active WT until the next availability
event.
In the standard system, the capacity is never checked in advance but only for the next intermediate
destination to be reached according to storage control.
Clarification
The next communication point the HU should be moved to on the way from here to the clarification bin in
case of error. This considerably simplifies storage control. The routes to the clarification bin need not be
configured like “normal” destinations by specifying a final destination. They consist of individual steps of
which only the next one needs to be set at each point.
Clarification PLC
PLC to which the clarification communication point has been assigned (part of the communication point key).
No Check Capacity
You can deactivate the check for the capacity of the route to the clarification bin (next segment/CP).
Do Not Check
You can deactivate the check for the status (ready/malfunctioning) of the route to the clarification bin (next
segment/CP).
Often, the clarification bin itself is not part of the retrieval system but is located in a specially marked space
near the warehouse activity monitor. You can define a storage bin and enter it as the clarification bin here.
For HUs that arrive at this communication point on account of an error, another warehouse task is created for
this storage bin. In this way, you can make sure that a radio-controlled forklift is called in order to lift the HU
off the retrieval system and transport it to the actual clarification bin.
When the system is determining the free capacity of the communication point, it should take into
account all HUs that are currently posted to the storage bin assigned to the CP and for which there is no
warehouse task for further transport yet.
This is the least restrictive setting: The capacity is only limited by HUs that a) have already arrived there and
b) have not been assigned a warehouse task for further transport. (Inactive warehouse tasks are ignored.)
This option keeps a CP occupied even if there is already an active warehouse task for further transport.
However, this only lasts as long as the warehouse task does not have the status Started. The Started status
can be set by means of a start message to the PLC15.
However, this option does not take into account incoming HUs. In a situation where it is possible that a
subsequent HU should ask for capacity before the previous HU has been confirmed and posted, you should
not use this option.
15
This can be helpful for the stock removal stations of the aisles: The SC can start a new stock removal as soon as the drop-off space
is empty (and not only when the HU that has been removed has reached its destination). Without this start message, you either risk
blockage (in the worst case, the whole stacker crane is blocked) or you lose time.
Option C: HUs at Communication Point and HUs with Active WTs for the CP
Same as above, but now HUs that are moving towards the CP should also be taken into account. The
fact that a HU is moving towards a CP is determined by there being an active WT with this destination
for it.
This is the most restrictive option: It takes into account all HUs
that are located at the communication point and whose further transportation has not been started yet and
also all that are in the immediately vicinity of the CP (with active warehouse task) or directly approaching it
(with already posted warehouse task).
However, it also does not take into account more distant HUs that are to pass this CP. For this, project-
specific enhancements should be provided if necessary.
Now you have to assign the storage bins to the communication points. As the storage bins are application
data, this is done in the application menu.
Anticipation of Chapter 5.6: For scanner communication points, you also have to specify a packaging material
number enabling you to create pseudo-HUs and divert these if unknown HUs have been registered or if there
are any Noread messages:
This can be predefined by the process (process-oriented storage control). This is not explained here. The
MFS is only relevant once this control decision has been made.
If the destination to be reached according to the process cannot be reached on a direct route, you can define
intermediate destinations using layout-oriented storage control.
One of the most important tricks is that only exceptions are defined, deviations from the direct route. If the
program cannot find a suitable entry in storage control, it opts for the direct route.16
The procedure is further simplified by the fact that the specifications of the source and the destination can be
differently broad.
Exact (referring to the individual storage bin)
Referring to a group of storage bins
For all bins of one storage type
For transports from/to all storage bins for which no narrower criterion has been specified.
16
In the MFS, that is, when the HU is at a communication point, the “End” indicator must be set for this communication point.
(See 5.1.4.2)
You can use storage groups to distinguish the storage bins of one storage type with regard to storage control.
Several storage bins can be part of the same storage group.
So, you first define storage groups and then you use them for storage control.
The only purpose of storage groups is to control the material flow. They are a kind of intermediate layer
between storage types and storage bins and can be defined in more or less detail. In cases where the
storage type is sufficient for differentiation, you can do without storage groups.
In the retrieval system, each communication point must be approached specifically, so you must be able to
address each of these storage bins on the basis of its own storage group. You can usually group the storage
bins of a high rack storage area by aisles, so that one storage group per aisle is sufficient.
RACK 1
LP
LTYP GR
LP
LP
LP
LP
LP
Storage Control Group
GR
These are the storage groups for the prestorage area in the example warehouse:
Storage groups are characteristics of storage bins. They must be entered in the storage bins. If you need to
change the storage bins of the communication points, you must change them individually. Using mass
change, you can change the storage bins of the high rack storage area on the basis of aisles.
“From” (source) and “to” (destination) are storage types and storage groups, whereas “via” is an individual
storage bin.
You do not have to give an exact specification for the source and destination. The following options are
available for these two specifications:
No specification – entry applies to all storage bins that do not have other entries.
Storage type specification – entry applies to all storage bins of the storage type.
Storage type and storage group specification – entry applies to all storage bins with this storage group.
Example:
All warehouse tasks to storage type 0280 via storage bin 0285-CP00:
All warehouse tasks from storage type 0280 to storage type 9020 via storage bin 0285-CP0817:
As you have the option of setting exact specifications differently for source and target, it is important to know
18
the sequence in which the program searches for a suitable entry. This is shown in the following matrix:
17
There is something special about this entry. It involves the pick point. We will come back to this later. For now, this entry is used only
as an example for the specification of source and destination.
18
We will go into the additional option of differentiating between HU type groups and partial or complete stock pick or empty pallets in
warehouse control later.
19
The headings “vlber” for the source storage section and “nlber” for destination storage section are wrong. What is meant are source
storage group and destination storage group.
20
This example anticipates the high rack storage area (control of individual aisles).
The intermediate location 0285-CP02 should move from communication point CP01 (identified using storage
group CP01 from its storage bin 0285-CP01) to storage type 0280.
Next, the intermediate destination 0285-CP11 should move from communication point CP02 (again identified
using the storage group of the storage bin assigned to the CP) to one of the storage bins in aisle 1 (storage
group RCK1).
You can enter alternative intermediate destinations under the same criteria. In this example, the path would
run from CP14 to 9020 via either CP05 (the normal outfeed conveyor) or CP03 (the clarification conveyor):
Note:
In the standard system, load distribution is not implemented between alternative routes. The program would
always choose the first entry (CP05 in the example) and would switch to CP03 only if there is a malfunction or
insufficient capacity. To achieve load distribution, you must program a BAdI:
In an automated warehouse, the control system must be able to divert an HU to the clarification bin from any
point in the system if necessary. Following the principle of layout-oriented storage control as described
above, setting up the control system might be time-consuming in some circumstances. For this reason, there
is another mechanism available: you simply save the next communication point at each communication point
on the way to the clarification bin.
Example: An HU reported from scanner CP12 using NOREAD is diverted to the clarification bin through the
following entries for the clarification bin.
CP12 CP13
CP13 CP14
CP14 CP03
CP03 CP04
The Clarification bin indicator is set at CP04 (see the following section).
Oftentimes you may want to include an external clarification bin that is outside the automatic storage retrieval.
When an HU arrives at the last place of the conveyor line, the system should assign a forklift to take the HU
from the automatic storage retrieval. The actual clarification bin is located in the open space in front of the
equipment.
You can also enter this in the communication point. This example shows the communication point, CP04, that
is to be moved in the case of malfunctions:
The EWM system creates another warehouse task with the specified warehouse process type for the
transport from CP04 to CLEARING. This applies only for HUs for which an exception is set and that are,
therefore, diverted to the clarification bin.
While manual warehouse tasks can, in principle, be carried out by several resources, the following rules apply
in regard to this in MFS:
Each queue can be carried out by only one PLC (MFS must know the PLC to which the warehouse tasks
should be transmitted).
Each warehouse order can contain only one warehouse task. MFS examines each warehouse task
separately and not in relation to the others. Each warehouse task is individually transferred to the PLC.
1:1
n:1
Warehouse Order 1
Warehouse Order 2
Warehouse Order 1
Queue 1 Queue 1
n:m n:1
Resource 1
Resource 2 PLC Resource
Therefore, (at least) one queue must be defined for each PLC21, and criteria must be set to control the
warehouse tasks in the queues and to create warehouse orders:
CP CP
Warehouse Task
is communicated to executes
21
Advance: actually for each resource. In this context, conveyor lines are a special case. They are operated without resources. One
queue must be defined for the conveyor line orders of the PLC. If a transfer car is also controlled through the PLC and is mapped as a
resource, you need a second queue for the transfer car. The warehouse tasks of this queue are then also transmitted through this PLC.
Queue Determination
Warehouse Task
Warehouse Process
Bin Access Type Activity MFSI
Type
from to
combines tasks
Queue Warehouese Order
MFS 1:1
is communicated to
executes
PLC Resource
Warehouse Order Creation Criteria. Each warehouse order contains only one warehouse task. The sort
sequence of the storage bins for each activity area and activity must be available for data-technical reasons.
To Activity
From Activity Area
Area
combines tasks
Queue Warehouse Order
MFS 1:1
is communicated to executes
PLC Resource
Note: there are two customizing activities for defining queues. One under Cross-Process Settings/Resource
Management. We will need this later on.
Select operating environment 4 for conveyor lines. If the warehouse tasks of this queue are carried out by
vehicles (such as stacker cranes or transfer cars) and SAP EWM should run these vehicles as separate
objects, operating environment 5 must be set. See chapter 6.
This is the crucial point where the assignment of warehouse tasks for controls is determined. Not the
affiliation of communication points to controls and, as we will later see, not the settings for the resources.
Furthermore, the “only” thing still to do is to make sure that the storage tasks end up in this queue.
This means:
A queue can be carried out only by a PLC.
This is determined by customizing.
One PLC can carry out several queues.
MFS warehouse orders can each contain only one warehouse task.
Define a warehouse order creation rule for warehouse orders that have only one warehouse task:
SAP recommends using a separate activity for MFS tasks. You can switch off the functionality of Labor
Management for this activity, which will improve performance in MFS. Labor Management is intended for
manual resources. This activity is needed as storage bins must be sorted based on activities. (See 5.3.8)
The activity and warehouse order creation rule are selected in the warehouse process type:
If you need other warehouse process types, they must also be set in the same way.
Warehouse order creation and queue assignment are based on activity areas.
They define activity areas and assign storage bins to these activity areas. You also need to clarify the source-
destination relationships that you have in the warehouse and the controls from which each of these should be
operated. Here is an example:
Activity Areas
Orders from activity area GR to CONV1 ate to be carried out by forklift, orders from CONV to CONV by the
conveyor PLC, orders from CONV1 to RCK1 or vice versa by the PLC that controls the stacker crane, and so
on22.
In the following, you will see a possibility to define the activity areas if you do not need make a distinction in
regard to the aisles of a high rack storage area. Activity area 0286 is the area for the clarification bin located
outside of the automatic storage retrieval that is moved by the forklift.
22
The advanced control from the putaway station to the stock removal station (would go to the conveyor PLC instead of the SC
according to these criteria) can be solved using the bin access type (see section 6).
Now you need to assign the storage bins to these activity areas. Since we have a separate storage type for
the storage bins operated by the PLC, assigning the bins is simple:
We are still missing a step for preparing the warehouse order creation.
Warehouse orders group together warehouse tasks according to certain criteria to be able to transfer the
tasks to resources that execute them. The easiest way to picture this is to think of multiple processing of a
picker that should be sent to the individual storage bins in a logical order. The warehouse tasks must also be
sorted based on the picker’s activity, picking in multiple processing. You can achieve this by sorting the
storage bins of an activity area based on activity.
In MFS, every warehouse task will now be handled individually and transferred to resources/PLC to be
executed. For data-technical reasons, however, a warehouse order must be created for the task. The order
contains only one warehouse task. Warehouse order creation requires that storage bins in the activity area
are sorted based on activity.
Since sorting does not play a role for MFS activities, you do not have to enter sort criteria. All you need is a
criteria record for the activity area and activity.
After you have stored all values for sorting, you can now sort the storage bins. During this process, an
activity-specific index for the affected storage bins is created.
Attention: You must repeat this step if new storage bins are added.
Based on activity areas, you can now set the queue in which the warehouse tasks should be placed. To do
so, define queue determination criteria and, in a control table, set the sequence in which these criteria should
be applied.
Setting the determination criteria for the PLC of the prestorage area is simple: all warehouse tasks that are
started from activity area 0285 and should be sent to activity area 0285 should be placed in queue
CONSYS1.
Queue determination can, if necessary, be controlled with greater precision using the storage bin access type
of the source location, warehouse process type, and activity of the warehouse task. We will come back to this
later.
There are multiple steps for accessing the queue determination table23.
In this example, the program searches using the warehouse process type of the warehouse task. This is
useful in connection with automatic storage retrieval if you must make a posting change for the HUs in
automatic storage retrieval without a PLC order. When you create the storage task, use another warehouse
process type and control it into another queue:
If there is not an entry for the warehouse process type, the program searches using source activity area,
destination activity area, storage bin access type, and so on.
23
The heading “Stor. Bin” is short for “Storage Bin Access Type”.
Warehouse tasks are now divided into smaller stages and other warehouse tasks are created for these
individual steps. In addition, these warehouse tasks are placed in PLC-specific queues. In this example, this
is PLC queue CONSYS1.
Now these warehouse tasks and the relevant confirmations must be transmitted using the PLC. For this, you
will need appropriate telegram structures and message types. It also may be the case that the PLC uses
other names for the communication points than the one you created in SAP EWM (such as, for reasons of
comprehensibility).
In the PLC telegram, the EWM system uses the storage bin names for addressing source and destination. If
the storage bin names were selected differently from what the PLC expected, you may be able to use a
conversion table.
To do so, you must activate mapping in PLC customizing and then maintain the conversion table.
In customizing, go to …
SAP provides a tool for creating entries in the conversion table. The tool derives the name the PLC uses to
recognize the storage bin from the storage bin name. Define a rule for this according to the following
procedure:
Use position “x” of the EWM storage bin name for position “y” of the PLC storage bin name.
If this rule is not sufficient, you can use the following BAdI:
If you cannot find a rule (or if all entries cannot be generated with it), you must go to the following table in
application menu ...
The telegram structure defined in section 4.1.1.2 already contains the necessary fields for transfer orders and
transfer confirmations. The relevant telegram types are still missing.
You need:
Warehouse task (EWM to PLC)
Warehouse task confirmation (PLC to EWM)24
If necessary, cancellation request for warehouse task (EWM to PLC)
Also if necessary, positive/negative cancellation reply (PLC to EWM)
When the warehouse task is sent to the PLC, the EWM system pulls the telegram type (telegram ID “WT”)
and the telegram structure to be used by using telegram category E (warehouse task). The telegram is sent
to the PLC.
After the warehouse task has been executed, the PLC sends a warehouse task confirmation. The function
module responsible for processing is determined through the telegram type (telegram ID “WTCO”) and
possibly the communication point type.
24
This is not to be confused with the confirmation telegram, “received telegram”, which serves only to ensure communication.
(See Chapter 3.1)
Here, we are talking about a significant flexibility factor in the system: user-specific function modules
can be added in a simply way.
Next, link these keys to telegram types. You can also differentiate according to communication point type.
In this example, telegram type WTCO should trigger action 02 independent of the communication point type.
This function module should also process a scanner telegram for an SP type communication point.
Furthermore, the PLC telegram can contain an error code to which you should respond.
You define exceptions that should be triggered as a result of certain PLC error codes.
In the example, “PLC temporarily refuses the order” (for example, because the order buffer was full, the
device was already busy, and so on):
The internal process code REDE controls processing after an exception occurs. In this case, the warehouse
task is reset to status Y Relevant for subsystem and resent at the next opportunity. See the exception
overview in the appendix, section 7.2.
Once the exception is defined, you can link it to a PLC error code:
For example, you determine that exception MDNY should be triggered if the PLC reports error code “90” in a
warehouse task confirmation.
Note the access sequence for the preceding table. You can set the criteria that the EWM system should
preferably use to determine the PLC exception.
In this example, the criteria are set in such a way that if the meaning of an error code is determined in the
PLC telegram, the interface type of the PLC reporting the error, the type of telegram that contains the error,
the error code itself, and the category of the object on which the telegram is based should be taken into
account. Lastly, if you add an entry without the Telegram error indicator, all other (possibly undefined) error
codes with a common exception are intercepted.
If there is no entry available, the error code applies independent of the object type.
If you use both entries together, exception MDNY is triggered if error “90” occurs in a telegram of type WTCO
of a PLC that uses interface type “F”.
Warehouse tasks sent to the PLC cannot be cancelled in SAP EWM as they are. The EWM system sends a
cancellation request to the PLC and the EWM system does not cancel the task until the request is granted.
The HU stays posted to its current storage bin, the source of the cancelled task. An inactive warehouse task
that may possibly exist must be cancelled separately if necessary. Since it is not transferred to the PLC, the
task is cancelled without consulting the PLC.
If you do not cancel the inactive warehouse task, a new, active warehouse task is immediately created
(independent of the state and utilization of the affected resources) when the active WT is cancelled.
Warehouse Task Cancellation
Started?
Cancel response
Cancellation
Refresh Window
Result
The current status and success of this transaction can be seen by the Subsystem indicator (SUB ID) and by
the WT status in the warehouse management monitor.
1 = Cancellation was requested by the control station, telegram still not sent to PLC
2 = Cancellation requested at PLC
A fundamental task of the material flow system is taking into consideration capacity bottlenecks and
malfunctions. SAP EWM offers functions for setting capacity limits, for status tracking if malfunctions occur,
and for restarting when blocks are removed.
You can limit the capacity for conveyor lines through communication points and segments.
As previously described in section 5.1.4, you can limit the capacity of communication points. Limitation
always relates to the number of HUs. The system differentiates between different HU types (such as long and
short containers).
You can also set whether incoming or outgoing HUs should already or still be counted for the assignment
(see 5.1.4.3).
In the standard system, the EWM system always checks only the capacity of the next communication point –
see below – and of the defined segment, if necessary. Capacity restrictions further ahead are not taken into
account. For this case, you need to implement a BAdI, if necessary.
A second option for capacity restrictions are conveyor segments. A conveyor segment forms the leg between
two communication points. You need conveyor segments only if you
would like to manage their status (ready/malfunction), or
their capacity is limited and you cannot or do not want to control this using the communication points
involved.
Often, managing the status and capacity on the communication points is sufficient. In this case, you do not
need conveyor segments at all.
You assign the segment in the layout-oriented storage control to the respective transfer step:
Only if the segment is entered here, is its capacity and availability taken into account when warehouse tasks
are created or sent.
If capacity bottlenecks occur, various reactions are appropriate depending on the situation:
Create warehouse task, but do not send it until the capacity is available again.
Do not create a warehouse task at the moment. Do not create a warehouse task until the capacity is
available again and the current relationships are taken into account (such as, another warehouse task
may be more urgent).
Find an alternative route.
If the first stage from the high rack storage area is involved, without an alternative the internal process code
STAY has the consequence that the resource does not know anything about the HU’s transportation need.
No trigger is initiated that would automatically create the WT. An HU stopped with the process code STAY will
be further transported only if the HU is on a communication point for which a trigger is defined (see 5.5.4).
The HU will not be further transported if it is on a storage bin that is not a communication point.
Define Exception
The exceptions must be defined in the context “communication point” or “segment” and for the Background
processing operating environment.
Define exception:
25
This also applies if alternative routes should be used without a capacity bottleneck/malfunction.
5.5.3 Malfunction
The EWM system manages the availability status of communication points and segments in two
characteristics and separately manages them based on two actors.
Characteristic status:
Available
Not available
Actors:
PLC
User (control station)
Logically, what is available is only that which was not blocked by either actors, and a notice of readiness of an
actor does not change the status of the other.
Non-availability has exactly the same effect as non-capacity; meaning that the exception code stored at the
communication point controls the reaction.
The user lock is set by selecting an exception intended for this in the warehouse management monitor.
You must define the exception for all affected contexts and for each of the operating environments. The
context controls the type of object to which the exception applies26.
If the exception is defined in the Desktop operating environment, it can be set in the warehouse management
monitor. The Background operating environment must be added so that if the exception occurs, the program
finds the internal process code and, if necessary, creates an alert.
26
See appendix 7.2.
To be able to receive malfunction reports from the PLC, a telegram type must be defined for it. The EWM
system can also actively request the status of a communication point or segment for each telegram at the PLC:
Then you determine the action that should be called when a telegram with type “status message” is received ...
Lastly, you need to create the exception code that the PLC uses to report the “malfunction” status and define
an exception. You can do this in the same way as you did for the MBLK exception in the previous section.
However, you need only the Background operating environment (A0) as the exception is set through a PLC
telegram and not by an operator.
You can use segment groups to reduce the number of status messages. The PLC reports an entire area as
“malfunction” or “ready” in a single status telegram. For example, “Conveying to/from aisle 1”.
You define segments for the legs between the affected communication points (in the example, the putaway
conveyor and stock removal conveyor in aisle 1 and also a segment for leading through from putaway station
to stock removal station) and include these segments in a group. The PLC status telegram switches the
status of all affected segments27.
Then determine a segment group for this type, such as in the example.
HUs that cannot be given further instruction for capacity reasons or due to malfunctions must be triggered
when the obstruction is no longer present. These availability events can be when the:
Communication point or segment/resource malfunction is removed (overall status changes to “available”)
Communication point is relieved because an outgoing HU reached the next target.
Communication point is relieved because an empty location message or an order-start telegram arrived.
Additional availability events that are not automatically evaluated in the standard system are when:
A warehouse task for an HU that wanted to start this communication point is cancelled.
An HU is manually posted away (per the control station order) by a communication point.
27
In the telegram, the field for the segment group from the structure /SCWM/S_MFS_TELETOTAL must be included (see section 4.1.1.1).
During these availability events a customizing table is evaluated in which you store the trigger: MFS objects
that should be triggered during these events to check whether warehouse tasks can be sent. In the following
example, the queue for the transfer car is started when communication point CP11 is discharged. In this
queue, there is an order for HU 2 that previously could not be carried out28:
Customizing Triggers
Aisle 1 Aisle 2 Aisle 3
HU 1
CP09
28
Note: the requirement is that you have stored an exception in CP11 for the case of capacity bottlenecks that is be configured in such a
way that each follow-up WT is stored (NSND). Only then is the transportation need of HU 2 known in the TCAR queue. If you use internal
process code STAY, point CP10 (where HU 2 is in the example) must be included in the communication point dependencies. This
duplicates the trigger events when the transfer car is used.
Example:
During an availability event for communication point CP02, CP01 should be informed.
During an availability event for CP03, communication point CP01 should be informed as well as the
transfer car.
A communication point becomes available when one of the events described in section 5.5.4 occurs. You
must define a telegram for the empty location message of a communication point.
Assign action:
A warehouse task that started from a communication point for which a LOC_EMPTY telegram applies
receives SUB ID = W and is no longer counted in the schedule of a communication point from which it
started.
To distinguish other telegram types, you can use a user-defined telegram type for scanner telegrams. This
example uses telegram type SCAN. This telegram type can later be used for the automatic ID point (see
section 5.7).
Scanners that are used for material flow tracking (meaning they do not have a special function, such as the
ID point) can be processed in SAP EWM using the usual warehouse task confirmation function.
Prerequisite for 1)
There is an entry in the layout-oriented storage control for source and destination.
Or the scanner communication point is marked as an end point. The inactive WT is activated.
Or the scanner communication point is marked as a clarification bin. The HU stays where it is.
Prerequisite for 2)
In the communication point (application data), a material number for the packaging material is maintained.
In the communication point (customizing), the next communication point is maintained in the direction of
the clarification bin.
Prerequisite for 3)
The error code reported by the PLC is linked to a EWM exception.
Otherwise the prerequisites from point 2 would apply.
Create Alert
The communication point where the storage bin allocation for the HUs to be stocked takes place is labeled as
an “ID point”. The HUs run a contour control. HUs containing errors are diverted.
For putaways with an ID point, the first warehouse task is created only up to the first ID point. This task ends
when it reaches the ID point, and a new warehouse task to the final storage bin is created.
The following sections contain further information on the necessary settings concerning the ID point.
As of SAP EWM 5.1, you can set an ID point using the layout-oriented storage control. In manual
warehouses, a separate storage type is no longer required for the ID point. In automated warehouses, SAP
recommends the previous way. The ID point is controlled by an entry of the following type:
Row 1 says that all movements to storage type 0280 (high rack storage area) that do not have a special entry
for their source should be controlled using intermediate location 0285-CP00, which serves as an ID point.
The program changes the destination of the warehouse task to the location entered here as the intermediate
location. With the ID point, this “intermediate location” is also used as the destination point. (The previous
destination, a place in the final storage type, is overwritten.)
Next, the program checks whether there is another entry for this new specification for the destination, using
the destination data of the ID point. If there is, the warehouse task is set to the “inactive” ID point, and another
active WT for the intermediate destination (that preceded the ID point) is created.
In the example warehouse, this is not the case, and the WT 9010 – CP00, for example, could have been
transferred to a forklift that picks up the HU from the goods receipt and places it on the automatic storage
retrieval.
You can use the SCAN telegram type introduced in section 5.6.1. Expand the general telegram structure if
29
you want to receive other data.
29
Uniform telegram structures make it easier to read the telegram, and the costs involving data volume and performance are usually
negligible.
You can process the ID point telegram by using a user-defined function module. The module is controlled as
follows:
Configurable Action Modules
Legend:
Lokation leer Telegramm (Kategorie I) Location Empty Telegram (Category I)
Nachschub anstossen (Kategorie I) Trigger Replenishment (Category I)
I-Punkt Telegramm (Kategorie J) ID Point Telegram (Category J)
Status Telegramm (Kategorie C) Status Telegram (Category C)
Lageraufgabe quittieren (Kategorie G) Confirm Warehouse Task (Category G)
Lageraufgabe stornieren (Kategorie H) Cancel Warehouse Task (Category H)
5.7.4 Consideration of System Status and Capacity Utilization for Putaway Strategy
… using BAdI:
In the standard system, this is intended only as a cross-line stock putaway: the free storage bins are cross-
sorted related to the putaway. In the example warehouse, this means that the foremost locations of the lowest
level in aisle 2 are assigned after the foremost locations of the lowest level in aisle 1 (left shelf, right shelf).
The next row is not assigned until the foremost locations of all aisles are full, and so on.
In the standard system, equal distribution in the aisles is not carried out with regard to the material.
In addition to the errors described in section 5.6 (such as NOREAD), the following errors might occur at the
ID point:
Incorrect contours
Excessive weight
Foot error
See section 5.6 for configuration of the follow-on action for these errors.
Verify Weight
… using BAdI:
Automated vehicles, that is facilities using conveyor technology that move to the source of a warehouse task,
take a load, and drop it of at the destination, can be mapped in SAP EWM as resources. The following
options are available for SAP EWM:
Manage the capacity of this conveyor
Assign the conveyor in interleaving between putaway and stock removal (only for stacker cranes)
Control the conveyor using “pull-push orders”
Basically, you have the option of telling SAP EWM to ignore a transfer car. Controlling its movements is left
up to the PLC. The EWM system treats the car like a network of intersection-free conveyor segments
between the pick-up and drop-off points that the car serves. This type of connection is no different than that of
conveyor lines. The connections do not have to be mapped.
If you want to take into account the status and capacity of a transfer car in SAP EWM, map the transfer car as
a resource.
Note: In the standard SAP EWM, there is not an option for optimizing the path of the transfer car. The orders
are transferred to the PLC in order of their priority and creation (LSD – latest start date).
This queue can be transferred through the same PLC as the queue that receives the warehouse tasks for the
conveyor lines.
The bin access type is a simple possibility for separately controlling warehouse tasks for the conveyor lines
and for the transfer cars.
The storage bins of the communication points, where the transfer car should make the pick up, are labeled
with their own bin access type, and this access type is used in the queue determination criteria.
It is important that the access sequence for this determination criteria table takes into account the bin access
type at the prominent location (row 2: third indicator from the left):
5.8.4 Resource
You must create a resource for the resource type in the application menu.
Determine the location to which the EWM system can drop off a picked-up HU in the case of an error. In this
example, this is the clarification conveyor.
An important note:
The EWM and control generally communicate through the HU number. The data of a telegram must contain
at least:
HU number
Source bin
Destination bin
If resources are in use, you can use two-step commissioning (“pull-push” orders). The PLC should also follow
the procedure below so that the communication between SAP EWM and the PLC works.
If the telegram structure contains the CP field (current communication point), make sure that the field is not
filled in for resource orders.
In the example warehouse, the three stacker cranes now need to be connected to SAP EWM as well.
The following steps are necessary to do this:
Storage bins of the high rack storage area aisles must be created and added to the layout-oriented
storage control (3 storage groups)
Three activity areas are needed for the stacker cranes
Stacker cranes must be mapped as resources
The PLC and communication channels must be created
Queues are needed for the warehouse tasks of the stacker cranes and the appropriate determination
criteria
The high rack storage area must have storage type role J.
(… Special bin types are not necessary for MFS. Requests, if required, result only from the storage, as is so
for manual warehouses …)
You can affect queue determination through bin access types. SAP recommends using a separate bin access
type for each aisle:
You may also have to add an indicator for the shelf side. The depth (“D”, last place of coordinates) is intended
for this.
The sample high rack storage area has 3 aisles. Each aisle has 5 columns (“SS”), 3 levels (“LL”), and 5 bins
for each field. In the aisles, there is a left (“D” =1) and right (“D” = 2) for each of these bins.
30
For storage control, it is important that the storage bins belong to a storage group (aisle 1, aisle 2, …). When you create a procedure
for each aisle, you can enter the storage group right away. However, it is relatively easy to do at a later time from the application menu
(“Mass change”).
If there is not a status profile for the storage bins, you must create one:
Select a profile:
Preliminary Note
SAP EWM gives you the possibility to direct resources to storage bins on optimized routes. For this purpose,
warehouse tasks (WTs) are bundled into warehouse orders (WOs). “Sorting” controls the order in which the
WTs within a WO should be processed.
In some circumstances depending on the type of activity (putaway, stock removal, inventory and so on), you
may want to use a different sequence for processing the WTs of a WO. For this reason, you always need to
sort the storage bins based on activities.
In the MFS environment, WTs are not normally bundled. Each WT stands for itself and can be independently
carried out. Therefore, sorting does not play a role. However, for data-technical reasons, such a sequence
must be stored at the storage bins.
Perform this activity for both storage types. Attention: You have to repeat these steps if new storage bins are
created.
Storage control must be extended to incorporate the paths in the three aisles.
Storage groups are used in the storage control. In the following image, the entries from ID point CP01 are
marked in aisle 131:
31
The meaning of the last row is explained in the following section 6.3.
Generally, the storage control does not need an entry for the last stage. If no other entry is found in the
storage control, the program assumes that it is dealing with the last stage and activates the passive WT. You
may not want this in an automated warehouse. Just because there is not an entry in the storage control, does
not mean that the resulting order is necessarily useful for the affected PLC. For example, an HU could be
taken to the wrong aisle due to an offset on the automatic storage retrieval. There is no entry in customizing
of the storage control for the stage from the putaway location to the actual destination (a storage bin in a
different aisle). Therefore, an unnecessary warehouse order would be sent to the PLC (depending on queue
determination rules).
You can also do this to control stock transfers within an aisle using customizing.
Example: last communication point before the destination (putaway aisle 1):
Storage control:
In interaction with the setting at communication point CP12, this entry in the storage control makes sure that
only HUs with the destination “aisle 1” are put away by CP12.
You need to follow the steps below for setting up a stacker crane as a resource.
Create PLC and communication channel (see section 4.1)
Create queue for warehouse tasks of the resource
Set up queue determination criteria
Create Resource Type
Create resource
Create queues:
The first and last three rows make sure that all orders that have one of the “RCKx” activity areas as source or
destination end up in the correct queue.
The three marked entries in the middle also control the stock transfer orders from putaway station to stock
removal station of a stacker crane in the appropriate stacker crane queue. The storage bin of the relevant
putaway station must have bin access type RCKx.
You need several resource types only if the resources to be controlled with regard to the criteria set here are
different: interleaving yes/no, size of order buffer, step sequence of telegram communication relating to an
order.
Interleaving
If interleaving is activated, SAP EWM alternately assigns the resource a putaway and a stock removal in each
case. Each putaway is followed by a stock removal (when available and executable). The opposite also
applies.
Interleaving overlays the order priority (coming from the warehouse process type). This takes into account all
WTs
whose earliest start date has been reached,
whose destination is undisturbed and has free capacity,
whose latest classified start date is the most urgent of those in the queue.
A latest classified start date is a rounding of the “latest start date” (LSD). You can control rounding for the
LSD using the “mode” (see 6.4.4).
Resource WT Confirmation
A One-Step Confirmation (full movement) this is the standard case. The resource receives an order with
the task from source to destination and confirms the order after it is completed.
B Two-Step Confirmation (full movement with start message): the resource receives an order with the task
from source to destination, confirms the order at the source, and then confirms it at the destination.
Two-Step Commissioning (half movement): the resource confirms that an HU has been picked up and
waits for a target that it will also confirm after completion (also called “pull-push orders”).
Here you can also assign the order queues that should be processed by the relevant resource.
The error bin is the storage bin that should be used if the error Bin occupied occurs (the BAdI can override
32
this) .
Order priority plays a big role for resources. It is determined by the warehouse process type. The latest start
date is even more important. Each order receives a latest start date (which usually comes from the delivery).
When selecting the next order for a resource, you should pay attention to a certain pool of orders of equal
importance to select the one among them that means the smallest empty route for the resource. For this
reason, classify the latest start date. You can set how much you want to round to be dependent on the
activity.
32
See section 6.4.5.
The latest start date should be rounded to the hour (for example, 15:15 to 15:00).
You can set the reaction to the Bin occupied error through a EWM exception.
The PLC reports an error in the telegram, such as “10”. This error code is assigned under …
… to a EWM exception.
The context must be MF3 and the execution step A0 (if these attributes are set, the program searches for the
exception). Store BINO as an internal process code. This will trigger subsequent processing.
Creating an Alert
A row with the name of the exception appears in the alert monitor:
Subsequent processing BINO tries to determine a new destination for the current warehouse task
by calling the BAdI for determining a substitute storage bin in the same aisle
if it is not implemented or does not have a result: error bin of the resource
You can enter the storage bin for error situations in the master data of the resource:
In the example warehouse, 0285-CP13 is the stock removal station of aisle 1. Since there is an error entered
in the HU, the HU is derived to the clarification bin if the BAdI is not successful.
You can also add subsequent processing for status management to the exception MBNO:
In this case, Action 04 means that this involves the destination bin of the warehouse task:
The prerequisite is that the status profile is assigned to the storage bins.
You also have to define a EWM exception here and assign the error code of the telegram to this exception.
The BINE process code cancels the current warehouse task and tries to meet the related requirements with a
new warehouse task.
By using status management, you can set that the storage bin reported as empty is blocked for checking
purposes:
In this case, you can use the action ID to control that this involves the source bin ...
Product WT and HU WT
For stock removals, the system usually creates at least two warehouse tasks for each source HU:
A product warehouse task for the quantity to be take from the HU (even for complete stock pick) and
An HU warehouse task for the HU to be moved.
If the HU warehouse task cannot be directly carried out according to the storage control requirement, a third
WT is additionally created (having regard to the system availability and settings):
An HU storage task for the first transfer step.
The product warehouse task is inactive. The original HU warehouse task is also inactive if it cannot be carried
out directly.
The original HU WT is active if the HU arrives at the storage bin from which it can directly reach the
destination.
It is easy to configure full pallet stock removals. You simply must store the paths from the aisles to the GI
zone. All preparations for this have already been made.
Using aisle 1 as an example, everything from a storage bin to the storage group RCK1 in storage type 0280 33
must then go through the stock removal station of aisle 1, communication point CP13.
Starting here, the GI zone (storage bin in storage type 9020) comes into play as a destination. Everything
from CP14 to 9020 through the conveyor for full pallet stock removal CP05:
The End indicator is set at communication point CP06. This means that this is where storage control ends
(in this example). The inactive warehouse task can be activated.
33
As long as there nothing that is defined in more detail, such as stock transfer from bin to bin in the aisle.
Not contained (as long as this does not “statistically” result from the putaway strategy).
Only relating to the completion of a warehouse task for the current resource or communication point/segment.
If there is malfunction in the aisles, the affected storage bins can be blocked automatically.
Not contained. You can add this to the “non-passing location” through a BAdI in the WT confirmation
processing.
Storage Control
Partial picks must be controlled using the pick point. You can define this also in the layout-oriented storage
control. You define an entry with pick point that applies only for HUs from which a partial quantity can be
removed.
The following settings are available for the “Whole HU” parameter.
The program then changes the destination of the HU warehouse task to the specified intermediate location
(0285-CP08 in this example) and checks whether other intermediate destinations are defined for the way
there. In this example, there are meanwhile three warehouse tasks for this procedure:
An inactive product WT for the quantity to be commissioned
An inactive HU WT for the pick point
An active HU WT for each of the next intermediate locations
Configuring the path to the pick point is no different than the storage control for other paths. The transfer to
the pick point should work automatically. In this example, this is modeled based on the completed warehouse
tasks.
After arrival at pick point CP08, the product WT is still open (row 1). This is now processed in the packing
transaction.
Creating Pick HU
In the packing transaction for pick point 1, you can see the pick WT:
You create a pick HU at the communication point for pick HUs (CP09) – more precisely: at storage bin 0285-
CP09.
Picking
Then the quantity can be repacked using drag and drop and the picking process can then be confirmed.
Conveying Pick HU
When you close the pick HU (check symbol in the header), warehouse tasks are created for conveying the HU:
The HU is further transferred to 9020 according to the layout-oriented storage control using CP10, CP05, and
CP06.
To return the withdrawal HU to stock, select it and start the putback by using the arrow symbol in the header.
7 Appendix
7.1 User Rights for PLC User
Scanner Telegram
Noread PLC Tele <MFSERR> Tele Back- MSCA a) none a) HU stays where it is a) -
ground b) CRCL b) Diversion to clarification bin b) HU
Unknown HU was reported EWM Code MFS7 Tele Back- MUFO a) none a) HU stays where it is a) -
ground b) HUNO b) Temp HU is created and diverted to b) HU
clarification bin
HU posting change to different EWM Custom PLC MLOC Tele Back- MLOC CHBD HU is reposted
position ground
Further treatment of HU reposted EWM Code MFS1 Tele Back- MLO2 a) none a) - a) -
to different destination ground b) CRCL b) Diversion to clarification bin b) HU
ID Point Telegram
Noread See scanner
Unknown HU See scanner
Reported at unexpected See scanner
destination
Incorrect contours PLC Tele <MFSERR> Tele Back- MCON a) none a) HU stays where it is a) -
ground b) CRCL b) Diversion to clarification bin b) HU
Undefined HU type PLC Tele <MFSERR> Tele Back- MHUT a) none a) HU stays where it is a) -
ground b) CRCL b) Diversion to clarification bin b) HU
Undefined HU type EWM Code Alert, Telegram is not processed
Excessive weight PLC Tele <MFSERR> Tele Back- MWEI a) none a) HU stays where it is a) -
ground b) CRCL b) Diversion to clarification bin b) HU
Excessive weight EWM BAdI BADI
Putaway strategy cannot find EWM Code Alert, HU stays where it is
storage bin
Weight/Quantity not plausible EWM BAdI BADI
Found stor. bin, but is temporarily EWM BAdI BADI
not available. Somewhere in
transit capacity is missing or there
is a malfunction
Found stor. bin, but is not available EWM BAdI BADI
in the long term. Somewhere in
transit long-term block
Create Follow-Up WT
No way to destination of EWM Code Alert, HU stays where it is
appropriate WT (no matching
entry in storage control)
Next segment no capacity EWM Customizing MCAP Seg Back- MCAP a) NSND a) Warehouse task is created, but not sent
segment ground b) STAY b) Warehouse task is not created
Next CP no capacity EWM Customizing MCAP CP Back- MCAP a) NSND a) Warehouse task is created, but not sent
CP ground b) STAY b) Warehouse task is not created
Resource no capacity EWM (WT is created, HU stays where it is)
Next segment is blocked EWM <Segment> Seg Back- MBLK a) NSND a) Warehouse task is created, but not sent
(long-term) ground b) STAY b) Warehouse task is not created
Next segment is malfunctioning EWM <Segment> Seg Back- MBRK a) NSND a) Warehouse task is created, but not sent
(short-term) ground b) STAY b) Warehouse task is not created
Next CP is blocked (long-term) EWM <Communica- CP Back- MBLK a) NSND a) Warehouse task is created, but not sent
tion point> ground b) STAY b) Warehouse task is not created
Next CP is malfunctioning EWM <Communica- CP Back- MBRK a) NSND a) Warehouse task is created, but not sent
(short-term) tion point> ground b) STAY b) Warehouse task is not created
Resource is blocked (long-term) EWM <Resource> Res Back- MBLK a) NSND a) Warehouse task is created, but not sent
ground b) STAY b) Warehouse task is not created
Resource is malfunctioning EWM <Resource> Res Back- MBRK a) NSND a) Warehouse task is created, but not sent
(short-term) ground b) STAY b) Warehouse task is not created
Process WT Confirmation
There are no open WTs for the EWM Code See scanner (different destination)
HU with destination reported by
PLC (open WTs with different
destination or no open WTs)
Order cannot be executed at the PLC Tele <MFSERR> Tele Back- MDNY REDE WT is reset to status Y (relevant for external
moment (for example, device ground system)
busy, not ready)
Order cannot be executed in PLC Tele <MFSERR> Tele Back- MTEL none Alert
general (for example, unknown ground
destination)
Source empty (storage bin) PLC Tele <MFSERR> Tele Back- MBNE a) - a) Alert is created, WT is not confirmed, a) -
(Note: PLC may not use this error ground b) BINE Resource still occupied b) Stor. bin
code for CP.) b) WT is cancelled, “Bin denial” logic posts (using
individual quantities/whole HU (?) to StatusMgmt)
difference and searches new stock. Stor. bin
block created using status management at
alert.
Destination occupied (storage bin) PLC Tele <MFSERR> Tele Back- MBNO a) - a) Alert is created, WT is not confirmed, a) -
(Note: PLC may not use this error ground b) BINO Resource still occupied b) Stor. bin
code for CP.) b) Searching for new stor. bin, WT is changed (using
and immediately sent. StatusMgmt)
Storage bin can be blocked and subsequent
processing can be triggered through
StatusMgmt and Workflow.
Process Confirmation of
Cancellation
PLC refuses cancellation PLC Tele <MFSERR> Tele Back- MCAN NOCN Status of warehouse order is reset to “sent”.
ground
Monitor
Set HU error Operator GUI CP Dialog MHUX CRCL Accesses when HU is triggered HU
Delete HU error Operator GUI Dialog No effect HU
Short-term communication point Operator GUI CP Dialog MBRK a) NSND Process code is evaluated during WT CP
malfunction b) STAY processing
Short-term segment malfunction Operator GUI Segm Dialog MBRK a) NSND Process code is evaluated during WT Segment
b) STAY processing
Short-term resource malfunction Operator GUI Res Dialog MBRK a) NSND Process code is evaluated during WT Resource
b) STAY processing
Long-term communication point Operator GUI CP Dialog MBLK a) NSND Process code is evaluated during WT CP
malfunction (block) b) STAY processing
Long-term segment malfunction Operator GUI Segm Dialog MBLK a) NSND Process code is evaluated during WT Segment
(block) b) STAY processing
Long-term resource malfunction Operator GUI Res Dialog MBLK a) NSND Process code is evaluated during WT Resource
(block) b) STAY processing
Unblocking communication point Operator GUI MFS5 CP Dialog MRDY none Unblock message is logged as alert.
Unblocking segment Operator GUI MFS2 Segm Dialog MRDY none Unblock message is logged as alert.
Unblocking resource Operator GUI MFS4 Res Dialog MRDY none Unblock message is logged as alert.
Stop communication channel Operator GUI Is not logged
Start a communication channel Operator GUI MFS6 Chan- Dialog MCO1 none Alert
nel
Process code CRCL updates the exception to the HU. Then it cancels all open warehouse tasks to the HU
and creates a new warehouse task for the HU to the clarification bin.
This code is carried out in function module /SCWM/MFS_REQ_EXCEPTION for context MF3 and step A0.
This code is carried out in function module /SCWM/MFS_WT_CONFIRM for context MF5 and step A0.
This code is carried out in function module /SCWM/TROUTL_DET and /SCWM/TROUTL_DET_SEG for
context MF2, step A0 and A1 and for context MF5, step A0 and A1.
Process code STAY does not create the warehouse task for the HU.
This code is carried out in function module /SCWM/TROUTL_DET and /SCWM/TROUTL_DET_SEG for
context MF2, step A0 and A1, for context MF4, step A0 and A1, and for context MF5, step A0 and A1.
Process code BINE cancels all warehouse tasks for the HU and tries to create a new warehouse tasks
through the “bin denial full” logic.
This code is carried out in function module /SCWM/MFS_REQ_EXCEPTION for context MF3 and step A0.
SAP EWM uses an external communication layer to communicate with the controls. This communication
layer must be registered as an external program on the SAP system and offer the function modules described
below:
Connection setup (optional),
Send telegram (mandatory),
Connection termination (optional),
Status check (optional).
The EWM system transfers the IP address and port of the control to be connected to the function Connection
setup.
The EWM system transfers the telegrams to be sent to the PLC through the Send telegram module.
When terminating a connection, the communication layer should close the affected socket.
The status check should give the EWM system information on whether the communication layer itself is
intact.
You call this module to pass the necessary connection parameters to the communication layer. The
communication layer should be logged on as client at the designated port.
Name
The name of the function module can be set in IMG, for example, “START_CHANNEL”.
Input Parameters
IV_PLC CHAR 8 Name for the PLC that should be used to establish the connection
IV_CHANNEL CHAR 1 Identification for this connection to this PLC (it is possible to operate
several channels to a PLC in parallel)
IV_TERMINATOR CHAR 2 Character string that identifies the end of the transferred message
Return Parameters
- None
Exceptions
Exception Meaning
1 Communication error, IP/port not available. The parameters are still held in the
communication layer and used when subsequent sending attempts are made.
99 Other error
You call this parameter to pass a telegram to the communication layer for forwarding to the PLC.
Name
The name of the function module can be set in IMG, for example, “SEND”.
Input Parameters
IV_PLC CHAR 8 Name for the PLC that should be used to establish the connection
IV_CHANNEL CHAR 1 Identification for this connection to this PLC (it is possible to operate several
channels to a PLC in parallel)
Return Parameters
Exceptions
Exception Meaning
1 Communication error
99 Other error
You call this parameter to pass a telegram received from the PLC to the EWM system.
Name
Input Parameters
IV_PLC CHAR 8 Name for the PLC that should be used to establish the connection (optional)
IV_CHANNEL CHAR 1 Identification for this connection to this PLC (it is possible to operate several
channels to a PLC in parallel) (optional)
If you choose the second alternative, the warehouse number, PLC, and communication channel are
determined from the IP address and port through customizing.
Return Parameters
Exceptions
Exception Meaning
1 Communication error
99 Other error
You call this module to pass a request to terminate the connection to the communication layer.
Name
The name of the function module can be set in IMG, for example, “CLOSE”.
Input Parameters
IV_PLC CHAR 8 Name for the PLC that should be used to terminate the connection
IV_CHANNEL CHAR 1 Identification for this connection to this PLC (it is possible to operate several
channels to a PLC in parallel)
Return Parameters
None
Exceptions
Exception Meaning
1 Communication error
99 Other error
7.4.5 Function Module for Checking the Availability of the Communication Layer
You call this module to check the status of the communication layer.
Name
The name of the function module can be set in IMG, for example, “HEALTH_CHECK”.
Input Parameters
None
Return Parameters
Exceptions
Exception Meaning
1 Communication error
99 Other error
List of Abbreviations
HU Handling unit
ID Point Identification point, mainly used for the point where the storage bin is
determined in relation to automated warehouses
SC Stacker crane
WT Warehouse task, task for moving an HU or a quantity from one storage bin to
another
General Disclaimer
SAP does not represent or endorse the accuracy or reliability of any of the information, content, or advertisements (collectively, the "Materials")
contained on, distributed through, or linked, downloaded, or accessed from any of the services contained on this Web site (the "Service"), nor the
quality of any products, information, or other materials displayed, purchased, or obtained by you as a result of an advertisement or any other
information or offer in or in connection with the Service (the "Products"). You hereby acknowledge that any reliance upon any Materials shall be at
your sole risk. SAP reserves the right, in its sole discretion and without any obligation, to make improvements to, or correct any error or omissions
in any portion of the Service or the Materials.
THE SERVICE AND THE MATERIALS ARE PROVIDED BY SAP ON AN "AS IS" BASIS, AND SAP EXPRESSLY DISCLAIMS ANY AND ALL
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE, WITH RESPECT TO THE SERVICE OR ANY MATERIALS AND PRODUCTS. IN NO EVENT SHALL SAP BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES OF ANY KIND WHATSOEVER WITH RESPECT
TO THE SERVICE, THE MATERIALS, AND THE PRODUCTS.
SAP encourages you to exercise discretion while browsing the Internet using this site.
SAP makes no representations concerning any endeavor to review the content of sites linked to this site or any of the Materials, and so SAP isn't
responsible for the accuracy, copyright compliance, legality, or decency of material contained in sites listed in the directory or in the Materials.
SAP respects the rights (including the intellectual property rights) of others, and we ask our users to do the same. SAP may, in appropriate
circumstances and in its sole discretion, terminate the accounts of users that infringe or otherwise violate such rights of others.
If you believe that your work has been copied in a way that constitutes copyright infringement, please follow the instructions at the top of this
page.
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The
information contained herein may be changed without prior notice.
Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.
Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.
IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iSeries,
pSeries, xSeries, zSeries, eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power
Architecture, POWER6+, POWER6, POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes, BladeCenter, System Storage, GPFS,
HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli and
Informix are trademarks or registered trademarks of IBM Corporation.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the
United States and/or other countries.
Oracle is a registered trademark of Oracle Corporation.
UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.
Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix
Systems, Inc.
HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C® , World Wide Web Consortium, Massachusetts Institute of
Technology.
JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.
SAP, R/3, xApps, xApp, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP Business ByDesign, and other SAP products and services
mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries
all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this
document serves informational purposes only. National product specifications may vary.
These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for
informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect
to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements
accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.