Skip to content

Commit

Permalink
smaller changes
Browse files Browse the repository at this point in the history
  • Loading branch information
j0hannesfr committed Aug 24, 2023
1 parent 9ef4992 commit 521ff0a
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 176 deletions.
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ TIA and PLC:
* PLC: CPU 1511 FW 2.8.3
* SIMATIC SCADA Export V16
* Siemens OPC UA modeling Editor (SiOME) V2.5.12
* UA Expert 1.5.1
* UA Expert 1.6.3

Industrial Edge:
* Industrial Edge Management App V1.13.10
Expand All @@ -80,9 +80,11 @@ The application example is based on the filling bottles example:

## Configuration Steps

* [Configure PLC Connection](docs/Installation.md#plc-connection)
* [Import OPC UA Model in IIH](docs/Installation.md#model-import)
* [Tags Mapping](docs/Installation.md#tags-mapping)
* [Configure PLCs](docs/Installation.md#configure-plcs-with-tia-portal)
* [Configure PLC Connections](docs/Installation.md#configure-plc-connection)
* [Import OPC UA Model in IIH](docs/Installation.md#import-opc-ua-model)
* [Tags Mapping](docs/Installation.md#mapping-tags)
* [Creating Asset Model](docs/Installation.md#creating-asset-model)

## Usage

Expand Down Expand Up @@ -114,6 +116,7 @@ You can find further documentation and help in the following links
## Contribution

Thank you for your interest in contributing. Anybody is free to report bugs, unclear documentation, and other problems regarding this repository in the Issues section.

Additionally everybody is free to propose any changes to this repository using Pull Requests.

If you are interested in contributing via Pull Request, please check the [Contribution License Agreement](Siemens_CLA_1.1.pdf) and forward a signed copy to [industrialedge.industry@siemens.com](mailto:industrialedge.industry@siemens.com?subject=CLA%20Agreement%20Industrial-Edge).
Expand Down
15 changes: 7 additions & 8 deletions docs/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@

## Configure PLCs with TIA Portal

For this tutorial 3 PLCs will be used that each demonstrate one line of a production plant. The TIA project can be found [here]([src/tiaproject.zap16](https://github.com/industrial-edge/miscellaneous/blob/main/tank%20application/tia-tank-application.zap16)). Please adjust the IP adresses to your enviroment, download the project to three PLCs and start them up. A simulation of a filling line will be excecuted automatically.
For this tutorial two PLCs will be used that each demonstrate one line of a production plant. The TIA project can be found [here]([src/tiaproject.zap16](https://github.com/industrial-edge/miscellaneous/blob/main/tank%20application/tia-tank-application.zap16)). Please adjust the IP adresses to your enviroment, download the project to two PLCs and start them up. A simulation of a filling line will be excecuted automatically.

## Configure PLC Connection

To get the relevant data from the PLCs to the Edge Device there are several Connectors available. The IIH forms a central integration layer where all connector data can be standardized and mapped on a data model. For this example we will use two options, OPC UA Connector and SIMATIC S7+ Connector.
To retrieve relevant data from the PLCs to the Edge Device, several Connectors are available. The IIH forms a central integration layer where all connector data can be standardized and mapped onto a data model. For this example, we will use two options: the OPC UA Connector and the SIMATIC S7+ Connector.

### Option 1: SIMATIC S7+ Connector

SIMATIC S7+ Connector reads data from PLC and then IIH app will collect it. We need to export tags from TIA Portal Project using SIMATIC SCADA Export.
SIMATIC S7+ Connector reads data from the PLC and then the IIH app will collect it. We need to export tags from TIA Portal Project using SIMATIC SCADA Export.

![SimaticScadaExport](graphics/simatic_scada_export.png)

Expand All @@ -43,7 +43,7 @@ In order to build this infrastructure, we need to have installed the following c

#### Configure IIH Configurator

SIMATIC S7+ Import Converter converts the export file to a Connectivity Suite Configuration.
The SIMATIC S7+ Import Converter converts the export file into a Connectivity Suite Configuration.

In your IED click IIH Configurator to open it.

Expand Down Expand Up @@ -100,9 +100,8 @@ In order to build this infrastructure, we need the following connectors and apps
4. After adding the PLC, click on the browse symbol and add the following variables to your configuration:
![OPCUA Tags](graphics/opcua_tags.png)

5. Repeat step 3. and 4. for another PLC (Example Data Model consists of 3 PLCs in total)

6. **Deploy** and **start** the project.
5. **Deploy** and **start** the project.

If you don't want to perform all these steps manually, you can import this [configuration file](../src/opcuaconnector.json).

Expand Down Expand Up @@ -137,7 +136,7 @@ From SiOME, two nodesets were exported, one for the companion specification and

### Import a Companion Specification

Go to IIH Configurator.
Open the IIH Configurator in your IED.

1. In **Define Data -> Organize** select **Create Model**. Then select **Add Model**.
![IIH_CreateModel](graphics/iih_create_model.png)
Expand Down Expand Up @@ -186,7 +185,7 @@ You have successfully created a data model based on OPC UA. The next step is to

## Creating Asset Model

To make use of the full functionality of IIH your OPC UA model has to be mapped to an **Asset Model**. This is the data model structure which is used by several apps like Perfomance Insight or Energy Manager.
To make use of the full functionality of IIH, your OPC UA model has to be mapped to an **Asset Model**. This is the data model structure which is used by several apps like Perfomance Insight or Energy Manager.

1. Select **Asset Model** in the right editor window and create a new asset
![AddParentAsset](graphics/AddParentAsset.png)
Expand Down
Binary file modified docs/graphics/MapOPCtoAsset.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
165 changes: 2 additions & 163 deletions src/TankModelNodeset.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<UANodeSet LastModified="2023-08-21T13:24:40.303Z" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns:si="http://www.siemens.com/OPCUA/2017/SimaticNodeSetExtensions" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<UANodeSet LastModified="2023-08-24T12:23:34.056Z" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns:si="http://www.siemens.com/OPCUA/2017/SimaticNodeSetExtensions" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<NamespaceUris>
<Uri>http://www.siemens.com/machine/</Uri>
<Uri>http://www.siemens.com/machine/demo</Uri>
Expand Down Expand Up @@ -32,7 +32,7 @@
<si:Generator Product="SiOME" Edition="Standard" Version="2.5.0"/>
</Extension>
<Extension>
<si:GeneratorExtension Hash="e3341679eba0fe2e5797b2e379ac76d6"/>
<si:GeneratorExtension Hash="a4b227052a635ddfb2ee8cbed99f511a"/>
</Extension>
</Extensions>
<UAObject SymbolicName="http___www_siemens_com_machine_tank" NodeId="ns=1;i=5000" BrowseName="1:http://www.siemens.com/machine/" ParentNodeId="i=11715">
Expand Down Expand Up @@ -909,165 +909,4 @@
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAObject NodeId="ns=2;i=5018" BrowseName="2:Line3" ParentNodeId="i=85">
<DisplayName>Line3</DisplayName>
<References>
<Reference ReferenceType="Organizes" IsForward="false">i=85</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1004</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=5019" BrowseName="1:MachineConsumption" ParentNodeId="ns=2;i=5018">
<DisplayName>MachineConsumption</DisplayName>
<References>
<Reference ReferenceType="Organizes" IsForward="false">ns=2;i=5018</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1005</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=5020" BrowseName="1:OperateSignals" ParentNodeId="ns=2;i=5018">
<DisplayName>OperateSignals</DisplayName>
<References>
<Reference ReferenceType="Organizes" IsForward="false">ns=2;i=5018</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1008</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=5021" BrowseName="1:ProcessSignals" ParentNodeId="ns=2;i=5018">
<DisplayName>ProcessSignals</DisplayName>
<References>
<Reference ReferenceType="Organizes" IsForward="false">ns=2;i=5018</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1007</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=5022" BrowseName="1:TankSignals" ParentNodeId="ns=2;i=5018">
<DisplayName>TankSignals</DisplayName>
<References>
<Reference ReferenceType="Organizes" IsForward="false">ns=2;i=5018</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1001</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=5023" BrowseName="1:Energy" ParentNodeId="ns=2;i=5019">
<DisplayName>Energy</DisplayName>
<References>
<Reference ReferenceType="Organizes" IsForward="false">ns=2;i=5019</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1002</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=5024" BrowseName="1:Gas" ParentNodeId="ns=2;i=5019">
<DisplayName>Gas</DisplayName>
<References>
<Reference ReferenceType="Organizes" IsForward="false">ns=2;i=5019</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1006</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=5025" BrowseName="1:Water" ParentNodeId="ns=2;i=5019">
<DisplayName>Water</DisplayName>
<References>
<Reference ReferenceType="Organizes" IsForward="false">ns=2;i=5019</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1003</Reference>
</References>
</UAObject>
<UAVariable DataType="Int16" NodeId="ns=2;i=6038" BrowseName="1:OperateState" ParentNodeId="ns=2;i=5020" UserAccessLevel="3" AccessLevel="3">
<DisplayName>OperateState</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5020</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="UInt32" NodeId="ns=2;i=6039" BrowseName="1:BatchID" ParentNodeId="ns=2;i=5021" UserAccessLevel="3" AccessLevel="3">
<DisplayName>BatchID</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5021</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="UInt32" NodeId="ns=2;i=6040" BrowseName="1:NumberFaulty" ParentNodeId="ns=2;i=5021" UserAccessLevel="3" AccessLevel="3">
<DisplayName>NumberFaulty</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5021</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="UInt32" NodeId="ns=2;i=6041" BrowseName="1:NumberProduced" ParentNodeId="ns=2;i=5021" UserAccessLevel="3" AccessLevel="3">
<DisplayName>NumberProduced</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5021</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="UInt32" NodeId="ns=2;i=6042" BrowseName="1:ProductID" ParentNodeId="ns=2;i=5021" UserAccessLevel="3" AccessLevel="3">
<DisplayName>ProductID</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5021</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Float" NodeId="ns=2;i=6043" BrowseName="1:actLevel" ParentNodeId="ns=2;i=5022" UserAccessLevel="3" AccessLevel="3">
<DisplayName>actLevel</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5022</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Float" NodeId="ns=2;i=6044" BrowseName="1:actPressure" ParentNodeId="ns=2;i=5022" UserAccessLevel="3" AccessLevel="3">
<DisplayName>actPressure</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5022</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Float" NodeId="ns=2;i=6045" BrowseName="1:actTemperature" ParentNodeId="ns=2;i=5022" UserAccessLevel="3" AccessLevel="3">
<DisplayName>actTemperature</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5022</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Boolean" NodeId="ns=2;i=6046" BrowseName="1:maxLevel" ParentNodeId="ns=2;i=5022" UserAccessLevel="3" AccessLevel="3">
<DisplayName>maxLevel</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5022</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Boolean" NodeId="ns=2;i=6047" BrowseName="1:maxTemperature" ParentNodeId="ns=2;i=5022" UserAccessLevel="3" AccessLevel="3">
<DisplayName>maxTemperature</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5022</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Float" NodeId="ns=2;i=6048" BrowseName="1:FillingBottles" ParentNodeId="ns=2;i=5023" UserAccessLevel="3" AccessLevel="3">
<DisplayName>FillingBottles</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5023</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Float" NodeId="ns=2;i=6049" BrowseName="1:FillingTank" ParentNodeId="ns=2;i=5023" UserAccessLevel="3" AccessLevel="3">
<DisplayName>FillingTank</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5023</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Float" NodeId="ns=2;i=6050" BrowseName="1:HeatingTank" ParentNodeId="ns=2;i=5023" UserAccessLevel="3" AccessLevel="3">
<DisplayName>HeatingTank</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5023</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Float" NodeId="ns=2;i=6051" BrowseName="1:HeatingTank" ParentNodeId="ns=2;i=5024" UserAccessLevel="3" AccessLevel="3">
<DisplayName>HeatingTank</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5024</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
<UAVariable DataType="Float" NodeId="ns=2;i=6052" BrowseName="1:FillingTank" ParentNodeId="ns=2;i=5025" UserAccessLevel="3" AccessLevel="3">
<DisplayName>FillingTank</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=5025</Reference>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
</UAVariable>
</UANodeSet>
Loading

0 comments on commit 521ff0a

Please sign in to comment.