IEC 62769-6-100:2023
(Main)Field Device Integration (FDI®) - Part 6-100: Technology Mapping - .Net
Field Device Integration (FDI®) - Part 6-100: Technology Mapping - .Net
IEC 62769-6-100:2023 specifies the technology mapping for the concepts described in the Field Device Integration (FDI®[1]) standard. The technology mapping focuses on implementation regarding the components FDI® Client and User Interface Plug-in (UIP) using the Runtime .NET. This runtime is specific only to the WORKSTATION platform as defined in IEC 62769‑4.
[1] FDI is a registered trademark of the non-profit organization Fieldbus Foundation, Inc. This information is given for the convenience of users of this document and does not constitute an endorsement by IEC of the trademark holder or any of its products. Compliance does not require use of the trade name. Use of the trade name requires permission of the trade name holder.
Intégration des appareils de terrain (FDI®) - Partie 6-100: Mapping de technologies - .Net
L'IEC 62769-6-100:2023 spécifie le mapping de technologies pour les concepts décrits dans la norme d'intégration des appareils de terrain (FDI®[1], Field Device Integration). Le mapping de technologies porte essentiellement sur la mise en œuvre des composants Client FDI® et Plugiciel d'interface utilisateur (UIP, User Interface Plug-in) à l'aide de l'environnement d'exécution .NET. Cet environnement d'exécution n'est spécifique qu'à la plateforme WORKSTATION définie dans l'IEC 62769‑4.
[1] FDI est une marque déposée de l’organisation à but non lucratif Fieldbus Foundation, Inc. Cette information est donnée à l'intention des utilisateurs du présent document et ne signifie nullement que l'IEC approuve le détenteur de la marque ou l'emploi de ses produits. La conformité n'exige pas l'utilisation de la marque. L'utilisation de la marque exige l'autorisation du détenteur de la marque.
General Information
Relations
Standards Content (Sample)
IEC 62769-6-100 ®
Edition 1.0 2023-04
INTERNATIONAL
STANDARD
NORME
INTERNATIONALE
colour
inside ®
Field Device Integration (FDI ) –
Part 6-100: Technology Mapping – .Net
®
Intégration des appareils de terrain (FDI ) –
Partie 6-100: Mapping de technologies – .Net
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form
or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from
either IEC or IEC's member National Committee in the country of the requester. If you have any questions about IEC
copyright or have an enquiry about obtaining additional rights to this publication, please contact the address below or
your local IEC member National Committee for further information.
Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite ni
utilisée sous quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie et
les microfilms, sans l'accord écrit de l'IEC ou du Comité national de l'IEC du pays du demandeur. Si vous avez des
questions sur le copyright de l'IEC ou si vous désirez obtenir des droits supplémentaires sur cette publication, utilisez
les coordonnées ci-après ou contactez le Comité national de l'IEC de votre pays de résidence.
IEC Secretariat Tel.: +41 22 919 02 11
3, rue de Varembé info@iec.ch
CH-1211 Geneva 20 www.iec.ch
Switzerland
About the IEC
The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
International Standards for all electrical, electronic and related technologies.
About IEC publications
The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
latest edition, a corrigendum or an amendment might have been published.
IEC publications search - webstore.iec.ch/advsearchform IEC Products & Services Portal - products.iec.ch
The advanced search enables to find IEC publications by a Discover our powerful search engine and read freely all the
variety of criteria (reference number, text, technical publications previews. With a subscription you will always have
committee, …). It also gives information on projects, replaced access to up to date content tailored to your needs.
and withdrawn publications.
Electropedia - www.electropedia.org
IEC Just Published - webstore.iec.ch/justpublished
The world's leading online dictionary on electrotechnology,
Stay up to date on all new IEC publications. Just Published
containing more than 22 300 terminological entries in English
details all new publications released. Available online and once
and French, with equivalent terms in 19 additional languages.
a month by email.
Also known as the International Electrotechnical Vocabulary
(IEV) online.
IEC Customer Service Centre - webstore.iec.ch/csc
If you wish to give us your feedback on this publication or need
further assistance, please contact the Customer Service
Centre: sales@iec.ch.
A propos de l'IEC
La Commission Electrotechnique Internationale (IEC) est la première organisation mondiale qui élabore et publie des
Normes internationales pour tout ce qui a trait à l'électricité, à l'électronique et aux technologies apparentées.
A propos des publications IEC
Le contenu technique des publications IEC est constamment revu. Veuillez vous assurer que vous possédez l’édition la
plus récente, un corrigendum ou amendement peut avoir été publié.
Recherche de publications IEC - Découvrez notre puissant moteur de recherche et consultez
webstore.iec.ch/advsearchform gratuitement tous les aperçus des publications. Avec un
La recherche avancée permet de trouver des publications IEC abonnement, vous aurez toujours accès à un contenu à jour
en utilisant différents critères (numéro de référence, texte, adapté à vos besoins.
comité d’études, …). Elle donne aussi des informations sur les
projets et les publications remplacées ou retirées. Electropedia - www.electropedia.org
Le premier dictionnaire d'électrotechnologie en ligne au monde,
IEC Just Published - webstore.iec.ch/justpublished
avec plus de 22 300 articles terminologiques en anglais et en
Restez informé sur les nouvelles publications IEC. Just
français, ainsi que les termes équivalents dans 19 langues
Published détaille les nouvelles publications parues.
additionnelles. Egalement appelé Vocabulaire
Disponible en ligne et une fois par mois par email.
Electrotechnique International (IEV) en ligne.
Service Clients - webstore.iec.ch/csc
Si vous désirez nous donner des commentaires sur cette
publication ou si vous avez des questions contactez-nous:
sales@iec.ch.
IEC Products & Services Portal - products.iec.ch
IEC 62769-6-100 ®
Edition 1.0 2023-04
INTERNATIONAL
STANDARD
NORME
INTERNATIONALE
colour
inside ®
Field Device Integration (FDI ) –
Part 6-100: Technology Mapping – .Net
®
Intégration des appareils de terrain (FDI ) –
Partie 6-100: Mapping de technologies – .Net
INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
COMMISSION
ELECTROTECHNIQUE
INTERNATIONALE
ICS 25.040.40; 35.100.05 ISBN 978-2-8322-6809-4
– 2 – IEC 62769-6-100:2023 © IEC 2023
CONTENTS
FOREWORD . 4
1 Scope . 6
2 Normative references . 6
3 Terms, definitions, abbreviated terms, acronyms and symbols . 6
3.1 Terms and definitions . 6
3.2 Abbreviated terms and acronyms . 7
3.3 Symbols . 7
4 Technical concepts . 7
4.1 General . 7
4.1.1 Overview . 7 ®
4.1.2 FDI Type Library . 7
4.2 UIP representation . 8
4.3 UIP executable representation . 9
4.4 UIP executable compatibility rules . 9
4.5 Allowed .NET CLR versions . 9
4.5.1 General . 9
4.5.2 CLR compatibility strategy . 10
4.5.3 How to identify the .NET target platform of a UIP . 10
4.6 UIP Deployment . 11
4.7 UIP Life-cycle . 11
4.7.1 General . 11
4.7.2 UIP Assembly activation steps . 11
4.7.3 UIP Assembly deactivation steps . 13
4.7.4 Backward compatibility . 14 ®
4.8 Interaction between an FDI Client and a UIP . 14
4.8.1 Handling of standard UI elements . 14
4.8.2 Non-blocking service execution . 15
4.8.3 Blocking service execution. 16
4.8.4 Cancel service execution . 16
4.8.5 Threading . 17
4.8.6 Timeout . 18
4.8.7 Exception handling . 18
4.8.8 Type safe interfaces . 19
4.8.9 Globalization and localization . 19
4.8.10 WPF Control handling . 20
4.8.11 Win Form handling . 20
4.9 Security . 20
4.9.1 General . 20
4.9.2 Access permissions . 20
4.9.3 Code identity concept . 21
5 Interface definition . 21
Bibliography . 26
®
Figure 1 – FDI Type Library structure . 8
Figure 2 – .NET surrogate process . 10
Figure 3 – Identification of Run-time Version. 10
Figure 4 – Example snippet of a UIP host config file for the binding redirect . 14
Figure 5 – IAsyncPattern based asynchronous service execution example . 16
Figure 6 – Blocking service execution example using IAsyncResult based pattern . 16
Figure 7 – Cancel service processing sequence example . 17
Figure 8 – Exception source . 19
Table 1 – Base Property Services . 21
Table 2 – Device Model Services . 22
Table 3 – Access Control Services . 22
Table 4 – Direct Access Services . 22
Table 5 – Hosting Services . 23
Table 6 – UIP Services . 24
Table 7 – Base Data Types . 24
Table 8 – Special Types . 25
– 4 – IEC 62769-6-100:2023 © IEC 2023
INTERNATIONAL ELECTROTECHNICAL COMMISSION
____________ ®
FIELD DEVICE INTEGRATION (FDI ) –
Part 6-100: Technology Mapping – .NET
FOREWORD
1) The International Electrotechnical Commission (IEC) is a worldwide organization for standardization comprising
all national electrotechnical committees (IEC National Committees). The object of IEC is to promote international
co-operation on all questions concerning standardization in the electrical and electronic fields. To this end and
in addition to other activities, IEC publishes International Standards, Technical Specifications, Technical Reports,
Publicly Available Specifications (PAS) and Guides (hereafter referred to as "IEC Publication(s)"). Their
preparation is entrusted to technical committees; any IEC National Committee interested in the subject dealt with
may participate in this preparatory work. International, governmental and non-governmental organizations liaising
with the IEC also participate in this preparation. IEC collaborates closely with the International Organization for
Standardization (ISO) in accordance with conditions determined by agreement between the two organizations.
2) The formal decisions or agreements of IEC on technical matters express, as nearly as possible, an international
consensus of opinion on the relevant subjects since each technical committee has representation from all
interested IEC National Committees.
3) IEC Publications have the form of recommendations for international use and are accepted by IEC National
Committees in that sense. While all reasonable efforts are made to ensure that the technical content of IEC
Publications is accurate, IEC cannot be held responsible for the way in which they are used or for any
misinterpretation by any end user.
4) In order to promote international uniformity, IEC National Committees undertake to apply IEC Publications
transparently to the maximum extent possible in their national and regional publications. Any divergence between
any IEC Publication and the corresponding national or regional publication shall be clearly indicated in the latter.
5) IEC itself does not provide any attestation of conformity. Independent certification bodies provide conformity
assessment services and, in some areas, access to IEC marks of conformity. IEC is not responsible for any
services carried out by independent certification bodies.
6) All users should ensure that they have the latest edition of this publication.
7) No liability shall attach to IEC or its directors, employees, servants or agents including individual experts and
members of its technical committees and IEC National Committees for any personal injury, property damage or
other damage of any nature whatsoever, whether direct or indirect, or for costs (including legal fees) and
expenses arising out of the publication, use of, or reliance upon, this IEC Publication or any other IEC
Publications.
8) Attention is drawn to the Normative references cited in this publication. Use of the referenced publications is
indispensable for the correct application of this publication.
9) Attention is drawn to the possibility that some of the elements of this IEC Publication may be the subject of patent
rights. IEC shall not be held responsible for identifying any or all such patent rights.
IEC 62769-6-100 has been prepared by subcommittee 65E: Devices and integration in
enterprise systems, of IEC technical committee 65: Industrial-process measurement, control
and automation. It is an International Standard.
The text of this International Standard is based on the following documents:
Draft Report on voting
65E/868/CDV 65E/925/RVC
Full information on the voting for its approval can be found in the report on voting indicated in
the above table.
The language used for the development of this International Standard is English.
This document was drafted in accordance with ISO/IEC Directives, Part 2, and developed in
accordance with ISO/IEC Directives, Part 1 and ISO/IEC Directives, IEC Supplement, available
at www.iec.ch/members_experts/refdocs. The main document types developed by IEC are
described in greater detail at www.iec.ch/publications.
A list of all parts in the IEC 62769 series, published under the general title Field device ®
integration (FDI ), can be found on the IEC website.
The committee has decided that the contents of this document will remain unchanged until the
stability date indicated on the IEC website under webstore.iec.ch in the data related to the
specific document. At this date, the document will be
• reconfirmed,
• withdrawn,
• replaced by a revised edition, or
• amended.
IMPORTANT – The "colour inside" logo on the cover page of this document indicates that it
contains colours which are considered to be useful for the correct understanding of its
contents. Users should therefore print this document using a colour printer.
– 6 – IEC 62769-6-100:2023 © IEC 2023 ®
FIELD DEVICE INTEGRATION (FDI ) –
Part 6-100: Technology Mapping – .NET
1 Scope
This part of IEC 62769 specifies the technology mapping for the concepts described in the Field
®1
Device Integration (FDI ) standard. The technology mapping focuses on implementation ®
regarding the components FDI Client and User Interface Plug-in (UIP) using the Runtime .NET.
This runtime is specific only to the WORKSTATION platform as defined in IEC 62769-4.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content
constitutes requirements of this document. For dated references, only the edition cited applies.
For undated references, the latest edition of the referenced document (including any
amendments) applies. ®
IEC 62769-1:2021, Field device integration (FDI ) – Part 1: Overview ®
IEC 62769-2, Field device integration (FDI ) – Part 2: Client
® ®
IEC 62769-4, Field device integration (FDI ) – Part 4: FDI Packages ®
IEC 62769-6, Field device integration (FDI ) – Part 6: Technology Mappings
3 Terms, definitions, abbreviated terms, acronyms and symbols
3.1 Terms and definitions
For the purposes of this document, the terms and definitions given in IEC 62769-1 as well as
the following apply.
ISO and IEC maintain terminology databases for use in standardization at the following
addresses:
• IEC Electropedia: available at http://www.electropedia.org/
• ISO Online browsing platform: available at http:www.iso.org/obp
3.1.1
Application Domain
isolated environment where applications execute
3.1.2
Assembly
reusable, version information providing, and self-describing building block of a CLR application
___________
FDI is a registered trademark of the non-profit organization Fieldbus Foundation, Inc. This information is given
for the convenience of users of this document and does not constitute an endorsement by IEC of the trademark
holder or any of its products. Compliance does not require use of the trade name. Use of the trade name requires
permission of the trade name holder.
3.1.3 ®
FDI Type Library
typescript file that contains the interfaces and data types that are used for the data exchange ®
and interaction between a UIP and an FDI Client
3.1.4
Global Assembly Cache
machine-wide code cache that stores Assemblies specifically designated to be shared by
several applications
3.1.5
Windows Registry
system-defined database in which applications and system components store and retrieve
configuration data
3.2 Abbreviated terms and acronyms
For the purposes of this document, the abbreviated terms and acronyms given in IEC 62769-1,
IEC 62769-6, as well as the following apply.
MSI Microsoft Installer
WPF Windows Presentation Foundation
UML Unified Modeling Language
3.3 Symbols
Figures in this document use the graphical symbols according to l'ISO/IEC 19505-1 (UML 2.0).
4 Technical concepts
4.1 General
4.1.1 Overview
In 4.1.2, 4.2, 4.3, 4.4, and 4.5, this document describes the technology base for UIP
implementation based on the runtime .NET Framework CLR4, the hardware and software
environment including the related implementation rules. Clause 4 follows a lifecycle (use case)
oriented approach.
Subclause 4.6 describes the copy deployment procedures and related implementation rules for ®
the UIP and the FDI Client. UIP executable instantiation and termination is described in 4.7. ®
Subclause 4.8 defines the rules about interaction between the FDI Client and the UIP. Security ®
related definitions are written in 4.9. The service interface definitions for the FDI Client and
the UIP are found in Clause 5. ®
4.1.2 FDI Type Library
The Device Access Services and the UIP Services can be modelled as .NET interfaces
passing .NET data type arguments. These interfaces and data types are used for the data ®
exchange and interaction between the UIP and the FDI Client. For runtime error handling
purposes during interface method calls .NET exceptions classes are defined.
– 8 – IEC 62769-6-100:2023 © IEC 2023
® ®
The FDI .NET interfaces, data types, and exception classes are defined in a single FDI Type ®
Library. The FDI Type Library is provided within a Nuget Package, which contains one or more
strong named assemblies. The file name of this Nuget Package shall be Fdi..nupkg.
® ®
The FDI Type Library shall be versioned as per IEC 62769-1:2021, 8.1. The FDI Type Library ®
is part of the FDI Core Technology as per IEC 62769-1:2021, 8.3.2.1. Therefore, it directly
® ®
influences the FDI Technology Version. All compatible changes of the FDI Type Library lead ®
to an increase of the minor portion of the FDI Technology Version. Incompatible changes lead ®
to an increase of the major portion of the FDI Technology Version (see IEC 62769-1:2021, ®
8.3.2.2). The version information of the FDI Type Library can be found in FCG TS10099.
® ®
The FDI Type Library is signed with a single unique key by the issuer of the file. The FDI ®
Type Library shall be installed separately as part of every FDI Client installation. User Interface
® ®
Plug-Ins (UIP) and the FDI Client Application shall use this instance of the FDI Type Library.
® ®
UIPs shall not carry or deploy the FDI Type Library. The FDI Client is responsible to provide
means to allow updates of this type library over time. ®
Figure 1 shows the FDI Type Library structure.
®
Figure 1 – FDI Type Library structure
NOTE The composite structure diagram shows only the core interfaces that implement the interfaces defined in
IEC 62769-2.
4.2 UIP representation
The UIP Variant can contain either a single or multiple runtime modules (.NET Assembly) and
their related supplementary files (for example: resource files). The runtime module of the UIP
Variant is called UIP executable. The supplementary file(s) of the UIP Variant is/are called UIP
supplement(s).
UIP supplement(s) is/are stored under (a) subfolder(s) of the UIP executable installation
directory.
EXAMPLE Examples of UIP supplementary data files include resource files and application configuration data.
®
The supported RuntimeIds and .NET Framework versions for a specific FDI Technology ®
Version are specified in FCG TS10099 FDI Technology Management.
The UIP Variant shall be self-contained. All UIP required libraries (.NET Assemblies) required
by a UIP Variant are stored within the same Folder.
4.3 UIP executable representation
The implementation of the UIP depends on the type of user interface elements that can be ®
embedded into the user interface hosting environment of the FDI Client. UIP shall be
implemented as a .NET System.Windows.Forms class UserControl or a WPF
System.Windows.Controls class UserControl.
UIP executables and their required libraries shall have strong names. The signing of a strong
named Assembly can be done using a self-generated key.
NOTE The identity of strong named Assemblies consists of a name, version, culture, public key token and digital
signature.
UIP executables and their required libraries shall be shipped with file containing the public key
in order to enable Assembly verification.
4.4 UIP executable compatibility rules
The compatibility rules for different versions of the UIP component are specified in IEC 62769-4.
The compilation target platform for the UIP shall be "anyCPU". If this is not feasible the UIP
shall be shipped in two variants. One UIP variant shall be compiled for target platform "x86".
The second UIP variant shall be compiled for target platform "x64". The compilation platform
target shall be described in the catalog.xml file which is defined in IEC 62769-4. This
catalog.xml file contains an xml element "CpuInformation" that describes the User Interface
Plug-in variant. The allowed values that shall be used in the xml element "CpuInformation" are
"anyCPU", "x86" or "x64".
4.5 Allowed .NET CLR versions
4.5.1 General
Specific CLR versions are released for the execution of software components built with
specific .NET Framework versions. The .NET CLR version 4.0 is used to execute software
components built with .NET Framework 4.0. .NET Components are built for one CLR version
only but can be able to run also under a newer CLR version.
® ®
FDI Clients can be built based on CLR version 4.0 or future versions. An FDI Client has to
realize the following situations when starting a UIP.
• When the UIP to be started was built for the same run-time, the UIP can be started in the ®
FDI Client as usual.
• When the UIP to be started was built with another CLR version and is not compiled for the ®
current running CLR version, the FDI Client shall start the UIP in a surrogate process with
the adequate CLR version. (More details are described in 4.5.2.)
Taking this behavior in account, a UIP shall be developed for CLR version 4.0 or any future
version. In case the CLR versions do not match, the UIP shall be started in a separate process. ®
The UIP will then not be displayed as an integrated module within the FDI Client. It is up to ®
the FDI Client to realize the surrogate process.
– 10 – IEC 62769-6-100:2023 © IEC 2023
4.5.2 CLR compatibility strategy ®
In the future, FDI Clients and UIPs will be permitted to be built on different incompatible
versions of the CLR.
® ®
If an FDI Client detects that a UIP requires a CLR that is not compatible with the FDI Client, ®
the FDI Client can use a proxy class that enables interaction with the UIP built using a different
version of the CLR. ®
The FDI Client loads a proxy UIP executable, creates an instance of the proxy class, and
delegates the execution of the UIP to this proxy. The proxy starts a process with the required
CLR and executes the UIP in this surrogate process. The proxy classes provide the standard
® ®
FDI interfaces. The FDI Client can use these interfaces to interact with the UIP executed in
the surrogate process.
Figure 2 – .NET surrogate process
4.5.3 How to identify the .NET target platform of a UIP
The .NET target platform CLR version information for which a certain Assembly is compiled can
be extracted by means of .NET Framework library functions (see Figure 3).
Figure 3 – Identification of Run-time Version
®2
NOTE The Visual Studio 2008 and 2010 IDE allow developers to select the .NET Framework target. The selection ®
of a .NET Framework target older than the base for the current Visual Studio IDE automatically creates a
configuration file listed as "app.config" within the solution explorer. This file only reflects the current complier setting.
The compiler does not read that file.
___________
Visual Studio is the trademark of Microsoft Corporation. This information is given for the convenience of users of
this document and does not constitute an endorsement by IEC of the trademark holder or any of its products.
Compliance does not require use of the trademark. Use of the trademark requires permission of the trademark
holder.
4.6 UIP Deployment
The general UIP installation rules are outlined in IEC 62769-2. The UIP executable shall not be
registered within the Global Assembly Cache.
The "strong-name" rule ensures that related Assemblies of different versions of the UIP can
coexist during runtime. ®
The FDI Client implementation ensures that UIP deployment works independently from current
user credentials. (See the NOTE below.)
NOTE Certain operating system managed folders require specific access rights, for example, modifications in folder
"Program Files" require "Administrator" rights. The Windows operating system provides several means to allow an
application running with restricted user rights, to execute actions with administrator privileges transparent to the
user, for example, special restriction handling for identified directories, services with administration rights,
executables that are configured to automatically run with administration rights. The alternative is to copy UIP
executables into folders writeable for "normal" users.
4.7 UIP Life-cycle
4.7.1 General
The UIP state machine, outlined in IEC 62769-2, is composed of the Loaded, Created,
Operational, Deactivated and Disposed states. The mechanisms affecting state changes are
described in 4.7.
® ® ®
After the FDI Client has stored the UIP executable on the FDI Client the FDI Client loads
the UIP Assemblies dynamically into the memory and executes the related logic by calling the ®
corresponding FDI specified interface functions. ®
Subclause 4.7 describes rules about how the FDI Client shall activate and deactivate the UIP.
4.7.2 UIP Assembly activation steps
4.7.2.1 Load ®
The FDI Client shall load the UIP executables by using the LoadFrom mechanism. The .NET
framework provides System.Reflection.Assembly.LoadFrom for this purpose:
The LoadFrom mechanism behaves as follows.
• LoadFrom loads the Assembly addressed with the file path and also the referenced
Assemblies located within same directory. The argument string assemblyFile shall contain
the file name of the UIP executable. The file name of the UIP executable represents the
StartElementName described in IEC 62769-4.
• If an Assembly is loaded with LoadFrom, and later an Assembly in the "load context"
attempts to load the same Assembly by display name, then this load attempt fails.
• If an Assembly with the same identity is already loaded (for example, by another UIP), then
LoadFrom returns the Assembly that has been loaded before, even if a different file path
was specified. Even a different file name does not matter. Only the identity of the Assembly
is relevant.
• If an Assembly is loaded with LoadFrom, and the probing path includes an Assembly with
the same identity (for example, in the Global Assembly Cache or an application directory),
then this Assembly is loaded, even if a different file path was specified.
• LoadFrom requires the permissions FileIOPermissionAccess.Read and
FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.
• LoadFrom loads the assembly into the default Application Domain.
– 12 – IEC 62769-6-100:2023 © IEC 2023
• If a native Assembly image (generated by ngen.exe) exists for the specified file path, then
it is not used. The Assembly cannot be loaded as domain neutral, i.e., the Assembly cannot
be shared between Application Domains.
This behavior enforces deployment rules as follows.
• Rules regarding Assembly dependencies (see 4.7.2.4.2). ®
The FDI Client shall only use LoadFrom. The use of other .NET Assembly loading/object
creation means is not allowed.
• Rules regarding shared Assemblies (see 4.7.2.4.3).
• A pre-compiled processor-specific machine code cannot be used.
• The security aspects regarding loading and execution of Assemblies are described in 4.9.
4.7.2.2 Create
Creating an instance of the UIP Assembly works using the .net library functions
System.Reflection.Assembly.GetTypes and System.Activator.CreateInstance. The ®
FDI type library declares a "custom attribute" named UIPActivationClass. This attribute
shall only be added to the object implementing the interface IDtmUiFunction that actually
implements the UIP start-up function. The attribute UIPActivationClass shall be used once
only. ®
The FDI Client can now use System.Reflection services to clearly determine the UIP
implemented activation procedure.
NOTE 1 Function System.Reflection.Assembly.GetTypes can be used to query the interface IDtmUiFunction.
NOTE 2 Function System.Attribute.GetCustomAttributes can be used for reading the additional custom attributes.
NOTE 3 The result of function invocation System.Activator.CreateInstance is an object of type IDtmUiFunction.
A data type cast is needed.
4.7.2.3 Activate
Invocation of function IDtmUiFunction.Init finally activates the UIP for the user.
4.7.2.4 External libraries
4.7.2.4.1 General
rd
UIP Assemblies can depend on external libraries (3 party libraries) and other Assemblies, for ®
example, specific user control libraries. FDI Clients do not perform installation of UIPs, rather
they dynamically load and execute the UIP. To support this usage, as well as the requirement
to prevent possible problems of conflicting Assemblies, rules are specified for external libraries.
External libraries shall: ®
• be contained within the FDI Package;
• not require Microsoft Installer (MSI) installation;
• not require entries in the Windows Registry or the Global Assembly Cache;
• adhere to the access restrictions described in 4.9.2;
• be compatible with the platforms described in IEC 62769-6.
4.7.2.4.2 Loading of external libraries ®
The FDI Client loads the UIP Assembly, containing the UIP main class implementing interface
IDtmUiFunction, by invocation of the .NET framework function LoadFrom. Referenced
Assemblies that are stored in the same directory are automatically loaded together with
this .NET Assembly. Referenced Assemblies that are stored in other locations (for example, in
a sub-directory) have to be loaded explicitly by the UIP itself.
The UIP shall load such Assemblies also by invocation of the .NET framework function
LoadFrom. Loading Assemblies with other .NET framework methods is not allowed. ®
Usage of external libraries shall not break the self-containment requirement for FDI Packages; ®
all external libraries shall be included in the FDI UIP Package
4.7.2.4.3 Loading of shared external libraries
An external library is a shared external library if a related .NET Assembly identity can be used
from different UIP executables. The identity of a .NET Assembly matters. Installation path and
Assembly filename are not relevant. ®
Usage of shared libraries shall not break the self-containment requirement for FDI Packages. ®
Each of the delivered FDI Packages shall be shipped with all required UIP related libraries.
The sharing mechanism comes from the .NET framework implemented optimization mechanism.
If a shared Assembly is used, then the following rules apply.
• Any incompatible change to the shared Assembly shall lead to a new identity, for example,
different version number.
• Shared Assemblies shall not presume to be loaded from a specific installation path, for
example, rely on the fact that some files are stored in the same directory or in a sub-
directory.
• Static variables in shared Assemblies are also shared if the Assembly is loaded into the
same Application Domain. Thus static variables shall not have side effects in such
scenarios. External shared libraries shall not declare static variables. ®
Package, shared Assemblies shall
• Because of the self-containment rule defined for the FDI ®
be deployed with all FDI Packages using a shared Assembly.
4.7.2.5 UIP Constructor invocation
Constructor and destructor implementation shall not throw exceptions. The constructor logic
shall be limited to instantiate the object in terms of the internal data structure. The destructor
logic shall be limited to destroy the object in terms of releasing memory resources. The
constructor and the destructor shall not: ®
• Invoke any call-back to the FDI Client.
• Invoke any user interaction.
4.7.3 UIP Assembly deactivation steps
4.7.3.1 Deactivate ®
For UIP deactivation the FDI Client shall call the interface IDtmUiFunction.BeginClose and
IDtmUiFunction.EndClose. On successful execution the UIP shall release all resources and ®
the FDI Client shall delete all references to the UIP instance. The .NET garbage collector
finally disposes the UIP runtime object.
– 14 – IEC 62769-6-100:2023 © IEC 2023
4.7.3.2 Dispose
A .NET Assembly that is loaded into a process respectively into the related
ApplicationDomain is never unloaded, except if the ApplicationDomain itself is destroyed. ®
That means if the FDI Client loads a UIP Assembly into the default ApplicationDomain, then
these Assemblies and all dependent Assemblies are never unloaded unless the application is
closed.
The UIP Assemblies shall be developed with this .NET framework behavior in mind. To reduce
the memory consumption the following rules apply.
• Minimize the use of static variables, because these increase the memory consumption of
the Assembly.
• Move UIP functionality that is not always (or rarely) needed to separate Assemblies. These
Assemblies are then only automatically or manually loaded when the corresponding code is
executed.
• Use shared Assemblies whenever possible. ®
• The FDI Client can execute .NET Assemblies in a separate Application Domain in order to
have the ability to unload them.
4.7.4 Backward compatibility ®
For UIPs built for an older FDI Technology Version the UIP host shall have a binding redirect ®
in place to execute the UIP using the newer FDI Type Library (see Figure 4).
Figure 4 – Example snippet of a UIP host config file for the binding redirect ®
4.8 Interaction between an FDI Client and a UIP
4.8.1 Handling of standard UI elements ®
UIPs shall delegate the presentation and handling of standard UI elements to the FDI Client.
The standard UI elements are
• UI Actions with standardized semantics (Apply/Close/Online Help), and
• specific UI Actions (UI actions, which are specific to one UIP, e.g. Reset, Reconnect).
To ensure a consistent user interface interaction across UIPs from different vendors, a UIP may ®
delegate presentation and handling of additional UIP specific actions to the FDI Client.
Nonetheless UIPs are allowed to implement non-standard UI actions within their own UI area.
The set of standard UI actions and their respective semantics is fixed. However, the availability
of these actions may change at any time depending on the internal state of the UIP. The set of
additional UIP specific actions and their individual availability is not fixed. A UIP may add,
remove, rename, enable or disable the UIP specific actions at any time depending on its ®
requirements. The UIP has to inform the FDI Client whenever the availability of its standard
actions or UIP specific actions changes (see events
IStandardActions.StandardActionItemSetChanged and
IApplicationSpecificActions. ApplicationSpecificActionItemSetChanged).
®
An FDI Client may use dedicated UI elements, e.g. button controls, to provide direct access
to the standard actions, as well as indirectly invoke them in the context of user interaction with
® ®
other FDI Client UI elements. FDI Client shall always show all custom actions exposed by a
UIP with dedicated UI elements.
4.8.2 Non-blocking service execution ®
4.8.2.1 FDI Client internal functions
The implementation of function BeginOperationName shall copy the content of Argument
asyncState into member AsyncState of the returned IAsyncResult object.
The productive (time consuming) part of the function named OperationName shall be performed
in a different thread. The synchronization with the calling thread is handled via the
AsyncWaitHandle object (class WaitHandle), which is also a member of the IAsyncResult
object.
When processing of the productive part of the function named OperationName has finished the
IAsyncResult objects attribute IsCompleted shall be set to True. If the AsyncCallBack ®
argument value is valid (not equal NULL) the FDI Client notifies the UIP using the callback.
The implementation of CancelOperationName uses the argument IAsyncResult to identify the
service that has been started with BeginOperationName. If BeginOperationName started an ®
OPCUA service, the FDI Client shall call the OPCUA defined Cancel service.
4.8.2.2 UIP internal functions
The management of multiple asynchronous services in parallel shall be managed using the
AsyncState object.
The IAsyncResult object returned by BeginOperationName contains the WaitHandle object.
The UIP shall perform its own thread synchronization using the WaitHandle object.
4.8.2.3 Non-blocking service execution sequence ®
The following shows the interaction sequence between the FDI Client and the UIP. The thread ®
management mechanisms implemented inside the FDI Client are not shown. The Interaction
® ® ®
between an FDI Client and an FDI Server is based on Request/Response pattern. The FDI
Client service request matches with the BeginOperationName. The AsyncCallback invocation
matches with receiving the Client service response. EndOperationName conveys the response
contained results. Implementation of the non-blocking service execution does not require any ®
thread management inside the FDI Client. Figure 5 shows an example of an IAsyncPattern
based Asynchronous service execution.
– 16 – IEC 62769-6-100:2023 © IEC 2023
Figure 5 – IAsyncPattern based asynchronous service execution example
4.8.3 Blocking service execution ®
The FDI Client provided interfaces allow performing synchronous Information Model access
by using the functionality described in 4.8.1 in a way shown in Figure 6.
Figure 6 – Blocking service execution example using IAsyncResult based pattern
ReadAsyncResult is the object implementing the interface IAsyncResult.
4.8.4 Cancel service execution
Some services specified for the interface IDeviceModel (see Table 2) support canceling a
started service by means of the function CancelOperationName. The following Figure 7 will
illustrate the processing sequence based on the Read service example.
Figure 7 – Cancel service processing sequence example ®
The invocation of CancelRead triggers the FDI Client internal functions needed to cancel the ®
active read ope
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...