1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bsi bs en 61158 5 15 2012

144 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Application Layer Service Definition — Type 15 Elements
Trường học British Standards Institution
Chuyên ngành Industrial Communication Networks
Thể loại Standard
Năm xuất bản 2012
Thành phố Brussels
Định dạng
Số trang 144
Dung lượng 1,67 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1.1 Overview (10)
  • 1.2 Specifications (11)
  • 1.3 Conformance (11)
  • 1.4 Type overview (12)
  • 3.1 Terms and definitions (13)
  • 3.2 Abbreviations and symbols (21)
  • 3.3 Conventions (22)
  • 4.1 Common concepts (25)
  • 4.2 Client/server specific concepts (25)
  • 4.3 Publish/subscribe specific concepts (34)
  • 5.1 General (43)
  • 5.2 Formal definition of data type objects (43)
  • 5.3 FAL defined data types (43)
  • 5.4 Data type ASE service specification (56)
  • 6.1 ASEs (56)
  • 6.2 ARs (115)
  • 6.3 Summary of FAL classes (118)
  • 6.4 Permitted FAL services by AREP role (118)
  • 7.1 ASEs (120)
  • 7.2 ARs (139)
  • 7.3 Summary of FAL classes (141)
  • 7.4 Permitted FAL services by AREP role and sub-role (141)

Nội dung

INDUSTRIAL COMMUNICATION NETWORKS – FIELDBUS SPECIFICATIONS – Part 5-15: Application layer service definition – The Type 15 fieldbus provides two major communication mechanisms that com

Overview

In network communications, the principle that "one size does not fit all" is crucial, as effective engineering design involves making strategic trade-offs These trade-offs must carefully balance conflicting requirements, including simplicity, generality, ease of use, feature richness, performance, memory size and usage, scalability, determinism, and robustness Additionally, these decisions should consider the types of information flow, such as periodic, one-to-many, request-reply, and events, along with the constraints set by the application and execution platforms.

The Type 15 fieldbus offers two key communication mechanisms—Client/Server and Publish/Subscribe—that work together to meet automation communication needs These mechanisms can operate simultaneously on the same device.

Type 15 Client/Server functions within a Client/Server framework, where its application layer services and protocol specifications remain independent of the underlying layers This flexibility allows for implementation across various communication stacks and media, including EIA/TIA-232, EIA/TIA-422, EIA/TIA-425, HDLC (ISO 13239), fiber optics, TCP/IP, as well as Wireless LANs and radios.

Type 15 Publish/Subscribe functions within a Publish/Subscribe framework, where its application layer service definitions and protocol specifications remain independent of the underlying layers This allows for configuration that ensures reliable performance and supports determinism, with the most frequently used stack being UDP/IP.

The fieldbus application layer (FAL) serves as a crucial interface for user programs to interact with the fieldbus communication environment, effectively acting as a "window" that connects corresponding application programs.

IEC 61158 outlines essential components for both time-critical and non-time-critical messaging communications between application programs in automation settings, specifically focusing on Type 15 fieldbus The concept of "time-critical" refers to a designated time-window in which certain actions must be executed with a defined level of certainty If these actions are not completed within the specified timeframe, it may jeopardize the applications involved, posing risks to equipment, facilities, and potentially human safety.

This section of IEC 61158 outlines the externally visible services of the Type 15 fieldbus application layer, focusing on an abstract model for application resources (objects) that users can manipulate through the FAL service It details the primitive actions and events associated with the service, including their parameters and formats, as well as the interrelationships and valid sequences of these actions and events.

This section of IEC 61158 aims to outline the services available to the FAL user at the interface between the user and the Application Layer of the Fieldbus Reference Model, as well as to Systems Management at the interface between the Application Layer and Systems Management within the Fieldbus Reference Model.

This section of IEC 61158 outlines the structure and services of the Type 15 IEC fieldbus Application Layer, adhering to the OSI Basic Reference Model (ISO/IEC 7498-1) and the OSI Application Layer Structure (ISO/IEC 9545).

FAL services and protocols are delivered through FAL application-entities (AE) within application processes Each FAL AE consists of object-oriented Application Service Elements (ASEs) and a Layer Management Entity (LME) that oversees the AE The ASEs facilitate communication services based on related application process object (APO) classes Among these ASEs is a management ASE that offers a unified set of services for managing instances of FAL classes.

The services outlined focus on the issuance and delivery of requests and responses without detailing the behavioral aspects of the requesting and responding applications This approach allows FAL users greater flexibility in standardizing object behavior Additionally, the standard includes supporting services that enable access to the FAL for controlling specific operational aspects.

Specifications

This section of IEC 61158 aims to define the characteristics of conceptual application layer services designed for time-critical communications, thereby enhancing the OSI Basic Reference Model to aid in the development of application layer protocols tailored for such communications.

A key goal is to establish migration pathways from existing industrial communication protocols, leading to a variety of standardized services under the different Types of IEC 61158 and the associated protocols outlined in IEC 61158-6 subparts.

This specification serves as a foundational guideline for formal Application Programming Interfaces (APIs) However, it is important to note that it does not constitute a formal programming interface Any resulting interface must tackle implementation challenges not addressed in this specification, such as the sizes and octet ordering of multi-octet service parameters, as well as the correlation between paired request and confirm, or indication and response primitives.

Conformance

This part of IEC 61158 does not specify individual implementations or products, nor do they constrain the implementations of application layer entities within industrial automation systems

Equipment does not conform to the application layer service definition standard; rather, conformance is attained by implementing application layer protocols that meet the Type 15 application layer services outlined in IEC 61158.

Type overview

