This chapter specifies rules to create CSP+ machine ObjectType from the CsppMachineType ObjectType based on the information described in the CSP+ for machine.
Inheriting rules not specified in this document for mandatory Attributes, Properties and DataVariables of the CsppMachineType ObjectType should depend on the implementation of application creating CSP+ machine ObjectType (OPC UA Server). The instantiation of machine Object from the CSP+ machine ObjectType should also depend on the implementation of application (OPC UA Server).
No rules are specified to use the information described in the FILE section to create CSP+ machine ObjectType. However, DATA item value of Language element as one of COMMON information may be indirectly used to show locale of a string. For details, refer to specifications of each rule.
Label names described in the DEVICE section header are used as part of BrowseName Attribute values of the CSP+ machine ObjectType. Specifically, a text "CsppDeviceType" connected after an Attribute value is handled as the BrowseName Attribute value. For example, when the label name is "ABC", its BrowseName Attribute value becomes "ABCCsppDeviceType".
No rules are specified to use any information other than the above to create CSP+ machine ObjectType.
No rules are specified to use the information described in the DEVICE_INFO part header to create CSP+ machine ObjectType.
Part of COMMON information CSPP elements in the DEVICE_INFO part is mapped to Attributes and Properties of the CSP+ machine ObjectType.
Table 71 shows the mapping specifications.
Table 71 – Mapping Specifications for COMMON Information CSPP Elements of DEVICE_INFO Part
No. |
LABEL name of CSPP element (mapping source) |
Mapping destination |
Rule |
1. |
VendorName |
Manufacturer Property |
Maps DATA item value (Unicode string) of the CSPP element to the Value Attribute value of the Property. |
2. |
DeviceModel |
Model Property |
Maps DATA item value (ASCII string) of the CSPP element to the Value Attribute value of the Property. |
3. |
ProductID |
(No mapping) |
- |
4. |
Version |
DeviceRevision Property |
Maps DATA item value (*1) of the CSPP element to the Value Attribute value of the Property as a string. |
5. |
ReferenceURL |
DeviceManual Property |
- |
6. |
URLInfo |
(No mapping) |
- |
7. |
Outline |
Description Attribute |
Maps DATA item value (Unicode string) of the CSPP element to the Attribute value. |
8. |
SpecList |
(No mapping) |
- |
9. |
IconFileName |
Icon Property (ImagePNG DataType) |
Converts a file specified by DATA item of the CSPP element to a PNG file and maps the file content as a binary string to the Value Attribute value of the Property. |
10. |
GraphicsFileName |
DataVariable referred to from DeviceTypeImage Object. The DataVariable name should be DATA item value of DeviceModel element. |
Maps a file content specified by DATA item of the CSPP element as a binary string to the Value Attribute value of the DataVariable. DataType of the DataVariable should be a DataType depending on the file format (PNG->ImagePNG DataType, BMP->ImageBMP DataType, JPG->ImageJPG DataType, GIF->ImageGIF DataType). |
*1: One of bit string type, signed integral data type, unsigned integral data type, or STRING (x)
No rules are specified to use any CSPP elements other than COMMON information to create CSP+ machine ObjectType.
No rules are specified to use the information described in the DEVICE_IF part to create CSP+ machine ObjectType.
Basic policy to apply information described in the COMM_IF section and BLOCK section for creating CSP+ machine ObjectType is as follows.
- CSPP elements specified in the COMM_IF_VARIABLE part and COMM_IF_CONFIGURATION part are mapped to each DataVariable referred to from ParameterSet Object of CSP+ machine ObjectType by using HasComponent Reference.
- The DataVariables above are grouped both per CSPP section and per CSPP part. FunctionalGroupType Objects are created only for the number of CSPP sections and CSPP parts for grouping purpose, the Objects corresponding to the CSPP sections are referred to from the CSP+ machine ObjectType by using HasComponent Reference, and the Objects corresponding to the CSPP parts are referred to from the Objects corresponding to the sections using the HasComponent Reference.
- Attribute and Property information held by the DataVariables (e.g. engineering unit, minimum collection cycle) are configured based on the CSPP elements in the BLOCK_MEMORY part and BLOCK_PARAM part referred to from the element corresponding to the DataVariables, and CSPP element or CSPP part to which the CSPP element belongs.
The image of the basic policy is shown in Figure 71.
Figure 71 – Image of Relationship between COMM_IF Section, BLOCK Section, and CSP+ Machine ObjectType
From the information described in the COMM_IF section header, LABEL name is mapped to the BrowseName Attribute of the FunctionalGroupType Object (refer to 6.2.1.3) and LABEL2 name is mapped to the DisplayName Attribute of the same Object above.
No rules are specified to use the information described in the BLOCK section header to create CSP+ machine ObjectType.
No rules are specified to use the information described in the COMM_IF_INFO part to create CSP+ machine ObjectType.
No rules are specified to use the information described in the BLOCK_INFO part to create CSP+ machine ObjectType.
From the information described in the COMM_IF_VARIABLE part and COMM_IF_CONFIGURATION part headers, LABEL name is mapped to the BrowseName Attribute of the FunctionalGroupType Object (refer to 6.2.1.4 and 6.2.1.5) and LABEL2 name is mapped to the DisplayName Attribute of the same Object above.
No rules are specified to use any information other than the above to create CSP+ machine ObjectType.
CSPP elements specified in the COMM_IF_VARIABLE part and COMM_IF_CONFIGURATION part are mapped to each DataVariable referred to from ParameterSet Object of CSP+ machine ObjectType by using HasComponent Reference. The VariableType of each DataVariable is determined based on the following rules depending on the item values of the BLOCK_MEMORY part and BLOCK_PARAM part CSPP elements referred to from item values of each CSPP element and the CSPP elements.
- CSPP elements that specify ENUM to the RANGE item are mapped to the DataVariables in one of VariableTypes: TwoStateDiscreteType, MultiStateDiscreteType, and MultiStateValueDiscreteType.
- Data type is boolean type: TwoStateDiscreteType VariableType
- CODE item values of entire elements are assigned in a serial number starting from 0 in ENUM part: MultiStateDiscreteType VariableType
- Any case other than the above: MultiStateValueDiscreteType VariableType
- All the CSPP elements other than the above referring to BLOCK_PARAM part including P_Period element are mapped to the DataVariable of the CsppAnalogItemType VariableType.
- All the CSPP elements other than the above in data type of bit string type, signed integral data type, unsigned integral data type, BCD integral data type, or real data type, are mapped to the DataVariable of the AnalogItemType VariableType.
- All the CSPP elements other than the above are mapped to the DataVariable of the DataItemType VariableType.
Part of items of each CSPP element is mapped to Attributes and Properties of the DataVariables. Table 72 shows the mapping specifications. Instead of description omission in the COMM_IF_VARIABLE part and COMM_IF_CONFIGURATION part, the mapping specifications shown in the Table 72 are also applied to the items described in the P_Value element of the BLOCK_MEMORY part.
Table 72 – Mapping Specifications for COMM_IF_VARIABLE Part and COMM_IF_CONFIGURATION Part Elements
No. |
Item name of CSPP element (mapping source) |
Mapping destination |
Rule |
1. |
LABEL |
Maps the string that consists of the item value followed by a decimal value representing the appearance sequence (initial value: 1) of the item which has the same LABEL name in the CSP+ file for machine, to an Attribute value. Example: When the LABEL name is "ABC" and the appearance sequence is 12, the Attribute value is "ABC12". |
|
2. |
LABEL2 |
Maps the item value to the Attribute value. |
|
3. |
CATEGORY |
(No mapping) |
- |
4. |
NAME |
(No mapping) |
- |
5. |
DATATYPE |
Refer to Table 81. |
|
6. |
RANGE |
When values and value ranges are directly described EURange Property When option list (ENUM) is used Refer to 7.4.8. |
Mapping is performed only when one type of value setting is specified. No mapping is performed when two or more types of values are specified or when a value is specified. Since the Range as a data type of EURange Property cannot identify whether it is closed interval or open interval, upper limit is mapped to the high element of the Value Attribute and lower limit is mapped to the low element without the identification. |
7. |
MIN_INC |
(Affected to Value Attribute indirectly) |
Refer to No.1 of Table 73. |
8. |
ENG_UNIT |
EngineeringUnits Property |
Maps the item value to the displayName element of the Value Attribute of the Property. |
9. |
ACCESS |
Maps the item value to an Attribute value based on the following rules. This item is not present in the COMM_IF_VARIABLE part element; however, it is handled as the item value is R. - Item value is "R": Set bit 0 to 1, bit 1 to 0 - Item value is "W": Set bit 0 to 0, bit 1 to 1 - Item value is "RW": Set bit 0 to 1, bit 1 to 1 - Item value is "NA": Set bit 0 to 0, bit 1 to 0 - Item value is empty: No rules applied |
|
10. |
REF_MEMORY(*1) |
Refer to 7.4.7. |
- |
11. |
REF_PARAM(*1) |
Refer to 7.4.7. |
- |
12. |
ASSIGN(*2) |
(No mapping) |
Does not map any item values but maps the values acquired from the machine using this item value to the Value Attribute value of the DataVariable. |
13. |
COMMENT |
Maps the item value to the Attribute value. |
*1: For the COMM_IF_CONFIGURATION part CSPP element only
*2: For the COMM_IF_VARIABLE part CSPP element only
No rules are specified to use the information described in the BLOCK_MEMORY part and BLOCK_PARAM part headers to create CSP+ machine ObjectType.
Elements having preset labels in the BLOCK_MEMORY part and BLOCK_PARAM part are mapped not to CSP+ machine ObjectType but to a machine Object with the CSP+ machine ObjectType instantiated.
Some of elements having preset labels in the BLOCK_MEMORY part and BLOCK_PARAM part are mapped to Attributes and Properties of DataVariables as mapping destination for the elements specified in the COMM_IF_CONFIGURATION as its reference source, and others are mapped to return values for the Services (Read, Publish, Republish) to be executed for the DataVariables. Table 73 shows the mapping specifications.
Table 73 – Mapping Specifications for BLOCK_MEMORY Part and BLOCK_PARAM Part CSPP Elements
No. |
LABEL name of CSPP element (mapping source) |
Mapping destination |
Rule |
1. |
P_Value |
Value Attribute of the DataVariable |
Maps the value acquired from the machine to the Attribute value. However, when MIN_INC item has been defined in P_Value element or its reference source element, a value acquired from the machine is converted depending on the MIN_INC item value and mapped to the Attribute value. |
2. |
P_NA |
Severity field (bit 30 and bit 31) of the statusCode element of a value as DataValue DataType*1 from the Service return values |
When the value acquired from the machine is 0 (not missing), the Severity should be "00" (Good Success). When the value acquired is 1 (missing), the Severity should be "10" (Bad Failure). |
3. |
P_Accuracy |
Maps a value acquired from the machine (BLOCK_MEMORY part) or an element DATA item value (BLOCK_PARAM part) to a Value Attribute value of a Property. |
|
4. |
P_ChangeDate |
"sourceTimestamp" member of a value as DataValue DataType*1 from the Service return values |
Maps the item value acquired from the machine to the member value. |
5. |
P_MeasurementDate |
"serverTimestamp" element of a value as DataValue DataType*1 from the Service return values |
Maps the item value acquired from the machine to the element value. |
6. |
P_Period |
Converts the value acquired from the machine (the unit is specified by the ENG_UNIT item value for the element) in millisecond unit and maps to the Attribute value of the Property. |
|
7. |
P_Cycle |
Maps DATA item value of the element to the Attribute value. |
*1: For a Read Service, the results[] value corresponds to the DataValue DataType. For a Publish or Republish Service, the Value element of the notificationData[] element in the notificationMessage value corresponds to the DataValue DataType.
No rules are specified to use the information for the elements other than the preset label in the BLOCK_MEMORY part and BLOCK_PARAM part to create CSP+ machine ObjectType.
No rules are specified to use the information described in the ENUM part header to create CSP+ machine ObjectType.
When the data type of reference source CSPP element in the ENUM part is boolean type, map the reference source CSPP element to the DataVariable of the TwoStateDiscreteType VariableType. Map two CSPP elements of the ENUM part to Properties of the DataVariable based on the following rules.
- Assign the CSPP element with the CODE item value 0 to the FalseState Property and map the CSPP element with CODE item value 1 to the TrueState Property.
- When the LABEL2 item of the CSPP element is specified, set the item value to the text element of the Value Attribute for corresponding Property. Set the DATA item value of the Language element in the FILE_INFO part to the Locale element.
- When the LABEL2 item of the CSPP element is not specified, set the LABEL item value to the text element of the Value Attribute. Set "en-US" to the Locale element.
When CODE item values of entire CSPP elements of ENUM part are assigned in a serial number starting from 0, map the reference source CSPP element to the DataVariable of the MultiStateDiscreteType VariableType. Map the CSPP elements of the ENUM part to Properties of the DataVariable based on the following rules.
- Sort the CSPP elements in the ascending order of the CODE item value to be assigned to each element of the EnumStrings Property (Note: the Property above is array type) in a sequential order.
- When the LABEL2 item of the CSPP element is specified, set the item value to the text element of the Value Attribute for the corresponding element of the EnumStrings Property. Set the DATA item value of the Language element in the FILE_INFO part to the Locale element.
- When the LABEL2 item of the CSPP element is not specified, set the LABEL item value to the text element. Set "en-US" to the Locale element.
When CODE item values of entire CSPP elements of ENUM part are not assigned in a serial number starting from 0, map the reference source CSPP element to the DataVariable of the MultiStateValueDiscreteType VariableType. Map the CSPP elements of the ENUM part to the DataVariable Property based on the following rules.
- Assign the elements of the EnumValues Property (Note: the Property above is array type) in the ascending order described in the ENUM part.
- Set the CODE item value of the CSPP element to the Value element of the Value Attribute for the corresponding element of the EnumValues Property.
- When the LABEL2 item of the CSPP element is specified, set the item value to the text element of the Display element in the Value Attribute for the corresponding element of the EnumValues Property. Set the DATA item value of the Language element in the FILE_INFO part to the locale element for the Display element.
- When the LABEL2 item of the CSPP element is not specified, set the LABEL item value to the text element. Set "en-US" to the Locale element.