Software tools and devices conforming to this specification shall satisfy the following requirements for configurability.
6.1 Software tools
Software tools shall include documentation of the means by which they can be utilized to configure systems through the creation and management of local and remote device instances.
EXAMPLE 1 - see "Testing a System Configuration".
Providers of software tools shall specify which of the techniques for encoding of management requests and responses defined in subclause 6.4 are supported by their software tools.
EXAMPLE 2 - A software tool may utilize an instance of theRMT_PRXY
Device type containing an instance of thePRXY_RES
type, which utilizes an instance of one of the two following Service Interface Function Block (SIFB)types as an interface to theSystemManager
object defined in Annex C of IEC 61499-1:
- An instance of the
DM_CLT2
type is used when thefbmgt2
encoding scheme defined in 6.4.2 is specified, e.g., when theMGR_ID
input of thePRXY_RES
instance is given asfbmgt2://192.168.0.14:61499
.- Otherwise, an instance of the
DM_CLT
type is used to implement the XML encoding scheme defined in 6.4.1.
6.2 Management of remote device instances
Each device type that is intended to be used as a remote device instance
shall contain exactly one management resource that is the
functional equivalent of an instance of the RMT_RES
resource
type.
6.3 Management service interfaces
The device management services to be implemented are provided by the functional equivalent of Function Block instances of the types shown in Figure 6.3.
-
The
RQST
input andRESP
output of theDEV_MGR
type are encoded as the XML entitiesRequest
andResponse
, respectively, as shown in Table 6.4.1. -
The
RQST
input andRESP
output of theDEV_MGR2
type are encoded as instances of the data typesMGT_REQ
andMGT_RSP
, respectively. -
The operation of a normal
RQST/RESP
transaction is shown in thenormal_request
service sequence in Figure 6.3. -
The correspondences and differences between these FB types and the
generic
MANAGER
type defined in clause 6.3.2 of IEC 61499-1 are addressed in their respectiveDEV_MGR
andDEV_MGR2
documentation. - Providers of device types shall specify which of the sets of management services modeled by these device types are provided with their device types.
6.4 XML-encoded management requests and responses
6.4.1 The FBMGT
DTD
The Request
and Response
elements defined
in the FBMGT
DTD
represent the XML syntax for the RQST
input and RESP
output, respectively, of the DEV_MGR
function block
type. Explanations of the elements of this DTD, and (where
applicable) references to the formal syntax for their attributes, are
given in Table 6.4.1.
An example of the use of these elements is given in Annex B.
Table 6.4.1 - FBMGT DTD Elements
|
||
---|---|---|
Element
|
Textual Syntax
(IEC 61499-1, Annex B) |
Explanation |
Request
|
An XML-encoded management request. | |
ID
|
A unique identifier for the Request /Response
transaction.
|
|
Action
|
The requested operation to be performed. See IEC 61499-1, Table 3.3.2-1. | |
Response
|
An XML-encoded management response. | |
ID
|
A unique identifier for the Request /Response
transaction.
|
|
Reason
|
A reason for failure to perform a requested action.
If absent, the action has been successfully performed. See Table 6.5-1. |
|
NameList
|
identifier {',' identifier}
|
A list of FB type or data type names. |
FBList
|
fb_instance_reference {',' fb_instance_reference}
|
|
FBStatus
|
See IEC 61499-1, Figure 3.3.3-1. | |
ByteData
|
Implementation-dependent data, typically encoded in hexadecimal format. | |
VersionInfo
|
The currently loaded or to be loaded version of a FB type or data type. | |
Organization
|
The organization supplying this library element | |
Version
|
The version identifier, for example, 1.2 .
|
|
Date
|
The release date of this version in YYYY-MM-DD format
|
|
FB
|
A function block or resource instance as defined in IEC 61499-1. | |
Name
|
fb_instance_reference
|
The name of the FB or resource instance |
Type
|
fb_type_name
|
The FB or resource type name |
Connection
|
An event connection, data connection or adapter connection. | |
Source
|
See NOTE 1. | |
Destination
|
See NOTE 1. | |
VarDeclaration
|
A declaration of a variable. | |
Name
|
input_variable_name | output_variable_name
|
See NOTE 2. |
Type
|
data_type_name
|
|
ArraySize
|
See NOTE 3. | |
InitialValue
|
See NOTE 4. | |
FBType
|
An FBTypeDeclaration as described in IEC
61499-1-C.1.1.
|
|
Name
|
fb_type_name
|
|
Event
|
A declaration of an event interface. | |
Name
|
event_input_name | event_output_name
|
See NOTE 5. |
Type
|
event_type
|
|
With
|
(input_variable_name {',' input_variable_name})
|
See NOTE 6. |
AdapterDeclaration
|
A declaration of a plug or socket interface of a function block type. | |
Name
|
plug_name | socket_name
|
See NOTE 7. |
Type
|
adapter_type_name
|
|
AdapterType
|
A declaration of an adapter interface type per IEC 61499-1-2.5 | |
Name
|
adapter_type_name
|
|
DataType
|
See IEC 61131-3-2.3. | |
Name
|
data_type_name
|
|
ASN1Tag
|
ASN.1 tag per ISO/IEC 8824-5.8. | |
Class
|
ASN.1 tag class per ISO/IEC 8824-5.8. | |
Number
|
ASN.1 tag number per ISO/IEC 8824-5.8. | |
DirectlyDerivedType
|
See IEC 61131-3 Tables 12 and 14, #1 | |
BaseType
|
elementary_type_name
|
|
InitialValue
|
constant
|
|
EnumeratedType
|
Same as NameList
|
A comma-separated list of enumerated values. |
InitialValue
|
identifier
|
If present, shall be one of the list elements. |
SubrangeType
|
See IEC 61131-3 Tables 12 and 14, #3 | |
BaseType
|
integer_type_name
|
|
InitialValue
|
signed_integer
|
|
Subrange
|
See IEC 61131-3 Tables 12 and 14, #3 | |
LowerLimit
|
signed_integer
|
|
UpperLimit
|
signed_integer
|
|
ArrayType
|
See IEC 61131-3 Tables 12 and 14, #4 | |
BaseType
|
non_generic_type_name
|
|
InitialValues
|
array_initialization
|
|
StructuredType
|
See IEC 61131-3 Tables 12, #5 and 14, #5 and #6 | |
ArrayVarDeclaration
|
See IEC 61131-3-2.3.3. | |
Name
|
structure_element_name
|
|
Type
|
array_type_name
|
|
InitialValues
|
array_initialization
|
|
SubrangeVarDeclaration
|
See IEC 61131-3-2.3.3. | |
Name
|
structure_element_name
|
|
Type
|
integer_type_name
|
|
InitialValue
|
signed_integer
|
|
Parameter
|
A parameter reference or value, or both. See IEC 61499-1, 2nd Edition, Table 8 and Annexes B.5 and B.3. | |
Reference
|
parameter_reference
|
The parameter reference. |
Value
|
constant | enumerated_value | array_initialization |
structure_initialization
|
The parameter value. |
|
6.4.2 Request/Response
semantics
The following rules shall apply to the use of the above-defined Request
and Response
elements in the normal_request
service sequence of the DEV_MGR
management SIFB type.
-
The
ID
attribute of theResponse
element shall be identical to theID
attribute of theRequest
element to which theResponse
element refers. -
The absence of a
Reason
attribute in aResponse
element shall be used to indicate normal completion of the requested operation. -
The use of sub-elements in
Request
andResponse
elements, and the meaning of possibleReason
attributes of theResponse
element when the requested operation fails, shall be as defined in Tables 6.4.2-1 and 6.4.2-2.
Table 6.4.2-1 -Request elements and Response
Reason codes
|
||
---|---|---|
Request
|
Reason code
|
|
Action
|
Sub-element | |
Any | Any |
INVALID_DST: The DST input of the DEV_MGR
function block does not name a valid destination for the request.
|
NOT_READY: The manager is not in a state that enables
it to process the request.
|
||
UNSUPPORTED_CMD: The requested operation is not
supported by the manager.
|
||
INVALID_OBJECT: Invalid sub-element or attribute
syntax not covered by other, more specific Reason
codes
|
||
INVALID_OPERATION: The specified action is not a valid
operation on the specified sub-element.
|
||
OVERFLOW: A previous transaction is still pending.
|
||
NULL_POINTER: A null object pointer was encountered.
INTERRUPTED: A management thread was interrupted.
UNKNOWN: An error of unknown type was encountered.
See NOTE 6. |
||
See NOTE 3. | ||
CREATE
|
FB
|
UNSUPPORTED_TYPE: The requested FB type is not known
to the manager.
|
INVALID_STATE or INVALID_OPERATION: The
requested FB or resource cannot be created in its containing
resource or device.
|
||
INVALID_STATE or DUPLICATE_OBJECT: An FB
instance already exists with the specified name. See NOTE
5.
|
||
Connection
|
NO_SUCH_OBJECT: One or both of the connection end
points cannot be found.
|
|
INVALID_STATE or DUPLICATE_OBJECT: The
specified connection already exists. See NOTE 5.
|
||
FBType
|
UNSUPPORTED_TYPE: A type does not exist for a variable
or adapter sub-element.
|
|
INVALID_STATE or DUPLICATE_OBJECT: A
library element type already exists with the specified name. See NOTE 5.
|
||
DELETE
|
FB
|
NO_SUCH_OBJECT: No FB instance of the specified type
can be found with the specified instance name.
|
INVALID_STATE: The FB instance is not in the STOPPED
or KILLED state.
|
||
Connection
|
NO_SUCH_OBJECT: One or both of the connection end
points cannot be found.
|
|
FBType
|
UNSUPPORTED_TYPE: A library element of the specified
type does not exist with the given type name.
|
|
INVALID_STATE: At least one instance of the specified
type still exists.
|
||
INVALID_OPERATION: The specified type is undeletable.
|
||
START
|
FB
|
NO_SUCH_OBJECT: No FB instance of the specified type
can be found with the specified instance name.
|
INVALID_STATE: The FB instance is not in a state from
which the specified operation can be performed.
|
||
START
|
None |
INVALID_STATE: The resource is not in a state from
which the specified operation can be performed (see NOTE 4).
|
READ
|
Parameter
|
NO_SUCH_OBJECT: The parameter Reference
cannot be found. See NOTE 1.
|
WRITE
|
Parameter
|
NO_SUCH_OBJECT: The parameter Reference
cannot be found.
|
INVALID_OBJECT: : The Value format is not
correct for data to be written to the referenced parameter.
See NOTE 2.
|
||
|
Table 6.4.2-2 - QUERY Request and
corresponding Response elements
|
||
---|---|---|
Request sub-element
|
Normal Response sub-element
|
Abnormal Response Reason codes
|
FB
|
FBStatus
|
NO_SUCH_OBJECT: No FB instance of the specified type
can be found with the specified instance name.
|
FB
|
FB
|
NO_SUCH_OBJECT: No FB instance can be found with the
specified instance name.
|
FB
|
FBList: A list (may be empty) of names of all managed
instances of the specified type.
|
UNSUPPORTED_TYPE: The specified FB type is not
supported.
|
FB
|
FBList: A list (may be empty) of names of all managed
FB instances.
|
None. |
Connection
|
EndpointList: A list of the destinations of all
connections originating at the specified source.
|
INVALID_OBJECT: The source specification is not a
hierarchical name.
|
Connection (Source = "*"
|
EndpointList: A list of the sources of all connections
terminating at the specified destination.
|
INVALID_OBJECT: The destination specification is not a
hierarchical name.
|
Connection
|
Connection* : A list (may be empty) of all event and
data connections in the addressed device or resource.
|
None. |
Connection
|
None. |
NO_SUCH_OBJECT: The specified connection does not
exist.
|
FBType | DataType
|
FBType | DataType | AdapterType: The declaration of the library type with the specified name. |
UNSUPPORTED_TYPE: The requested library type is not
known to the manager.
|
FBType | DataType
|
NameList:
A list of names of all library elements of the specified type.
|
UNSUPPORTED_TYPE: There are no library elements of the
specified type.
|
6.5 The fbmgt2
encoding scheme
Management services in remote
device instances shall be provided by the functional equivalent of
an instance of the DEV_MGR2
service interface FB type
when the fbmgt2
encoding scheme is specified.
EXAMPLE - An instance of theDM_KRNL
type contained in an instance of theRMT_RES
resource type will utilize an instance of theDEV_MGR2
type when theMGR_ID
input of theRMT_RES
is given asfbmgt2://192.168.0.14:61499
.
An example of the use of this encoding scheme is given in Annex B.
The functionality of an instance of the DEV_MGR2
management FB type is identical to that of the DEV_MGR
type described
above. However, the DST
and RQST
inputs, as well as the RESP
output, utilize more
efficiently encoded representations of the associated data as
follows:
-
The
DST
input is an instance of the efficiently encodedUSTRING
data type, which specifies the destination of theRQST
input subject to the following semantics:-
If the
DST
value is empty,theRQST
is directed to the managed Device. -
If the
DST
value is the name of a Resource contained in the managed Device, theRQST
is directed to the Resource with the corresponding name. -
Otherwise, the
execute(RQST)
primitive shown in Figure 6.3 is not performed and theRESP.Reason
value is set toMGT_REASON#INVALID_DST
.
-
If the
-
The
RQST
input is an instance of the structured data typeMGT_REQ
, whose components are subject to the following rules:-
The
ID
component is an instance of the IEC 61131-3DINT
(32-bit signed integer) data type, whose semantics are as defined in 6.4.2 for theID
(transaction identifier) attribute of theRequest
element of the FBMGT DTD. -
The
CMD
component is an instance of the enumeratedMGT_CMD
data type, whose values and semantics are the same as the enumerated values of theAction
attribute of theRequest
element defined in the FBMGT DTD. -
The
TYPE
component is an instance of the enumeratedMGT_TYPE
data type, whose value corresponds to the name (FB, Connection
, etc.) of the contained element of aRequest
element in theFBMGT
DTD. -
Table 6.5-1 lists all valid combinations of
the
CMD
andTYPE
elements, along with the syntax and example of the correspondingCONTENTS
element for each such combination.
-
The
-
The
RESP
output is an instance of the structured data typeMGT_RSP
. The use of this output in theCNF+
service primitive of thenormal_request
service sequence shown in Figure 6.3 is subject to the following rules:-
The value of the
RESP.ID
component shall be equal to that of theRQST.ID
component of the correspondingREQ+
service primitive. -
The
RESP.Reason
component is an instance of the enumeratedMGT_REASON
data type, whose values are subject to the following rules: -
Unless otherwise defined in the NOTES to Table
6.5-1, the value of the
RESP.TYPE
component shall beMGT_TYPE#EMPTY
and the value of theRESP.CONTENTS
component shall be "" (the emptyUSTRING
).
-
The value of the
Table 6.5-1 - MGT_REQ encodings
|
|||
---|---|---|---|
CMD
|
TYPE (Note)
|
CONTENTS (1)
|
Example (Notes)
|
CREATE
|
FB (13)
|
fb_instance_name ':' fb_type_name
|
CLK:E_CYCLE (4, 5,
7)
|
Resource (13)
|
resource_instance_name ':' resource_type_name
|
RES1:EMB_RES (4, 5,
7)
|
|
CREATE
|
Connection
|
config_connection
|
CLK.EO>SENSE.REQ (2)
|
CREATE
|
FBType
|
fb_type_name '=' base64string
|
NEW_FBT=... (3)
|
AdapterType
|
adapter_type_name '=' base64string
|
CASCADE_ADP=... (3)
|
|
DataType
|
data_type_name '=' base64string
|
CTL_MODE=... (3)
|
|
ResourceType
|
resource_type_name '=' base64string
|
NEW_RES_TYPE=... (3)
|
|
DELETE
|
FBType
|
fb_type_name
|
NEW_FBT
|
AdapterType
|
adapter_type_name
|
CASCADE_ADP
|
|
DataType
|
data_type_name
|
CTL_MODE
|
|
ResourceType
|
resource_type_name
|
NEW_RES_TYPE
|
|
READ
|
Parameter
|
parameter_reference
|
CLK.DT
|
WRITE
|
Parameter
|
parameter_reference '=' parameter_value
|
CLK.DT=t#50ms (6)
|
QUERY
|
FB (13)
|
fb_instance_name ':' fb_type_name
|
CLK:E_CYCLE (7)
|
fb_instance_name ':*'
|
CLK:* (8)
|
||
'*:' fb_type_name
|
*:E_CYCLE (9)
|
||
'*:*'
|
*:* (10)
|
||
Resource (13)
|
resource_instance_name ':' resource_type_name
|
RES1:EMB_RES (7)
|
|
resource_instance_name ':*'
|
RES1:* (14)
|
||
'*:' resource_type_name
|
*:EMB_RES (15)
|
||
'*:*'
|
*:* (16)
|
||
Connection
|
fb_instance_name '.' event_output_name '>*'
|
CLK.EO>* (11)
|
|
'*>' fb_instance_name '.'event_input_name
|
*>SENSE.REQ (12)
|
||
'*>*' |
*>* (2)
|
||
FBType
|
fb_type_name
|
NEW_FBT (18)
|
|
AdapterType
|
adapter_type_name
|
CASCADE_ADP (18)
|
|
DataType
|
data_type_name
|
CTL_MODE (18)
|
|
ResourceType
|
resource_type_name
|
NEW_RES_TYPE (17, 18)
|
|
NOTES
|