In network communications, the principle that "one size does not fit all" is crucial, as effective engineering design involves making informed trade-offs These trade-offs must carefully balance conflicting requirements, including simplicity, generality, ease of use, feature richness, performance, memory size and usage, scalability, determinism, and robustness Additionally, these decisions should consider the types of information flow, such as periodic, one-to-many, request-reply, and events, along with the constraints set by the application and execution platforms.

The Type 15 fieldbus offers two key communication mechanisms—Client/Server and Publish/Subscribe—that work together to meet automation communication needs These mechanisms can operate simultaneously on the same device.

Type 15 Client/Server functions within a Client/Server framework, where its application layer services and protocol specifications are designed to be independent of the underlying layers This flexibility allows for implementation across various communication stacks and media, such as EIA/TIA-232, EIA/TIA-422, EIA/TIA-425, HDLC (ISO 13239), fiber optics, TCP/IP, Wireless LANs, and radio technologies.

Type 15 Publish/Subscribe functions within a Publish/Subscribe framework, where its application layer service definitions and protocol specifications remain independent of the underlying layers This allows for configuration that ensures reliable performance and supports determinism, with the most frequently used stack being UDP/IP.

The referenced documents are essential for the application of this document For dated references, only the specified edition is applicable, while for undated references, the most recent edition, including any amendments, is relevant.

IEC/TR 61158-1:2010 1 , Industrial communication networks – Fieldbus specifications – Part 1:

Overview and guidance for the IEC 61158 and IEC 61784 series

IEC 61158-6-15:2010 1 , Industrial communication networks – Fieldbus specifications - Part 6-15: Application layer protocol specification – Type 15 elements

ISO/IEC 7498-1, Information technology – Open Systems Interconnection – Basic Reference Model: The Basic Model

ISO/IEC 8822, Information technology – Open Systems Interconnection – Presentation service definition

ISO/IEC 8824-1, Information technology – Abstract Syntax Notation One (ASN.1): Specification of basic notation

ISO/IEC 9545, Information technology – Open Systems Interconnection – Application Layer structure

ISO/IEC 10731, Information technology – Open Systems Interconnection – Basic Reference Model – Conventions for the definition of OSI services

3 Terms and definitions, abbreviations, symbols and conventions

Terms and definitions

For the purposes of this document, the following terms as defined in these publications apply:

3.1.1 ISO/IEC 7498-1 terms a) application entity b) application process c) application protocol data unit d) application service element e) application entity invocation f) application process invocation g) application transaction h) real open system i) transfer syntax

3.1.2 ISO/IEC 8822 terms a) abstract syntax b) presentation context

3.1.3 ISO/IEC 9545 terms a) application-association b) application-context c) application context name d) application-entity-invocation e) application-entity-type f) application-process-invocation g) application-process-type h) application-service-element i) application control service element

3.1.4 ISO/IEC 8824 terms a) object identifier b) type

The following IEC/TR 61158-1 terms apply

3.1.5.1 application function or data structure for which data is consumed or produced

3.1.5.2 application layer interoperability capability of application entities to perform coordinated and cooperative operations using the services of the FAL

3.1.5.3 application object object class that manages and provides the run time exchange of messages across the network and within the network device

NOTE Multiple types of application object classes may be defined

3.1.5.4 application process part of a distributed application on a network, which is located on one device and unambiguously addressed

3.1.5.5 application process identifier distinguishes multiple application processes used in a device

3.1.5.6 application process object component of an application process that is identifiable and accessible through an FAL application relationship

NOTE Application process object definitions are composed of a set of values for the attributes of their class

3.1.5.7 application process object class class of application process objects defined in terms of the set of their network-accessible attributes and services

3.1.5.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

NOTE This relationship is activated either by the exchange of application-protocol-data-units or as a result of preconfiguration activities

3.1.5.9 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 Each application process involved in the application relationship maintains its own application relationship endpoint

3.1.5.10 application service element application-service-element that provides the exclusive means for establishing and terminating all application relationships

3.1.5.11 attribute description of an externally visible characteristic or feature of an object

Attributes of an object hold crucial information regarding its variable aspects, often providing status updates or controlling its operations They can also influence the object's behavior Attributes are categorized into two types: class attributes and instance attributes.

3.1.5.12 behavior indication of how the object responds to particular events

NOTE Its description includes the relationship between attribute values and services

3.1.5.13 class set of objects, all of which represent the same kind of system component

A class serves as a blueprint for creating objects, defining their variables and methods While all objects within a class share the same structure and behavior, they typically hold distinct data in their attributes.

3.1.5.14 class attributes attribute that is shared by all objects within the same class

3.1.5.15 class code unique identifier assigned to each object class

3.1.5.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 A class specific object is unique to the object class which defines it

(a) object which uses the services of another (server) object to perform a task

An initiator of a message prompts a server's response, exemplified by an AR endpoint that sends confirmed service request APDUs to a designated AR endpoint functioning as a server.

3.1.5.18 conveyance path unidirectional flow of APDUs across an application relationship

3.1.5.19 cyclic term used to describe events which repeat in a regular and repetitive manner

AR used directly by the FAL user

NOTE On Dedicated ARs, only the FAL Header and the user data are transferred

3.1.5.21 device physical hardware connection to the link

NOTE A device may contain more than one node

3.1.5.22 device profile collection of device dependent information and functionality providing consistency between similar devices of the same device type

AR that requires the use of the AR establishment procedures to place it into an established state

3.1.5.24 endpoint one of the communicating entities involved in a connection

3.1.5.25 error discrepancy between a computed, observed or measured value or condition and the specified or theoretically correct value or condition

3.1.5.26 error class general grouping for error definitions

