You are on page 1of 67

Modula- Robot Communication Protocol

Modula- System Integrator Communication Protocol


Technical specifications document

Document version 2.4.5


Based on Robot V2.4 Standard
integration specifications
Date of last revision 12/01/2022

Page 1
Contents
Introduction ....................................................................................................................................... 3
Glossary ......................................................................................................................................... 3
Modula - Robot Communication ...................................................................................................... 4
Electrical signals ............................................................................................................................ 4
Ethernet packets ........................................................................................................................... 4
Communication Protocols ............................................................................................................ 5
ServerSocket TCP/IP .................................................................................................................. 5
S7 Communication Interface (PLC Siemens) ........................................................................... 5
Sending/receiving commands cycle ............................................................................................. 6
Command list ................................................................................................................................ 7
RVART - Request for item deposit ............................................................................................ 8
PART - Request for item picking ............................................................................................. 12
VART - Confirm picking / deposit (change stock) .................................................................. 16
?DPICK - Request for picking data .......................................................................................... 19
FPICK - Request for end picking ............................................................................................. 24
?RSUDC - Request for tray change ......................................................................................... 25
?EMPTYUDC – Request for number of empty trays.............................................................. 26
?RINVSCO - Request for compartment inventory operation................................................ 27
OnePick command list ................................................................................................................ 30
RVART - Request for item deposit .......................................................................................... 31
PART - Request for item picking ............................................................................................. 37
VART - Confirm picking / deposit (change stock) .................................................................. 43
FPICK - Request for end picking ............................................................................................. 47
?DPOS – Request for Modula positions status ...................................................................... 48
?RSUDC - Request for tray change ......................................................................................... 51
?EMPTYUDC – Request for number of empty trays.............................................................. 52
?RINVSCO - Request for compartment inventory operation................................................ 53
?STOCK - Request item stock ................................................................................................. 55
Error messages ............................................................................................................................ 57
Communication example ............................................................................................................ 58
Example of communication between System Integrator and Modula with bay
with options, with sending of station number (mode 1) .......................................................... 60
Example of communication between System Integrator and Modula with bay
with options, with sending of coordinates (mode 2) ................................................................ 64

Page 2
Introduction
The aim of this document is to describe the standard protocol for integration between Modula
and the anthropomorphous robots; communication is possible via Siemens PLC or Socket, the
control structure is the same for both solutions.

Glossary
TERM DEFINITION
Bay A bay is a particular zone within the system, that trays are directed to or come from. This is the
machine workstation where operations on loading units (LU) are enabled. It is the point where the
tray reaches the operator.

Position A bay can consist of one or two positions (delivery levels) called
“Position 1” (Lower) and “Position 2” (Upper)

Picking “Picking” means picking/depositing a product, carried out by an operator, which takes place on a bay
(physical or logical) equipped for this purpose.

LU [tray] The term LU is normally used in place of Loading Units; in Modula, the LU corresponds to the tray.
The compartments containing the various items are housed inside the various LUs.

System Integrator This term indicates a generic automatic handling system that will interface with the WMS through the
bay accessories (for example One Pick). A System Integrator could be an anthropomorphous robot, a
conveyor belt or a series of parallel conveyors, one or more AGVs or AGCs.

SI Abbreviation for System Integrator.

Page 3
Modula - Robot Communication
The information that the two systems exchange are electrical signals and ethernet packets.

Electrical signals
Electrical signals are exchanged through clean contacts.
Modula  Robot
o Modula OK: signal indicating that Modula is in automatic mode
o Tray in picking position 1: signal indicating that the tray is ready in the lower bay*
o Tray in picking position 2: signal indicating that the tray is ready in the upper bay*
Robot  Modula
o Robot out of work area: signal indicating that the robot is out of the work area and that it
gives consent to move the bay.
o End picking: signal to return the tray (can be managed via SW)

*N.B. The signal that the tray is ready in the bay is intended to be used for cross checks on the
presence of the tray. Availability of the picking data, and therefore of the tray ready in the bay, is
ensured only by checking consistency of the data given by the command ?DPICK – Request for
picking data.

Ethernet packets
Basically, ethernet packets are used for sending commands between Robot and Machine.
It is possible to choose a TCP/IP communication layer that uses only network packets for
communication; vice versa with a Siemens PLC protocol, the data exchange takes place on the
PLC DataBlocks (the data is however sent with a TCP sublayer).
Please refer to the following section, Communication Protocols, for a detailed explanation of
possible communication methods.

Page 4
Communication Protocols
ServerSocket TCP/IP
Communication takes place via data exchange on TCP/IP sockets.
The robot sends the commands to the WMS which processes them, communicates with the
Modula and responds to the robot.
A handshake is not envisaged for this type of protocol as these characteristics are intrinsic to TCP/IP.

S7 Communication Interface (PLC Siemens)


Software communication takes place through data exchange on memory areas (DataBlock) of the
PLC that governs the robot.
Recognizing a datum depends on its position and length configured in the WMS, therefore it is
important to respect the choice made: if a value of a field is less than its defined length it must be
filled with space characters until it reaches the necessary size.
The robot writes the commands in a DB (DB_ROBOT) which is read by the WMS, which processes
them, communicates with the Modula and responds to the robot by writing in another DB
(DB_WMS).
Typically, for this type of communication, a handshake (ACK or “ready flag”) is managed to indicate
when the robot or the WMS can consider the data on the relative DB to be valid.
Note: The ON and OFF values of the ACK flag are configurable from WMS.

ACK management
Management of the “ready flag” for interpreting the data written in the DBs is illustrated below.
STATUS DB_ROBOT DB_WMS

IDLE XXX......0 XXX......0


COMMAND READY XXX......1 XXX......0
ANSWER READY XXX......1 XXX......1
ANSWER RECEIVED XXX......0 XXX......1
IDLE XXX......0 XXX......0

PLC and WMS scan cycle


1. WMS periodically reads the DB_ROBOT to check the handshake character. When the
character becomes ON the message is ready and other characters can be interpreted as a
valid command.
2. WMS executes the requested command and writes the response in DB_WMS by setting
the ACK to ON.
3. WMS periodically reads the DB_ROBOT to check the handshake character.
When the ACK character becomes OFF, the response has been read by the PLC.
4. WMS sets the handshake character in DB_WMS to OFF.
5. The system is ready for the next command. We start from point (1) again.
Page 5
Sending/receiving commands cycle

Communication between Robot and WMS is implemented as a finite-state machine:


1. OpenConnection
Connection between Robot and WMS occurs, if open it switches to the Idle state.
This state is used only when a new connection is to be established, not at each new
command.

2. Idle
WMS waits for a new command sent by the robot, once it is received it switches to the
Receiving state.

3. Receiving
WMS processes the command and communicates with the Modula, switching to the
Transmitting state.

4. Transmitting
WMS responds to the robot, switching to the Idle state.

5. CloseConnection
Connection between Robot and WMS is closed, usually used when the WMS is closed or
the connection is terminated by the robot.
This state is also reached in the event of serious communication errors.

Page 6
Command list
The commands available for the robot or for the System Integrator are listed below with basic
usage specifications and some notes on operation.
Please note that the order in which the fields are presented may differ depending on the project
because they are subject to complete configuration.
The variables required for the command or response are marked with an *, the
command/response identifiers are always mandatory.
The Default column gives the values for which the field is not considered or its value has no
influence on executing the command.

It is important to note that in the multi-bay configuration it is MANDATORY to indicate the bay on
which to operate in each command.

We also specify that in the response it is possible to repeat each parameter obtained in input.
The robot must properly manage the response to each command, evaluating in particular the
code present in the Error field (where present) in order to avoid situations that lead to
misalignments between the logical and physical state of the system.

Page 7
RVART - Request for item deposit
Used to make an item deposit request.
It is mandatory to indicate to the WMS which item you wish to deposit.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication
MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

* RVART= Robot  Modula command identifier Alphanum.


*A [Article] Item 50 25 Alphanum.
1 [Sub1] Subcode 1 Empty 50 25 Alphanum.
string
2 [Sub2] Subcode 2 Empty 50 25 Alphanum.
string
M [MaterialStatus] Material Status Empty 10 2 Alphanum.
string
Q [Quantity] Quantity to be deposited 1 4 4 Num.
B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the 0 2 2 Num.
first one associated to the robot is used
R [Priority] Operation priority -1 4 4 Num.
Note: appropriately set the value for general
parameters PRIO_OTTIMIZ and LANCIO_IMM_PVI.

P [Position] Output delivery level (0 or 1 or 2), if 0 the 0 1 1 Num.


first free one is used

X [AbortCurrentExecution] Cancels the request -1 1 1 Num.


currently in picking for the delivery level specified by
[Position]

Cm [CompartmentId] Indicates the identifier of 0 4 4 Num.


the compartment requested
LU [LU] Indicates the number of the tray 0 4 4 Num.
containing the compartment requested
LL [LuLocation] Indicates the location of the Empty 10 2 Alphanum.
compartment requested string
XY [LUXY] Indicates the name of the Empty 20 20 Alphanum.
compartment requested. Refers to string
SCO_POSX_NAME in the WMS.

Page 8
MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* Modula  Robot response identifier Alphanum


OKRVART= .
*E [ResultCode] Error: 0 OK 1 1 Num.
2 Invalid position
(occupied, disabled, non-existent),
invalid request (item does not exist or is
not configured in stock)
3 Same request in progress on the
opposite position
4 Request rejected due to another
request in progress (only without queue
management)
5 Requested compartment invalid
6 Multi-compartment, multiple
compartments with the same identifier
were found

*C [RequireChangeLU] Tray change required. At the time of request, 1 1 Num.


