Software tools and devices conforming to this specification shall satisfy the following requirements for configurability.
Software tools shall be capable of utilizing the management capabilities of devices that are configured according to the functional equivalent of Figure 6.3-1.
EXAMPLE - The hostport value to access the management services in a remote device named m51568 would typically be represented as "m51568:61499". If a Domain Name System (DNS) server were not available, but the remote device's Internet Protocol (IP) address were known to be 161.153.19.227, the corresponding hostport value would be "161.153.19.227:61499".
The device management services to be implemented are provided by the functional equivalent of an instance of the DEV_MGR type shown in Figure 6.2-1. The types and semantics of the inputs and outputs of this type are identical to the correspondingly named inputs and outputs of the MANAGER type defined in subclause 3.3.2 of IEC 61499-1, with the following differences:
"." character)
indicates a resource in a containment hierarchy of resources, with the
leftmost identifier corresponding to the outermost resource and the
rightmost identifier corresponding to the innermost resource. For
example, a DST value of "MOTOR1.WINDING2"
indicates that the RQST input is destined for a resource
named WINDING2 contained in a resource named MOTOR1
which is contained in the managed device.The sequences of service primitives for device management shall be as shown in Figure 6.2-1. The object denoted manager in these service sequences is an instance of class FBManager described in Annex C.2 of IEC 61499-1. This is the manager of the device or a contained resource depending on the value of the DST input.
Management of devices shall be accomplished by the functional equivalent of the configuration shown in Figure 6.3-1 in each device type. The DM_KRNL function block type used in this configuration is shown in Figure 6.3-2.
Suppliers of devices shall provide the equivalent of the value of the MGR_ID input of their instance of the RMT_DEV type shown in Figure 6.3-1, that is, the value of the hostport element defined in IETF RFC 1630 to be used for access to the device management services. This value will typically be "localhost:61499". This value may be defined as part of a library element file for the device type, or may be configured through some means beyond the scope of this specification, for instance via a local serial port or configuration file.
The Request and Response elements defined in the FBMGT DTD represent the XML syntax for the RQST input and RESP output, respectively, of the DM_KRNL 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-2. Allowable combinations of elements, and constraints on their usage, are as given in Table 5.2 of IEC 61499-2 for the various device classes.
An example of the use of these elements is given in Annex B.
NOTE - To provide compact messaging, the prolog and Misc* components used in the XML document production are not used in FBMGT messages since these components are implicit in the management context; thus, only the Request or Response element is transmitted as the management message.
| Table 6.4-2 - FBMGT DTD Elements | ||
|---|---|---|
| Element Attributes |
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}) | (output_variable_name {',' output_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. |
NOTE 1 - Depending on the context, the syntax of a Source or Destination element should correspond to the syntax of the respective element in one of the productions connection_end_point or accessed_data given in Annex B.5 of IEC 61499-1.
NOTE 2 - The productions input_variable_name and output_variable_name apply when the associated VarDeclaration element is part of an InputVars or OutputVars element, respectively.
NOTE 3- The syntax of this element when present shall be equivalent to the syntactic expression
(subrange {',' subrange}) | integer {',' integer}, where the non-terminals subrange and integer are as defined in Annex B of IEC 61131-3. Each term of the second form is equivalent to the subrange 0..n-1, where n is the value of the corresponding integer syntactic element. If this element is missing, the variable is not an array.NOTE 4 - The syntax of this element is the syntax for initialization of the corresponding variable type as defined in Annex B.1.4.3 of IEC 61131-3.
NOTE 5 – The terms event_input_name and event_output_name apply when the Event element is part of an EventInputs or EventOutputs element, respectively.
NOTE 6 – The expressions (input_variable_name {',' input_variable_name}) and (output_variable_name {',' output_variable_name}) apply when the Event element is part of an EventInputs element or an EventOutputs element, respectively.
NOTE 7 - The terms plug_name and socket_name apply when the associated AdapterDeclaration element is part of a Plugs or Sockets element, respectively.
The following rules shall apply to the use of the Request and Response elements defined in subclause 6.4 in the normal_request service sequence shown in Figure 6.2-1.
| Table 6.5-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. | ||
| See NOTE 3. | ||
| CREATE | FB | UNSUPPORTED_TYPE: The requested FB type is not known to the manager. |
| INVALID_OPERATION: The requested FB or resource cannot be created in its containing resource or device. | ||
| INVALID_STATE: An FB instance already exists with the specified name. | ||
| Connection | NO_SUCH_OBJECT: One or both of the connection end points cannot be found. | |
| INVALID_STATE:: The specified connection already exists. | ||
| FBType AdapterType DataType |
UNSUPPORTED_TYPE: A type does not exist for a variable or adapter sub-element. | |
| INVALID_STATE: A library element type already exists with the specified name. | ||
| 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 AdapterType DataType |
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 Source = <Data> Destination = <Location> |
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.5-2 - QUERY Request and 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. | |
| Connection (Source != "*" AND Destination = "*") |
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 = "*" AND Destination != "*") |
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 (Source = "*" AND Destination = "*") |
Connection* : A list (may be empty) of all event and data connections in the addressed device or resource. | None. |
| Connection (Source != "*" AND Destination != "*") |
None. | NO_SUCH_OBJECT: The specified connection does not exist. |
| FBType | DataType | AdapterType (No sub-elements, Name <> "*") |
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 | AdapterType (No sub-elements, Name = "*") |
NameList: A list of names of all library elements of the specified type. | UNSUPPORTED_TYPE: There are no library elements of the specified type. |