NOTE Error codes for specific errors are defined within an error class

3.1.5.27 error code identification of a specific type of error within an error class

FAL subnet networks composed of one or more data link segments

NOTE Subnets are permitted to contain bridges, but not routers FAL subnets are identified by a subset of the network address

FAL class that abstracts a software component or a firmware component as an autonomous self-contained facility of an automation device

3.1.5.30 management information network-accessible information that supports managing the operation of the fieldbus system, including the application layer

NOTE Managing includes functions such as controlling, monitoring, and diagnosing

3.1.5.31 network series of nodes connected by some type of communication medium

NOTE The connection paths between any pair of nodes can include repeaters, routers and gateways

3.1.5.32 peer role of an AR endpoint in which it is capable of acting as both client and server

AR endpoint that is defined locally within a device without use of the create service

NOTE Pre-defined ARs that are not pre-established are established before being used

AR endpoint that is placed in an established state during configuration of the AEs that control its endpoints

3.1.5.35 publisher role of an AR endpoint in which it transmits APDUs onto the fieldbus for consumption by one or more subscribers

The publisher may not know the identity or number of its subscribers and can publish its Application Protocol Data Units (APDUs) using a dedicated Application Reference (AR) This standard defines two types of publishers: Pull Publishers and Push Publishers, each with distinct characteristics.

3.1.5.36 server a) role of an AREP in which it returns a confirmed service response APDU to the client that initiated the request b) object which provides services to another (client) object

3.1.5.37 service operation or function than an object and/or object class performs upon request from another object and/or object class

A set of common services is established, along with guidelines for defining object-specific services These object-specific services are tailored to specific object classes and are designed to fulfill functions that are not covered by the common services.

3.1.5.38 subscriber role of an AREP in which it receives APDUs produced by a publisher

NOTE Two types of subscribers are defined by this standard, pull subscribers and push subscribers, each of which is defined separately

3.1.6 Specific definitions for client/server

The application process for coils involves a set of discrete outputs, defined by the address and quantity of each coil This collection is referred to as discrete outputs when linked to field outputs.

The discrete input application process object is identified by an unsigned number and has a width of one bit, representing a read-only, 1-bit encoded status value, where the value '1' signifies the status.

ON and the value '0' encoding the status OFF, also called discrete input, especially when associated with field inputs

Discrete inputs refer to a collection of discrete application process objects, defined by their specific addresses and quantities This collection is commonly known as discrete inputs, particularly in relation to field inputs.

The coil in the discrete output application process is represented by an unsigned number with a width of one bit This 1-bit encoded status value is read-write, where a value of '1' indicates the status.

ON and the value '0' encoding the status OFF, also called discrete output when associated with field output

3.1.6.5 encapsulated interface mechanism encapsulating a service for an interface, which is an application process object characterized by an MEI type

3.1.6.6 exception encoding used to signal a service request failure

3.1.6.7 exception code encoding associated with an exception, detailing the reason of a service request failure

3.1.6.8 file application process object, an organization of records, characterized by an unsigned number

3.1.6.9 function code encoding of a service requested to a server

3.1.6.10 holding register, output register application process object, addressed by an unsigned number and representing values with

16 bits, read-write, also called output register, especially when associated with field outputs

The application process object for holding registers, also known as output registers, consists of a defined set characterized by the address of a holding register and the quantity of these registers, particularly in relation to field outputs.

3.1.6.12 input register application process object, addressed by an unsigned number and representing values with

3.1.6.13 input registers application process object, a set of input registers, characterized by the address of an input register and a quantity of input registers

The record application process object consists of a series of contiguous registers of a defined type, identified by the address of the initial register and the total number of registers In this context, the registers are also referred to as references.

3.1.6.15 reference denigrated term for register

3.1.6.16 reference type denigrated term for register type

3.1.6.17 sub-code specialization of a function code

3.1.6.18 unit ID logical device identifier

MEI type type specified as an octet value, used to dispatch a service to the appropriate interface in the context of the encapsulated interface mechanism

3.1.7 Specific definitions for publish/subscribe

3.1.7.1 network object publish/subscribe application, reader, or writer

GUID globally unique network object identifier, used to uniquely reference an object within the network

3.1.7.3 composite state attributes of a set of network objects

CSTWriters engage with interested CSTReaders to enable the latter to reconstruct the current composite state of the CSTWriter without needing to share the entire history that contributed to that state.

CSTReader meta-information-specialized subscriber

CSTWriter meta-information-specialized publisher

3.1.7.9 communication actor reader or writer

3.1.7.10 domain participant application that uses publish/subscribe elements, also called publish/subscribe application

NOTE This terminology is adopted to avoid the overuse of the term “application” At the same time, the term

The concept of "domains" in publish/subscribe systems enables independent communication planes, allowing for the isolation of application exchanges While the OMG DDS (Data Distribution Service for Real-Time Systems Specification, Version 1.1, December 2005) incorporates this type extensibility, this specification will focus solely on a single domain.

3.1.7.11 manager specialized publish/subscribe application, containing specialized publishers and subscribers, and involved in the described discovery and maintenance mechanism; not to be confused with any publishing manager

A managed participant in a publish/subscribe application plays a crucial role in the discovery and maintenance mechanism, specifically in relation to a manager It is important to distinguish this role from that of any subordinate publishing manager.

The role of a publishing manager in an AR endpoint involves issuing confirmed service request APDUs to a publisher, prompting the publication of a specified object This standard defines two types of publishing managers: pull publishing managers and push publishing managers, each with distinct characteristics.

3.1.7.14 pull publisher type of publisher that publishes an object in response to a request received from its pull publishing manager