the tray is not present or is not the one present on the delivery
level.

MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num


request, the machine is automatically connected and the operator
is logged in.

Note All fields that can be used for the RVART message can also be used
in the OKRVART response message.
For fields A, 1, 2, M, Q, P, X, the value sent is replicated identically in
the response.
For the R (priority) field, the value, if it has been sent, is replicated
in the response, otherwise it is the one calculated by the launch
procedures.
For the fields Cm, LU, LL, XY , the values, if they have been sent,
can be replicated in the response or be those calculated by the
launch procedures according to the work mode selected.

Page 9
Examples of possible configurations

Example 1, the robot makes the deposits on the trays indicating the delivery level:
robot sends the put-away request indicating the item and the delivery level, WMS
responds indicating the error code and the tray change
Robot 
R V A R T = A A A A A A A A A A A A A A A A A A A A A A A A A P
R V A R T = A R T 1 2 3 1

 Modula
O K R V A R T = E C
O K R V A R T = 0 1

Page 10
Operating notes with Robot
In the event of a matching request on the same delivery level: a new mission is not created and 0
(OK) is given anyway.
In the event of a different request on the same delivery level: a new mission is not created and 2
(ERROR) is given.
In the event of a matching request on the other delivery level: a new mission is not created and 3
(ERROR) is given.
In the event that a quantity greater than 1 is specified, the request will be satisfied only if it is
possible to deposit the entire quantity indicated.
In the event that the delivery level is already occupied by a different request and the mission is
already in progress, this can be canceled if the command contains the variable
[AbortCurrentExecution] = 1 (this behavior will occur if and only if the delivery level is specified in
the command), otherwise the new request is queued and managed according to normal priority.
In the event that the delivery level is already occupied by any request, but the mission has not yet
been created and the command contains the variable [AbortCurrentExecution] = 1: the new
request is refused and 4 (ERROR) is given.
Please note that, even if the request in progress is canceled, it is not guaranteed that the next
request served will be the last one made by the robot, as there may be other requests queued
considered to be of higher priority. For this reason, the robot is required to periodically poll the
?DPICK – Request picking data to find out what is currently being served on the delivery levels.
The variables [Compartment], [LU], [LuLocation] and [LUXY] have been introduced for the
possibility to specify the desired compartment.
Identifying the compartment can be done in the following ways (the order in which they are
listed also represents the priority of the values):
 Specifying the [Compartment] variable which represents the compartment identifier.
 Specifying the [LU] and [LuLocation] variables that represent the tray containing the
compartment and its location.
 Specifying the [LU] and [LUXY] variables that represent the tray containing the
compartment and the X-position description in the tray.
NB: Using the variables [Compartment], [LU], [LuLocation] and [LUXY] the requested compartment
will be validated, if the data entered are not verified an error value will be generated.
Error 5: No compatible compartment.
Error 6: Compartment not unique.
It is possible to have the robot send the priority of the operation to be carried out. In order to use
the value sent by the robot it is necessary to set the general parameter PRIO_OTTIMIZ to 1, or
the general parameter LANCIO_IMM_PVI to S or SO. Otherwise, the robot’s priority will be
ignored and the operation will have priority 0.

Page 11
PART - Request for item picking
Used to make an item picking request.
It is mandatory to indicate to the WMS which item you wish to pick.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

* PART= Robot  Modula command identifier Alphanum.


*A [Article] Item 50 25 Alphanum
.
1 [Sub1] Subcode 1 Empty 50 25 Alphanum
string .
2 [Sub2] Subcode 2 Empty 50 25 Alphanum
string .
M [MaterialStatus] Material Status Empty 10 2 Alphanum
string .
Q [Quantity] Quantity to be picked 1 4 4 Num.
B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the first 0 2 2 Num.
one associated to the robot is used
R [Priority] Operation priority -1 4 4 Num.
Note: appropriately set the value for general parameters
PRIO_OTTIMIZ and LANCIO_IMM_PVI.

P [Position] Output delivery level (0 or 1 or 2), if 0 the first 0 1 1 Num.


free one is used

X [AbortCurrentExecution] Cancels the request currently in -1 1 1 Num.


picking for the delivery level specified by [Position]

Cm [CompartmentId] Indicates the identifier of the 0 4 4 Num.


compartment requested
LU [LU] Indicates the number of the tray containing 0 4 4 Num.
the compartment requested
LL [LuLocation] Indicates the location of the Empty 10 2 Alphanum
compartment requested string .
XY [LUXY] Indicates the name of the compartment Empty 20 20 Alphanum
requested. Refers to SCO_POSX_NAME in the string .
WMS.

Page 12
MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKPART= Modula  Robot response identifier Alphanum.


*E [ResultCode] Error: 0 OK 1 1 Num.
2 Invalid position
(occupied, disabled, non-existent),
invalid request (item does not exist or
is not configured in stock)
3 Same request in progress on the
opposite position
4 Request rejected due to another
request in progress (only without
queue management)
5 Requested compartment invalid
6 Multi-compartment, multiple
compartments with the same
identifier were found
*C [RequireChangeLU] Tray change required. At the time of request, 1 1 Num.
the tray is not present or is not the one present on the delivery
level.

MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num


request, the machine is automatically connected and the
operator is logged in.
Note All fields that can be used for the PART message can also be used
in the OKPART response message.
For fields A, 1, 2, M, Q, P, X, the value sent is replicated identically
in the response.
For the R (priority) field, the value, if it has been sent, is replicated
in the response, otherwise it is the one calculated by the launch
procedures.
For the fields Cm, LU, LL, XY, the values, if they have been sent, can
be replicated in the response or be those calculated by the launch
procedures according to the work mode selected.

Page 13
Examples of possible configurations

Example 1, the robot makes the picking on the trays indicating the delivery level: robot sends the
picking request indicating the item, material status and delivery level, WMS responds
indicating the error code and the tray change
Robot 
P A R T = A A A A A A A A A A A A A A A A A A A A A A A A A M M P
P A R T = A R T 1 2 3 S T 1

 Modula
O K P A R T = E C
O K P A R T = 0 1

Page 14
Operating notes with Robot
In the event of a matching request on the same delivery level: a new mission is not created and 0
(OK) is given anyway.
In the event of a different request on the same delivery level: a new mission is not created and 2
(ERROR) is given.
In the event of a matching request on the other delivery level: a new mission is not created and 3
(ERROR) is given.
In the event that a quantity greater than 1 is specified, the request will be satisfied only if it is
possible to pick the entire quantity indicated
In the event that the delivery level is already occupied by a different request and the mission is
already in progress, this can be canceled if the command contains the variable
[AbortCurrentExecution] = 1 (this behavior will occur if and only if the delivery level is specified in
the command), otherwise the new request is queued and managed according to normal priority.
In the event that the delivery level is already occupied by any request, but the mission has not yet
been created and the command contains the variable [AbortCurrentExecution] = 1: the new
request is refused and 4 (ERROR) is given.
Please note that, even if the request in progress is canceled, it is not guaranteed that the next
request served will be the last one made by the robot, as there may be other requests queued
considered to be of higher priority. For this reason, the robot is required to periodically poll the
?DPICK – Request picking data to find out what is currently being served on the delivery levels.
The variables [Compartment], [LU], [LuLocation] and [LUXY] have been introduced for the
possibility to specify the desired compartment.
Identifying the compartment can be done in the following ways (the order in which they are
listed also represents the priority of the values):
 Specifying the [Compartment] variable which represents the compartment identifier.
 Specifying the [LU] and [LuLocation] variables that represent the tray containing the
compartment and its location.
 Specifying the [LU] and [LUXY] variables that represent the tray containing the
compartment and the X-position description in the tray.
NB: Using the variables [Compartment], [LU], [LuLocation] and [LUXY] the requested compartment
will be validated, if the data entered are not verified an error value will be generated.
Error 5: No compatible compartment.
Error 6: Compartment not unique.
It is possible to have the robot send the priority of the operation to be carried out. In order to use
the value sent by the robot it is necessary to set the general parameter PRIO_OTTIMIZ to 1, or
the general parameter LANCIO_IMM_PVI to S or SO. Otherwise, the robot’s priority will be
ignored and the operation will have priority 0.

Page 15
VART - Confirm picking / deposit (change stock)
Used to confirm a Picking or Deposit.
Normally, following this command, the stock of the relevant compartment is updated.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

* VART= Robot  Modula command identifier Alphanum


.
*A [Article] Item 50 25 Alphanum
.
1 [Sub1] Subcode 1 Empty 50 25 Alphanum
string .
2 [Sub2] Subcode 2 Empty 50 25 Alphanum
string .
M [MaterialStatus] Material Status Empty 10 2 Alphanum
string .
*O [Operation] Operation. P: Picking. V: Deposit. 1 1 Alphanum
.
*Q [Quantity] Quantity for the operation. If 0, there is no 4 4 Num.
change in stock

B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the 0 2 2 Num.


first one associated to the robot is used
P [Position] Output delivery level (0 or 1 or 2), if 0 0 1 1 Num.
confirmation is made on the first delivery level that the
request is in progress and matches the data sent

Page 16
MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKVART= Modula  Robot response identifier Alphanu


m.
*E [ResultCode] Error. 0 OK 1 1 Num.
1 Errors during confirmation,
the operation cannot be
confirmed
2 Invalid data, no operation
corresponding to the data
received from the robot

MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num


request, the machine is automatically connected and the
operator is logged in.

Note All fields that can be used for the VART message can also be used
in the OKVART response message.
For all fields, the value sent is replicated identically in the
response.

Page 17
Examples of possible configurations

