Problem Statement
Instances of adapter types provide a convenient means of reducing diagram clutter by replacing a bundle of related, and possibly bidirectional, event and data connections with a single graphical connection. In addition, an adapter type can be used as an abstract model for an associated service specification, in contrast to a Service Interface Function Block (SIFB) type, which defines a concrete implementation of its associated service specification.
In a distributed system configuration, it is desirable to be able to
extend an adapter connection across resources, which
may be in different devices. Since the adapter connection can
contain multiple event and data connections, each of which may be
oriented in the plug-to-socket or socket-to-plug direction (but not
both), implementation using PUBLISH/SUBSCRIBE
SIFBs would require the establishment and maintenance of multiple UDP
multicast channels. However, since adapter connections are defined as
one-to-one (plug-to-socket) in IEC
61499-1, a single CLIENT/SERVER
connection would be suitable, providing some means can be provided to
multiplex the several event connections that may exist in the adapter
connection onto the single CLIENT.REQ⇒SERVER.IND
event connection and the single SERVER.RSP⇒CLIENT.CNF
event connection.
Framework
-
An instance of the
E_TO_UINT
FB type is used to multiplex multiple events into a singleCLIENT.REQ
orSERVER.RSP
event input, plus aUINT
value (E_TO_UINT.N
) indicating the event number,which is connected to theSD_1
input of the respectiveCLIENT
orSERVER
. -
An instance of the
E_DEMUX
FB type is used to demultiplex theSERVER.IND
orCLIENT.CNF
event output, using theRD_1
output of theCLIENT
orSERVER
as the event number (E_DEMUX.K
).
Methodology
-
Develop the required adapter
type.
-
It is recommended to name the adapter type
xxx_ADP
, wherexxx
is the name of the service provided across the adapter connection. See, for example, theTUNING_ADP
adapter type.
-
It is recommended to name the adapter type
-
Develop a pair of function block types
xxx_ppp
andxxx_sss
, whereppp
names the functionality of the block containing the plug adapter of typexxx_ADP
andsss
names the functionality of the block containing the socket adapter of typexxx_ADP
. See, for example, the FB typesTUNING_HMI
andTUNING_SIM
, respectively. -
Test the adapter type by interconnecting instances of the two FB
types developed above via an adapter connection in a single
resource. See, for example, the
TUNING_TEST
system configuration. -
Develop the composite
function block types
xxx_CLIENT
andxxx_SERVER
, using the event multiplexing/demultiplexing scheme described above. For example, see theTUNING_CLIENT
andTUNING_SERVER
function block types. -
Build and test a distributed
system configuration using interconnected instances of the
xxx_ppp
andxxx_CLIENT
types in one resource, and interconnected instances of thexxx_SERVER
andxxx_sss
types in a different resource (possibly in a remote device). See, for example, theTUNING_TESTR
system configuration.
Tool Support
It is possible that software tools could automatically generate and
deploy instances of the required xxx_CLIENT
and xxx_SERVER
function block types when a connection of the xxx_ADP
adapter type must be deployed across resources or devices, as
described above.