3.1.7.15 pull publishing manager type of publishing manager that requests that a specified object be published in a corresponding response APDU

3.1.7.16 push publisher type of publisher that publishes an object in an unconfirmed service request APDU

3.1.7.17 push publishing manager type of publishing manager that requests that a specified object be published using an unconfirmed service

3.1.7.18 pull subscriber type of subscriber that recognizes received confirmed service response APDUs as published object data

3.1.7.19 push subscriber type of subscriber that recognizes received unconfirmed service request APDUs as published object data

3.1.7.20 sequence number number used to uniquely identify elementary publish/subscribe messages in an ordered manner

Abbreviations and symbols

ALME Application Layer Management Entity

APDU Application Protocol Data Unit

AREP Application Relationship End Point

ASCII American Standard Code for Information Interchange ASE Application Service Element

DL- (as a prefix) Data Link-

DLCEP Data Link Connection End Point

DLSAP Data Link Service Access Point

DLSDU DL-service-data-unit

IANA Internet Assigned Numbers Authority

LME Layer Management Entity lsb Least Significant Bit msb Most Significant Bit

SMIB System Management Information Base

3.2.2 Abbreviations and symbols for client/server

3.2.3 Abbreviations and symbols for publish/subscribe

DCPS Data-Centric Publish-Subscribe

DLRL Data Local Reconstruction Layer

Conventions

The FAL consists of a collection of object-oriented Application Service Elements (ASEs), with each ASE detailed in its own subclause Each ASE specification includes two key components: the class specification and the service specification.

The class specification outlines the attributes of the class, which can be accessed from class instances through the Object Management ASE services detailed in Clause 5 of this standard Additionally, the service specification describes the services offered by the ASE.

This standard uses the descriptive conventions given in ISO/IEC 10731

Class definitions are described using templates Each template consists of a list of attributes for the class The general form of the template is shown below:

PARENT CLASS: Parent Class Name

(1) The "FAL ASE:" entry is the name of the FAL ASE that provides the services for the class being specified

The "CLASS:" entry denotes the name of the specified class, with all objects created from this template being instances of that class This class can be defined either by the standard itself or by a user adhering to the standard.

The "CLASS ID:" is a unique number that identifies a specific class within the FAL ASE, ensuring clear identification when qualified by the FAL ASE's identity A "NULL" value signifies that the class cannot be instantiated Class IDs ranging from 1 to 255 are reserved for standardized classes to ensure compatibility with existing national standards, while IDs from 256 to 2048 are designated for user-defined classes.

The "PARENT CLASS:" entry indicates the name of the parent class for the specified class All attributes from the parent class are inherited by the defined class, eliminating the need to redefine them in the class template.

The parent class "TOP" serves as the foundational definition for all subsequent classes, establishing a standard starting point Its usage is specifically designated for classes defined under this standard.

The "ATTRIBUTES" label signifies that the subsequent entries are defined attributes for the class Each entry includes a line number, an indicator for mandatory (m), optional (o), conditional (c), or selector (s) status, an attribute type label, a name or conditional expression, and optionally, a list of enumerated values along with a default value Objects are typically identified by a numeric identifier, an object name, or both, with key attributes defined in class templates The line number indicates the sequence and nesting level, with nesting denoted by periods, which specifies structured attribute fields, attributes conditional on constraints, and selection fields of choice type attributes Attributes can be mandatory or optional based on the truth of the constraint, with some optional attributes not requiring constraint statements.

The "SERVICES" label identifies the services associated with a class, where an (m) in column 2 signifies a mandatory service, an (o) indicates an optional service, and a (c) denotes a conditional service If all services for a class are optional, at least one must be selected when defining an instance of that class The label "OpsService" refers to an operational service, while "MgtService" indicates a management service Additionally, the line number indicates the sequence and nesting level, with each level marked by a period, allowing for the specification of services that are conditional on a constraint statement.

The service model, service primitives, and time-sequence diagrams used are entirely abstract descriptions; they do not represent a specification for implementation

Service primitives represent the interactions between service users and providers, as defined by ISO/IEC 10731 They communicate parameters that provide information about these interactions It's important to note that within a specific interface, not all parameters are required to be explicitly stated.

This standard outlines the service specifications in a tabular format, detailing the component parameters of the ASE service primitives Each group of service primitives is represented in tables, which may contain up to five columns for clarity.

Each row of the tables contains a single parameter or its component, with a corresponding code under the relevant service primitive columns that indicates how the parameter is utilized within the specified primitive.

M parameter is mandatory for the primitive

U parameter is a User option, and may or may not be provided depending on dynamic usage of the service user When not provided, a default value for the parameter is assumed

C parameter is conditional upon other parameters or upon the environment of the service user

— (blank) parameter is never present

Some entries are further qualified by items in brackets These may be a) a parameter-specific constraint:

The symbol "(=)" signifies that the parameter is semantically equivalent to the parameter immediately to its left in the service primitive table Additionally, it indicates that a specific note pertains to the entry.

“(n)” indicates that the following note "n" contains additional information pertaining to the parameter and its use

The procedures are defined in terms of

• the interactions between application entities through the exchange of fieldbus Application Protocol Data Units, and

• the interactions between an application layer service provider and an application layer service user in the same system through the invocation of application layer service primitives

These procedures are applicable to instances of communication between systems which support time-constrained communications services within the fieldbus Application Layer

Common concepts

All of IEC/TR 61158-1:2010, Clause 9 is incorporated by reference, except as specifically overridden in 4.2 and 4.3.

Client/server specific concepts

Client/Server (C/S) refers to a communication mechanism that enables interaction between devices across various buses or networks The client/server architecture remains consistent regardless of the underlying layers Several configurations of the client/server stack are depicted in Figure 1.