Example 1, the robot makes the operations on the trays indicating the delivery level:
robot sends confirmation indicating the item, type of operation and quantity, the
delivery level is not specified and confirmation will be made on the first one that has a
request in progress regarding the data sent, WMS responds indicating the error code
Robot 
V A R T = A A A A A A A A A A A A A A A A A A A A A A A A A O Q Q Q Q
V A R T = A R T 1 2 3 P 1

 Modula
O K V A R T = E
O K V A R T = 0

Operating notes with Robot


This command confirms the active mission and updates the stock but does not return the tray.
By confirming a quantity of 0, the mission is confirmed without changes in stock.
If you do not need to perform other operations on the tray, we recommend returning it using the
End Picking Command.

The tray can be returned automatically (without the relative message) when:
 The compartment is Full after a Deposit if the parameter Enable End Picking Com. Full is
True.
 The compartment is Empty after a Picking if the parameter Enable End Picking Com. Empty
is True.
 The tray is Full after a Deposit if the parameter Enable End Picking Tray Full is True
 The tray is Empty after a Picking if the parameter Enable End Picking Tray Full is True

Page 18
?DPICK - Request for picking data
Used to obtain information on the request currently in progress in a delivery level.
The response can be configured to obtain data for both delivery levels.
Usable in Modula <-> Robot communication
NOT usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

*DPICK= Robot  Modula command identifier Alphanum.


B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the first one 1 1 Num.
associated to the robot is used

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

*DPICK= Modula  Robot response identifier Alphanum


.
A [Article] Item 50 25 Alphanum
.
1 [Sub1] Subcode1 50 25 Alphanum
.
2 [Sub2] Subcode2 50 25 Alphanum
.
M [MaterialStatus] Material Status 10 2 Alphanum
.
U [LU] Code of tray (LU) on which operations are active or in error for 4 4 Num.
return

P [Position] Delivery level (1 or 2) 1 1 Num.


G [Stock] Compartment stock 4 4 Num.
V [CompartmentStockCapacity] Maximum capacity of the compartment 4 4 Num.
O [OperationType] Type of operation. P - Picking, V - Deposit 1 1 Alphanum.
X [LUXY] Compartment position code: calculated by the WMS based on 20 2 Alphanum.
the operator’s settings

L [LuLocation] Location identifier: free text entered by the operator or 20 2 Alphanum.


imported by ERP or calculated by the WMS based on the operator’s
settings

Page 19
Y [LuCoordinates] Position of compartment in the tray: internally 20 2 Alphanum.
calculated by the WMS

S [CompartmentId] Unique identifier of the compartment 10 10 Num.


T [CompartmentType] Type of compartment 5 5 Alphanum.
Q [Quantity] Quantity used in the operation 4 4 Num.
B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the first one 2 2 Num.
associated to the robot is used
R [Priority] Operation priority 4 4 Num.
Note: See the RVART and PART command notes on priority

E [ResultCode] Error: 0 OK 1 1 Num.


C [RequireChangeLU] Tray change required. At the time of request, the 1 1 Num.
tray is not present or is not the one present on the delivery level.

MOK [MachineOk] The machine is ready to operate. At the time of request, 1 1 Num
the machine is automatically connected and the operator is logged in.

RS [RejectionStatus] Tray return error status. 1 1 Num.


0 no error
1 oversize
2 LU weight
3 machine net weight
4 machine gross weight
5 machine weight, top part
6 machine weight, front column
7 machine weight, rear column
8 full warehouse
9 protruding load

Example
The robot sends the picking data request:
Robot 
? D P I C K
? D P I C K

Example 1, Modula with a single delivery level, WMS responds by indicating the item, LU, stock,
type of operation and the location of the compartment
 Modula
D P I C K = A A A A A A A A A A A A A A A A A A A A A A A A A U U U U G G G G O Y Y
D P I C K = A R T 1 2 3 1 0 0 5 0 0 1 6 P A 1

Page 20
Example 2, Modula with two delivery levels, position 2 is empty, WMS responds by indicating the
item, LU, stock, type of operation and the position of the compartment for both
delivery levels
 Modula
D P I C K = A A A A A A A A A A A A A A A A A A A A A A A A A U U U U G G G G O Y Y
D P I C K = A R T 1 2 3 1 0 0 5 0 0 1 6 P A 1
Position 1

A A A A A A A A A A A A A A A A A A A A A A A A A U U U U G G G G O Y Y
0 0 0 0 0 0 0 0
Position 2

Page 21
Example 3, Modula with two delivery levels, both full, WMS responds by indicating the item,
quantity used, LU, stock, type of operation and the position of the compartment, for
both delivery levels
 Modula
D P I C K = A A A A A A A A A A A A A A A A A A A A A A A A A Q Q Q Q U U U U G G G G O Y Y
D P I C K = A R T 1 2 3 0 0 0 1 1 0 0 5 0 0 1 6 P A 1
Position 1

A A A A A A A A A A A A A A A A A A A A A A A A A Q Q Q Q U U U U G G G G O Y Y
A R T 6 3 6 7 1 0 0 0 1 1 0 3 1 0 1 0 5 V B 9
Position 2

Page 22
Operating notes
This command must be used cyclically (polling) by the robot to know the request that the
machine is executing: the data supplied by the WMS to the robot are consistent and complete
only when a tray is in the logical picking position for the WMS: alternatively the WMS response to
the robot will be a sequence of spaces (for alphanumeric fields) and 0 (for numeric characters).
If using the electrical contact Tray in picking in position 1/2, the polling process can start after the
contact is closed but this does not ensure the immediate availability of the picking data at the
first request of command ?DPICK – Request picking data.
The value of the [LuLocation] field can be configured through the work parameter
“SCO_LOCAZIONE”.
The value of the [LUXY] field can be configured through the work parameter “SCO_POSX_NAME”.
The value of the [LuCoordinates] field is calculated internally by the WMS.

Page 23
FPICK - Request for end picking
Used to return the tray.
Usually follows a VART when the robot knows that the tray is no longer needed.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

* FPICK= Robot  Modula command identifier Alphanum.


B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the 0 2 2 Num.
first one associated to the robot is used
*P [Position] Delivery level (1 or 2) 1 1 Num.

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKFPICK= Robot  Modula command identifier Alphanum.


*E [ResultCode] Error. 0 OK 1 1 Num.
1 Error while attempting to
return or the tray cannot
return or there are no
missions

P [Position] Replicated identically in the response 1 1 Num.


MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num
request, the machine is automatically connected and the
operator is logged in.

Example
Modula with a single delivery level:
Robot 
F P I C K = P
F P I C K = 1

 Modula
O K F P I C K = P E
O K F P I C K = 1 0

Operating notes
If a delivery level is indicated that does not currently have trays in picking,
1 (ERROR) is given.

Page 24
?RSUDC - Request for tray change
Used to request changing the picking tray in the bay with dual delivery level.
The command simply returns the external tray and outputs the internal one.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication
MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* ?RSUDC Robot  Modula command identifier Alphanum.


B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the 2 2 Num.
first one associated to the robot is used

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKRSUDC= Robot  Modula command identifier Alphanum.


*E [ResultCode] Error. 0 OK 1 1 Num.
1 Error during sending or
command execution

MOK [MachineOk] The machine is ready to operate. At the 1 1 Num


time of request, the machine is automatically connected
and the operator is logged in.

Example
Modula with a single delivery level:
Robot 
? R S U D C
? R S U D C

 Modula
O K R S U D C = E
O K R S U D C = 0

Operating notes
The command can only be used with 2 trays in the bay.

Page 25
?EMPTYUDC – Request for number of empty trays
Used to request the number of trays completely free of compartments or with compartments
without association with the item in relation to the Modula that interfaces with the robot.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication
MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* ?EMPTYUDC Robot  Modula command identifier Alphanum.

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* ?EMPTYUDC= Robot  Modula command identifier Alphanum.


*N [NumberOfEmptyLUs] Number of empty trays 3 3 Num.

Example

Robot 
? E M P T Y U D C
? E M P T Y U D C

 Modula
E M P T Y U D C = E E E
E M P T Y U D C = 0 1 3

Operating notes
The tray counting takes place on the machine served by the robot.

Page 26
?RINVSCO - Request for compartment inventory operation
This command is used to request an inventory operation on a tray compartment in the bay: it
allows you to change its data, in particular item code and stock.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAXL LENGTH
FIELD DESCRIPTION DEFAULT ENGTH USED FORMAT

*?RINVSCO Robot  Modula command identifier Alphanum


.
B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the 0 2 2 Num.
first one associated to the robot is used
*U [LU] Tray code 4 4 Num.
*S [CompartmentId] Compartment ID 10 10 Num.
T [CompartmentType] Type of compartment Null 5 5 Alphanum
.
*A [Article] Item 50 25 Alphanum
.
1 [Sub1] Subcode1 Null 50 25 Alphanum
.
2 [Sub2] Subcode2 Null 50 25 Alphanum
.
M [MaterialStatus] Material Status Null 5 5 Alphanum
.
P [PackageType] Type of package Null 5 5 Alphanum
.
V [CompartmentStockCapacity] Maximum capacity of 0 4 4 Num.
the compartment

F [Full] Full compartment: 0 Not set -1 1 1 Num.


1 Full

*G [Stock] Compartment stock 4 4 Num.

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKRINVSCO = Modula  Robot response identifier Alphanum


.

Page 27
*E [ResultCode] Error. 0 OK 1 1 Num.
1 Data received is not valid
2 The conditions for
carrying out the
inventory are not present

MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num


request, the machine is automatically connected and the
operator is logged in.

Page 28
Example
The robot requests that item “ART456-B” be set in compartment 845 of tray 1019 with stock 74.

