BS en 61158-6-9-2014
BS en 61158-6-9-2014
BS en 61158-6-9-2014
Industrial communication
networks — Fieldbus
specifications
Part 6-9: Application layer protocol
specification — Type 9 elements
BS EN 61158-6-9:2014 BRITISH STANDARD
National foreword
This British Standard is the UK implementation of EN 61158-6-9:2014. It
is identical to IEC 61158-6-9:2014. It supersedes BS EN 61158-6-9:2012
which is withdrawn.
The UK participation in its preparation was entrusted to Technical
Committee AMT/7, Industrial communications: process measurement and
control, including fieldbus.
A list of organizations represented on this committee can be obtained on
request to its secretary.
This publication does not purport to include all the necessary provisions of
a contract. Users are responsible for its correct application.
© The British Standards Institution 2014.
Published by BSI Standards Limited 2014
English Version
Réseaux de communication industriels - Spécifications des Industrielle Kommunikationsnetze - Feldbusse - Teil 6-9:
bus de terrain - Partie 6-9: Spécification du protocole de la Protokollspezifikation des Application Layer
couche application - Éléments de type 9 (Anwendungsschicht) - Typ 9-Elemente
(CEI 61158-6-9:2014) (IEC 61158-6-9:2014)
This European Standard was approved by CENELEC on 2014-09-23. CENELEC members are bound to comply with the CEN/CENELEC
Internal Regulations which stipulate the conditions for giving this European Standard the status of a national standard without any alteration.
Up-to-date lists and bibliographical references concerning such national standards may be obtained on application to the CEN-CENELEC
Management Centre or to any CENELEC member.
This European Standard exists in three official versions (English, French, German). A version in any other language made by translation
under the responsibility of a CENELEC member into its own language and notified to the CEN-CENELEC Management Centre has the
same status as the official versions.
CENELEC members are the national electrotechnical committees of Austria, Belgium, Bulgaria, Croatia, Cyprus, the Czech Republic,
Denmark, Estonia, Finland, Former Yugoslav Republic of Macedonia, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia,
Lithuania, Luxembourg, Malta, the Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, Switzerland,
Turkey and the United Kingdom.
© 2014 CENELEC All rights of exploitation in any form and by any means reserved worldwide for CENELEC Members.
Foreword
The text of document 65C/764/FDIS, future edition 3 of IEC 61158-6-9, prepared by SC 65C
"Industrial networks" of IEC/TC 65 "Industrial-process measurement, control and automation" was
submitted to the IEC-CENELEC parallel vote and approved by CENELEC as EN 61158-6-9:2014.
• latest date by which the national standards conflicting with (dow) 2017-09-23
the document have to be withdrawn
Attention is drawn to the possibility that some of the elements of this document may be the subject of
patent rights. CENELEC [and/or CEN] shall not be held responsible for identifying any or all such
patent rights.
This document has been prepared under a mandate given to CENELEC by the European Commission
and the European Free Trade Association.
Endorsement notice
The text of the International Standard IEC 61158-6-9:2014 was approved by CENELEC as a
European Standard without any modification.
In the official version, for Bibliography, the following notes have to be added for the standards indicated:
Annex ZA
(normative)
The following documents, in whole or in part, are normatively referenced in this document and are
indispensable for its application. For dated references, only the edition cited applies. For undated
references, the latest edition of the referenced document (including any amendments) applies.
NOTE 1 When an International Publication has been modified by common modifications, indicated by (mod),
the relevant EN/HD applies.
NOTE 2 Up-to-date information on the latest versions of the European Standards listed in this annex is
available here: www.cenelec.eu.
CONTENTS
INTRODUCTION ..................................................................................................................... 7
1 Scope ............................................................................................................................... 8
1.1 General ................................................................................................................... 8
1.2 Specifications .......................................................................................................... 8
1.3 Conformance ........................................................................................................... 9
2 Normative references ....................................................................................................... 9
3 Terms, definitions, symbols, abbreviations and conventions ........................................... 10
3.1 Terms and definitions from other ISO/IEC standards ............................................. 10
3.2 IEC 61158-1 terms ................................................................................................ 11
3.3 Abbreviations and symbols .................................................................................... 14
3.4 Conventions .......................................................................................................... 15
3.5 Conventions used in state machines ..................................................................... 16
4 Abstract syntax ............................................................................................................... 17
4.1 FAL-AR PDU abstract syntax ................................................................................ 17
4.2 Abstract syntax of PDUBody .................................................................................. 19
4.3 Type definitions for ASEs ...................................................................................... 22
4.4 Abstract syntax of data types ................................................................................ 27
5 Transfer syntax .............................................................................................................. 28
6 Structure of FAL protocol state machines ....................................................................... 39
7 AP-Context state machines ............................................................................................ 40
7.1 VCR PM structure ................................................................................................. 40
7.2 VCR PM state machine ......................................................................................... 41
8 FAL service protocol machine (FSPM) ............................................................................ 53
8.1 General ................................................................................................................. 53
8.2 FSPM state tables ................................................................................................. 53
8.3 Functions used by FSPM ....................................................................................... 56
8.4 Parameters of FSPM/ARPM primitives .................................................................. 56
9 Application relationship protocol machines (ARPMs) ...................................................... 56
9.1 AREP mapping to data-link layer ........................................................................... 56
9.2 Application relationship protocol machines (ARPMs) ............................................. 66
9.3 AREP state machine primitive definitions .............................................................. 82
9.4 AREP state machine functions .............................................................................. 83
10 DLL mapping protocol machine (DMPM) ......................................................................... 84
10.1 DMPM States ........................................................................................................ 84
10.2 DMPM state table .................................................................................................. 85
10.3 Primitives exchanged between data-link layer and DMPM ..................................... 91
10.4 Functions used by DMPM ...................................................................................... 93
Bibliography .......................................................................................................................... 95
INTRODUCTION
This part of IEC 61158 is one of a series produced to facilitate the interconnection of
automation system components. It is related to other standards in the set as defined by the
“three-layer” fieldbus reference model described in IEC 61158-1.
The application protocol provides the application service by making use of the services
available from the data-link or other immediately lower layer. The primary aim of this standard
is to provide a set of rules for communication expressed in terms of the procedures to be
carried out by peer application entities (AEs) at the time of communication. These rules for
communication are intended to provide a sound basis for development in order to serve a
variety of purposes:
This standard is concerned, in particular, with the communication and interworking of sensors,
effectors and other automation devices. By using this standard together with other standards
positioned within the OSI or fieldbus reference models, otherwise incompatible systems may
work together in any combination.
BS EN 61158-6-9:2014
–8– IEC 61158-6-9:2014 © IEC 2014
1 Scope
1.1 General
The Fieldbus Application Layer (FAL) provides user programs with a means to access the
fieldbus communication environment. In this respect, the FAL can be viewed as a “window
between corresponding application programs.”
This standard provides common elements for basic time-critical and non-time-critical
messaging communications between application programs in an automation environment and
material specific to type 9 fieldbus. The term “time-critical” is used to represent the presence
of a time-window, within which one or more specified actions are required to be completed
with some defined level of certainty. Failure to complete specified actions within the time
window risks failure of the applications requesting the actions, with attendant risk to
equipment, plant and possibly human life.
This standard defines in an abstract way the externally visible behavior provided by the Type
9 fieldbus Application Layer in terms of
a) the abstract syntax defining the application layer protocol data units conveyed between
communicating application entities,
b) the transfer syntax defining the application layer protocol data units conveyed between
communicating application entities,
c) the application context state machine defining the application service behavior visible
between communicating application entities; and
d) the application relationship state machines defining the communication behavior visible
between communicating application entities; and.
1) define the wire-representation of the service primitives defined in IEC 61158-5-9, and
2) define the externally visible behavior associated with their transfer.
This standard specifies the protocol of the Type 9 IEC fieldbus application layer, in
conformance with the OSI Basic Reference Model (ISO/IEC 7498-1) and the OSI Application
Layer Structure (ISO/IEC 9545).
1.2 Specifications
The principal objective of this standard is to specify the syntax and behavior of the application
layer protocol that conveys the application layer services defined in IEC 61158-5-9.
1.3 Conformance
This standard does not specify individual implementations or products, nor does it constrain
the implementations of application layer entities within industrial automation systems.
Conformance is achieved through implementation of this application layer protocol
specification.
2 Normative references
The following documents, in whole or in part, are normatively referenced in this document and
are indispensable for its application. For dated references, only the edition cited applies. For
undated references, the latest edition of the referenced document (including any
amendments) applies.
NOTE All parts of the IEC 61158 series, as well as IEC 61784-1 and IEC 61784-2 are maintained simultaneously.
Cross-references to these documents within the text therefore refer to the editions as dated in this list of normative
references.
IEC 61158-3-1, Industrial communication networks – Fieldbus specifications – Part 3-1: Data-
link layer service definition – Type 1 elements
IEC 61158-4-1, Industrial communication networks – Fieldbus specifications – Part 4-1: Data-
link layer protocol specification – Type 1 elements
ISO/IEC 646, Information technology – ISO 7-bit coded character set for information
interchange
For the purposes of this document, the following terms, definitions, symbols, abbreviations
and conventions apply.
For the purposes of the present document, the following IEC 61158-1 terms apply.
3.2.1
application
function or data structure for which data is consumed or produced
3.2.2
application layer interoperability
capability of application entities to perform coordinated and cooperative operations using the
services of the FAL
3.2.3
application object
object class that manages and provides the run time exchange of messages across the
network and within the network device
3.2.4
application process
part of a distributed application on a network, which is located on one device and
unambiguously addressed
3.2.5
application process identifier
distinguishes multiple application processes used in a device
3.2.6
application process object
component of an application process that is identifiable and accessible through an FAL
application relationship
Note 1 to entry: Application process object definitions are composed of a set of values for the attributes of their
class (see the definition for Application Process Object Class Definition). Application process object definitions
may be accessed remotely using the services of the FAL Object Management ASE. FAL Object Management
services can be used to load or update object definitions, to read object definitions, and to dynamically create and
delete application objects and their corresponding definitions.
3.2.7
application process object class
class of application process objects defined in terms of the set of their network-accessible
attributes and services
3.2.8
application relationship
cooperative association between two or more application-entity-invocations for the purpose of
exchange of information and coordination of their joint operation
3.2.9
application relationship application service element
application-service-element that provides the exclusive means for establishing and
terminating all application relationships
BS EN 61158-6-9:2014
– 12 – IEC 61158-6-9:2014 © IEC 2014
3.2.10
application relationship endpoint
context and behavior of an application relationship as seen and maintained by one of the
application processes involved in the application relationship
Note 1 to entry: Each application process involved in the application relationship maintains its own application
relationship endpoint.
3.2.11
attribute
description of an externally visible characteristic or feature of an object
Note 1 to entry: The attributes of an object contain information about variable portions of an object. Typically,
they provide status information or govern the operation of an object. Attributes may also affect the behaviour of an
object. Attributes are divided into class attributes and instance attributes.
3.2.12
behaviour
indication of how the object responds to particular events
Note 1 to entry: Its description includes the relationship between attribute values and services.
3.2.13
class
set of objects, all of which represent the same kind of system component
Note 1 to entry: A class is a generalisation of the object; a template for defining variables and methods. All
objects in a class are identical in form and behaviour, but usually contain different data in their attributes.
3.2.14
class attributes
attribute that is shared by all objects within the same class
3.2.15
class code
unique identifier assigned to each object class
3.2.16
class specific service
service defined by a particular object class to perform a required function which is not
performed by a common service
Note 1 to entry: A class specific object is unique to the object class which defines it.
3.2.17
client
(a) object which uses the services of another (server) object to perform a task
(b) initiator of a message to which a server reacts, such as the role of an AR endpoint in
which it issues confirmed service request APDUs to a single AR endpoint acting as a
server
3.2.18
conveyance path
unidirectional flow of APDUs across an application relationship
3.2.19
cyclic
events which repeat in a regular and repetitive manner
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 13 –
3.2.20
dedicated AR
AR used directly by the FAL User
Note 1 to entry: On Dedicated ARs, only the FAL Header and the user data are transferred
3.2.21
device
physical hardware connection to the link
3.2.22
device profile
collection of device dependent information and functionality providing consistency between
similar devices of the same device type
3.2.23
dynamic AR
AR that requires the use of the AR establishment procedures to place it into an established
state
3.2.24
endpoint
one of the communicating entities involved in a connection
3.2.25
error
discrepancy between a computed, observed or measured value or condition and the specified
or theoretically correct value or condition
3.2.26
error class
general grouping for error definitions
Note 1 to entry: Error codes for specific errors are defined within an error class.
3.2.27
error code
identification of a specific type of error within an error class
3.2.28
FAL subnet
networks composed of one or more data link segments
Note 1 to entry: They are permitted to contain bridges, but not routers FAL subnets are identified by a subset of the
network address.
3.2.29
logical device
specifies a certain FAL class that abstracts a software component or a firmware component
as an autonomous self-contained facility of an automation device
3.2.30
management information
network-accessible information that supports managing the operation of the fieldbus system,
including the application layer
Note 1 to entry: Managing includes functions such as controlling, monitoring, and diagnosing.
BS EN 61158-6-9:2014
– 14 – IEC 61158-6-9:2014 © IEC 2014
3.2.31
network
series of nodes connected by some type of communication medium
Note 1 to entry: The connection paths between any pair of nodes can include repeaters, routers and gateways.
3.2.32
peer
role of an AR endpoint in which it is capable of acting as both client and server
3.2.33
pre-defined AR endpoint
AR endpoint that is defined locally within a device without use of the create service
Note 1 to entry: Pre-defined ARs that are not pre-established are established before being used.
3.2.34
pre-established AR endpoint
AR endpoint that is placed in an established state during configuration of the AEs that control
its endpoints
3.2.35
publisher
role of an AR endpoint in which it transmits APDUs onto the fieldbus for consumption by one
or more subscribers
Note 1 to entry: The publisher may not be aware of the identity or the number of subscribers and it may publish its
APDUs using a dedicated AR. Two types of publishers are defined by this standard, Pull Publishers and Push
Publishers, each of which is defined separately.
3.2.36
server
a) role of an AREP in which it returns a confirmed service response APDU to the client that
initiated the request
3.2.37
service
operation or function than an object and/or object class performs upon request from another
object and/or object class
Note 1 to entry: A set of common services is defined and provisions for the definition of object-specific services
are provided. Object-specific services are those which are defined by a particular object class to perform a
required function which is not performed by a common service.
3.2.38
subscriber
role of an AREP in which it receives APDUs produced by a publisher
Note 1 to entry: Two types of subscribers are defined by this standard, pull subscribers and push subscribers,
each of which is defined separately.
AE Application Entity
AL Application Layer
ALME Application Layer Management Entity
ALP Application Layer Protocol
APO Application Object
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 15 –
AP Application Process
APDU Application Protocol Data Unit
API Application Process Identifier
AR Application Relationship
AREP Application Relationship End Point
ASCII American Standard Code for Information Interchange
ASE Application service Element
Cnf Confirmation
DL- (as a prefix) data-link-
DLC Data-link Connection
DLCEP Data-link Connection End Point
DLL Data-link layer
DLM Data-link-management
DLSAP Data-link service Access Point
DLSDU DL-service-data-unit
FAL Fieldbus Application Layer
ID Identifier
IEC International Electrotechnical Commission
Ind Indication
LME Layer Management Entity
OSI Open Systems Interconnect
QoS Quality of service
Req Request
Rsp Response
SAP Service Access Point
SDU Service Data Unit
SMIB System Management Information Base
SMK System Management Kernel
VFD Virtual Field Device
3.4 Conventions
The FAL is defined as a set of object-oriented ASEs. Each ASE is specified in a separate
subclause. Each ASE specification is composed of three parts: its class definitions, its
services, and its protocol specification. The first two are contained in IEC 61158-5 subseries.
The protocol specification for each of the ASEs is defined in this standard.
The class definitions define the attributes of the classes supported by each ASE. The
attributes are accessible from instances of the class using the Management ASE services
specified in IEC 61158-5 standard. The service specification defines the services that are
provided by the ASE.
The data-link layer mapping definitions are described using templates. Each template consists
of a list of attributes for the class. The general form of the template is defined in
IEC 61158-5-5.
Event
Current
# / condition Next state
state
=> action
Name of The Events or conditions that trigger this state transaction. The next
this current state after
transition. state to => the actions
which this The actions that are taken when the above events or in this
state conditions are met. The actions are always indented below transition is
transition events or conditions. taken.
applies.
:= Value of an item on the left is replaced by value of an item on the right. If an item on the
right is a parameter, it comes from the primitive shown as an input event.
Example:
Identifier := reason
means value of a 'reason' parameter is assigned to a parameter called 'Identifier.'
Example:
Identifier := "abc"
means value "abc" is assigned to a parameter named 'Identifier.'
= A logical condition to indicate an item on the left is equal to an item on the right.
< A logical condition to indicate an item on the left is less than the item on the right.
> A logical condition to indicate an item on the left is greater than the item on the right.
<> A logical condition to indicate an item on the left is not equal to an item on the right.
&& Logical "AND"
|| Logical "OR"
This construct allows the execution of a sequence of actions in a loop within one transition.
The loop is executed for all values from start_value to end_value.
Example:
for (Identifier := start_value to end_value)
actions
endfor
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 17 –
This construct allows the execution of alternative actions depending on some condition (which
might be the value of some identifier or the outcome of a previous action) within one transition.
Example:
If (condition)
actions
else
actions
endif
Readers are strongly recommended to refer to the subclauses for the AREP attribute
definitions, the local functions, and the FAL-PDU definitions to understand protocol machines.
It is assumed that readers have sufficient knowledge of these definitions, and they are used
without further explanations.
4 Abstract syntax
The productions defined here shall be used with the rules for APDU encoding (see 5.1.2).
4.1.5 InvokeID
4.1.9 Protocol-code
4.1.10 Block-number
4.1.11 Block-length
4.1.12 Protocol-data
4.1.14 Destination-address
4.1.15 Source-address
4.1.16 Destination-node
4.1.17 Source-node
4.1.18 Destination-subnode
4.1.19 Source-subnode
ConfirmedServiceRequest::= CHOICE {
read-Request [0] IMPLICIT Read-RequestPDU,
write-Request [3] IMPLICIT Write-RequestPDU,
start-Request [6] IMPLICIT Start-RequestPDU,
stop-Request [9] IMPLICIT Stop-RequestPDU,
status-Request [15] IMPLICIT Status-RequestPDU,
identify-Request [18] IMPLICIT Identify-RequestPDU,
getAttributes1-Request [21] IMPLICIT GetAttributes-RequestPDU, -- short form
getAttributes2-Request [35] IMPLICIT GetAttributes-RequestPDU, -- long form
reset-Request [36] IMPLICIT Reset-RequestPDU,
resume-Request [39] IMPLICIT Resume-RequestPDU
}
BS EN 61158-6-9:2014
– 20 – IEC 61158-6-9:2014 © IEC 2014
4.2.3 ConfirmedServiceResponse
4.2.4 ConfirmedServiceError
4.3.1.1 Ap_AccessProtectionSupported
4.3.1.2 Ap_AccessControl
4.3.3.1 Fi_AccessPrivilege
}
4.3.3.2 Fi_State
4.3.4.1 Mn_PduSupportedMap
4.3.5.1 Vr_AccessPrivilege
4.3.6.1 Gn_Deletable
4.3.6.2 Gn_KeyAttribute
4.3.6.3 Gn_Length
Gn_NumericID ::= Unsigned16 -- The values of this parameter are unique within an AP.
4.3.6.6 Gn_Name
Gn_ObjectDefinition ::= OctetString -- The semantics of this parameter are application specific.
4.3.6.9 Gn_Reusable
4.3.6.10 Gn_SubIndex
4.3.7.3 DataTypeList
4.3.7.4 StaticList
4.3.7.5 FunctionInvocationDefinition
Floating32 ::= BIT STRING SIZE (4) -- ISO/IEC/IEEE 60559 Single precision
4.4.6 Notation for the BitString type
5 Transfer syntax
5.1.1 General
Additional information is to be added to the user data to allow an unique association of the
data at the communication partner. The coding rules for the additional information are
optimized to produce messages as short as possible in accordance with fieldbus requirements.
The frequency of occurrence of special messages is taken into account.
• short messages
• low number of different messages
• some messages such as Read and Write occur especially often.
5.1.2 Coding rules
The structuring of a FMS PDU is done either by inserting explicitly Identification Information or
by implicit agreements.
Insertion of Insertion of
Identification Identification
Information Information
The Identification Information consists of P/C flag, tag and length. The structures and the user
data of the PDU may be identified using this Identification Information.
The semantics of the user data are either known from the context or are universally known
(context specific tags or universal tags). In the syntax description the context specific tags are
enclosed in rectangular brackets. If the semantics of a parameter are implicitly known from
the position in the PDU, no tag is used.
The following restrictions on the usage of implicitly known components (universal tags) shall
be made:
5.1.3.1 General
The Identification Information (ID Info) consists of P/C flag, tag and length, as shown in
Figure 2.
BS EN 61158-6-9:2014
– 30 – IEC 61158-6-9:2014 © IEC 2014
b8 b7 b6 b5 b4 b3 b2 b1
Tag 0 to 6, Length 0 to 14
Figure 2 – Identification
The length is the length of the component in octets if this component is a simple one or the
number of contained components if this component is structured.
The whole ID Info is coded in one octet, if possible. The octet is divided into 3 parts of
different lengths.
If an extension has to be used for both the tag and the length, the tag is encoded in the first
subsequent octet and the length is encoded in the second subsequent octet.
5.1.3.2.1 General
....
P/C tag length Data
If the semantics of the user data are known implicitly from the position in the PDU and the
length is fixed and implicitly known, then no Identification Information is added as shown in
Figure 4.
....
Data
Representation of the value true or false in one octet as shown in Figure 5 and Figure 6.
Notation: Boolean
Range of values:
Coding: true or false
false is represented by the
value 0, true is represented
by the value FF
bits 8 7 6 5 4 3 2 1
octet
1 1 1 1 1 1 1 1 1
bits 8 7 6 5 4 3 2 1
octet
1 0 0 0 0 0 0 0 0
Integer32 -2 31 ≤ i ≤ 2 31 – 1 4 octets
bits 8 7 6 5 4 3 2 1
octets
1 SN 2 14 2 13 2 12 2 11 2 10 29 28
2 27 26 25 24 23 22 21 20
Coding Binary
bits 8 7 6 5 4 3 2 1
octets
1 2 15 2 14 2 13 2 12 2 11 2 10 29 28
2 27 26 25 24 23 22 21 20
LSB
bits 8 7 6 5 4 3 2 1
octets Exponent (E)
1 SN 27 26 25 24 23 22 21
(E) Fraction (F)
2 20 2 -1 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7
Fraction (F)
3 2 -8 2 -9 2-10 2-11 2-12 2-13 2-14 2-15
Fraction (F)
4 2-16 2-17 2-18 2-19 2-20 2-21 2-22 2 -23
SN: sign 0 = positive, 1 = negative
Notation: Visible-String
bits 8 7 6 5 4 3 2 1
octets
1 first character
2 second character
. etc.
.
n
bits 8 7 6 5 4 3 2 1
octets
1
.
n
The data type Date consists of a calendar date and a time as shown in Table 2 and Figure 12.
Notation: Date/Time
Range of Values: ms to 99 years
Coding: in 7 octets
Table 2 – Coding for Date type
bits 8 7 6 5 4 3 2 1
octets
1 2 15 2 14 2 13 2 12 2 11 2 10 29 28
2 27 26 25 24 23 22 21 20 0...59 999 ms
3 RSV RSV 25 24 23 22 21 20 0...59 min
4 SU RSV RSV 24 23 22 21 20 0...23 h
day of week day of month 1...7 d. of w.
5 22 21 20 24 23 22 21 20 1...31 d. of m.
6 RSV RSV 25 24 23 22 21 20 1...12 months
7 RSV 26 25 24 23 22 21 20 0 ... 99 years
msb
The time is stated in milliseconds since midnight. At midnight the counting starts with the
value zero.
The date is stated in days relatively to the first of January 1984. On the first of January 1984
the date starts with the value zero.
Notation: Time-of-day
Range of Values: 0 ≤ i ≤ ( 2 28 -1 ) ms
0 ≤ i ≤ ( 2 16 -1 ) days
Coding:
The time is represented as a 32 bit binary value. The first four (MSB) bits shall have the value
zero.
bits 8 7 6 5 4 3 2 1
octets
1 0 0 0 0 2 27 2 26 2 25 2 24 number of
2 2 23 2 22 2 21 2 20 2 19 2 18 2 17 2 16 milliseconds
since
3 2 15 2 14 2 13 2 12 2 11 2 10 29 28 midnight
4 27 26 25 24 23 22 21 20
5 2 15 2 14 2 13 2 12 2 11 2 10 29 28 number of days
since 1984-01-01
6 27 26 25 24 23 22 21 20 optional
msb
The data type Time-difference consists of a time in milliseconds and an optional day count.
The structure is equivalent to the structure of the Time-of-day but it states in this case a Time
Difference.
Notation Time-difference
Range of Values: 0 ≤ i ≤ ( 2 28 – 1 ) ms
0 ≤ i ≤ ( 2 16 – 1 ) days
Coding:
The time is represented as a 32 bit binary value. The first four (MSB) bits shall have the value
zero. The (optional) date is encoded as a 16 bit (2 octets) binary value. The Time Difference
is a string of 4 or 6 octets as shown in Figure 14.
BS EN 61158-6-9:2014
– 36 – IEC 61158-6-9:2014 © IEC 2014
bits 8 7 6 5 4 3 2 1
octets
1 0 0 0 0 2 27 2 26 2 25 2 24 number of
2 2 23 2 22 2 21 2 20 2 19 2 18 2 17 2 16 milliseconds
3 2 15 2 14 2 13 2 12 2 11 2 10 29 28
4 27 26 25 24 23 22 21 20
5 2 15 2 14 2 13 2 12 2 11 2 10 29 28 number of
days
6 27 26 25 24 23 22 21 20 optional
msb
Figure 15 shows the numbering scheme of the bits of the data type Bit String.
Only multiples of eight are legal values of the length (in bits) of the Bit String.
bits 8 7 6 5 4 3 2 1
octets
1 0 1 2 3 4 5 6 7
2 8 9 10 11 12 13 14 15
. etc.
n
This data type is used to represent date and time in the required precision for application
clock synchronization. It is a 64-bit unsigned fixed-point number, which is the time in 1/32s of
a millisecond. When SN bit is 1, the data is negative and in two’s complement representation,
while the data is positive when SN bit is 0. See Figure 16.
bits 8 7 6 5 4 3 2 1
octets SN 2 62 2 61 2 60 2 59 2 58 2 57 2 56
1
2 2 55 2 54 2 53 2 52 2 51 2 50 2 49 2 48
3 2 47 2 46 2 45 2 44 2 43 2 42 2 41 2 40
4 2 39 2 38 2 37 2 36 2 35 2 34 2 33 2 32
5 2 31 2 30 2 29 2 28 2 27 2 26 2 25 2 24
6 2 23 2 22 2 21 2 20 2 19 2 18 2 17 2 16
7 2 15 2 14 2 13 2 12 2 11 2 10 29 28
signed integer
8 27 26 25 24 23 22 21 20 of 8 octets length of
1/32ms unit
msb
5.1.3.3.1 General
User data is always a simple (primitive) component. It is encoded as shown in Figure 16. The
P/C, tag, and length are encoded as shown in Figure 17.
....
P/C tag length Data
If the semantics of the user data are known implicitly from the position in the PDU and the
length is fixed and implicitly known, then no Identification Information is added as shown in
Figure 18.
....
Data
Two special definitions are used to describe user data in the PDUBody definitions, Null and
Packed. They are defined below.
Null has the length zero. There are no subsequent (empty) octets.
BS EN 61158-6-9:2014
– 38 – IEC 61158-6-9:2014 © IEC 2014
Packed contains one or more data elements of the Data types which are chained together
without any gap. The composition is known by the user.
5.1.3.4.1 General
The communication partner shall be able to identify these structures and the components of
these structures. The P/C flag of the ID Info is 1.
5.1.3.4.2 SEQUENCE
The SEQUENCE structure is comparable with a record. It represents a collection of user data
of the same or of different Data types. Before the SEQUENCE structure there is an ID Info,
which conveys the length not in octets but in number of components. The number of
components is less than the total length in octets. In most cases an extension is not
necessary due to this length encoding. Components should be encoded in the order of ANS.1.
See Figure 19. Neither duplication nor deletion of an item is allowed.
length = number of
1 tag components
b8 b7 b6 b5 b4 b3 b2 b1
A structure may contain user data or further structures as components. Single components
may be OPTIONAL, i.e. they may be omitted. In this case the ID Info is omitted too. A
SEQUENCE shall be counted as a single component even if it contains several components.
Example:
The hexadecimal notation is used for the following example of encoding. The upper case
letter X is used as a fill-in for unknown values, such as the length of the single components or
the tag of the structure. A lower case letter x represents user data.
5.1.3.4.3 SEQUENCE OF
The structure may contain one or more components. The components may be user data or
structures.
The coding is as for the structure SEQUENCE. For the statement of the number of
components the number of repetitions shall be taken into account. The tags of the Syntax
Description shall be used for the components of SEQUENCE OF. The same tags may be
coded several times in succession.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 39 –
Example:
employeedata [2] IMPLICIT SEQUENCE OF {
[0] Person
}
5.1.3.4.4 CHOICE
Example:
Data ::= CHOICE {
[0] Employeedata,
[1] Clientdata,
[2] Supplierdata
}
Interface to FAL services and protocol machines are specified in this clause.
NOTE The state machines specified in Clause 6 and ARPMs defined in Clause 9 only define the valid events for
each. It is a local matter to handle these invalid events.
The behavior of the FAL is described by three integrated protocol machines. Specific sets of
these protocol machines are defined for different AREP types. The three protocol machines
are: FAL service Protocol Machine (FSPM), the Application Relationship Protocol Machine
(ARPM), and the data-link layer Mapping Protocol Machine (DMPM). The relationship among
these protocol machines as well as primitives exchanged among them are depicted in
Figure 20.
AP _Context
FSP M
#n ARPM
#1 ARPM
DMPM
The FSPM describes the service interface between the AP-Context and a particular AREP.
The FSPM is common to all the AREP classes and does not have any state changes. The
FSPM is responsible for the following activities:
a) to accept service primitives from the FAL service user and convert them into FAL
internal primitives;
b) to select an appropriate ARPM state machine based on the AREP Identifier
parameter supplied by the AP-Context and send FAL internal primitives to the
selected ARPM;
c) to accept FAL internal primitives from the ARPM and convert them into service
primitives for the AP-Context;
d) to deliver the FAL service primitives to the AP-Context based on the AREP Identifier
parameter associated with the primitives.
The ARPM describes the establishment and release of an AR and exchange of FAL-PDUs
with a remote ARPM(s). The ARPM is responsible for the following activities:
e) to accept FAL internal primitives from the FSPM and create and send other FAL
internal primitives to either the FSPM or the DMPM, based on the AREP and
primitive types;
f) to accept FAL internal primitives from the DMPM and send them to the FSPM as a
form of FAL internal primitives;
g) if the primitives are for the Establish or Abort service, it shall try to establish or
release the specified AR.
The DMPM describes the mapping between the FAL and the DLL. It is common to all the
AREP types and does not have any state changes. The DMPM is responsible for the following
activities:
h) to accept FAL internal primitives from the ARPM, prepare DLL service primitives, and
send them to the DLL;
i) to receive DLL indication or confirmation primitives from the DLL and send them to
the ARPM in a form of FAL internal primitives.
This fieldubs defines a single state machine, the VCR Connection protocol machine. Its
relationship with its user and with the underlying FSPM, as well as primitives exchanged
among them, are depicted in Figure 21.
VCR User
VCR PM
FSPM
The VCR Protocol Machine (VCR PM) is an VCR PM state machine that describes the
operation of VCRs that are dynamically established by exchanging Initiate service APDUs.
The VCR PM is responsible for the following activities:
1. to accept service request and response primitives from the VCR service user;
2. to accept service indication and confirmation primitives from the ARPMs;
3. to deliver service indication and confirmation primitives to the VCR user.
4. to issue service request and response primitives to the ARPM based on the rules
of its state machine.
7.2.1 General
The VCR PM state machine, illustrated in Figure 22, describes the VCR endpoint behavior.
For connectionless VCRs, the state machine begins in the OPEN state.
CONNECTION-
NOT-ESTABLISHED
S16G~S23G
S25D~S30D
S1G, S2G
S10D
CONNECTION- CONNECTION-
ESTABLISHING S39, S40, S42~S45, ESTABLISHING
CALLED S47~S53, S55, S56, CALLING
S59, S60, S62, S63, S64
S14G, S15G
S24D
CONNECTION-
ESTABLISHED
NOTE The transaction numbers with “G” suffix are for the calling protocol machine and those with “D” suffix are
for the called protocol machine. The transactions without a suffix apply to both protocol machines, or those whose
role is yet to be determined.
CONNECTION-ESTABLISHING (CALLING)
The local FMS user wishes to establish the connection. Only the service primitives ASC.cnf(+),
ASC.cnf(-), Abort.req and ABT.ind are allowed. All other services shall be rejected with the
Abort service. This state is abbreviated as CON-ESTABLISHING-CALLING.
BS EN 61158-6-9:2014
– 42 – IEC 61158-6-9:2014 © IEC 2014
CONNECTION-ESTABLISHING (CALLED)
The remote FMS user wishes to establish the connection. Only the service primitives
Initiate.rsp(+), Initiate.rsp(-), Abort.req and ABT.ind are allowed. All other services shall be
rejected with the Abort service. This state is abbreviated as CON-ESTABLISHING-CALLED.
CONNECTION-ESTABLISHED
The VCR is established. The service primitives Initiate.req, Initiate.rsp(+), Initiate.rsp(-) are
not allowed and shall be rejected with the Abort service. The following actions shall be taken
to reset a VCR ( Reset VCR ).
• Set attribute "Outstanding services Counter Sending" and attribute "Outstanding services
Counter Receiving" of the VCR (dynamic part) to 0.
• Set state of the VCR to "CONNECTION-NOT-ESTABLISHED".
7.2.3 AP-VCR initiation state transitions
Event or condition
# Current state Next state
=> action
S1G CONNECTION- Initiate.req CONNECTION –
NOT- && VCR is valid ESTABLISHING-
ESTABLISHED && VCR type = QUB CALLING
=>
ASC.req{
Data := Initiate-RequestPDU
}
S2G CONNECTION- Initiate.req CONNECTION –
NOT- && VCR is valid ESTABLISHING-
ESTABLISHED && VCR type <> QUB CALLING
=>
ASC.req{
Data := NULL
}
S3G CONNECTION- Initiate.req CONNECTION-
NOT- && VCR is not valid NOT-
ESTABLISHED => ESTABLISHED
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := VCR error
}
S4 CONNECTION- Abort.req CONNECTION-
NOT- => NOT-
ESTABLISHED (no actions taken) ESTABLISHED
S5 CONNECTION- FMS service.primitive other than Initiate & Abort CONNECTION-
NOT- => NOT-
ESTABLISHED Abort.ind{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := User error
}
S6 CONNECTION- ABT.ind CONNECTION-
NOT- => NOT-
ESTABLISHED (no actions taken) ESTABLISHED
S7 CONNECTION- Faulty or unknown FAS service primitive CONNECTION-
NOT- => NOT-
ESTABLISHED ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := FAS error
}
S8 CONNECTION- FAS service primitive other than ASC.ind and ABT.ind CONNECTION-
NOT- => NOT-
ESTABLISHED ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := Connection state conflict FAS
}
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 43 –
Event or condition
# Current state Next state
=> action
S9 CONNECTION- ASC.ind CONNECTION-
NOT- && Data = not allowed, unknown or faulty FMS PDU NOT-
ESTABLISHED => ESTABLISHED
ABT.req{
AbortIdentifier := FMS,
ReasonCode := FMS PDU error
}
S10D CONNECTION- ASC.ind CONNECTION –
NOT- && Data Initiate-RequestPDU ESTABLISHING-
ESTABLISHED && VCR is valid CALLED
&& Max FMS PDU length test is positive
&& FmsFeaturesSupported test is positive
=>
Initiate.ind{
}
S11D CONNECTION- ASC.ind CONNECTION-
NOT- && Data = Initiate-RequestPDU NOT-
ESTABLISHED && VCR is invalid ESTABLISHED
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := VCR error
}
S12D CONNECTION- ASC.ind CONNECTION-
NOT- && Data = Initiate-RequestPDU NOT-
ESTABLISHED && VCR is valid ESTABLISHED
&& Max FMS PDU length test is negative
=>
ASC.rsp(-){
Data := Initiate-ErrorPDU{
ErrorCode := max-fms-pdu-size-insufficient
}
}
S13D CONNECTION- ASC.ind CONNECTION-
NOT- && Data = Initiate-RequestPDU NOT-
ESTABLISHED && VCR is valid ESTABLISHED
&& Max FMS PDU length test is positive
&& FmsFeaturesSupported test is negative
=>
ASC.rsp(-){
Data := Initiate-ErrorPDU{
ErrorCode := feature-not-supported
}
}
S14G CONNECTION - ASC.cnf(+) CONNECTION-
ESTABLISHING && Data = Initiate-ResponsePDU ESTABLISHED
-CALLING && VCR type = QUB
=>
Initiate.cnf(+){
}
S15G CONNECTION - ASC.cnf(+) CONNECTION-
ESTABLISHING && Data = NULL ESTABLISHED
-CALLING && VCR type = QUU or BNU
=>
Initiate.cnf(+){
}
S16G CONNECTION - ASC.cnf(-) CONNECTION-
ESTABLISHING && Data = Initiate-ErrorPDU NOT-
-CALLING && VCR type = QUB ESTABLISHED
=>
Initiate.cnf(-){
ErrorCode := Error code in ASC.cnf
},
reset VCR
S17G CONNECTION - ASC.cnf(-) CONNECTION-
ESTABLISHING && Data = NULL NOT-
-CALLING && VCR type = QUU or BNU ESTABLISHED
=>
Initiate.cnf(-){
ErrorCode := Error code in ASC.cnf
},
reset VCR
BS EN 61158-6-9:2014
– 44 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
S18G CONNECTION - ABT.ind CONNECTION-
ESTABLISHING => NOT-
-CALLING Abort.ind{ ESTABLISHED
AbortIdentifier := AbortIdentifier of ABT.ind,
ReasonCode := ReasonCode of ABT.ind
},
reset VCR
S19G CONNECTION - Abort.req CONNECTION-
ESTABLISHING => NOT-
-CALLING ABT.req{ ESTABLISHED
AbortIdentifier := AbortIdentifier of Abort.req,
ReasonCode := ReasonCode of Abort.req
},
reset VCR
S20G CONNECTION - Faulty or unknown FAS service primitive CONNECTION-
ESTABLISHING => NOT-
-CALLING ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := FAS error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := FAS error
},
reset VCR
S21G CONNECTION - FAS service primitive other than ASC.cnf and ABT.ind CONNECTION-
ESTABLISHING => NOT-
-CALLING ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode :=Connection state conflict FAS
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode :=Connection state conflict FAS
},
reset VCR
S22G CONNECTION - ASC.cnf CONNECTION-
ESTABLISHING && Data = not allowed, unknown or faulty FMS PDU NOT-
-CALLING => ESTABLISHED
ABT.req{
AbortIdentifier := FMS,
ReasonCode := FMS PDU error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := FMS PDU error
},
reset VCR
S23G CONNECTION - FMS service.primitive other than Initiate.rsp and Abort.req CONNECTION-
ESTABLISHING => NOT-
-CALLING ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := User error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := User error
},
reset VCR
S24D CONNECTION - Initiate.rsp(+) CONNECTION-
ESTABLISHING => ESTABLISHED
-CALLED ASC.rsp(+){
Data = Initiate-ResponsePDU
}
S25D CONNECTION - Initiate.rsp(-) CONNECTION-
ESTABLISHING => NOT-
-CALLED ASC.rsp(-){ ESTABLISHED
Data = Initiate-ErrorPDU{
ErrorCode = ErrorCode of Initiate.rsp
}
},
reset VCR
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 45 –
Event or condition
# Current state Next state
=> action
S26D CONNECTION - Abort.req CONNECTION-
ESTABLISHING => NOT-
-CALLED ABT.req{ ESTABLISHED
AbortIdentifier := AbortIdentifier of Abort.req,
ReasonCode := ReasonCode of Abort.req
},
reset VCR
S27D CONNECTION - ABT.ind CONNECTION-
ESTABLISHING => NOT-
-CALLED Abort.ind{ ESTABLISHED
AbortIdentifier := AbortIdentifier of ABT.ind,
ReasonCode := ReasonCode of ABT.ind
},
reset VCR
S28D CONNECTION - Faulty or unknown FAS service primitive CONNECTION-
ESTABLISHING => NOT-
-CALLED ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := FAS error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := FAS error
},
reset VCR
S29D CONNECTION - FAS service primitive other ABT.ind CONNECTION-
ESTABLISHING => NOT-
-CALLED ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode :=Connection state conflict FAS
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode :=Connection state conflict FAS
},
reset VCR
S30D CONNECTION - FMS service.primitive other than Initiate.rsp and Abort.req CONNECTION-
ESTABLISHING => NOT-
-CALLED ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := User error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := User error
},
reset VCR
S31 CONNECTION- ConfirmedService.req CONNECTION-
ESTABLISHED && OSCS < ActualMaxSCC ESTABLISHED
&& InvokeID not existent
&& PDU length ≤ Max FMS PDU sending
&& FmsFeaturesSupported test (client) positive
=>
DTC.req{
Data := Confirmed-RequestPDU
},
OSCS := OSCS + 1
S32 CONNECTION- ConfirmedService.req CONNECTION-
ESTABLISHED && OSCS = ActualMaxSCC ESTABLISHED
=>
Reject.ind{
DetectedHere := true,
Original InvokeID := InvokeID in ConfirmedService.req,
RejectPDUType := Confirmed-RequestPDU,
RejectCode := Max-services-overflow
}
BS EN 61158-6-9:2014
– 46 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
S33 CONNECTION- ConfirmedService.req CONNECTION-
ESTABLISHED && OSCS < ActualMaxSCC ESTABLISHED
&& InvokeID already existent
=>
Reject.ind{
DetectedHere := true,
Original InvokeID := InvokeID in ConfirmedService.req,
RejectPDUType := Confirmed-RequestPDU,
RejectCode := Invoke-ID-exists
}
S34 CONNECTION- ConfirmedService.req CONNECTION-
ESTABLISHED && OSCS < ActualMaxSCC ESTABLISHED
&& InvokeID not existent
&& PDU length > Max FMS PDU sending
=>
Reject.ind{
DetectedHere := true,
Original InvokeID := InvokeID in ConfirmedService.req,
RejectPDUType := Confirmed-RequestPDU,
RejectCode := PDU-size
}
S35 CONNECTION- ConfirmedService.req CONNECTION-
ESTABLISHED && OSCS < ActualMaxSCC ESTABLISHED
&& InvokeID not existent
&& PDU length ≤ Max FMS PDU sending
&& FmsFeaturesSupported test (client) negative
=>
Reject.ind{
DetectedHere := true,
Original InvokeID := InvokeID in ConfirmedService.req,
RejectPDUType := Confirmed-RequestPDU,
RejectCode := Feature-not-supported-connection-oriented
}
S36 CONNECTION- UnconfirmedService.req CONNECTION-
ESTABLISHED && PDU length ≤ Max FMS PDU sending ESTABLISHED
&& FmsFeaturesSupported test (client) positive
=>
DTU.req{
Data := Unconfirmed-PDU
}
S37 CONNECTION- UnconfirmedService.req CONNECTION-
ESTABLISHED && PDU length > Max FMS PDU sending ESTABLISHED
=>
Reject.ind{
DetectedHere := true,
Original InvokeID := InvokeID in UnconfirmedService.req,
RejectPDUType := Unconfirmed-PDU,
RejectCode := PDU-size
}
S38 CONNECTION- UnconfirmedService.req CONNECTION-
ESTABLISHED && PDU length ≤ Max FMS PDU sending ESTABLISHED
&& FmsFeaturesSupported test (client) negative
=>
Reject.ind{
DetectedHere := true,
Original InvokeID := InvokeID in UnconfirmedService.req,
RejectPDUType := Unconfirmed-PDU,
RejectCode := Feature-not-supported-connection-oriented
}
S39 CONNECTION- Abort.req CONNECTION-
ESTABLISHED => NOT-
ABT.req{ ESTABLISHED
AbortIdentifier := AbortIdentifier of Abort.req,
ReasonCode := ReasonCode of Abort.req
},
reset VCR
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 47 –
Event or condition
# Current state Next state
=> action
S40 CONNECTION- Faulty, unknown or not-allowed FMS service.primitive CONNECTION-
ESTABLISHED => NOT-
ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := User error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := User error
},
reset VCR
S41 CONNECTION- DTC.ind CONNECTION-
ESTABLISHED && Data = Confirmed-ServicePDU ESTABLISHED
&& PDU length ≤ Max FMS PDU receiving
&& OSCR < ActualMaxRCC
&& InvokeID not existent
&& Features Supported test (server) positive
=>
ConfirmedService.ind{
}
OSCR := OSCR + 1
S42 CONNECTION- DTC.ind CONNECTION-
ESTABLISHED && Data = Confirmed-ServicePDU NOT-
&& PDU length > Max FMS PDU receiving ESTABLISHED
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := PDU-size
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := PDU-size
},
reset VCR
S43 CONNECTION- DTC.ind CONNECTION-
ESTABLISHED && Data = Confirmed-ServicePDU NOT-
&& PDU length ≤ Max FMS PDU receiving ESTABLISHED
&& OSCR ≥ ActualMaxRCC
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := Max-services-overflow
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := Max-services-overflow
},
reset VCR
S44 CONNECTION- DTC.ind CONNECTION-
ESTABLISHED && Data = Confirmed-ServicePDU NOT-
&& PDU length ≤ Max FMS PDU receiving ESTABLISHED
&& OSCR < ActualMaxRCC
&& InvokeID already existent
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := InvokeID-error-request
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := InvokeID-error-request
},
reset VCR
BS EN 61158-6-9:2014
– 48 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
S45 CONNECTION- DTC.ind CONNECTION-
ESTABLISHED && Data = Confirmed-ServicePDU NOT-
&& PDU length ≤ Max FMS PDU receiving ESTABLISHED
&& OSCR < ActualMaxRCC
&& InvokeID not existent
&& Features Supported test (server) negative
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := Feature-not-supported
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := Feature-not-supported
},
reset VCR
S46 CONNECTION- DTU.ind CONNECTION-
ESTABLISHED && Data = Unconfirmed-PDU ESTABLISHED
&& PDU length ≤ Max FMS PDU receiving
&& Features Supported test (server) positive
=>
UnconfirmedService.ind{
}
S47 CONNECTION- DTU.ind CONNECTION-
ESTABLISHED && Data = Unconfirmed-PDU NOT-
&& PDU length > Max FMS PDU receiving ESTABLISHED
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := PDU-size
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := PDU-size
},
reset VCR
S48 CONNECTION- DTU.ind CONNECTION-
ESTABLISHED && Data = Unconfirmed-PDU NOT-
&& PDU length ≤ Max FMS PDU receiving ESTABLISHED
&& Features Supported test (server) negative
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := Feature-not-supported
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := Feature-not-supported
},
reset VCR
S49 CONNECTION- ABT.ind CONNECTION-
ESTABLISHED => NOT-
Abort.ind{ ESTABLISHED
AbortIdentifier := AbortIdentifier of ABT.ind,
ReasonCode := ReasonCode of ABT.ind
},
reset VCR
S50 CONNECTION- ASC.ind CONNECTION-
ESTABLISHED && Data = Initiate-RequestPDU NOT-
=> ESTABLISHED
ABT.req{
AbortIdentifier := FMS,
ReasonCode := Connection-state-conflict-FMS
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := Connection-state-conflict-FMS
},
reset VCR
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 49 –
Event or condition
# Current state Next state
=> action
S51 CONNECTION- Faulty or unknown FAS service primitive CONNECTION-
ESTABLISHED => NOT-
ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := FAS error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := FAS error
},
reset VCR
S52 CONNECTION- Not-allowed FAS service primitive CONNECTION-
ESTABLISHED => NOT-
ABT.req{ ESTABLISHED
AbortIdentifier := FMS,
ReasonCode := Connection-state-conflict-FAS
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := Connection-state-conflict-FAS
},
reset VCR
S53 CONNECTION- valid FAS service primitive CONNECTION-
ESTABLISHED && Data = not-allowed, unknown or faulty FMS PDU NOT-
=> ESTABLISHED
ABT.req{
AbortIdentifier := FMS,
ReasonCode := FMS-PDU-error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := FMS-PDU-error
},
reset VCR
S54 CONNECTION- ConfirmedService.rsp CONNECTION-
ESTABLISHED && InvokeID (server) existent ESTABLISHED
&& services in .rsp and .ind are identical
&& PDU length ≤ Max FMS PDU sending
=>
DTC.rsp{
Data := Confirmed-ResponsePDU
},
OSCR := OSCR – 1
S55 CONNECTION- ConfirmedService.rsp CONNECTION-
ESTABLISHED && InvokeID (server) not existent NOT-
=> ESTABLISHED
ABT.req{
AbortIdentifier := FMS,
ReasonCode := InvokeID-error-response
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := InvokeID-error-response
},
reset VCR
S56 CONNECTION- ConfirmedService.rsp CONNECTION-
ESTABLISHED && InvokeID (server) existent NOT-
&& services in .rsp and .ind are not identical ESTABLISHED
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := service-error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := service-error
},
reset VCR
BS EN 61158-6-9:2014
– 50 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
S57 CONNECTION- ConfirmedService.rsp CONNECTION-
ESTABLISHED && InvokeID (server) existent ESTABLISHED
&& services in .rsp and .ind are identical
&& PDU length > Max FMS PDU sending
=>
DTC.rsp{
Data := Reject-PDU{
Original InvokeID := InvokeID in ConfirmedService.req,
RejectCode := PDU-size
}
},
OSCR := OSCR – 1
S58 CONNECTION- DTC.cnf CONNECTION-
ESTABLISHED && Data = Confirmed-ResponsePDU ESTABLISHED
&& PDU length ≤ Max FMS PDU receiving
&& InvokeID (client) existent
&& services in .cnf and .req are identical
=>
ConfirmedService.cnf{
},
OSCR := OSCR – 1
S59 CONNECTION- DTC.cnf CONNECTION-
ESTABLISHED && Data = Confirmed-ResponsePDU NOT-
&& PDU length > Max FMS PDU receiving ESTABLISHED
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := PDU-size
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := PDU-size
},
reset VCR
S60 CONNECTION- DTC.cnf CONNECTION-
ESTABLISHED && Data = Confirmed-ResponsePDU NOT-
&& PDU length ≤ Max FMS PDU receiving ESTABLISHED
&& InvokeID (client) not existent
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := InvokeID-error-response
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := InvokeID-error-response
},
reset VCR
S61 CONNECTION- DTC.cnf CONNECTION-
ESTABLISHED && Data = Reject-PDU ESTABLISHED
&& Original InvokeID (client) existent
&& RejectCode:= PDU-size
=>
Reject.ind{
DetectedHere := false,
Original InvokeID := InvokeID in Reject-PDU,
RejectPDUType := Confirmed-Response-PDU,
RejectCode := PDU-size
},
OSCS := OSCS -1
S62 CONNECTION- DTC.cnf CONNECTION-
ESTABLISHED && Data = Reject-PDU NOT-
&& Original InvokeID (client) not existent ESTABLISHED
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := InvokeID-error-response
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := InvokeID-error-response
},
reset VCR
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 51 –
Event or condition
# Current state Next state
=> action
S63 CONNECTION- DTC.cnf CONNECTION-
ESTABLISHED && Data = Reject-PDU NOT-
&& Original InvokeID (client) existent ESTABLISHED
&& RejectCode:<> PDU-size
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := FMS-PDU-error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := FMS-PDU-error
},
reset VCR
S64 CONNECTION- DTC.cnf CONNECTION-
ESTABLISHED && Data = Confirmed-ResponsePDU NOT-
&& InvokeID (client) existent ESTABLISHED
&& Services in .req and .cnf are not identical
=>
ABT.req{
AbortIdentifier := FMS,
ReasonCode := Service-error
},
Abort.ind{
AbortIdentifier := FMS,
ReasonCode := Service-error
},
reset VCR
See Table 4 and Table 5 for the primitives exchanged between the FAL-User and the VCR PM.
8.1 General
FAS service Protocol Machine is common to all the AREP types. Only applicable primitives
are different among different AREP types. It has one state called "ACTIVE" as shown in
Figure 23.
Event or condition
# Current state Next state
=> action
S1 ACTIVE ASC.req ACTIVE
&& SelectArep (Arep_Id) = "True"
=>
ASC_req {
user_data := Data,
remote_dlcep_address := Remote_DLCEP_Address
}
S2 ACTIVE ASC.rsp(+) ACTIVE
&& SelectArep (Arep_Id) = "True"
=>
ASC_rsp(+) {
user_data := Data
}
S3 ACTIVE ASC.rsp(-) ACTIVE
&& SelectArep (Arep_Id) = "True"
=>
ASC_rsp(-) {
user_data := Data
}
S4 ACTIVE DTU.req ACTIVE
&& SelectArep (Arep_Id) = "True"
=>
DTU_req {
remote_dlsap_address := Remote_DLSAP_Address,
user_data := Data
}
S5 ACTIVE DTC.req ACTIVE
&& SelectArep (Arep_Id) = "True"
=>
DTC_req {
user_data := Data
}
S6 ACTIVE DTC.rsp ACTIVE
&& SelectArep (Arep_Id) = "True"
=>
DTC_rsp {
user_data := Data
}
S7 ACTIVE Abort.req ACTIVE
&& SelectArep (Arep_Id) = "True"
=>
Abort_req {
identifier := Identifier,
reason_code := Reason_Code,
additional_detail := Additional_Detail
}
S8 ACTIVE FCMP.req ACTIVE
&& SelectArep (Arep_Id) = “True”
=>
FCMP_req {
}
S9 ACTIVE GBM.req ACTIVE
&& SelectArep (Arep_Id) = “True”
=>
GBM_req {
}
NOTE 1 A primitive generated in the FSPM sender state machine is sent to an appropriate ARPM that is selected
by the FSPM using the SelectArep function. The Arep_Id parameter supplied by the FAS user is the argument of this
function.
NOTE 2 If the SelectArep function returns the value of False, it is a local matter to report such instance and the
FSPM does not generate any primitives to the ARPM.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 55 –
Event or condition
# Current state Next state
=> action
R1 ACTIVE ASC_ind ACTIVE
=>
ASC.ind {
Arep_Id := arep_id,
Data := user_data
}
R2 ACTIVE ASC_cnf(+) ACTIVE
=>
ASC.cnf(+) {
Arep_Id := arep_id,
Data := user_data
}
R3 ACTIVE ASC_cnf(-) ACTIVE
=>
ASC.cnf(-) {
Arep_Id := arep_id,
Data := user_data
}
R4 ACTIVE DTU_ind ACTIVE
=>
DTU.ind {
Arep_Id := arep_id,
Remote_DLSAP_Address := remote_dlsap_address,
Duplicate_FAS-SDU := duplicate_fas_sdu,
Data := user_data,
Local_Timeliness := local_timeliness,
Remote_Timeliness := remote_timeliness
}
R5 ACTIVE DTC_ind ACTIVE
=>
DTC.ind {
Arep_Id := arep_id,
Data := user_data
}
R6 ACTIVE DTC_cnf ACTIVE
=>
DTC.cnf {
Arep_Id := arep_id,
Data := user_data
}
R7 ACTIVE Abort_ind ACTIVE
=>
Abort.ind {
Arep_Id := arep_id,
Locally_Generated := locally_generated,
Identifier := identifier,
Reason_Code := reason_code,
Additional_Detail := additional_detail
}
R8 ACTIVE FCMP_cnf ACTIVE
=>
FCMP.cnf {
Arep_Id := arep_id,
Status := status
}
R9 ACTIVE GBM_cnf(+) ACTIVE
=>
GBM.cnf(+) {
Arep_Id := arep_id,
Duplicate_FAS-SDU := duplicate_fas_sdu,
Data := user_data,
Local_Timeliness := local_timeliness,
Remote_Timeliness := remote_timeliness
}
R10 ACTIVE GBM_cnf(-) ACTIVE
=>
GBM.cnf(-) {
Arep_Id := arep_id,
}
BS EN 61158-6-9:2014
– 56 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
R11 ACTIVE FSTS_ind ACTIVE
=>
FSTS.ind {
Arep_Id := arep_id,
Reported_Status := reported_status
}
The parameters used with the primitives exchanged between the FSPM and the ARPM are
described in Table 11.
Table 11 – Parameters used with primitives exchanged between FSPM and ARPM
arep_id This parameter is used to unanimously identify an instance of the AREP that has issued a
primitive. A means for such identification is not specified by this specification.
user_data This parameter conveys FAS-User data.
locally_generated This parameter conveys value that is used for the Locally_Generated parameter.
identifier This parameter conveys value that is used for the Identifier parameter.
reason_code This parameter conveys value that is used for the Reason_Code parameter.
additional_detail This parameter conveys value that is used for the Additional_Detail parameter.
duplicate_fas_sdu This parameter conveys value that is used for the Duplicate_FAS-SDU parameter.
remote_dlsap_ This parameter conveys value that is used for the Remote_DLSAP_Address parameter.
address
status This parameter conveys value that is used for the Status parameter.
reported_status This parameter conveys a Data Like Layer event status.
local_timeliness This parameter conveys value that is used for the Local_Timeliness parameter.
remote_timeliness This parameter conveys value that is used for the Remote_Timeliness parameter.
9.1.1 General
Subclause 9.1 describes the mapping of the FAS to the Fieldbus data-link layer. It does not
redefine the DLSAP attributes or DLME attributes that are or will be defined in the data-link
layer specification; rather, it defines how they are used by each of the AR classes. A means
to configure and monitor the values of these attributes is provided by Network Management.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 57 –
The following class definitions describe the DLSAP attributes and the DLME attributes
required to support each of the AREP classes.
NOTE Undefined attributes use the same definitions as those previously defined.
The DLL Mapping attributes and their permitted values and the DLL services used with the
QUU AREP class are defined in this subclause.
CLASS: QuuCl
PARENT CLASS: QueuedUser-TriggeredUnidirectionalAREP
ATTRIBUTES:
1. (m) KeyAttribute: LocalDlsapAddress
2. (m) Attribute: RemoteDlsapAddress
3. (m) Attribute: LocalDlsapRole (Basic, Group)
4. (c) Constraint: Role = Source
4.1 (m) Attribute: DefaultQosAsSender
4.2 (m) Attribute DllPriority (Urgent, Normal, TimeAvailable)
4.3 (m) Attribute: MaxConfirmDelayOnUnitdata
4.4 (m) Attribute: DlpduAuthentication (Ordinary, Source, Maximal)
4.5 (m) Attribute: DlSchedulingPolicy (Implicit)
4.6 (m) Attribute: ExplicitQueue (True, False)
5. (c) Constraint: ExplicitQueue = True
5.1 (m) Attribute: QueueBindings—either for a sender or a receiver
5.2 (m) Attribute: QueueIdentifier
5.3 (m) Attribute: MaxQueueDepth
5.4 (m) Attribute: MaxDlsduSize
DLL SERVICES:
1. (m) OpsService: DL-Unitdata
2. (c) Constraint: ExplicitQueue = True
3. (m) OpsService: DL-Get
9.1.2.2 Attributes
9.1.2.2.1 LocalDlsapAddress
This attribute specifies the DLSAP address to which this AREP is attached. This attribute is a
DLSAP-address if the Role attribute has the value of Source, and either a group DL-address
or a DLSAP-address if the Role attribute has the value of Sink.
This attribute supplies the value for the “DL(SAP)-address” parameter specified in the DLL.
This attribute contains the following three sub-attributes: Link Address, Node Address, and
Selector.
9.1.2.2.2 RemoteDlsapAddress
This attribute specifies the remote address to which FAS-PDUs are sent (for Source AREPs),
or from which they are received (for Sink AREPs).
If the ConfigurationType attribute is Linked, the value of this attribute has been configured. If
it is Free, the value of this attribute is provided with a service request.
This attribute contains the following three sub-attributes: Link Address, Node Address, and
Selector.
9.1.2.2.3 LocalDlsapRole
This attribute specifies the behavior of the local DLSAP to be used. If the Role is Source, this
attribute has the value of Basic. If the Role is Sink, it has the value of either Basic or Group.
BS EN 61158-6-9:2014
– 58 – IEC 61158-6-9:2014 © IEC 2014
This attribute supplies the value for the “DL(SAP)-role” parameter specified by the DLL.
9.1.2.2.4 DefaultQosAsSender
The DefaultQosAsSender attributes specify the DLL quality of service that is used by the
sending AREP. The receiving DLL shall support the quality of service specified by these
attributes.
9.1.2.2.5 DllPriority
This attribute defines the DLL priority, and thus restricts the maximum length of an FAS-PDU,
of the conveyance path of an AR.
This attribute supplies the value for the “DLL priority” parameter of the DLL. The values
Urgent, Normal, and Time-Available correspond to URGENT, NORMAL, and TIME-
AVAILABLE as defined in IEC 61158-3-1 and IEC 61158-4-1, respectively.
NOTE It is not possible to use different priorities for each FAS-PDU sent from the same QUU AREP.
9.1.2.2.6 MaxConfirmDelayOnUnitdata
This attribute specifies the maximum confirmation delay for a local confirmation from a DL-
Unitdata request primitive.
This attribute supplies the value for the “Max confirm delay on locally-confirmed DL-Unitdata”
parameter of the DLL.
9.1.2.2.7 DlpduAuthentication
This attribute specifies the lower bound of the length of the DL-addresses to be used by the
DLL.
This attribute supplies the value for the “DLPDU authentication” parameter of the DLL. The
values Ordinary, Source, and Maximal correspond to ORDINARY, SOURCE, and MAXIMAL
as defined in IEC 61158-3-1 and IEC 61158-4-1, respectively.
9.1.2.2.8 DlSchedulingPolicy
This attribute provides the guidance to the DLL on the scheduling needed by an AR. For this
AREP, the DLL tries to transmit the FAS-PDU as soon as it is passed from the FAS.
This attribute supplies the value for DL-Scheduling-policy attribute. Only the value Implicit is
used. It corresponds to IMPLICIT as defined in IEC 61158-3-1 and IEC 61158-4-1.
9.1.2.2.9 ExplicitQueue
This attribute specifies, when True, that the characteristics of the associated sending and
receiving queues are explicitly configured and managed through the Network Management.
The value of False means that queues with implementation specific depth and length are
provided by the DLL.
9.1.2.2.10 QueueBindings
The following attributes specify the explicit queue that is bound to this DLSAP. For a sender,
the queue is for sending. For a receiver, it is for receiving.
9.1.2.2.11 QueueIdentifier
This attribute provides a local means to identify a queue that is associated with this DLSAP.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 59 –
This attribute supplies the value for the “Buffer-or-queue-identifier” parameter defined in the
DLL.
9.1.2.2.12 MaxQueueDepth
This attribute specifies the maximum number of FAS-PDUs that can be queued for sending or
receiving.
This attribute supplies the value for the “Maximum queue depth” parameter of the DLL.
9.1.2.2.13 MaxDlsduSize
This attribute specifies the maximum length of an FAS-PDU that can be sent or received by
the DLL.
This attribute supplies the value for the “Maximum DLSDU size” parameter of the DLL.
The DLL Mapping attributes and their permitted values and the DLL services used with the
QUB AREP class are defined in this subclause.
CLASS: QubCo
PARENT CLASS: QueuedUser-TriggeredBidirectionalAREP
ATTRIBUTES:
1. (m) KeyAttribute: LocalDlcepAddress
2. (m) Attribute: RemoteDlcepAddress
3. (m) KeyAttribute: DlcepDlIdentifier
4. (m) Attribute: DlsapRole (Basic)
5. (m) Attribute: QosParameterSet
5.1 (m) Attribute: DlcepClass (Peer)
5.2 (m) Attribute: DlcepDataDeliveryFeatures
5.2.1 (m) Attribute: FromRequesterToResponder (Classical, Disordered)
5.2.2 (m) Attribute: FromResponderToRequester (Classical, Disordered)
5.3 (m) Attribute: Priority
5.3.1 (m) Attribute: DllPriority (Urgent, Normal, TimeAvailable)
5.3.2 (m) Attribute: DllPriorityNegotiated (Urgent, Normal, TimeAvailable)
5.4 (m) Attribute: DlpduAuthentication (Ordinary, Source, Maximal)
5.5 (m) Attribute: ResidualActivity
5.5.1 (m) Attribute: ResidualActivityAsSender (True, False)
5.5.2 (m) Attribute: ResidualActivityAsReceiver (True, False)
5.6 (m) Attribute: MaxConfirmDelay
5.6.1 (m) Attribute: MaxConfirmDelayOnDlConnect
5.6.2 (m) Attribute: MaxConfirmDelayOnDlData
5.7 (m) Attribute: DlSchedulingPolicy (Implicit)
5.8 (m) Attribute: ExplicitQueue (True, False)
5.9 (c) Constraint: ExplicitQueue = True
5.9.1 (m) Attribute: MaxDlsduSizes
5.9.2 (m) Attribute: MaxDlsduSizeFromRequester
5.9.3 (m) Attribute: MaxDlsduSizeFromResponder
5.9.4 (m) Attribute: MaxDlsduSizeFromRequesterNegotiated
5.9.5 (m) Attribute: MaxDlsduSizeFromResponderNegotiated
5.10 (m) Attribute: QueueBindings
5.10.1 (m) Attribute: SendingBufferOrQueueIdentifier
5.10.2 (m) Attribute: ReceivingBufferOrQueueIdentifier
5.11 (m) Attribute: MaxQueueDepth
5.11.1 (m) Attribute: MaxSendingQueueDepth
5.11.2 (m) Attribute: MaximimReceivingQueueDepth
BS EN 61158-6-9:2014
– 60 – IEC 61158-6-9:2014 © IEC 2014
DLL SERVICES:
1. (m) OpsService: DL-Data
2. (c) Constraint: ExplicitQueue = True
2.1 (m) OpsService: DL-Get
3. (m) OpsService: DL-Connect
4. (m) OpsService: DL-Connection-Established
5. (m) OpsService: DL-Disconnect
9.1.3.2 Attributes
9.1.3.2.1 LocalDlcepAddress
This attribute specifies the local DLCEP address and identifies the DLCEP.
The value of this attribute is used as the “DLCEP-address” parameter of the DLL.
NOTE 1 The value of this attribute is also carried in the Associate Request PDU.
This attribute contains the following three sub-attributes: Link Address, Node Address, and
Selector.
NOTE 2 Since the local Link and Node addresses are set by the Network Management, only the Selector portion
of the LocalDlsapAddress attribute is a configurable attribute of the FAS.
9.1.3.2.2 RemoteDlcepAddress
This attribute specifies the remote DLCEP address and identifies the DLCEP.
This attribute supplies the value for called DLCEP-address of the DL-Connect service.
NOTE The value of this attribute is also carried in the header part of the Associate Request PDU.
This attribute contains the following three sub-attributes: Link Address, Node Address, and
Selector.
9.1.3.2.3 DlcepDlIdentifier
This attribute supplies the value for the DLCEP DL-identifier parameter of the DL-Connect
service. It is returned to the calling FAS by the DL-Connect request primitive, and by the DL-
Connect indication primitive to the called FAS.
9.1.3.2.4 DlsapRole
This attribute specifies the behavior of the DLSAP that is used by the AREP.
This attribute supplies the value for the “DL(SAP)-role” parameter. The possible value Basic
corresponds to BASIC as defined in the data-link layer specification.
9.1.3.2.5 QosParameterSet
The QosParameterSet attributes specify the DL quality of service that is used by this AREP.
These attribute values may be negotiated with the remote AREP.
9.1.3.2.6 DlcepClass
This attribute specifies the behavior of the DLCEP which is attached to the AREP.
This attribute supplies the value for the “DLCEP class” parameter of the DLL. The possible
value of this attribute is Peer and corresponds to Peer defined by the DLL.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 61 –
9.1.3.2.7 DlcepDataDeliveryFeatures
The permitted values Classical and Disordered correspond, respectively to CLASSICAL and
DISORDERED defined by the data-link layer specification.
9.1.3.2.8 FromRequesterToResponder
This attribute specifies the DLL data delivery feature of the DLPDUs sent from the AREP
whose Initiator attribute has a value of “True” to the remote AREP. It supplies the value for
the “DLCEP data delivery features from requester to responder(s)” parameter defined in the
DLL.
9.1.3.2.9 FromResponderToRequester
This attribute specifies the DLL data delivery feature of the DLPDUs sent from the AREP
whose Initiator attribute has a value of “False” to the remote AREP. It supplies the value for
the “DLCEP data delivery features from responder(s) to requester” parameter defined in the
DLL.
9.1.3.2.10 DllPriority
It is not possible to use different priorities for each FAS-PDU sent from the same QUB AREP.
Also, it is not permitted to use different priorities for the send and receive conveyance paths.
9.1.3.2.11 DllPriorityNegotiated
9.1.3.2.12 DlpduAuthentication
This attribute specifies the lower bound of the length of DL-addressing to be used by the DLL.
This attribute supplies the value for the “DLPDU-authentication” parameter of the DLL. The
permitted value Ordinary, Source, and Maximal correspond to ORDINARY, Source, and
MAXIMAL, respectively, as defined in IEC 61158-3-1 and IEC 61158-4-1.
ResidualActivityAsSender
This attribute specifies sender’s DLC residual activity. It supplies the value for the “Residual
activity as sender” parameter defined in the DLL. The possible values are “True” and “False.”
9.1.3.2.13 ResidualActivityAsReceiver
This attribute specifies receiver’s DLC residual activity. It supplies the value for the “Residual
activity as receiver” parameter defined in the DLL. The possible values are “True” and “False.”
9.1.3.2.14 MaxConfirmDelay
This attribute specifies the maximum confirmation delay of certain DLL connection-oriented
services.
BS EN 61158-6-9:2014
– 62 – IEC 61158-6-9:2014 © IEC 2014
9.1.3.2.15 MaxConfirmDelayOnDlConnect
This attribute species the maximum confirmation delay for a confirmation from a DL-Connect
service.
This attribute supplies the value for the “Maximum confirmation delay on DL-Connect, DL-
Reset and DL-Subscriber-Query” parameter specified in the data-link layer specification.
9.1.3.2.16 MaxConfirmDelayOnDlData
This attribute species the maximum confirmation delay for a confirmation from a DL-Data
service.
This attribute supplies the value for the “Maximum confirmation delay on DL-Data” parameter
specified in IEC 61158-3-1 and IEC 61158-4-1.
9.1.3.2.17 DlSchedulingPolicy
This attribute provides the guidance to the DLL on the scheduling needed by an AR. For this
AREP, the DLL tries to transmit the FAS-PDU as soon as possible.
This attribute supplies the value for the “DL-Scheduling-policy” parameter of the DLL. The
permitted value Implicit corresponds to IMPLICIT defined in IEC 61158-3-1 and
IEC 61158-4-1.
9.1.3.2.18 ExplicitQueue
9.1.3.2.19 MaxDlsduSizeFromRequester
This attribute specifies the configured value of the maximum length of an FAS-PDU that can
be sent from the AREP whose Initiator attribute has a value of “True” to the remote AREP.
This attribute supplies the value for the “Maximum DLSDU sizes from requester” parameter of
the DLL.
9.1.3.2.20 MaxDlsduSizeFromResponder
This attribute specifies the configured value of the maximum length of an FAS-PDU that can
be sent from the AREP whose Initiator attribute has a value of “False” to the remote AREP.
This attribute supplies the value for the “Maximum DLSDU sizes from responder” parameter of
the DLL.
9.1.3.2.21 MaxDlsduSizeFromRequesterNegotiated
This attribute specifies the negotiated value of the maximum length of an FAS-PDU that can
be sent from the AREP whose Initiator attribute has a value of “True” to the remote AREP.
9.1.3.2.22 MaxDlsduSizeFromResponderNegotiated
This attribute specifies the negotiated value of the maximum length of an FAS-PDU that can
be sent from the AREP whose Initiator attribute has a value of “False” to the remote AREP.
9.1.3.2.23 SendingBufferOrQueueIdentifier
This attribute provides a local means to identify a queue that is used to store sending FAS-
PDUs.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 63 –
This attribute supplies the value for the “Buffer-and-queue bindings as sender” parameter of
the DLL.
9.1.3.2.24 ReceivingBufferOrQueueIdentifier
This attribute provides a local means to identify a queue that is used to store receiving FAS-
PDUs.
This attribute supplies the value for the “Buffer-and-queue bindings as receiver” parameter of
the DLL.
9.1.3.2.25 MaxSendingQueueDepth
This attribute specifies the maximum number of FAS-PDUs that can be queued for
transmission.
This attribute supplies the value for the “Maximum queue depth” parameter of the DLL for
Send queues.
9.1.3.2.26 MaxReceivingQueueDepth
This attribute specifies the maximum number of FAS-PDUs that can be queued at reception.
This attribute supplies the value for the “Maximum queue depth” parameter of the DLL for
Receive queues.
The DLL Mapping attributes and their permitted values and the DLL services used with the
BNU AREP class are defined in this subclause.
CLASS: BnuCo
PARENT CLASS: BufferedNetworkScheduledUnidirectionalAREP
ATTRIBUTES:
1. (m) KeyAttribute: PublisherDlcepAddress
2. (m) KeyAttribute: DlcepDlIdentifier
3. (m) Attribute: DlsapRole (Basic)
4. (m) Attribute: QosParameterSet
4.1 (m) Attribute: DlcepClass (Publisher, Subscriber)
4.2 (m) Attribute: DllPriority (Urgent, Normal, TimeAvailable)
4.3 (m) Attribute: DlpduAuthentication (Ordinary, Source)
4.4 (m) Attribute: ResidualActivity
4.4.1 (m) Attribute: AsSender (False)
4.5 (m) Attribute: MaxConfirmDelayOnDlConnect
4.6 (m) Attribute: DlSchedulingPolicy (Explicit)
4.7 (m) Constraint: DlcepClass = Publisher
4.7.1 (m) Attribute: FromRequesterToResponder (Ordered, Unordered)
4.7.2 (m) Attribute: MaxDlsduSizeFromRequester
4.7.3 (m) Attribute: SendingBufferOrQueueIdentifier
4.7.4 (o) Attribute: SenderTimeliness
4.7.4.1 (o) Attribute: PublisherDlTimelinessClass
(Residence, Update, Synchronous, Transparent, None)
4.7.4.2 (o) Attribute: PublisherTimeWindowSize
4.7.4.3 (o) Constraint: PublisherDlTimelinessClass == Update || Synchronous
4.7.4.3.1 (o) Attribute: PublisherSynchronizingDlcep
4.8 (m) Constraint: DlcepClass = Subscriber
4.8.1 (m) Attribute: FromResponderToRequester (Ordered, Unordered)
BS EN 61158-6-9:2014
– 64 – IEC 61158-6-9:2014 © IEC 2014
9.1.4.2.1 PublisherDlcepAddress
This attribute specifies the Publisher’s DLCEP address and identifies the DLCEP.
The value of this attribute is used as the “DLCEP-address” parameter of the DLL.
This attribute contains the following three sub-attributes: Link Address, Node Address, and
Selector.
NOTE Since the local Link and Node addresses are set by the Network Management, only the Selector portion of
the LocalDlsapAddress attribute is a configurable attribute of the FAS.
9.1.4.2.2 DlcepDlIdentifier
9.1.4.2.3 DlsapRole
9.1.4.2.4 QosParameterSet
9.1.4.2.5 DlcepClass
9.1.4.2.6 DllPriority
NOTE It is not possible to use different priorities for each FAS-PDU sent from the same BNU AREP.
9.1.4.2.7 DlpduAuthentication
9.1.4.2.8 ResidualActivity
9.1.4.2.9 MaxConfirmDelayOnDlConnect
9.1.4.2.10 DlSchedulingPolicy
This attribute provides the guidance to the DLL on the scheduling needed by an AR. For this
AREP, the DLL tries to transmit the FAS-PDU when it is instructed to do so by a stimulus from
the network.
This attribute supplies the value for the “DL-Scheduling-policy” parameter of the DLL. The
permitted value Explicit corresponds to EXPLICIT defined in IEC 61158-3-1 and
IEC 61158-4-1.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 65 –
9.1.4.2.11 FromRequesterToResponder
This attribute is used if the Role attribute has a value of “Publisher” and specifies the DLL
data delivery feature of the AREP.
It supplies the value for the “DLCEP data delivery features from requester to responder(s)”
parameter of the DLL. The possible values Ordered and Unordered correspond to ORDERED
and UNORDERED defined in IEC 61158-3-1 and IEC 61158-4-1.
9.1.4.2.12 MaxDlsduSizeFromRequester
This attribute is used if the Role attribute has a value of “Publisher” and specifies the
maximum length of an FAS-PDU that can be sent from this AREP.
This attribute supplies the value for the “Maximum DLSDU sizes from requester” parameter of
the DLL.
9.1.4.2.13 SendingBufferOrQueueIdentifier
This attribute provides a local means to identify a buffer that is used to store FAS-PDUs for
sending. This attribute supplies the value for the “Buffer-and-queue bindings as sender”
parameter of the DLL.
9.1.4.2.14 FromResponderToRequester
This attribute is used if the Role attribute has a value of “Subscriber” and specifies the DLL
data delivery feature of the AREP.
It supplies the value for the “DLCEP data delivery features from responder(s) to requester”
parameter of the DLL. The possible values Ordered and Unordered correspond to ORDERED
and UNORDERED defined in the data-link layer specification.
9.1.4.2.15 MaxDlsduSizeFromResponder
This attribute is used if the Role attribute has a value of “Subscriber” and specifies the
maximum length of an FAS-PDU that can be received by this AREP.
This attribute supplies the value for the “Maximum DLSDU size from responder” parameter of
the DLL.
9.1.4.2.16 ReceivingBufferOrQueueIdentifier
This attribute provides a local means to identify a buffer that is used to store FAS-PDUs for
receiving. This attribute supplies the value for the “Buffer-and-queue bindings as receiver”
parameter of the DLL.
9.1.4.2.17 SenderTimeliness
9.1.4.2.18 PublisherDlTimelinessClass
This optional attribute provides the timeliness class of a Publisher provided by the DLL. This
attribute supplies the value for the “DL-timeliness-class” parameter of the DLL. The permitted
BS EN 61158-6-9:2014
– 66 – IEC 61158-6-9:2014 © IEC 2014
9.1.4.2.19 PublisherTimeWindowSize
This optional attribute provides time window of a Publisher provided by the DLL. This attribute
supplies the value for the “Time window size” parameter of the DLL.
9.1.4.2.20 PublisherSynchronizingDlcep
This optional attribute is present when the PublisherDlTimelinessClass attribute has the value
of Update or Synchronous and provides a DLCEP that is used to generate synchronizing
events by the DLL. The FAS user may derive the AREP from which the synchronizing events
are delivered by this attribute value. This attribute supplies the value for the “synchronizing
DLCEP” parameter of the DLL.
9.1.4.2.21 ReceiverTimeliness
9.1.4.2.22 SubscriberDlTimelinessClass
This optional attribute provides the timeliness class of a Subscriber provided by the DLL. This
attribute supplies the value for the “DL-timeliness-class” parameter of the DLL. The permitted
values Residence, Update, Synchronous, Transparent, and None correspond to RESIDENCE,
UPDATE, SYNCHRONOUS, TRANSPARENT, and NONE defined by the DLL.
9.1.4.2.23 SubscriberTimeWindowSize
This optional attribute provides time window of a Subscriber provided by the DLL. This
attribute supplies the value for the “Time window size” parameter of the DLL.
9.1.4.2.24 SubscriberSynchronizingDlcep
This optional attribute is present when the SubscriberDlTimelinessClass attribute has the
value of Update or Synchronous and provides a DLCEP that is used to generate
synchronizing events by the DLL. The FAS user may derive the AREP from which the
synchronizing events are delivered by this attribute value. This attribute supplies the value for
the “synchronizing DLCEP” parameter of the DLL.
9.1.4.2.25 LasScheduled
This attribute specifies whether this AREP is LAS-scheduled or not. The value of True means
that this APRE is LAS-Scheduled. The value of False means that it is not LAS-Scheduled.
NOTE This attribute does not affect the operation of the FAS and the DLL. It is used by the FAS users only.
Refer to IEC 61158-3-1 and IEC 61158-4-1 for DLL service descriptions.
The defined states and their descriptions of the QUU ARPM are shown in Table 12 and
Figure 24.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 67 –
CLOSED The AREP is defined, but not capable of sending or receiving FAS-PDUs. It may send or receive
Associate service FAS-PDUs while in this state.
OPEN The AREP is defined and capable of sending or receiving FAS-PDUs.
S1
S3,S4,
CLOSED OPEN
R1,R2,R4
S2,R3,R5
Event or condition
# Current state Next state
=> action
S1 CLOSED ASC_req OPEN
=>
ASC_cnf(+) {
arep_id := GetArepId (),
user_data := "null"
}
S2 OPEN Abort_req CLOSED
=>
(no actions taken)
S3 OPEN DTU_req OPEN
&& ConfigurationType = “Linked”
&& Role = “Source”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Unitdata_req",
arep_id := GetArepId (),
dlsdu := BuildFAS-PDU (
fas_pdu_name := "DTU_PDU",
fas_data := user_data)
}
S4 OPEN DTU_req OPEN
&& ConfigurationType = “Free”
&& Role = “Source”
=>
RemoteDlsapAddress := remote_dlsap_address,
FAS-PDU_req {
dmpm_service_name := "DMPM_Unitdata_req",
arep_id := GetArepId (),
dlsdu := BuildFAS-PDU (
fas_pdu_name := "DTU_PDU",
fas_data := user_data)
}
BS EN 61158-6-9:2014
– 68 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
R1 OPEN FAS-PDU_ind OPEN
&& dmpm_service_name = “DMPM_Unitdata_ind”
&& ConfigurationType = “Linked”
&& RemoteDlsapAddress = calling_address
&& Role = “Sink”
&& FAS_Pdu_Type (fas_pdu) = “DTU_PDU”
=>
DTU_ind {
arep_id := GetArepId (),
user_data := fas_pdu
}
R2 OPEN FAS-PDU_ind OPEN
&& dmpm_service_name = “DMPM_Unitdata_ind”
&& ConfigurationType = “Free”
&& Role = “Sink”
&& FAS_Pdu_Type (fas_pdu) = “DTU_PDU”
=>
DTU_ind {
arep_id := GetArepId (),
remote_dlsap_address := calling_address,
user_data := fas_pdu
}
R3 OPEN FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Unitdata_ind”
&& Role = “Sink”
&& FAS_Pdu_Type (fas_pdu) <> “DTU_PDU”
=>
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := "FAS",
reason_code := " Invalid FAS-PDU",
additional_detail := "null"
}
R4 OPEN ErrorToARPM OPEN
=>
(no actions taken)
R5 OPEN FAS-PDU_ind CLOSED
&& Role = “Source”
=>
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid Event for Role”,
additional_detail := "null"
}
The defined states and their descriptions of the QUB ARPM are shown in Table 15 and
Figure 25.
CLOSED The AREP is defined, but not capable of sending or receiving FAS-PDUs. It may send or
receive Associate service FAS-PDUs while in this state.
OPEN The AREP is defined and capable of sending or receiving FAS-PDUs.
REQUESTING The AREP has sent an Associate Request FAS-PDU and is waiting for a response from the
(REQ) remote AREP.
RESPONDING The AREP has received an Associate Request FAS-PDU, delivered an Associate.indication
(RSP) primitive and is waiting for a response from its user.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 69 –
REPLIED (REPL) The Server AREP has issued an ASC_rsp(+) primitive and is waiting for receiving a
"connection-established" indication from the DLL.
SAME Indicates that the next state is the same as the current state.
R10,R30
S1, S2
CLOSED S5,R11,R12,R15,R16,R17, REQUESTING
R20,R22,R23,R24 R13
R1,
R2, R3
S5,R7,R17, S5,R7,R11,
S4,S5, R4, R18,R19,R22, R17,R19,R21,R22,R23,R24, OPEN
R7,R16, R5 R23,R24 R27,R28,R29,
R17,R19,
R22,R23,R
24, R14
S3 S6,S7,R6,R8,R
RESPONDING REPLIED 9,R10,R25,
R26,R30
R6, R8, R9, R6, R8, R9,
R30 R30
Event or condition
# Current state Next state
=> action
S1 CLOSED ASC_req REQ
&& Initiator = “True”
&& RemoteAddressConfigurationType := “Free”
RemoteDlcepAddress := remote_dlcep_address,
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Connect_req",
arep_id := GetArepId (),
called_address := “default dlsap address”,
calling_address := “default dlsap address”,
local_dlcep_address := LocalDlcep,
dlsdu := BuildFAS-PDU (
fas_pdu_name := "ASC_ReqPDU",
calling_dlcep_address := LocalDlcepAddress,
called_dlcep_address := RemoteDlcepAddress,
fas_data := user_data)
}
S2 CLOSED ASC_req REQ
&& Initiator = “True”
&& RemoteAddressConfigurationType := “Linked”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Connect_req",
arep_id := GetArepId (),
called_address := “default dlsap address”,
calling_address := “default dlsap address”,
local_dlcep_address := LocalDlcep,
dlsdu := BuildFAS-PDU (
fas_pdu_name := "ASC_ReqPDU",
calling_dlcep_address := LocalDlcepAddress,
called_dlcep_address := RemoteDlcepAddress,
fas_data := user_data)
}
BS EN 61158-6-9:2014
– 70 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
S3 RSP ASC_rsp(+) REPL
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Connect_rsp",
arep_id := GetArepId (),
responding_address := “default dlsap address”,
local_dlcep_address := LocalDlcep,
dlcep_dl_id := DlcepDlIdentifier,
dlsdu := BuildFAS-PDU (
fas_pdu_name := "ASC_RspPDU",
fas_data := user_data)
}
S4 RSP ASC_rsp(-) CLOSED
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Disconnect_req",
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "connection rejection–transient condition",
dlsdu := BuildFAS-PDU (
fas_pdu_name := "ASC_ErrPDU",
fas_data := user_data)
}
S5 NOT CLOSED Abort_req CLOSED
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Disconnect_req",
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "disconnection–normal condition",
dlsdu := BuildFAS-PDU (
fas_pdu_name := "Abort_PDU",
fas_id := identifer,
fas_reason_code := reason_code,
fas_additional_detail := additional_detail)
}
S6 OPEN DTC_req OPEN
&& Role = “Client” || “Peer”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Data_req",
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
dlsdu := BuildFAS-PDU (
fas_pdu_name := "DTC_ReqPDU",
fas_data := user_data)
}
S7 OPEN DTC_rsp OPEN
&& Role = “Server” || “Peer”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Data_req",
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
dlsdu := BuildFAS-PDU (
fas_pdu_name := "DTC_RspPDU",
fas_data := user_data)
}
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 71 –
Event or condition
# Current state Next state
=> action
R1 CLOSED Connect_ind CLOSED
&& Initiator = “True”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := "Multiple Initiators",
dlsdu := “null”
}
R2 CLOSED Connect_ind CLOSED
&& Initiator = “False”
&& FAS_Pdu_Type (dls_user_data) <> “ASC_ReqPDU”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := “Invalid FAS-PDU”,
dlsdu := “null”
}
R3 CLOSED Connect_ind CLOSED
&& Initiator = “False”
&& FAS_Pdu_Type (dls_user_data) = “ASC_ReqPDU”
&& RemoteAddressConfigurationType = “Linked”
&& RemoteDlcepAddress <> calling_dlcep_address
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := "Remote Address Mismatch",
dlsdu := “null”
}
R4 CLOSED Connect_ind RSP
&& Initiator = “False”
&& FAS_Pdu_Type (dls_user_data) = “ASC_ReqPDU”
&& RemoteAddressConfigurationType = “Free”
=>
RemoteDlcepAddress := calling_dlcep_address,
DlcepDlIdentifier := dlcep_dl_id,
MaxDlsduSizeFromRequesterNegotiated := dlsdu_size_from_requester,
MaxDlsduSizeFromResponderNegotiated := dlsdu_size_from_responder,
ASC_ind {
arep_id := GetArepId (),
user_data := dls_user_data
}
R5 CLOSED Connect_ind RSP
&& Initiator = “False”
&& FAS_Pdu_Type (dls_user_data) = “ASC_ReqPDU”
&& RemoteAddressConfigurationType = “Linked”
&& RemoteDlcepAddress = calling_dlcep_address
=>
DlcepDlIdentifier := dlcep_dl_id,
MaxDlsduSizeFromRequesterNegotiated := dlsdu_size_from_requester,
MaxDlsduSizeFromResponderNegotiated := dlsdu_size_from_responder,
ASC_ind {
arep_id := GetArepId (),
user_data := dls_user_data
}
BS EN 61158-6-9:2014
– 72 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
R6 RSP Connect_ind SAME
REPL && Initiator = “False”
OPEN && RemoteAddressConfigurationType = “Linked”
&& RemoteDlcepAddress <> calling_dlcep_address
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := "Remote Address Mismatch",
dlsdu := “null”
}
R7 RSP Connect_ind CLOSED
REPL && Initiator = “False”
OPEN && RemoteDlcepAddress = calling_dlcep_address
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := "Invalid FAS-PDU",
dlsdu := “null”
},
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := "FAS",
reason_code := "Invalid FAS-PDU"
}
R8 RSP Connect_ind SAME
REPL && Initiator = “False”
OPEN && FAS_Pdu_Type (dls_user_data) = “ASC_ReqPDU”
&& RemoteAddressConfigurationType = “Free”
&& RemoteDlcepAddress <> calling_dlcep_address
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := "AREP Busy",
dlsdu := “null”
}
R9 RSP Connect_ind SAME
REPL && Initiator = “False”
OPEN && FAS_Pdu_Type (dls_user_data) <> “ASC_ReqPDU”
&& RemoteAddressConfigurationType = “Free”
&& RemoteDlcepAddress <> calling_dlcep_address
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := "Invalid FAS-PDU",
dlsdu := “null”
}
R10 REQ Connect_ind SAME
OPEN && Initiator = “True”
&& RemoteDlcepAddress <> calling_dlcep_address
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := "Multiple Initiators",
dlsdu := “null”
}
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 73 –
Event or condition
# Current state Next state
=> action
R11 REQ Connect_ind CLOSED
OPEN && Initiator = “True”
&& RemoteDlcepAddress = calling_dlcep_address
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := dlcep_dl_id (from Connect_ind),
reason := "Multiple Initiators",
dlsdu := “null”
},
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := "FAS",
reason_code := "Multipe Initiators"
}
R12 REQ Connect_cnf CLOSED
&& FAS_Pdu_Type (dls_user_data) <> “ASC_RspPDU”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid FAS-PDU",
dlsdu := “null”
},
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := "FAS",
reason_code := "Invalid FAS-PDU"
}
R13 REQ Connect_cnf OPEN
&& FAS_Pdu_Type (dls_user_data) = “ASC_RspPDU”
=>
MaxDlsduSizeFromRequesterNegotiated := dlsdu_size_from_requester,
MaxDlsduSizeFromResponderNegotiated := dlsdu_size_from_responder,
DllPriorityNegotiated := dll_priority,
ASC_cnf(+) {
arep_id := GetArepId (),
user_data := dls_user_data
}
R14 REPL FAS-PDU_ind OPEN
&& dmpm_service_name = “DMPM_Connection_Established_ind”
=>
(no actions taken)
R15 REQ FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Disconnect_ind”
&& FAS_Pdu_Type (fas_pdu) = “ASC_ErrPDU”
=>
ASC_cnf(-) {
arep_id := GetArepId (),
user_data := dls_user_data
}
BS EN 61158-6-9:2014
– 74 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
R16 REQ FAS-PDU_ind CLOSED
RSP && dmpm_service_name <> “DMPM_Disconnect_ind”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid DL-Event",
dlsdu := “null”
},
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := "FAS",
reason_code := "Invalid DL-Event"
}
R17 NOT CLOSED FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Disconnect_ind”
&& fas_pdu <> “null”
&& FAS_Pdu_Type (fas_pdu) = “Abort_PDU”
=>
Abort_ind{
arep_id := GetArepId (),
locally_generated := "False",
identifier := AbortIdentifier (fas_pdu),
reason_code := AbortReason (fas_pdu),
additional_detail := AbortDetail (fas_pdu)
}
R18 REPL FAS-PDU_ind CLOSED
&& ((dmpm_service_name <> “DMPM_Disconnect_ind”)
&& (dmpm_service_name <>“DM_Connection_Established_ind”))
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid DL-Event",
dlsdu := “null”
},
Abort_ind{
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid DL-Event”,
additional_detail := “null”
}
R19 REPL FAS-PDU_ind CLOSED
RSP && dmpm_service_name = “DMPM_Disconnect_ind”
OPEN && fas_pdu <> “null”
&& FAS_Pdu_Type (fas_pdu) <> “Abort_PDU”
=>
Abort_ind{
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid FAS-PDU”,
additional_detail := “null”
}
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 75 –
Event or condition
# Current state Next state
=> action
R20 REQ FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Disconnect_ind”
&& fas_pdu <> “null”
&& ((FAS_Pdu_Type (fas_pdu) <> “Abort_PDU”)
&& (FAS_Pdu_Type (fas_pdu) <> “ASC_ErrPDU”))
=>
Abort_ind{
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid FAS-PDU”,
additional_detail := “null”
}
R21 OPEN FAS-PDU_ind CLOSED
&& ((dmpm_service_name <> “DMPM_Disconnect_ind”)
&& (dmpm_service_name <> “DMPM_Data_ind”))
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid DL-Event",
dlsdu := “null”
},
Abort_ind{
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid DL-Event”,
additional_detail := “null”
}
R22 NOT CLOSED FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Disconnect_ind”
&& fas_pdu = "null"
&& originator = "remote_dls_provider"
=>
Abort_ind{
arep_id := GetArepId (),
locally_generated := "False",
identifier := “Data-link layer”,
reason_code := reason,
additional_detail := "null"
}
R23 NOT CLOSED FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Disconnect_ind”
&& fas_pdu = "null"
&& originator = "remote_dls_user"
=>
Abort_ind{
arep_id := GetArepId (),
locally_generated := "False",
identifier := “FAS”,
reason_code := reason,
additional_detail := "null"
}
R24 NOT CLOSED FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Disconnect_ind”
&& fas_pdu = "null"
&& originator = "local_dls_provider"
=>
Abort_ind{
arep_id := GetArepId (),
locally_generated := "True",
identifier := “Data-link layer”,
reason_code := reason,
additional_detail := "null"
}
BS EN 61158-6-9:2014
– 76 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
R25 OPEN FAS-PDU_ind OPEN
&& dmpm_service_name = “DMPM_Data_ind”
&& Role = “Peer” || “Server”
&& FAS_Pdu_Type (fas_pdu) = “DTC_ReqPDU”
=>
DTC_ind {
arep_id := GetArepId (),
user_data := fas_pdu
}
R26 OPEN FAS-PDU_ind OPEN
&& dmpm_service_name = “DMPM_Data_ind”
&& Role = “Client” || “Peer”
&& FAS_Pdu_Type (fas_pdu) = “DTC_RspPDU”
=>
DTC_cnf {
arep_id := GetArepId (),
user_data := fas_pdu
}
R27 OPEN FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Data_ind”
&& Role = “Server”
&& FAS_Pdu_Type (fas_pdu) <> “DTC_ReqPDU”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid FAS-PDU",
dlsdu := “null”
},
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid FAS-PDU”,
additional_detail := "null"
}
R28 OPEN FAS-PDU_ind CLOSED
&& dmpm_service_name = “DMPM_Data_ind”
&& Role = “Client”
&& FAS_Pdu_Type (fas_pdu) <> “DTC_RspPDU”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid FAS-PDU",
dlsdu := “null”
},
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid FAS-PDU”,
additional_detail := "null"
}
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 77 –
Event or condition
# Current state Next state
=> action
R29 OPEN FAS-PDU_ind CLOSED
&& Role = “Peer”
&& dmpm_service_name = “DMPM_Data_ind”
&& ((FAS_Pdu_Type (fas_pdu) <> “DTC_ReqPDU”)
&& (FAS_Pdu_Type (fas_pdu) <> “DTC_RspPDU”))
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Disconnect_req”,
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid FAS-PDU",
dlsdu := “null”
},
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid FAS-PDU”,
additional_detail := "null"
}
R30 NOT CLOSED ErrorToARPM SAME
=>
(no actions taken)
NOTE It is a local matter to report an error status to network management entities. The ARPM does not abort the
existing connections. The FAS user may issue an Abort request to disconnect the current connection, depending on
the type of status information conveyed by the ErrorToARPM primitive.
The defined states and their descriptions of the BNU ARPM are shown in Table 18 and
Figure 26.
CLOSED The AREP is defined, but not capable of sending or receiving FAS-
PDUs.
REQUESTING The AREP has issued an ASC_req and waiting for an ASC_cnf
primitive.
OPEN The AREP is defined and capable of sending or receiving FAS-
PDUs.
CLOSED
S1, S2
R1
OPEN R16
S5,S6,S7,S8,
R11,R12,R13,R14,R15,R16
Event or condition
# Current state Next state
=> action
S1 CLOSED ASC_req REQ
&& Role = “Publisher”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Connect_req",
arep_id := GetArepId (),
called_address := “null”,
calling_address := “default dlsap address”,
local_dlcep_address := PublisherDlcepAddress,
dlsdu := "null"
}
S2 CLOSED ASC_req REQ
&& Role = “Subscriber”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Connect_req",
arep_id := GetArepId (),
called_address := PublisherDlcepAddress,
calling_address := “default dlsap address”,
local_dlcep_address := “default subscriber dlcep address”,
dlsdu := "null"
}
S3 NOT CLOSED Abort_req CLOSED
&& Role = “Publisher”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Disconnect_req",
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "disconnection–normal condition",
dlsdu := BuildFAS-PDU (
fas_pdu_name := “Abort_PDU”,
fas_id := identifer,
fas_reason_code := reason_code,
fas_additional_detail := additional_detail)
}
S4 NOT CLOSED Abort_req CLOSED
&& Role = “Subscriber”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Disconnect_req",
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "disconnection–normal condition",
dlsdu := “null”
}
S5 OPEN DTU_req OPEN
&& Role = “Publisher”
=>
FAS-PDU_req {
dmpm_service_name := "DMPM_Put_req",
arep_id := GetArepId (),
dlsdu := BuildFAS-PDU (
fas_pdu_name := "DTU_PDU",
fas_sdu := user_data)
}
S6 OPEN FCMP_req OPEN
&& Role = “Publisher”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Compel_Service_req”,
arep_id := GetArepId (),
action_class := “Local”
}
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 79 –
Event or condition
# Current state Next state
=> action
S7 OPEN FCMP_req OPEN
&& Role = “Subscriber”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Compel_Service_req”,
arep_id := GetArepId (),
action_class := “Remote”
}
S8 OPEN GBM_req OPEN
&& Role = “Subscriber”
=>
FAS-PDU_req {
dmpm_service_name := “DMPM_Get_req”,
arep_id := GetArepId ()
}
Event or condition
# Current state Next state
=> action
R1 REQ Connect_cnf OPEN
=>
ASC_cnf(+) {
arep_id := GetArepId (),
user_data := "null"
}
R2 REQ FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& dmpm_service_name = "DMPM_Disconnect_ind"
&& fas_pdu = “null”
&& originator = "local_dls_provider"
=>
ASC_cnf(-) {
arep_id := GetArepId (),
user_data := "null"
}
R3 REQ FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& dmpm_service_name = "DMPM_Disconnect_ind"
&& fas_pdu = "null"
&& originator = "remote_dls_provider"
=>
ASC_cnf(-) {
arep_id := GetArepId (),
user_data := "null"
}
R4 REQ FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& dmpm_service_name <> "DMPM_Disconnect_ind"
=>
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid Dl Event”,
additional_detail := "null"
}
R5 OPEN FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& dmpm_service_name = "DMPM_Disconnect_ind"
&& fas_pdu = “null”
&& originator = "local_dls_provider"
=>
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := “Data-link layer”,
reason_code := reason,
additional_detail := "null"
}
BS EN 61158-6-9:2014
– 80 – IEC 61158-6-9:2014 © IEC 2014
Event or condition
# Current state Next state
=> action
R6 OPEN FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& dmpm_service_name = "DMPM_Disconnect_ind"
&& dlsdu = "null"
&& originator = "remote_dls_provider"
=>
Abort_ind {
arep_id := GetArepId (),
locally_generated := "False",
identifier := “Data-link layer,”
reason_code := reason,
additional_detail := “null”
}
R7 NOT CLOSED FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& dmpm_service_name = "DMPM_Disconnect_ind"
&& Fas_Pdu_Type (fas_pdu) = “Abort_PDU”
=>
Abort_ind {
arep_id := GetArepId (),
locally_generated := "False",
identifier := AbortIdentifer (fas_pdu),
reason_code := AbortReason (fas_pdu),
additional_detail := AbortDetail (fas_pdu)
}
R8 NOT CLOSED FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& dmpm_service_name = "DMPM_Disconnect_ind"
&& fas_pdu <> “null”
&& Fas_Pdu_Type (fas_pdu) <> “Abort_PDU”
=>
Abort_ind {
arep_id := GetArepId (),
locally_generated := "True",
identifier := “FAS”,
reason_code := “Invalid FAS-PDU”,
additional_detail := "null"
}
R9 OPEN FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& ((dmpm_service_name <> "DMPM_Buffer_Received_ind")
&& (dmpm_service_name <> "DMPM_Disconnect_ind”)
&& (dmpm_service_name <> "DMPM_Compel_Service_cnf”)
&& (dmpm_service_name <> "DMPM_Get_cnf”)
&& (dmpm_service_name <> "DMPM_Buffer_Sent_ind”))
=>
Abort_ind{
arep_id := GetArepId (),
locally_generated := "True",
identifier := "FAS",
reason_code := "Invalid Dl Event",
additional_detail := "null"
},
FAS-PDU_req {
dmpm_service_name := "DMPM_Disconnect_req",
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid DL-Event",
dlsdu := "null"
}
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 81 –
Event or condition
# Current state Next state
=> action
R10 OPEN FAS-PDU_ind CLOSED
&& Role = “Subscriber”
&& dmpm_service_name = "DMPM_Buffer_Received_ind"
&& FAS_pdu_type <> "DTU_PDU"
=>
Abort_ind{
arep_id := GetArepId (),
locally_generated := "True",
identifier := "FAS",
reason_code := "Invalid FAS-PDU",
additional_detail := "null"
},
FAS-PDU_req {
dmpm_service_name := "DMPM_Disconnect_req",
arep_id := GetArepId (),
dlcep_dl_id := DlcepDlIdentifier,
reason := "Invalid FAS-PDU",
dlsdu := "null"
}
R11 OPEN FAS-PDU_ind OPEN
&& Role = “Subscriber”
&& dmpm_service_name = "DMPM_Buffer_Received_ind"
&& FAS_Pdu_Type (fas_pdu) = "DTU_PDU"
=>
DTU_ind {
arep_id := GetArepId (),
duplicate_fas_sdu := duplicate_dlsdu,
user_data := fas_pdu,
local_timeliness := local_dle_timeliness,
remote_timeliness := remote_dle_timeliness
}
R12 OPEN FAS-PDU_ind OPEN
&& dmpm_service_name = “DMPM_Compel_Service_cnf”
=>
FCPM_cnf {
status := dl_status
}
R13 OPEN FAS-PDU_ind OPEN
&& Role = “Subscriber”
&& dmpm_service_name = “DMPM_Get_cnf”
&& status = “success”
=>
GBM_cnf(+) {
arep_id := GetArepId (),
duplicate_fas_sdu := duplicate_dlsdu,
user_data := fas_pdu,
local_timeliness := local_dle_timeliness,
remote_timeliness := remote_dle_timeliness
}
R14 OPEN FAS-PDU_ind OPEN
&& Role = “Subscriber”
&& dmpm_service_name = “DMPM_Get_cnf”
&& status <> “success”
=>
GBM_cnf(-) {
arep_id := GetArepId ()
}
R15 OPEN FAS-PDU_ind OPEN
&& Role = “Publisher”
&& dmpm_service_name = “DMPM_Buffer_Sent_ind”
=>
FSTS_ind {
arep_id := GetArepId (),
reported_status := “Buffer-Sent”
}
R16 NOT CLOSED ErrorToARPM SAME
=>
(no actions taken)
NOTE It is a local matter to report an error status to network management entities. The ARPM does not abort the
existing connections. The FAS user may issue an Abort request to disconnect the current connection, depending on
the type of status information conveyed by the ErrorToARPM primitive.
BS EN 61158-6-9:2014
– 82 – IEC 61158-6-9:2014 © IEC 2014
The primitives exchanged between the DMPM and the ARPM are specified in Table 21 and
Table 22.
FAS-PDU_req ARPM dmpm_service_name, arep_id, This primitive is used to request the DMPM to
dlcep_dl_id, called_address, transfer an FAS-PDU, or to request an abort
calling_address, responding_address, without transferring an FAS-PDU. It passes the
local_dlcep_addres, reason, dlsdu FAS-PDU to the DMPM as a DLSDU. It also
carries some of the Data Like Layer parameters
that are referenced there.
The parameters used with the primitives exchanged between the ARPM and the DMPM are
described in Table 23.
Table 23 – Parameters used with primitives exchanged between ARPM and DMPM
dmpm_service_name This parameter conveys a Data Like Layer primitive name. Possible values are all
the DL-XXXX.yyy primitives defined in this section and are represented as
DMPM_XXXX_yyy.
originator This parameter conveys the value of the dl_originator parameter of the received
primitive.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 83 –
The defined states and their descriptions of the DMPM are shown in Table 30 and Figure 27.
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 85 –
State Description
Name
ACTIVE The DMPM in the ACTIVE state is ready to transmit or receive primitives to or from the Data Like Layer
and the ARPM.
DL_Connect.req {
calling_address := calling_address,
dl_dlcep_address := local_dlcep_address,
dl_dlcep_class := DlcepClass,
dl_delivery_from_requester := FromRequesterToResponder, *1
dl_delivery_from_responder := FromResponderToRequester, *2
dl_dll_priority := DllPriority,
dl_max_confirm_delay_on_connect := MaxConfirmDelayOnDlConnect,
dl_max_confirm_delay_on_data := MaxConfirmDelayOnDlData, *1, *2
dl_dlpdu_authentication := DlpduAuthentication,
dl_residual_activity_as_sender := ResidualActivityAsSender, *1
dl_residual_activity_as_receiver := ResidualActivityAsReceiver, *1, *2
dl_scheduling_policy := DlSchedulingPolicy,
dl_dlsdu_size_from_requester := MaxDlsduSizeFromRequester, *1
dl_dlsdu_size_from_responder := MaxDlsduSizeFromResponder, *2
dl_buffer_queue_binding_as_sender := SendingBufferOrQueueIdentifier, *1
dl_buffer_queue_binding_as_receiver := ReceivingBufferOrQueueIdentifier, *2
dl_dls_user_data := dlsdu, *1, *2
dl_sender_dl_timeliness_class := SenderDlTimelinessClass, *4
dl_sender_time_window_size := SenderTimeWindowSize, *4
dl_sender_synchronizing_dlcep := SenderSynchronizingDlcep, *4
dl_receiver_dl_timeliness_class := ReceiverDlTimelinessClass, *3
dl_receiver_time_window_size := ReceiverTimeWindowSize, *3
dl_receiver_synchronizing_dlcep := ReceiverSynchronizingDlcep *3
DlcepDlIdentifier := dl_dlcep_dl_id (from DL_Connect.req(out))
}
DL_Connect.rsp {
dl_dlcep_dl_id := dlcep_dl_id,
dl_responding_address := responding_address,
dl_dlcep_address := local_dlcep_address,
dl_dlcep_class := DlcepClass,
dl_delivery_from_requester := FromRequesterToResponder,
dl_delivery_from_responder := FromResponderToRequester,
dl_dll_priority := DllPriority,
dl_max_confirm_delay_on_connect := MaxConfirmDelayOnDlConnect,
dl_max_confirm_delay_on_data := MaxConfirmDelayOnDlData,
dl_dlpdu_authentication := DlpduAuthentication,
dl_residual_activity_as_sender := ResidualActivityAsSender,
dl_residual_activity_as_receiver := ResidualActivityAsReceiver,
dl_scheduling_policy := DlSchedulingPolicy,
dl_dlsdu_size_from_requester := MaxDlsduSizeFromRequesterNegotiated,
dl_dlsdu_size_from_responder := MaxDlsduSizeFromResponderNegotiated,
dl_buffer_queue_binding_as_sender := SendingBufferOrQueueIdentifier,
dl_buffer_queue_binding_as_receiver := ReceivingBufferOrQueueIdentifier,
dl_dls_user_data := dlsdu
}
S3 ACTIVE FAS-PDU_req ACTIVE
&& dmpm_service_name = "DMPM_Disconnect_req"
=>
PickArep (arep_id),
DL_Disconnect.req {
dl_dlcep_dl_id := dlcep_dl_id,
dl_reason := reason,
dl_dls_user_data := dlsdu
}
S4 ACTIVE FAS-PDU_req ACTIVE
&& dmpm_service_name = "DMPM_Data_req"
=>
PickArep (arep_id),
dmpm_request_id := SelectIdentifier(),
DL_Data.req {
dl_request_dls_user_id := dmpm_request_id,
dl_dlcep_dl_id := dlcep_dl_id,
dl_dls_user_data := dlsdu,
}
S5 ACTIVE FAS-PDU_req ACTIVE
&& dmpm_service_name = "DMPM_Unitdata_req"
=>
dmpm_request_id := SelectIdentifier(),
PickArep (arep_id),
DL_Unitdata.req {
dl_request_dls_user_id := dmpm_request_id,
dl_called_address := RemoteDlsapAddress,
dl_calling_address := LocalDlsapAddress,
dl_dll_priority := DllPriority,
dl_max_confirm_delay := MaxConfirmDelayOnUnitdata,
dl_remote_dle_confirmed := "False",
dl_dls_user_data := dlsdu
}
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 87 –
DL_Put.in {
dl_buffer_id := SendingBufferOrQueueIdentifier,
dl_dls_user_data := dlsdu
}
DL_Put.out
&& dl_status = "success"
DL_Put.out
&& dl_status <> "success"
ErrorToARPM {
originator := "local_dls",
reason := dl_status
}
S7 ACTIVE FAS-PDU_req ACTIVE
&& dmpm_service_name = “DMPM_Get_req”
=>
PickArep (arep_id),
DL_Get.in {
dl_buffer_or_queue_id := ReceivingBufferOrQueueIdentifier
}
DL_Get.out
&& dl_reported_service_identification_class = "NONE"
FAS-PDU_ind {
dmpm_service_name := "DMPM_Get_cnf",
status := dl_status,
duplicate_dlsdu := dmpm_duplicate_dlsdu,
fas_pdu := dl_dls_user_data,
local_dle_timeliness := dl_local_dle_timeliness,
remote_dle_timeliness := dl_sender_and_remote_dle_timeliness
}
S8 ACTIVE FAS-PDU_req ACTIVE
&& dmpm_service_name = “DMPM_Compel_req”
=>
PickArep (arep_id),
DL_Compel_Service.in {
dl_action_class := action_class,
dl_dlcep_dl_id := DlcepDlIdentifier
}
DL_Compel_Service.out
FAS-PDU_ind {
dmpm_service_name := "DMPM_Compel_Service_cnf",
status := dl_status
}
BS EN 61158-6-9:2014
– 88 – IEC 61158-6-9:2014 © IEC 2014
DL_Get.out
&& dl_status = "success"
&& dl_reported_service_identification_class = "DL(SAP)-ADDRESS"
&& dl_called_dl(sap)_addresss = LocalDlsapAddress
FAS-PDU_ind {
dmpm_service_name := "DMPM_Unitdata_ind",
calling_address := dl_calling_address,
dll_priority := dl_dll_priority,
fas_pdu := dl_dls_user_data
}
DL_Get.out
&& dl_status <> "success"
ErrorToARPM {
originator := "local_dls",
reason := dl_status
}
R13 ACTIVE DL_Unitdata.cnf ACTIVE
&& dmpm_request_id = dl_request_dls_user_id
&& dl_status <> "success"
=>
ErrorToARPM {
originator := "local_dls",
reason := dl_status
}
R14 ACTIVE DL_Unitdata.cnf ACTIVE
&& dmpm_request_id = dl_request_dls_user_id
&& dl_status = "success"
=>
(no actions taken)
BS EN 61158-6-9:2014
– 90 – IEC 61158-6-9:2014 © IEC 2014
DL_Get.out
&& dl_status = "success"
&& dl_reported_service_identification_class = "DLCEP"
FAS-PDU_ind {
dmpm_service_name := "DMPM_Data_ind",
fas_pdu := dl_dls_user_data
}
DL_Get.out
&& dl_status <> "success"
ErrorToARPM {
originator := "local_dls",
reason := dl_status
}
R18 ACTIVE DL_Data.cnf ACTIVE
&& dmpm_request_id <> dl_request_dls_user_id
=>
(no actions taken)
R19 ACTIVE DL_Data.cnf ACTIVE
&& dmpm_request_id = dl_request_dls_user_id
&& dl_status = "success"
=>
(no actions taken)
R20 ACTIVE DL_Data.cnf ACTIVE
&& dmpm_request_id = dl_request_dls_user_id
&& dl_status <> "success"
=>
ErrorToARPM {
originator := "local_dls",
reason := dl_status,
dlsdu := "null"
}
R21 ACTIVE DL_Buffer_Received.ind ACTIVE
&& FindAREP (dl_dlcep_dl_id) = "False"
=>
(no actions taken)
BS EN 61158-6-9:2014
IEC 61158-6-9:2014 © IEC 2014 – 91 –
DL_Get.in {
dl_buffer_or_queue_id := ReceivingBufferOrQueueIdentifier
}
DL_Get.out
&& dl_status = "success"
&& dl_reported_service_identification_class = "NONE"
FAS-PDU_ind {
dmpm_service_name := "DMPM_Buffer_Received_ind",
duplicate_dlsdu := dmpm_duplicate_dlsdu,
fas_pdu := dl_dls_user_data,
local_dle_timeliness := dl_local_dle_timeliness,
remote_dle_timeliness := dl_sender_and_remote_dle_timeliness
}
DL_Get.out
&& dl_status <> "success"
ErrorToARPM {
originator := "local_dls",
reason := dl_status
}
R23 ACTIVE DL_Buffer_Sent.ind ACTIVE
&& FindAREP (dl_dlcep_dl_id) = "False"
=>
(no actions taken)
R24 ACTIVE DL_Buffer_Sent.ind ACTIVE
&& FindAREP (dl_dlcep_dl_id) = "True"
=>
FAS-PDU_ind {
dmpm_service_name := “DMPM_Buffer_Sent_ind”
}
The primitives exchanged between the data-link layer and the DMPM are specified in
Table 33. They are defined in IEC 61158-3-1, and are prefixed by “dl_” to indicate that they
are defined by the DLL.
Table 34 through Table 37 define internal functions used by the three DMPMs.
a) Decodes the DLSDU that is conveyed by the dl_dls_user_data argument and checks if the FAS PDU type is
“ASC_ReqPDU.”
b) Decodes the FAS-PDU and extracts the RequestingAREP and RespondingAREP parameters.
c) Looks for the QUB AREP whose LocalDlcepAddress attribute value is equal to the RespondingAREP.
Bibliography
ISO/IEC 2375, Information technology – Procedure for registration of escape sequences and
coded character sets
______________
This page deliberately left blank
NO COPYING WITHOUT BSI PERMISSION EXCEPT AS PERMITTED BY COPYRIGHT LAW
About us Revisions
We bring together business, industry, government, consumers, innovators Our British Standards and other publications are updated by amendment or revision.
and others to shape their combined experience and expertise into standards We continually improve the quality of our products and services to benefit your
-based solutions. business. If you find an inaccuracy or ambiguity within a British Standard or other
The knowledge embodied in our standards has been carefully assembled in BSI publication please inform the Knowledge Centre.
a dependable format and refined through our open consultation process.
Organizations of all sizes and across all sectors choose standards to help Copyright
them achieve their goals. All the data, software and documentation set out in all British Standards and
other BSI publications are the property of and copyrighted by BSI, or some person
Information on standards or entity that owns copyright in the information used (such as the international
We can provide you with the knowledge that your organization needs standardization bodies) and has formally licensed such information to BSI for
to succeed. Find out more about British Standards by visiting our website at commercial publication and use. Except as permitted under the Copyright, Designs
bsigroup.com/standards or contacting our Customer Services team or and Patents Act 1988 no extract may be reproduced, stored in a retrieval system
Knowledge Centre. or transmitted in any form or by any means – electronic, photocopying, recording
or otherwise – without prior written permission from BSI. Details and advice can
Buying standards be obtained from the Copyright & Licensing Department.
You can buy and download PDF versions of BSI publications, including British
and adopted European and international standards, through our website at Useful Contacts:
bsigroup.com/shop, where hard copies can also be purchased. Customer Services
If you need international and foreign standards from other Standards Development Tel: +44 845 086 9001
Organizations, hard copies can be ordered from our Customer Services team. Email (orders): [email protected]
Email (enquiries): [email protected]
Subscriptions
Subscriptions
Our range of subscription services are designed to make using standards
Tel: +44 845 086 9001
easier for you. For further information on our subscription products go to
Email: [email protected]
bsigroup.com/subscriptions.
With British Standards Online (BSOL) you’ll have instant access to over 55,000 Knowledge Centre
British and adopted European and international standards from your desktop. Tel: +44 20 8996 7004
It’s available 24/7 and is refreshed daily so you’ll always be up to date. Email: [email protected]
You can keep in touch with standards developments and receive substantial
Copyright & Licensing
discounts on the purchase price of standards, both in single copy and subscription
format, by becoming a BSI Subscribing Member. Tel: +44 20 8996 7070
Email: [email protected]
PLUS is an updating service exclusive to BSI Subscribing Members. You will
automatically receive the latest hard copy of your standards when they’re
revised or replaced.
To find out more about becoming a BSI Subscribing Member and the benefits
of membership, please visit bsigroup.com/shop.
With a Multi-User Network Licence (MUNL) you are able to host standards
publications on your intranet. Licences can cover as few or as many users as you
wish. With updates supplied as soon as they’re available, you can be sure your
documentation is current. For further information, email [email protected].