TCP Type 15 C/S on TCP Type 15 C/S Application Layer

EIA/TIA-232 or EIA/TIA-422/485

The communication between devices on different types of buses or networks is made possible by the use of gateways, as illustrated in Figure 2

Type 15 AL C/S on TCP HMI

Figure 2 – Client/server communication on different buses or networks

Client/server provides application layer services specified by function codes, acting on application process objects (APOs)

An application process object (APO) serves as a network representation of distinct features of an application process (AP) Each APO encapsulates specific information and processing capabilities that can be accessed via the services of the Functional Application Layer (FAL) These objects are essential for conveying the capabilities of one AP to other APs within a fieldbus system.

From the FAL perspective, an APO is defined as a network-accessible object located within an AP or another APO, which can also contain other APOs These APOs establish the network framework for objects within an AP that are accessible remotely An APO's definition includes identifying the FAL services available for remote access by other APs The FAL services are delivered by the FAL communications entity of the AP, referred to as the FAL Applications Entity (FAL AE).

FAL AE responder services for remote access to APO requester

User Request and Response Data

APO provides network view of real object

Figure 3 – Client/server APOs services conveyed by the FAL

In Figure 3, remote access points (APs) function as clients to interact with a real object by sending requests through the Access Point Object (APO) that symbolizes the real object The local components of the AP facilitate the conversion between the network perspective of the APO and the internal representation of the real object within the AP.

For all APOs, the semantics is the one allowed by the associated FAL APO ASE

The client/server model is based on Application Protocol Objects (APOs) with unique characteristics, including discretes, coils, input registers, and holding registers, which are often viewed as memory tables While this model is straightforward and convenient, it represents just one of many possible interpretations, as these APOs do not necessarily have to be considered memory objects The application determines the most suitable relationship between APOs and real objects, a topic beyond the scope of this document Table 1 provides a summary of the characteristics of these four APOs.

Table 1 – Common client/server APOs

Common APOs Object type Comment discrete single bit Read-only, its value can be provided by an I/O system

This Application Programming Object (APO) is essential for modeling binary-valued real objects that are manipulated by the server application and are intended solely for observation by the client user The server application controls the integrity of this contract, limiting the exposure of real objects to discrete single-bit read-write operations, allowing the client application program to modify their values.

Common APOs Object type Comment input register 16 bit word Read-only, its value can be provided by an I/O system

This Application Programming Object (APO) is essential for modeling analog-valued real objects that are manipulated by the server application while remaining observable only to the client user The server Application Program (AP) ensures the integrity of this arrangement by restricting access to the real objects through input registers, which are 16-bit word read-write The values in these registers can be modified by a client application program.

The differences between inputs and outputs, as well as between bit-addressable and word-addressable data items, do not dictate application behavior It is common practice to view all four tables as overlapping, especially when this interpretation aligns best with the target machine's architecture.

The following Figure 4 and Figure 5, informative, give some common but by no means exhaustive interpretations, respectively as distinct memory tables and overlapping memory tables

Type 15 C/S access Device application memory

Figure 4 – Interpretation as distinct tables

Coils Input Registers Holding Registers

Figure 5 – Interpretation as overlapping tables

Different requests made on the same Application Programming Object (APO) do not always correspond to requests for the same real object, highlighting an important yet often overlooked interpretation in the field This concept is visually represented in Figure 6.

APO 1 e.g holding register 1 real object y e.g memory y real object x e.g memory x

Service A for APO 1 e.g read holding register 1 Service A read

Service B for APO 1 e.g write holding register 1

Figure 6 – APO and real objects, non obvious possible interpretation

Data references, including discretes, coils, input registers, and holding registers, can be collectively referred to as data items The protocol permits the individual selection of up to 65,536 data items for each of these categories From the perspective of the application user, the read or write operations on these items can encompass multiple consecutive data items, with the maximum data size determined by the service transaction function code.

The possible association of client/server data references (bits, registers) and actual physical storage within devices is a local issue

The client/server logical data reference addresses, used in client/server service function codes, are unsigned integers starting at zero

The relationship between data reference addresses in client/server service function codes and user reference addresses in PLC Ladder Logic can be confusing User reference addresses traditionally start at 1, while client/server addresses begin at 0 Consequently, a client/server message requesting to read a register at offset 0 will return what is considered register 1 by the application programmer An exception exists for addressing records via registers using the Read File Record and Write File Record service function codes, where record 0 is specified as its first register Further details are available in the service specifications.

From the perspective of an application user, the record APO consists of a series of contiguous registers of a specific type, defined by the address of the first register and the total number of registers In this context, these registers are also referred to as references.

The file APO is an organization of records, characterized by an unsigned number

The encapsulated interface serves as a mechanism that encapsulates a service for an application process object defined by an MEI type This MEI type, represented as an octet value, is essential for directing the service to the correct interface.

While it is a simple mechanism, since it defers all the semantics to the interface, it allows maximum flexibility in what it can represent and convey

Function codes are encodings of services requested to a server These encodings are partitioned in three categories:

These function codes are either assigned to a standard service or reserved for future assignment

These function codes can be used for experimentation in a controlled laboratory environment They shall not be used in an open environment

These function codes are currently used by some companies for legacy products and are not available for public use

NOTE 1 Function code assignments are managed by the Modbus-IDA industrial consortium

The following function codes are publicly assigned but are not included in this specification: FC 0x07 (Read Exception Status), FC 0x08 (Diagnostics), FC 0x0B (Get Com Event Counter), FC 0x0C (Get Com Event Log), and FC 0x11 (Report Slave ID).