Robot 
? R I N V S C O = U U U U S S S S A A A A A A A A A A A A A A A A A A A A A A A A A G G G G
? R I N V S C O = 1 0 1 9 0 8 4 5 A R T 4 5 6 - B 0 0 7 4

 Modula
O K R I N V S C O = E
O K R I N V S C O = 0

Operating notes
This command allows you to change the stock and/or item code of a specific tray compartment in
the bay. For example, it can be used to report the failed picking of a piece by replacing the
original item with a fictitious item code that can be easily consulted by operators or for a normal
inventory operation.
In order to use this command, all the following conditions are required:
 The tray must be in the bay
 For the compartment concerned, there must be NO operations in progress (no run line)
 The tray and compartment code must ALWAYS be indicated in the message
 The item code must ALWAYS be indicated in the message, sending an empty item is not
allowed
 Indicating a stock exceeding the maximum capacity of the tray is not allowed
 Sending the stock at zero is allowed.

Page 29
OnePick command list
The commands available for the robot or for the System Integrator are listed below with basic
usage specifications and some notes on operation.
Please note that the order in which the fields are presented may differ depending on the project
because they are subject to complete configuration.
The variables required for the command or response are marked with an *, the
command/response identifiers are always mandatory.

It is important to note that in the multi-bay configuration it is MANDATORY to indicate the bay on
which to operate in each command.

The variables relating to the use of bay options, both for the command and for the response, are
marked with an @.
We also specify that in the response it is possible to repeat each parameter obtained in input.

Page 30
RVART - Request for item deposit
Used to make an item deposit request.
It is mandatory to indicate to the WMS which item you wish to deposit.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication
MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

* Robot  Modula command identifier Alphanum


RVART= .
*A [Article] Item 50 25 Alphanum
.
1 [Sub1] Subcode 1 Empty 50 25 Alphanum
string .
2 [Sub2] Subcode 2 Empty 50 25 Alphanum
string .
M [MaterialStatus] Material Status Empty 10 2 Alphanum
string .
Q [Quantity] Quantity to be deposited 1 4 4 Num.
B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the first 0 2 2 Num.
one associated to the robot is used
R [Priority] Operation priority -1 4 4 Num.
Note: appropriately set the value for general parameters
PRIO_OTTIMIZ and LANCIO_IMM_PVI.

P [Position] Output delivery level (0 or 1 or 2), if 0 the first free 0 1 1 Num.


one is used

@ Wi [BayWorkplaceId] Number of work station in bay on which to -1 2 1 Num.


carry out deposit, if 0 the first free one is selected

@ Wx [BayWorkplacePosX] X-coordinate of work station in bay on -1 4 4 Num.


which to carry out deposit

@ Wy [BayWorkplacePosY] Y-coordinate of work station in bay on -1 4 4 Num.


which to carry out deposit

@ Wz [BayWorkplacePosZ] Z-coordinate of work station in bay on -1 4 4 Num.


which to carry out deposit

@ Ww [BayWorkplaceDimX] X dimension of work station in bay on -1 4 4 Num.


which to carry out deposit

@ Wd [BayWorkplaceDimY] Y dimension of work station in bay on -1 4 4 Num.


which to carry out deposit

Page 31
@ Wh [BayWorkplaceDimZ] Z dimension of work station in bay on -1 4 4 Num.
which to carry out deposit

LENGTH
FIELD DESCRIPTION MAX LENGTH USED FORMAT

* Modula  Robot response identifier Alphanum


OKRVART= .
*E [ResultCode] Error: 0 OK 1 1 Num.
2 Invalid position (occupied, disabled,
non-existent), invalid request (item does
not exist or is not configured in stock)
3 Same request in progress on the
opposite position
4 Request rejected due to another
request in progress (only without queue
management)
5 Requested compartment invalid
6 Multi-compartment, multiple
compartments with the same identifier
were found

*C [RequireChangeLU] Tray change required. At the time of request, 1 1 Num.


the tray is not present or is not the one present on the delivery
level.

MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num


request, the machine is automatically connected and the operator
is logged in.

Note All fields that can be used for the RVART message can also be used
in the OKRVART response message.
For fields A, 1, 2, M, Q, P, X, the value sent is replicated identically in
the response.
For the R (priority) field, the value, if it has been sent, is replicated
in the response, otherwise it is the one calculated by the launch
procedures.
For the fields Wi, Wx, Wy, Wz, Ww, Wd, Wh, the values, if they have
been sent, can be replicated in the response or be those calculated
by the launch procedures according to the work mode selected.

Page 32
Examples of possible configurations

Example 1, the robot makes the put-away on the trays indicating the delivery level: robot sends
the put-away request indicating the item and delivery level, WMS responds indicating
the error code and the tray change
Robot 
R V A R T = A A A A A A A A A A A A A A A A A A A A A A A A A P
R V A R T = A R T 1 2 3 1

 Modula
O K R V A R T = E C
O K R V A R T = 0 1

Example 2, Deposits are made, letting the WMS decide on the work station:
The put-away request is sent indicating the item and the work station at zero, WMS
responds indicating the error code, tray change, priority and the work station chosen
for the operation (the first available)
System Integrator 
R V A R T = A A A A A A A A A A A A A A A A A A A A A A A A A Wi
R V A R T = A R T 1 2 3 0

 Modula
O K R V A R T = E C R Wi
O K R V A R T = 0 0 7 3

Example 3, Deposits are made, indicating the coordinates and dimensions of the work station:
The put-away request is sent indicating the item and coordinates and dimensions of
the work station (x = 560, y = 158, z = 0, width = 337, length = 250, height = 0), WMS
responds indicating the error code and the tray change
System Integrator 
R V A R T = A A A A A A A .. A Wx Wx Wx Wx Wy Wy Wy Wy Wz Ww Ww Ww Ww Wd Wd Wd Wd Wh
R V A R T = A R T 1 2 3 0 5 6 0 0 1 5 8 0 0 3 3 7 0 2 5 0 0

 Modula
O K R V A R T = E C
O K R V A R T = 0 0

Page 33
Example 4, Put-aways are made, indicating an “index” to which the coordinates and dimensions
of the work station refer:
The put-away request is sent indicating the item and the work station, WMS responds
indicating the error code, tray change and the decoded coordinates of the work
station (x = 2260, y = 95, width = 600, length = 1000)
System Integrator 
R V A R T = A A A A A A A A A A A A A A A A A A A A A A A A A Wi
R V A R T = A R T 1 2 3 4

 Modula
O K R V A R T = E C Wx Wx Wx Wx Wy Wy Wy Wy Ww Ww Ww Ww Wd Wd Wd Wd
O K R V A R T = 0 0 2 2 6 0 0 0 9 5 0 6 0 0 1 0 0 0

Page 34
Operating notes with Robot
In the event of a matching request on the same delivery level: a new mission is not created and 0
(OK) is given anyway.
In the event of a different request on the same delivery level: a new mission is not created and 2
(ERROR) is given.
In the event of a matching request on the other delivery level: a new mission is not created and 3
(ERROR) is given.
In the event that a quantity greater than 1 is specified, the request will be satisfied only if it is
possible to deposit the entire quantity indicated.
In the event that the delivery level is already occupied by a different request and the mission is
already in progress, this can be canceled if the command contains the variable
[AbortCurrentExecution] = 1 (this behavior will occur if and only if the delivery level is specified in
the command), otherwise the new request is queued and managed according to normal priority.
In the event that the delivery level is already occupied by any request, but the mission has not yet
been created and the command contains the variable [AbortCurrentExecution] = 1: the new
request is refused and 4 (ERROR) is given.
Please note that, even if the request in progress is canceled, it is not guaranteed that the next
request served will be the last one made by the robot, as there may be other requests queued
considered to be of higher priority. For this reason, the robot is required to periodically poll the
?DPICK – Request picking data to find out what is currently being served on the delivery levels.
The variables [Compartment], [LU], [LuLocation] and [LUXY] have been introduced for the
possibility to specify the desired compartment.
Identifying the compartment can be done in the following ways (the order in which they are
listed also represents the priority of the values):
 Specifying the [Compartment] variable which represents the compartment identifier.
 Specifying the [LU] and [LuLocation] variables that represent the tray containing the
compartment and its location.
 Specifying the [LU] and [LUXY] variables that represent the tray containing the
compartment and the X-position description in the tray.
NB: Using the variables [Compartment], [LU], [LuLocation] and [LUXY] the requested compartment
will be validated, if the data entered are not verified an error value will be generated.
Error 5: No compatible compartment.
Error 6: Compartment not unique.

Page 35
Operating Notes with System Integrator
Requests sent by the System Integrator include the information necessary for the operation of
the option in charge of operations.
There are three work modes possible:
1) The System Integrator sends the number of the work station (BayWorkplaceId field) on which
it wants the operation to be performed, it can send 0 and in this case it is the WMS that
chooses the first available work station that can be replicated in the response message
2) The System Integrator sends the coordinates and dimensions of the work station on which it
wants the operation to be performed, in this case the BayWorkplacePosX,
BayWorkplacePosY, BayWorkplaceDimX, BayWorkplaceDimY fields must have a value greater
than zero, while the BayWorkplacePosZ and BayWorkplaceDimZ fields must still be present
but can be left at zero
3) The System Integrator sends the number of the work station and the WMS performs the
decoding on the basis of a specific table (which can be filled in by the operators) obtaining
the relative coordinates and dimensions that can be replicated in the response message
If mode 1 or 3 is used, a request can be sent for each configured work station, for example, if
there are 4 work stations, up to 4 requests can be sent at the same time if each is for a different
work station.
If using mode 2, you can send only one request at a time (using the coordinates, the bay is
considered as a single work station).
The System Integrator is aware of the usage of the work stations by periodically sending the
message ?DPOS.
In the event of a matching request either on the same work station or using the coordinates
(even different ones): a new mission is not created and 0 (OK) is given.
In the event that the data sent is not valid (item or work station or coordinates do not exist): a
new mission is not created and 2 (ERROR) is given.
In the event there are no free work stations or the deposit is not possible: a new mission is not
created and 2 (ERROR) is given.
In the event of a different request for a work station that is already used: a new mission is not
created and 3 (ERROR) is given.
If using the coordinates and there is already a different request in progress: a new mission is not
created and 3 (ERROR) is given.
Priority
It is possible to have the robot or the system integrator send the priority of the operation to be
carried out. In order to use the value sent by the robot it is necessary to set the general
parameter PRIO_OTTIMIZ to 1, or the general parameter LANCIO_IMM_PVI to S or SO.
Otherwise, the robot’s priority will be ignored and the operation will have priority 0.

