6 MAPPING

6.1 Overview

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).

6.2 FILE Section

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.

6.3 DEVICE Section

6.3.1 Header information

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.

6.3.2 DEVICE_INFO part

6.3.2.1 Header information

No rules are specified to use the information described in the DEVICE_INFO part header to create CSP+ machine ObjectType.

6.3.2.2 COMMON information CSPP element

Part of COMMON information CSPP elements in the DEVICE_INFO part is mapped to Attributes and Properties of the CSP+ machine ObjectType.

Table 7‑1 shows the mapping specifications.

Table 7‑1 – Mapping Specifications for COMMON Information CSPP Elements of DEVICE_INFO Part

No.LABEL name of CSPP element (mapping source)Mapping destinationRule
1.VendorNameManufacturer PropertyMaps DATA item value (Unicode string) of the CSPP element to the Value Attribute value of the Property.
2.DeviceModelModel PropertyMaps DATA item value (ASCII string) of the CSPP element to the Value Attribute value of the Property.
3.ProductID(No mapping)-
4.VersionDeviceRevision PropertyMaps DATA item value (*1) of the CSPP element to the Value Attribute value of the Property as a string.
5.ReferenceURLDeviceManual Property-
6.URLInfo(No mapping)-
7.OutlineDescription AttributeMaps 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)

6.3.2.3 CSPP element other than COMMON information

No rules are specified to use any CSPP elements other than COMMON information to create CSP+ machine ObjectType.

6.3.3 DEVICE_IF part

No rules are specified to use the information described in the DEVICE_IF part to create CSP+ machine ObjectType.

6.4 COMM_IF Section and BLOCK Section

6.4.1 Basic policy

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 7‑1.

Figure 7‑1 – Image of Relationship between COMM_IF Section, BLOCK Section,
and CSP+ Machine ObjectType

6.4.2 COMM_IF section header information

From the information described in the COMM_IF section header, LABEL name is mapped to the BrowseName Attribute of the FunctionalGroupType Object (refer to 5.2.1.3) and LABEL2 name is mapped to the DisplayName Attribute of the same Object above.

6.4.3 BLOCK section header information

No rules are specified to use the information described in the BLOCK section header to create CSP+ machine ObjectType.

6.4.4 COMM_IF_INFO part

No rules are specified to use the information described in the COMM_IF_INFO part to create CSP+ machine ObjectType.

6.4.5 BLOCK_INFO part

No rules are specified to use the information described in the BLOCK_INFO part to create CSP+ machine ObjectType.

6.4.6 COMM_IF_VARIABLE part, COMM_IF_CONFIGURATION part

6.4.6.1 Header information

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 5.2.1.4 and 5.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.

6.4.6.2 CSPP element

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 7‑2 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 7‑2 are also applied to the items described in the P_Value element of the BLOCK_MEMORY part.

Table 7‑2 – Mapping Specifications for COMM_IF_VARIABLE Part
and COMM_IF_CONFIGURATION Part Elements

No.Item name of CSPP element (mapping source)Mapping destinationRule
1.LABEL BrowseName Attribute

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 DisplayName AttributeMaps the item value to the Attribute value.
3.CATEGORY(No mapping)-
4.NAME(No mapping)-
5.DATATYPE DataType AttributeRefer to Table 8‑1.
6.RANGE

When values and value ranges are directly described

EURange Property

When option list (ENUM) is used

Refer to 6.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 7‑3.
8.ENG_UNITEngineeringUnits PropertyMaps the item value to the displayName element of the Value Attribute of the Property.
9.ACCESS AccessLevel Attribute

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 6.4.7.-
11.REF_PARAM(*1)Refer to 6.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 Description AttributeMaps 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

6.4.7 BLOCK_MEMORY part, BLOCK_PARAM part

6.4.7.1 Header information

No rules are specified to use the information described in the BLOCK_MEMORY part and BLOCK_PARAM part headers to create CSP+ machine ObjectType.

6.4.7.2 Preset label CSPP element

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 7‑3 shows the mapping specifications.

Table 7‑3 – Mapping Specifications for BLOCK_MEMORY Part and BLOCK_PARAM Part CSPP Elements

No.LABEL name of CSPP element (mapping source)Mapping destinationRule
1.P_Value Value Attribute of the DataVariableMaps 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 valuesWhen 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 ValuePrecision Property for DataVariableMaps 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 valuesMaps 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 valuesMaps the item value acquired from the machine to the element value.
6.P_Period Duration Property for DataVariableConverts 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 MinimumSampleingInterval Attribute for DataVariableMaps 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.

6.4.7.3 CSPP element other than preset label

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.

6.4.8 ENUM part

6.4.8.1 Header information

No rules are specified to use the information described in the ENUM part header to create CSP+ machine ObjectType.

6.4.8.2 CSPP element
6.4.8.2.1 TwoStateDiscreteType VariableType

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.

6.4.8.2.2 MultiStateDiscreteType VariableType

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.

6.4.8.2.3 MultiStateValueDiscreteType VariableType

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.