4.2.4 Client/server communication model overview

Figure 7 is a representation of the end-to-end communication model

FAL APDUs service user real object

FAL APDU Body Service Parameters service primitives

Client/server uses a Client/Server AR with confirmed interaction, and optionally when broadcast is supported, a Client/Server AR with unconfirmed interaction

4.2.4.2 Client/server device addressing and connection

Client/server devices utilize a unique Unit ID for identification, which must be distinct across all servers accessible by a client The specific group of addressable servers is defined by the underlying layer, often referred to as the connection.

The Unit ID assignment is outside of the scope of this specification

The Unit ID identifies logical devices There may be more than one logical device per physical device

Some values of Unit ID are reserved and have particular meanings The value 0 is reserved for broadcast

Publish/subscribe specific concepts

The Publish/Subscribe (P/S) communication mechanism facilitates interaction between networked devices, offering various Quality of Service (QoS) characteristics Designed for upward compatibility, it allows for easy augmentation of the QoS set through versioning or vendor-specific extensions While this specification outlines potential extension possibilities, it does not provide detailed descriptions, as this falls outside its scope It is crucial to understand that Publish/Subscribe operates as a wire protocol, presenting numerous configuration and extension options, with many behaviors not documented within this specification.

NOTE A higher application services layer, dictating optimal usage and taking advantage of easy to accommodate

‘designed-in’ extensions for publish/subscribe, has been recently standardized by the OMG: “Data Distribution Service for Real-Time Systems Specification, Version 1.1, December 2005”

The publish/subscribe architecture has minimal requirements for its underlying layers, allowing deployment through memory offsets on shared memory or UDP ports It supports various transport methods and quality of service (QoS) options, functioning effectively on multicast and best-effort transports like UDP/IP The protocol only requires a connectionless service that can send packets on a best-effort basis, without guaranteeing delivery or order For reliability in data transfer and state management, publish/subscribe operates above the transport layer, enabling compatibility with a broader range of transport options, including those that are reliable.

The general requirements publish/subscribe asks to the underlying transport can be summarized as follows:

⎯ the transport has a generalized notion of a unicast address (shall fit within 16 octets);

⎯ the transport has a generalized notion of a port (shall fit within 4 octets), e.g could be a UDP port, an offset in a shared memory segment, etc.;

⎯ the transport can send a datagram (uninterpreted sequence of octets) to a specific address/port;

⎯ the transport can receive a datagram at a specific address/port;

⎯ the transport will drop messages if incomplete or corrupted during transfer (i.e publish/subscribe assumes messages are complete and not corrupted);

⎯ the transport provides a means to deduce the size of the received message

A publish/subscribe stack configuration is illustrated in Figure 13

UDP Type 15 P/S on UDP Type 15 P/S Application Layer

Figure 13 – Publish/subscribe communications stacks

If available, publish/subscribe can also take advantage of the multicast capabilities of the transport mechanism, where one message from a sender can reach multiple receivers

The publish/subscribe model enhances the determinism of communication mechanisms by offering a balance between determinism and reliability It utilizes deadlines to monitor determinism, while reliability is ensured through the use of queues, acknowledgements, and retransmission This reliability is natively implemented on a window-based system, providing users with complete control and flexibility over the trade-off between determinism and reliability.

4.3.2 Data-centric, match, decoupling and scalability

Publish/subscribe is organized around publishers and subscribers, with the additional characteristic of being data centric

In the data-centric publish-subscribe (DCPS) architecture, the attributes of an exchange are embedded within the data itself This includes not only the content, which may serve as a distinguishing factor, but also the operational characteristics of the publisher, which are evident in the published data Additionally, the expectations of subscribers are reflected in the data they choose to subscribe to.

This approach offers significant customization for data exchanges, enabling precise matches based on content without requiring direct knowledge between publishers and subscribers This decoupling is a key factor in its scalability, allowing for the easy addition and removal of publishers and subscribers.

Figure 14 illustrates a scenario where applications exchange data via publishers and subscribers, unknown to each others

The match is made by considering attributes of the data, like Topic name, Topic type, and other qualifying characteristics

Publish/subscribe extensions enable the use of "domains," allowing for the isolation of application exchanges within these domains Although OMG DDS, as outlined in the "Data Distribution Service for Real-Time Systems Specification, Version 1.1, December 2005," incorporates this extension, this specification will focus solely on a single domain without further exploration of the feature.

Figure 14 – Publish/subscribe data-centric exchanges between decoupled network objects

An application process object (APO) serves as a network representation of distinct features of an application process (AP) Each APO encapsulates specific information and processing capabilities that can be accessed via the services of the Functional Application Layer (FAL) These objects are essential for conveying the capabilities of one AP to other APs within a fieldbus system.

From the FAL's perspective, an APO is defined as a network-accessible object that resides within an AP or another APO, allowing for hierarchical containment APOs establish the network framework for objects within an AP that can be accessed remotely Additionally, the definition of an APO encompasses the identification of FAL services available for remote use.

APs for remote access The FAL services, as shown in Figure 15, are provided by the FAL communications entity of the AP, known as the FAL Applications Entity (FAL AE)

Publish/subscribe APOs are constructed dynamically, and are exchanged from publishers to subscribers

APO provides network modification for real object

Figure 15 – Publish/subscribe APOs services conveyed by the FAL

In Figure 15, remote access points (APs) function as publishers, enabling modifications to the real object by disseminating data that alters the remote Access Point Object (APO) The publish/subscribe mechanism facilitates the distribution of the APO itself Once a subscriber obtains the APO, the local components of the AP translate between the network perspective of the real object (the APO) and the internal representation of the real object within the AP.