Page 36
PART - Request for item picking
Used to make an item picking request.
It is mandatory to indicate to the WMS which item you wish to pick.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

* PART= Robot  Modula command identifier Alphanum


.
*A [Article] Item 50 25 Alphanum
.
1 [Sub1] Subcode 1 Empty 50 25 Alphanum
string .
2 [Sub2] Subcode 2 Empty 50 25 Alphanum
string .
M [MaterialStatus] Material Status Empty 10 2 Alphanum
string .
Q [Quantity] Quantity to be picked 1 4 4 Num.
B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the first 0 2 2 Num.
one associated to the robot is used
R [Priority] Operation priority -1 4 4 Num.
Note: appropriately set the value for general parameters
PRIO_OTTIMIZ and LANCIO_IMM_PVI.

P [Position] Output delivery level (0 or 1 or 2), if 0 the first free 0 1 1 Num.


one is used

@ Wi [BayWorkplaceId] Number of work station in bay on which to -1 2 1 Num.


carry out picking, if 0 the first free one is selected

@ Wx [BayWorkplacePosX] X-coordinate of work station in bay on -1 4 4 Num.


which to carry out picking

@ Wy [BayWorkplacePosY] Y-coordinate of work station in bay on -1 4 4 Num.


which to carry out picking

@ Wz [BayWorkplacePosZ] Z-coordinate of work station in bay on -1 4 4 Num.


which to carry out picking

@ Ww [BayWorkplaceDimX] X dimension of work station in bay on -1 4 4 Num.


which to carry out picking

@ Wd [BayWorkplaceDimY] Y dimension of work station in bay on -1 4 4 Num.


which to carry out picking

Page 37
@ Wh [BayWorkplaceDimZ] Z dimension of work station in bay on -1 4 4 Num.
which to carry out picking

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKPART= Modula  Robot response identifier Alphanum.


*E [ResultCode] Error: 0 OK 1 1 Num.
2 Invalid position (occupied, disabled,
non-existent), invalid request (item
does not exist or is not configured in
stock)
3 Same request in progress on the
opposite position
4 Request rejected due to another
request in progress (only without
queue management)
5 Requested compartment invalid
6 Multi-compartment, multiple
compartments with the same
identifier were found
*C [RequireChangeLU] Tray change required. At the time of request, 1 1 Num.
the tray is not present or is not the one present on the delivery
level.

MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num


request, the machine is automatically connected and the
operator is logged in.
Note All fields that can be used for the PART message can also be used
in the OKPART response message.
For fields A, 1, 2, M, Q, P, X, the value sent is replicated identically
in the response.
For the R (priority) field, the value, if it has been sent, is replicated
in the response, otherwise it is the one calculated by the launch
procedures.
For the fields Wi, Wx, Wy, Wz, Ww, Wd, Wh, the values, if they have
been sent, can be replicated in the response or be those calculated
by the launch procedures according to the work mode selected.

Page 38
Examples of possible configurations

Example 1, the robot makes the picking on the trays indicating the delivery level:
robot sends the picking request indicating the item, material status and delivery level,
WMS responds indicating the error code and the tray change
Robot 
P A R T = A A A A A A A A A A A A A A A A A A A A A A A A A M M P
P A R T = A R T 1 2 3 S T 1

 Modula
O K P A R T = E C
O K P A R T = 0 1

Example 2, Pickings are made, letting the WMS decide on the work station:
The picking request is sent indicating the item and work station, WMS responds
indicating the error code, tray change, priority and work station indicated for the
operation
System Integrator 
P A R T = A A A A A A A A A A A A A A A A A A A A A A A A A Wi
P A R T = A R T 1 2 3 4

 Modula
O K P A R T = E C R Wi
O K P A R T = 0 0 8 4

Example 3, Pickings are made, indicating the coordinates and dimensions of the work station:
The picking request is sent indicating the item and coordinates and dimensions of the
work station (x = 560, y = 185, z = 0, width = 437, length = 250, height = 0), WMS
responds indicating the error code and the tray change
System Integrator 
P A R T = A A A A A A A .. A Wx Wx Wx Wx Wy Wy Wy Wy Wz Ww Ww Ww Ww Wd Wd Wd Wd Wh
P A R T = A R T 1 2 3 0 5 6 0 0 1 8 5 0 0 4 3 7 0 2 5 0 0

 Modula
O K P A R T = E C
O K P A R T = 0 0

Page 39
Example 4, Pickings are made, indicating an “index” to which the
coordinates and dimensions of the work station refer:
The picking request is sent indicating the item and work station, WMS responds
indicating the error code, tray change and the decoded coordinates of the work
station (x = 1360, y = 195, width = 600, length = 500)
System Integrator 
P A R T = A A A A A A A A A A A A A A A A A A A A A A A A A Wi
P A R T = A R T 1 2 3 5

 Modula
O K P A R T = E C Wx Wx Wx Wx Wy Wy Wy Wy Ww Ww Ww Ww Wd Wd Wd Wd
O K P A R T = 0 0 1 3 6 0 0 1 9 5 0 6 0 0 0 5 0 0

Page 40
Operating notes with Robot
In the event of a matching request on the same delivery level: a new mission is not created and 0
(OK) is given anyway.
In the event of a different request on the same delivery level: a new mission is not created and 2
(ERROR) is given.
In the event of a matching request on the other delivery level: a new mission is not created and 3
(ERROR) is given.
In the event that a quantity greater than 1 is specified, the request will be satisfied only if it is
possible to pick the entire quantity indicated
In the event that the delivery level is already occupied by a different request and the mission is
already in progress, this can be canceled if the command contains the variable
[AbortCurrentExecution] = 1 (this behavior will occur if and only if the delivery level is specified in
the command), otherwise the new request is queued and managed according to normal priority.
In the event that the delivery level is already occupied by any request, but the mission has not yet
been created and the command contains the variable [AbortCurrentExecution] = 1: the new
request is refused and 4 (ERROR) is given.
Please note that, even if the request in progress is canceled, it is not guaranteed that the next
request served will be the last one made by the robot, as there may be other requests queued
considered to be of higher priority. For this reason, the robot is required to periodically poll the
?DPICK – Request picking data to find out what is currently being served on the delivery levels.
The variables [Compartment], [LU], [LuLocation] and [LUXY] have been introduced for the
possibility to specify the desired compartment.
Identifying the compartment can be done in the following ways (the order in which they are
listed also represents the priority of the values):
 Specifying the [Compartment] variable which represents the compartment identifier.
 Specifying the [LU] and [LuLocation] variables that represent the tray containing the
compartment and its location.
 Specifying the [LU] and [LUXY] variables that represent the tray containing the
compartment and the X-position description in the tray.
NB: Using the variables [Compartment], [LU], [LuLocation] and [LUXY] the requested compartment
will be validated, if the data entered are not verified an error value will be generated.
Error 5: No compatible compartment.
Error 6: Compartment not unique.

Page 41
Operating Notes with System Integrator
Requests sent by the System Integrator include the information necessary for the operation of
the option in charge of operations.
There are three work modes possible:
1) The System Integrator sends the number of the work station (BayWorkplaceId field) on which
it wants the operation to be performed, it can send 0 and in this case it is the WMS that
chooses the first available work station that can be replicated in the response message
2) The System Integrator sends the coordinates and dimensions of the work station on which it
wants the operation to be performed, in this case the BayWorkplacePosX,
BayWorkplacePosY, BayWorkplaceDimX, BayWorkplaceDimY fields must have a value greater
than zero, while the BayWorkplacePosZ and BayWorkplaceDimZ fields must still be present
but can be left at zero
3) The System Integrator sends the number of the work station and the WMS performs the
decoding on the basis of a specific table (which can be filled in by the operators) obtaining
the relative coordinates and dimensions that can be replicated in the response message
If mode 1 or 3 is used, a request can be sent for each configured work station, for example, if
there are 4 work stations, up to 4 requests can be sent at the same time if each is for a different
work station.
If using mode 2, you can send only one request at a time (using the coordinates, the bay is
considered as a single work station).
The System Integrator is aware of the usage of the work stations by periodically sending the
message ?DPOS.
In the event of a matching request either on the same work station or using the coordinates
(even different ones): a new mission is not created and 0 (OK) is given.
In the event that the data sent is not valid (item or work station or coordinates do not exist): a
new mission is not created and 2 (ERROR) is given.
In the event there are no free work stations or the picking is not possible: a new mission is not
created and 2 (ERROR) is given.
In the event of a different request for a work station that is already used: a new mission is not
created and 3 (ERROR) is given.
If using the coordinates and there is already a different request in progress: a new mission is not
created and 3 (ERROR) is given.
Priority
It is possible to have the robot or the system integrator send the priority of the operation to be
carried out. In order to use the value sent by the robot it is necessary to set the general
parameter PRIO_OTTIMIZ to 1, or the general parameter LANCIO_IMM_PVI to S or SO.
Otherwise, the robot’s priority will be ignored and the operation will have priority 0.

Page 42
VART - Confirm picking / deposit (change stock)
Used to confirm a Picking or Deposit.
Normally, following this command, the stock of the relevant compartment is updated.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

* VART= Robot  Modula command identifier Alphanum


.
*A [Article] Item 50 25 Alphanum
.
1 [Sub1] Subcode 1 Empty 50 25 Alphanum
string .
2 [Sub2] Subcode 2 Empty 50 25 Alphanum
string .
M [MaterialStatus] Material Status Empty 10 2 Alphanum
string .
*O [Operation] Operation. P: Picking. V: Deposit. 1 1 Alphanum
.
*Q [Quantity] Quantity for the operation. If 0, there is no 4 4 Num.
change in stock

B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the 0 2 2 Num.


first one associated to the robot is used
P [Position] Output delivery level (0 or 1 or 2), if 0 0 1 1 Num.
confirmation is made on the first delivery level that the
request is in progress and matches the data sent

@ Wi [BayWorkplaceId] Number of work station in bay on which 0 2 1 Num.


to confirm the operation.
If stations and/or decoding are used, the field must be
filled in with the station number.
If coordinates are used, set this field to 0 or omit it.

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKVART= Modula  Robot response identifier Alphanum


.
*E [ResultCode] Error. 0 OK 1 1 Num.
3 Errors during
confirmation, the
Page 43
operation cannot be
confirmed
4 Invalid data, no
operation
corresponding to the
data received from
the robot
MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num
request, the machine is automatically connected and the
operator is logged in.

Note All fields that can be used for the VART message can also be
used in the OKVART response message.
For all fields, the value sent is replicated identically in the
response.

Examples of possible configurations

Example 1, the robot makes the operations on the trays indicating the delivery level:
robot sends confirmation indicating the item, type of operation and quantity, the
delivery level is not specified and confirmation will be made on the first one that has a
request in progress regarding the data sent, WMS responds indicating the error code
Robot 
V A R T = A A A A A A A A A A A A A A A A A A A A A A A A A O Q Q Q Q
V A R T = A R T 1 2 3 P 1

 Modula
O K V A R T = E
O K V A R T = 0

Example 2, Operations are carried out indicating the work station (to be decoded or not):
Confirmation is sent indicating the item, operation, quantity, work station, WMS
responds indicating the error code
System Integrator 
V A R T = A A A A A A A A A A A A A A A A A A A A A A A A A O Q Q Q Q Wi
V A R T = A R T 1 2 3 V 1 3

 Modula
O K V A R T = E
O K V A R T = 0

Page 44
Example 3, Operations are carried out, indicating the coordinates and dimensions:
Confirmation is sent indicating the item, operation, quantity, work station at zero,
WMS responds indicating the error code
PS: in this case the “Wi” field may not be present in the message.
System Integrator 
V A R T = A A A A A A A A A A A A A A A A A A A A A A A A A O Q Q Q Q Wi
V A R T = A R T 1 2 3 V 1 0

 Modula
O K V A R T = E
O K V A R T = 0

Page 45
Operating notes with Robot
This command confirms the active mission and updates the stock but does not return the tray.
By confirming a quantity of 0, the mission is confirmed without changes in stock.
If you do not need to perform other operations on the tray, we recommend returning it using the
End Picking Command.

The tray can be returned automatically (without the relative message) when:
 The compartment is Full after a Deposit if the parameter Enable End Picking Com. Full is
True.
 The compartment is Empty after a Picking if the parameter Enable End Picking Com. Empty
is True.
 The tray is Full after a Deposit if the parameter Enable End Picking Tray Full is True
 The tray is Empty after a Picking if the parameter Enable End Picking Tray Full is True

Operating Notes with System Integrator


The confirmations sent by the System Integrator are interpreted by the WMS according to the
type of operation in progress.
If using mode 1 or 3 (with work stations or with decoding) in the [BayWorkplaceId] field you must
indicate the number of the work station in the bay on which you want to confirm the operation.
If using mode 2 (with coordinates), the entire bay is considered as a single work station, therefore
the [BayWorkplaceId] field may not be present in the message or it must always be indicated as
zero (it is not necessary to specify the coordinates and dimensions relating to the work station).
The VART command used for a deposit operation is interpreted as confirmation of the physical
presence of the material, i.e. the material has been deposited by the System Integrator in the
work station and can be moved from the option in the bay. The stock will subsequently and
automatically be updated by the WMS when the option has finished the deposit operation in the
Modula tray (without the need for further commands from the System Integrator).
The VART command used for a picking operation is interpreted as confirmation the material has
been picked by the System Integrator from the work station. The System Integrator through the
periodic sending of the ?DPOS message is aware of the availability of the material to be picked or
of the consent to proceed. The stock is updated immediately.
This command does not return the tray.

Page 46
FPICK - Request for end picking
Used to return the tray.
Usually follows a VART when the robot knows that the tray is no longer needed.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

* FPICK= Robot  Modula command identifier Alphanum.


B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 0 2 2 Num.
the first one associated to the robot is
used
*P [Position] Delivery level (1 or 2) 1 1 Num.

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKFPICK= Robot  Modula command identifier Alphanum.


*E [ResultCode] Error. 0 OK 1 1 Num.
1 Error while
attempting to return
or the tray cannot
return or there are no
missions

P [Position] Replicated identically in the response 1 1 Num.


MOK [MachineOk] The machine is ready to operate. At the 1 1 Num
time of request, the machine is automatically connected
and the operator is logged in.

Example
Modula with a single delivery level:
Robot 
F P I C K = P
F P I C K = 1

 Modula
O K F P I C K = P E
O K F P I C K = 1 0

Operating notes
If a delivery level is indicated that does not currently have trays in picking,
1 (ERROR) is given.

Page 47
?DPOS – Request for Modula positions status
This command must be periodically sent by the System Integrator to be aware of the status of
operations concerning the work stations.
NOT usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication
MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* ?DPOS Robot  Modula command identifier Alphanum.


B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the first one 2 2 Num.
associated to the robot is used
*P [Position] Output delivery level (0 or 1 or 2), if 0 the first free one 1 1 Num.
is used

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* DPOS= Robot  Modula command identifier Alphanum.


A [Article] Item 50 25 Alphanum.
1 [Sub1] Subcode1 50 25 Alphanum.
2 [Sub2] Subcode2 50 25 Alphanum.
O [OperationType] Type of operation: 1 1 Alphanum.
P - Picking, V - Deposit, N - No operation in progress

@ Wi [BayWorkplaceId] Number of work station in bay on which to 2 1 Num.


confirm the operation
[BayWorkplaceStatus] Operation status in work station:
@ Ws 1 1 Num.
0 No operation in progress
1 Operation in progress not yet completed
2 Operation completed
3 Error while executing operation
E [ResultCode] Error: 0 OK 1 1 Num.
2 Error in retrieving data
C [RequireEndOfPicking] Tray change requested. At the time of 1 1 Num.
request, the tray is not present or is not the one present on the
delivery level.

NB: if managing multiple stations or decoded stations (i.e. not managed by coordinates)

fields A, 1, 2, O, Wi, Ws are repeated in sequence for each position.


Fields E, C are indicated only once, usually at the end of the message.

Page 48
Example of possible configurations
Example 1, Operations are carried out by indicating the work station or the station to be
decoded, Modula is configured for two work stations in the bay:
WMS responds by indicating the item, operation, status of the operation for station 1,
the same data is repeated for station 2 which has no operations in progress, the error
code and the tray change are indicated in the queue
Robot 
? D P O S = P
? D P O S = 1

 Modula
D P O S = A A A A A A A A A A A A A A A A A A A A A A A A O Wi Ws
D P O S = A R T 1 2 3 P 1 2
Position 1

A A A A A A A A A A A A A A A A A A A A A A A A O Wi Ws E C
N 2 0 0 0
Position 2 Queue

Example 2, As in example 1 but the WMS is configured for three work stations in the bay, only 6
characters are used for the item code:
Robot 
? D P O S = P
? D P O S = 1

 Modula
D P O S = A A A A A A O Wi Ws A A A A A A O Wi Ws A A A A A A O Wi Ws E C
D P O S = A R T 1 2 3 N 1 0 N 2 0 N 3 0 0 0
Position 1 Position 2 Position 3 Queue

Example 3, Operations are carried out, indicating the coordinates and dimensions:
WMS responds by indicating the item, operation, status of the operation for the only
station present, the error code and the tray change are indicated in the queue
Robot 
? D P O S = P
? D P O S = 1

 Modula
D P O S = A A A A A A A A A A A A A A A A A A A A A A A A A O Ws E C
D P O S = A R T 1 2 3 V 1 0 0
Position 1 Queue

Page 49
Operating notes
For each work station configured in the bay, the data of the operation in progress are indicated, in
particular the item code, type of operation and status of the operation. The System Integrator must
send the ?DPOS telegram periodically to be always updated on the status of the requests made
and to be aware of which work stations are not engaged by the request and are therefore usable.

If using mode 1 or 3 (with work stations or with decoding) in the response telegram the data is
repeated for each configured station.

If using mode 2 (with coordinates) the entire bay is considered as a single work station, so only
the data relating to the first station will be significant in the response telegram.

The [BayWorkplaceStatus] field indicates the status of the operation in progress at the work
station:
0 No operation in progress: that is, the station is available for new requests.

1 Operation in progress not yet completed: the station is busy with the related request and
cannot accept any others
 In the event of deposit, the work station is waiting for the System Integrator to deposit the
material.
 In the event of picking, it indicates that the material expected by the System Integrator is not
yet available in the work station.

2 Operation completed: the station is busy with the related request and cannot accept any
others.
 In the event of deposit, the material deposited by the System Integrator has been collected
from the option and deposited in the tray, the stock is updated after which the operation is
concluded.
 In the event of picking, it indicates that the material expected by the System Integrator is
available in the work station and can be collected.

3 Error while executing operation: i.e. an error occurred during handling of the material by the
option. The station is already busy and cannot accept other requests.

Page 50
?RSUDC - Request for tray change
Used to request changing the picking tray in the bay with dual delivery level.
The command simply returns the external tray and outputs the internal one.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication
MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* ?RSUDC Robot  Modula command identifier Alphanum.


B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the 2 2 Num.
first one associated to the robot is used

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKRSUDC= Robot  Modula command identifier Alphanum.


*E [ResultCode] Error. 0 OK 1 1 Num.
1 Error during sending or
command execution

MOK [MachineOk] The machine is ready to operate. At the 1 1 Num


time of request, the machine is automatically connected
and the operator is logged in.

Example
Modula with a single delivery level:
Robot 
? R S U D C
? R S U D C

 Modula
O K R S U D C = E
O K R S U D C = 0

Operating notes
The command can only be used with 2 trays in the bay.

Page 51
?EMPTYUDC – Request for number of empty trays
Used to request the number of trays completely free of compartments or with compartments
without association with the item in relation to the Modula that interfaces with the robot.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication
MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* ?EMPTYUDC Robot  Modula command identifier Alphanum.

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* ?EMPTYUDC= Robot  Modula command identifier Alphanum.


*N [NumberOfEmptyLUs] Number of empty trays 3 3 Num.

Example

Robot 
? E M P T Y U D C
? E M P T Y U D C

 Modula
E M P T Y U D C = E E E
E M P T Y U D C = 0 1 3

Operating notes
The tray counting takes place on the machine served by the robot.

Page 52
?RINVSCO - Request for compartment inventory operation
This command is used to request an inventory operation on a tray compartment in the bay: it
allows you to change the compartment data, in particular item code and stock.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

*?RINVSCO Robot  Modula command identifier Alphanum


.
B [Bay] Exit bay (0/11/12/21/22/etc…), if 0 the 0 2 2 Num.
first one associated to the robot is used
*U [LU] Tray code 0 4 4 Num.
*S [CompartmentId] Compartment ID 0 10 10 Num.
T [CompartmentType] Type of compartment Null 5 5 Alphanum
.
*A [Article] Item Null 50 25 Alphanum
.
1 [Sub1] Subcode1 Null 50 25 Alphanum
.
2 [Sub2] Subcode2 Null 50 25 Alphanum
.
M [MaterialStatus] Material Status Null 5 5 Alphanum
.
P [PackageType] Type of package Null 5 5 Alphanum
.
V [CompartmentStockCapacity] Maximum capacity of 0 4 4 Num.
the compartment

F [Full] Full compartment: 0 Not set -1 1 1 Num.


1 Full

*G [Stock] Compartment stock 4 4 Num.

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKRINVSCO = Modula  Robot response identifier Alphanum


.

Page 53
*E [ResultCode] Error. 0 OK 1 1 Num.
3 Data received is not
valid
4 The conditions for
carrying out the
inventory are not
present
MOK [MachineOk] The machine is ready to operate. At the time of 1 1 Num
request, the machine is automatically connected and the
operator is logged in.

Page 54
Example
The robot requests that item “ART456-B” be set in compartment 845 of tray 1019 with stock 74.

Robot 
? R I N V S C O = U U U U S S S S A A A A A A A A A A A A A A A A A A A A A A A A A G G G G
? R I N V S C O = 1 0 1 9 0 8 4 5 A R T 4 5 6 - B 0 0 7 4

 Modula
O K R I N V S C O = E
O K R I N V S C O = 0

Operating notes
This command allows you to change the stock and/or item code of a specific tray compartment in
the bay. For example, it can be used to report the failed picking of a piece by replacing the
original item with a fictitious item code that can be easily consulted by operators or for a normal
inventory operation.
In order to use this command, all the following conditions are required:
 The tray must be in the bay
 For the compartment concerned, there must be NO operations in progress (no run line)
 The tray and compartment code must ALWAYS be indicated in the message
 The item code must ALWAYS be indicated in the message, sending an empty item is not
allowed
 Indicating a stock exceeding the maximum capacity of the tray is not allowed
 Sending the stock at zero is allowed.

?STOCK - Request item stock


This command is used to request the stock of an item in the warehouse and corresponding pick
and put-away bookings.
Usable in Modula <-> Robot communication
Usable in Modula <-> System Integrator communication

MAX LENGTH
FIELD DESCRIPTION DEFAULT LENGTH USED FORMAT

*?STOCK Robot  Modula command identifier Alphanum


.
*A [Article] Item Null 50 25 Alphanum
.
C [Aisle] Aisle 0 5 5 Num.
U [LU] Tray code, if 0 => all LUs 0 4 4 Num.

Page 55
1 [Sub1] Subcode1 Null 50 25 Alphanum
.
2 [Sub2] Subcode2 Null 50 25 Alphanum
.
M [MaterialStatus] Material Status Null 5 5 Alphanum
.
P [PackageType] Type of package Null 5 5 Alphanum
.
E [Expiry] Expiration date: 1 => filter for non-expired 0 1 1 Num.
items, 2 => filter for expired items

Ag [Aged] Maturation: 1 => filter for matured items, 2 => 0 1 1 Num.


filter for non-mature items

MAX LENGTH
FIELD DESCRIPTION LENGTH USED FORMAT

* OKSTOCK = Modula  Robot response identifier Alphanum


.
*E [ResultCode] Error. 0 OK 1 1 Num.
1 Data received is not
valid
G [Stock] Stock. 4 4 Num.
P [StockToPick] Quantity reserved for pick 4 4 Num.
V [StockToPut] Quantity reserved for put-away 4 4 Num.

Example
XXX

Robot 
? R I N V S C O = U U U U S S S S A A A A A A A A A A A A A A A A A A A A A A A A A G G G G
? R I N V S C O = 1 0 1 9 0 8 4 5 A R T 4 5 6 - B 0 0 7 4

 Modula
O K R I N V S C O = E
O K R I N V S C O = 0

Operating notes
XX

Page 56
Error messages
The WMS responds with a special error message in the event that an unexpected error occurred
in executing the command or it was impossible to decrypt the command received.
Errors:
 ERR = 100, (Generic error)
 COMMAND_NOT_EXISTS = 99, (Impossible to decrypt the command)
 COMMAND_RUNTIME_ERR = 98, (Unexpected error while executing the command)
 COMMAND_NOT_ALLOWED = 97 (The command received is not expected in this system)

If one of these errors occurs, it is necessary to stop the system because there could be serious
communication problems between the robot and Modula or implementation errors of the
agreed communication specifications.

Page 57
Communication example
The following example illustrates a typical picking request for item ART0001 that ends with the
robot’s request to return the tray.

Page 58
Agreed communication specifications:
 PART command:
 DPICK command:
 VART command:
 Delivery level: length 1 character
 Item: length 10 characters
 Tray number: length 4 characters
 Stock: length 4 characters
 Type of operation: length 1 character
 Compartment coordinates code: length 2 characters, an encoding is used which is
interpreted by the Robot to obtain the millimeter coordinates of the compartment.
 Quantity confirmed: length 4 characters.

COMMAND SENDER DESCRIPTION

1 ROBOT The Robot requests picking item ART0001 on Delivery level 1.

2 MODULA The Modula confirms the message specifying that there are no errors and it is
necessary to change the tray, so the robot will have to wait for the requested
tray to be available in the bay.
Handling begins to bring a tray into the bay from which it is possible to pick item
ART0001.

3 ELECTRIC When the tray is ready in the bay, the electrical contact “Tray in picking in
position 1” is closed
SIGNAL
4 ROBOT The Robot requests the picking data to verify the presence of the tray in the
bay.

5 MODULA Modula responds by specifying that item ART0001 is present in the bay for
picking. The item is in tray 1020, compartment U1 with stock of 5 pieces.

6 ROBOT The Robot confirms picking item ART0001 specifying a picked quantity of 1

7 MODULA Modula changes the stock of item ART0001 (which goes from 5 to 4) and
replies by informing that the operation has been performed without errors.
The tray remains in the bay.

8 ROBOT The robot communicates that operations on the tray are finished

9 MODULA Modula begins operations to return the tray and communicates that the
operation has been performed without errors.

Page 59
Example of communication between System Integrator and Modula with
bay with options, with sending of station number (mode 1)
In the examples, 7 characters are used for the item code, the text in the boxes show the
structure of the messages.
The example shows a request for picking item ART0002 in the case of a bay with options with
three work stations.
COMMAND SENDER DESCRIPTION

1 SYSTEM The status of the work stations is requested by sending the ?DPOS message
INTEGRATOR
2 MODULA In the bay in question, a picking is in progress in station one and a deposit in
station three. Modula responds with the following message:
DPOS=AAAAAAAOWsAAAAAAAOWsAAAAAAAOWsEC
DPOS=ART0011P1 N0ART0042V100

3 SYSTEM From the DPOS message received, it is clear that work station two is not busy
INTEGRATOR with requests, therefore it is available.
The following message is sent:
PART=AAAAAAAWi
PART=ART00022
In other words, picking request for item ART0002 in work station 2

4 MODULA Modula processes the request with a positive outcome (error = 0), executes
the tray call and responds to the YES with the message:
OKPART=AAAAAAAWiE
OKPART=ART000220

5 ELECTRIC When the tray is ready in the elevator, the electrical contact “Tray in picking
on Delivery level 1” is closed
SIGNAL
6 MODULA The tray is on the elevator ready for picking, the option is activated

7 SYSTEM The status of the work stations is periodically requested by sending the
INTEGRATOR ?DPOS message

8 MODULA Modula responds with the following message:


DPOS=AAAAAAAOWsAAAAAAAOWsAAAAAAAOWsEC
DPOS=ART0011P1ART0002P1ART0042V100
indicating that the operation is in progress at work station two

Page 60
9 MODULA The option picks the box from the tray and deposits it into work station
two

10 SYSTEM The status of the work stations is periodically requested by sending the
INTEGRATOR ?DPOS message

11 MODULA Modula responds with the following message:


DPOS=AAAAAAAOWsAAAAAAAOWsAAAAAAAOWsEC
DPOS=ART0011P1ART0002P2ART0042V100
indicating that the operation can be confirmed at work station two, while
operations are still in progress at work stations one and three and therefore
cannot be confirmed

12 SYSTEM The material is picked and picking of item ART0002 is confirmed, sending
INTEGRATOR the message:
VART=AAAAAAAOQQQQWi
VART=ART0002P00012
i.e. ART0002 is picked by 1 quantity from work station 2

13 MODULA Modula updates stock of item ART0002 reducing it by 1 and sends the
response message with a positive outcome (error = 0):
OKVART=AAAAAAAOQQQQWiE
OKVART= ART0002P000120
The tray remains in the bay

14 SYSTEM The status of the work stations is periodically requested by sending the
INTEGRATOR ?DPOS message

15 MODULA Modula responds with the following message:


DPOS=AAAAAAAOWsAAAAAAAOWsAAAAAAAOWsEC
DPOS=ART0011P2 N0ART0042V101
work station one: the operation can now be confirmed,
work station two: is available again,
work station three: the operation is still in progress,
the return of the tray currently in the bay is requested

Page 61
The example shows a request for depositing item ART0002 in the case of a bay with options with
three work stations.
COMMAND SENDER DESCRIPTION

1 SYSTEM The status of the work stations is requested by sending the ?DPOS message
INTEGRATOR
2 MODULA In the bay in question, a picking is in progress in station one and a deposit in
station three. Modula responds with the following message:
DPOS=AAAAAAAOWsAAAAAAAOWsAAAAAAAOWsEC
DPOS=ART0011P1 N0ART0042V100

3 SYSTEM From the DPOS message received, it is clear that work station two is not busy
INTEGRATOR with requests, therefore it is available.
The following message is sent:
RVART=AAAAAAAWi
RVART=ART00020
In other words, put-away request for item ART0002 in the work station
selected by the WMS

4 MODULA Modula processes the request with a positive outcome (error = 0), choosing
to run the operation of work station two, executes the tray call and responds
to the YES with the message:
OKRVART=AAAAAAAWiE
OKRVART=ART000220

5 ELECTRIC When the tray is ready in the elevator, the electrical contact “Tray in picking
on Delivery level 1” is closed
SIGNAL
6 MODULA The tray is on the elevator ready for depositing, the option stays in waiting

7 SYSTEM The status of the Modula positions is periodically requested by sending the
INTEGRATOR ?DPOS message
8 MODULA Modula responds with the following message:
DPOS=AAAAAAAOWsAAAAAAAOWsAAAAAAAOWsEC
DPOS=ART0011P1ART0002V1ART0042V100
indicating that the operation is in progress at work station two, as it is in
work stations one and three

Page 62
9 SYSTEM The material is deposited and depositing of item ART0002 is confirmed,
INTEGRATOR
sending the message:
VART=AAAAAAAOQQQQWi
VART=ART0002P00012
i.e. ART0002 is picked by 1 quantity from work station 2

10 MODULA Modula activates the option and sends the response message with a
positive outcome (error = 0):
OKVART=AAAAAAAOQQQQWiE
OKVART=ART0002V000120

11 MODULA The option collects the material from work station two and deposits it into
the tray

12 MODULA Modula automatically updates stock of item ART0002 increasing it by 1


The tray stays in the bay

13 SYSTEM The status of the Modula positions is periodically requested by sending the
INTEGRATOR ?DPOS message

14 MODULA Modula responds with the following message:


DPOS=AAAAAAAOWsAAAAAAAOWsAAAAAAAOWsEC
DPOS=ART0011P1 N0ART0042V101
work station one: the operation is still in progress,
work station two: is available again,
work station three: the operation is still in progress,
the return of the tray currently in the bay is requested

Page 63
Example of communication between System Integrator and Modula with
bay with options, with sending of coordinates (mode 2)
In the examples, 7 characters are used for the item code, the text in the boxes show the
structure of the messages.
The following example shows a request for picking item ART0002 in the case of a bay with
options with management of coordinates.
COMMAND SENDER DESCRIPTION

1 SYSTEM The status of the work station is requested by sending the ?DPOS message
INTEGRATOR
2 MODULA In the bay in question, there are no operations in progress. Modula responds
with the following message:
DPOS=AAAAAAAOWsEC
DPOS= N000

3 SYSTEM From the DPOS message received, it is clear that the work station is not busy
INTEGRATOR with requests, therefore it is available.
The following message is sent:
PART=AAAAAAAWxWxWxWxWyWyWyWyWwWwWwWwWdWdWdWd
PART=ART00022070045504300500
In other words the picking request of item ART0002 in the work station:
coordinates x = 2070 and y = 455
dimensions x = 430 and y = 500

4 MODULA Modula processes the request with a positive outcome (error = 0), executes
the tray call and responds to the YES with the message:
OKPART=AAAAAAAE
OKPART=ART00020

5 ELECTRIC When the tray is ready in the elevator, the electrical contact “Tray in picking
on Delivery level 1” is closed
SIGNAL
6 MODULA The tray is on the elevator ready for picking, the option is activated

7 SYSTEM The status of the work station is periodically requested by sending the ?DPOS
INTEGRATOR message

8 MODULA Modula responds with the following message:


DPOS=AAAAAAAOWsEC
DPOS=ART0002P100

Page 64
indicating that the operation is in progress at the work station

9 MODULA The option picks the box from the tray and deposits it into the work station

10 SYSTEM The status of the work station is requested by sending the ?DPOS message
INTEGRATOR
11 MODULA Modula responds with the following message:
DPOS=AAAAAAAOWsEC
DPOS=ART0002P200
indicating that the operation is completed at the work station

12 SYSTEM The material is picked and picking of item ART0002 is confirmed, sending the
INTEGRATOR message:
VART=AAAAAAAOQQQQ
VART=ART0002P0001
i.e. ART0002 is picked by 1 quantity

13 MODULA Modula updates stock of item ART0002 reducing it by 1 and sends the
response message with a positive outcome (error = 0):
OKVART=AAAAAAAOQQQQE
OKVART=ART0002P00010
The tray remains in the bay

14 SYSTEM The status of the work station is requested by sending the ?DPOS message
INTEGRATOR
15 MODULA Modula responds with the following message:
DPOS=AAAAAAAOWsEC
DPOS= N001
the work station is available again, the return of the tray currently in the bay
is requested

Page 65
The following example shows a request for depositing item ART0002 in the case of a bay with
options with management of coordinates.
COMMAND SENDER DESCRIPTION

1 SYSTEM The status of the work station is requested by sending the ?DPOS message
INTEGRATOR
2 MODULA In the bay in question, there are no operations in progress. Modula responds
with the following message:
DPOS=AAAAAAAOWsEC
DPOS= N000

3 SYSTEM From the DPOS message received, it is clear that the work station is not busy
INTEGRATOR with requests, therefore it is available.
The following message is sent:
RVART=AAAAAAAWxWxWxWxWyWyWyWyWwWwWwWwWdWdWdWd
RVART=ART00020500110003450450
In other words the depositing request of item ART0002 in the work station:
coordinates x = 500 and y = 1100
dimensions x = 345 and y = 450

4 MODULA Modula processes the request with a positive outcome (error = 0), executes
the tray call and responds to the YES with the message:
OKRVART=AAAAAAAE
OKRVART=ART00020

5 ELECTRIC When the tray is ready in the elevator, the electrical contact “Tray in picking
on Delivery level 1” is closed
SIGNAL
6 MODULA The tray is on the elevator ready for depositing, the option stays in waiting

7 SYSTEM The status of the work station is requested by sending the ?DPOS message
INTEGRATOR
8 MODULA Modula responds with the following message:
DPOS=AAAAAAAOWsEC
DPOS=ART0002V100
indicating that the operation is in progress at the work station

Page 66
9 SYSTEM The material is deposited and depositing of item ART0002 is confirmed,
INTEGRATOR
sending the message:
VART=AAAAAAAOQQQQ
VART=ART0002V0001
i.e. ART0002 is deposited by 1 quantity

10 MODULA Modula activates the option and sends the response message with a
positive outcome (error = 0):
OKVART=AAAAAAAOQQQQE
OKVART=ART0002V00010

11 MODULA The option collects the material from the work station and deposits it into
the tray

12 MODULA Modula automatically updates stock of item ART0002 increasing it by 1


The tray stays in the bay

13 SYSTEM The status of the work station is requested by sending the ?DPOS message
INTEGRATOR
14 MODULA Modula responds with the following message:
DPOS=AAAAAAAOWsEC
DPOS= N001
the work station is available again, the return of the tray currently in the
bay is requested

Page 67

You might also like