The publish/subscribe APO is the data exchanged itself, the publication, here called topic to emphasize the fact that it is identifiable data

The topic is characterized by the following:

The offered publication topic is looked at by an expected subscription topic, and a match is attempted The matching is done on all three components, with the following considerations:

⎯ the name components have to match, but this is not required to be a literal match, as it can be done via regular expression pattern matching;

If one of the matching sides has a topic type that is an empty string, it indicates a match without the need for type checking against the type information of that component, as this information should be accessible through other means Conversely, if both sides have non-empty topic types, they must match accordingly.

If the representational code of a topic from either matching side is 0, it indicates a match, but no additional information is available regarding the topic type and its marshalling In such cases, type information should be obtained through alternative means Conversely, if the representational codes from both sides are not 0, a match is required.

The publication and subscription topics provide crucial information regarding data production and consumption through optional parameters This information is essential for ensuring Quality of Service (QoS) and is accessible at the publisher, topic, and subscriber levels The type and amount of additional information can be customized, with a commonly used set being the publication topic.

⎯ topic (name, type, representational code);

The strength of an issue from a publication signifies its importance, while persistence reflects the duration of its validity Together, strength and persistence enable the recipient to evaluate and prioritize issues received from multiple relevant publications.

⎯ topic (name, type, representational code);

The minimum separation refers to the least amount of time required between two consecutive issues received by the Subscription, establishing the maximum frequency at which the Subscription can accept issues Publishers should ensure that issues are dispatched with at least this minimum time interval to maintain optimal delivery.

The above configuration enables the behaviors illustrated in Figure 16, informative minimum separation deadline

Time notification on arrival persistence

Time take any subscription using subscription QoS take strongest deadline miss notification time of most recentty accepted issue subscription using publication QoS

Figure 16 – Examples of publish/subscribe configurable behaviors via QoS

Publish/subscribe exchanges can be

The “many to ” possibilities directly support high availability with transparent failover

Queues and acknowledgements configurable parameters allow an application to behave from best effort to strictly reliable

4.3.6 Publish/subscribe communication model overview

Publish/subscribe interactions are based on data/events sent by one AP for use by others This model is referred to as publisher/subscriber interactions

The interaction model's services are delivered through application relationship endpoints (AREPs) linked to the communicating application processes (APs) Each AREP's role in the interaction—such as client, server, peer, publisher, or subscriber—is specified as an attribute of the AREP.

General

All of IEC/TR 61158-1, 10.1 is incorporated by reference.

Formal definition of data type objects

All of IEC/TR 61158-1, 10.2 is incorporated by reference.

FAL defined data types

This data type expresses a Boolean data type with the values TRUE and FALSE

This data type is the same as Integer32

This integer type is a two’s complement binary number with a length of four octets

This binary number type utilizes the most significant bit of the most significant byte as its leading bit, without including a sign bit It has a fixed length of one octet.

This IEC 61131-3 type is the same as Unsigned8

This data type is the same as Unsigned8

This binary number type utilizes the most significant bit of the most significant byte as its leading bit, without including a sign bit It is classified as an unsigned type and has a length of two octets.

This IEC 61131-3 type is the same as Unsigned16

This binary number type utilizes the most significant bit of the most significant byte as its leading bit, without including a sign bit It is classified as an unsigned type and has a total length of four octets.

This type is used in the same way as UINT

An OctetString is a sequential arrangement of octets, indexed from 1 to n, with the first octet being the initial element The order of transmission for these octets is specified by IEC 61158-6.

5.3.2 FAL defined data types for client/server

No type specific boolean types

1 Data Type Numeric Identifier = Not used

2 Data Type Name = Status flag

This data type expresses a Status data type, with the values ON and OFF, encoded in two octets The encoding for ON is 0xFF00 and the encoding for OFF is 0x0000

1 Data Type Numeric Identifier = Not used

2 Data Type Name = Status bit sequence

The Status bit sequence data type represents values as ON and OFF, encoded as 1 and 0 respectively, with each value occupying a single bit These bits are organized into octets, and if the total number of bits is not a multiple of 8, the last octet is padded with zeros The bits are numbered according to the order shown in Figure 20, where \(y\) denotes the Status bit number, \(x\) indicates the Status bit value, and "–" signifies an empty location, with the most significant bit (msb) on the left and the least significant bit (lsb) on the right.

Figure 20 – Status bit sequence numbering

No type specific currency types

No type specific date/time types

No type specific enumerated types

No type specific handle types

No type specific general numeric types

No type specific floating point types

No type specific integer types

No type specific unsigned types

No type specific pointer types

No type specific fixed length octet (byte) string types

No type specific fixed length visible string types

1 Data Type Numeric Identifier = Not used

2 Data Type Name = ASCII string

No type specific structure types

5.3.3 FAL defined data types for publish/subscribe

No type specific boolean types

No type specific bitstring types

No type specific currency types

No type specific date/time types

No type specific enumerated types

No type specific handle types

No type specific general numeric types

No type specific floating point types

No type specific integer types

1 Data Type Numeric Identifier = Not used

An IP address is a 4-octets unsigned number, as from RFC 791

An IP address of zero is an invalid IP address

The mapping between the dot-notation "a.b.c.d" of an IP address and its representation as an unsigned long is as follows:

EXAMPLE IP address "127.0.0.1" corresponds to the unsigned long number 2130706433 or 0x7F000001

1 Data Type Numeric Identifier = Not used

A port is a 4-octets unsigned number

The port number zero is an invalid port-number

If a port number represents an IPv4 UDP port, only the range of unsigned short numbers from 0x1 to 0x0000ffff is valid

The following ports have been assigned to publish/subscribe by IANA:

⎯ rtps-discovery 7400/tcp,udp RTPS Discovery

⎯ rtps-dd-ut 7401/tcp,udp RTPS Data Distribution User Traffic

⎯ rtps-dd-mt 7402/tcp,udp RTPS Data Distribution Meta Traffic

No type specific pointer types

No type specific fixed length octet (byte) string types

No type specific fixed length visible string types

No type specific string types

1 Data Type Numeric Identifier = Not used

The HostID is actually not structured at all, but just an OctetString The distinction can be ignored for all practical purposes

The value { 0x00, 0x00, 0x00, 0x00 } is reserved for HOSTID_UNKNOWN with the meaning of unknown HostID

1 Data Type Numeric Identifier = Not used

An appKind value of 0x01 tags the application as a publish/subscribe managed participant

An appKind value of 0x02 tags the application as a publish/subscribe manager

An implementation based on this version (1.0) of the publish/subscribe will consider anything other than the above two to be an unknown class

The value { 0x00, 0x00, 0x00, 0x00 } is reserved for APPID_UNKNOWN with the meaning of unknown AppID

1 Data Type Numeric Identifier = Not used

The value { 0x00, 0x00, 0x00, 0x00 } is reserved for OBJECTID_UNKNOWN with the meaning of unknown ObjectID

In the objKind structure, the two most significant bits are crucial: the M-bit indicates if the object is at the meta-level or user-level, while the R-bit signifies whether the instanceId is selected or reserved, as illustrated in Figure 21.

M=1 The network object is a meta-object: it can be reached through the meta-ports of the application to which it belongs (ports designated as meta-traffic ports)

R=1 The instanceId is reserved; it has a special meaning to the protocol, they are used by the discovery mechanism

These reserved objects are used by the discovery mechanism for the discovery of domain participants (or applications) and communication actors in the network

In the publish/subscribe discovery and maintenance mechanism, both managers and managed participants function as applications, with their roles distinguishing them This mechanism facilitates the seamless matching of publishing offers and subscription demands to topics, ensuring proper behavior even as publishers and subscribers dynamically join or leave the system.

Publish/subscribe publishers and subscribers, and their specialized versions, are collectively called communication actors Their presence and attributes are the end result of the discovery and maintenance mechanism discussed

The significance of the discovery and maintenance mechanism lies in its achievements, which are influenced by the underlying AL layers, the number of nodes, and various features of the hosting system Consequently, the mechanism outlined in this specification is merely one of several options available, and it can be substituted as long as the desired outcome is maintained.

Every manager and every managed participant (or managed application) contains a number of special built-in network objects, which have reserved Object IDs

These special objects fall into these categories:

The domain participant, referred to as applicationSelf, is a network object identified by a unique GUID Each application is equipped with a CSTWriter, known as writerApplicationSelf, which is responsible for broadcasting the application's attributes across the network.

Several objects facilitate the discovery of managers and managed applications on the network Each managed application is associated with CSTReaders for readerApplications and readerManagers, which retrieve the existence and attributes of remote managed applications and managers Additionally, every manager is linked to CSTWriters for writeApplications and writeManagers.

⎯ Every managed application has, among others, two instances of a CSTReader (readerPublications and readerSubscriptions) and two instances of a CSTWriter

The CSTReaders enable the managed application to access information regarding all remote publications and subscriptions within the network, while the CSTWriters allow the application to disseminate details about its local publications and subscriptions.

The final six bits of the objectId indicate the object's class, which can be an application, Publisher, Subscriber, CSTWriter, or CSTReader, as summarized in Table 2 The message IDs have a defined meaning in this major version (1), while new objKinds may be introduced in future minor versions as the publish/subscribe object model evolves with additional classes.

1 Data Type Numeric Identifier = Not used

Class of object Normal user-object

Reserved meta-object unknown 0x00 0x40 0x80 0xc0 application 0x01 0x41 0x81 0xc1

The GUID (Globally Unique ID) is a unique reference to an application that contains communication actors or to a communication actor on the network

The GUID is built as a 12-octet triplet: The GUID should be a globally unique reference to one specific network object within the network

5.3.3.3.4.1 The GUIDs of publish/subscribe applications

Every publish/subscribe application on the network has GUID , where the constant OID_APP is defined as follows: OID_APP {0x00,0x00,0x01,0xc1}

The implementation allows for the selection of hostId and appId, provided that the last octet of the appId specifies the appKind and that each application on the network possesses a unique GUID.

5.3.3.3.4.2 The GUIDs of communication actors within publish/subscribe applications

Local communication actors within the application identified by GUID possess a unique GUID The objectId serves as the distinct identifier for the network object in relation to the application, indicating the type of network object—whether it is a user-object or a meta-object Additionally, it specifies whether the instanceId is user-defined by the middleware or a reserved instanceId with specific significance for publish/subscribe operations A notable example of a reserved objectId is OID_APP, which is integral to the GUID of applications.

1 Data Type Numeric Identifier = Not used

The structure specifies the vendor of the middleware that implements the publish/subscribe protocol, enabling the vendor to incorporate specific extensions It is important to note that the vendor ID does not pertain to the vendor of the device or product utilizing the publish/subscribe middleware For reference, the currently assigned vendor IDs can be found in Table 3.

0x01 0x01 Real-Time Innovations, Inc., CA, USA

1 Data Type Numeric Identifier = Not used

Implementations following this version of the specification implement protocol version 1.0 (major = 1, minor = 0)

1 Data Type Numeric Identifier = Not used

A sequence number, N, is a 64-bit signed integer, that can take values in the range: -2^63

Ngày đăng: 15/04/2023, 10:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN