---
title: Siemens S7CommPlus
slug: litmusedge/quickstart-guide/industrial-systems-connection-guide/siemens/siemens-s7commplus
description: Review the following information for setting up and configuring the Siemens S7CommPlus driver. 
docTags: 
createdAt: 2023-11-21T18:15:17.496Z
---

Review the following information for setting up and configuring the Siemens S7CommPlus driver.&#x20;

# Litmus Edge Compatible Series&#x20;

| Compatibility parameter      | Compatible items                                                                                                                                                                                                                                          |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Driver type**              | Ethernet                                                                                                                                                                                                                                                  |
| **Validated devices/series** | S7-1200 V2.2<br />S7-1200 V4.1-4.5<br />S7-1500 V2.9<br />S7-1500 V3.1<br />When configuring tags for this driver, you must enter the case-sensitive register name exactly as it is defined in the PLC. See the *Free Tags* section below to learn more.  |

To set up and configure this device in Litmus Edge, you will need to do the following:

- Step 1: Set up and Configure the PLC Device
- Step 2: Set up the PLC Device in Litmus Edge DeviceHub
- Step 3: Configure the List of Registers

# Step 1: Set up and Configure the PLC Device

If the device is configured for Ethernet access, find its network parameters. Otherwise, use PLC software on your computer to configure your device for Ethernet access.

1. Open your TIA Portal project.&#x20;
2. In the project tree, right-click your PLC and select **Properties&#x20;**&#x66;rom the popup menu. The *Properties&#x20;*&#x77;indow opens.
3. To obtain the device’s IP address (if you do not already have it):
   - From the left pane, select **PROFINET** **interface > Ethernet addresses**.
   - In the right pane, go t&#x6F;**&#x20;Internet protocol version 4 (IPv4)**, find the IP address of the PLC, and copy it aside.
4. From the left pane, select **PROFINET interface** > **Advanced options** > **Port \[X1 P1]** > **Port interconnection.**
5. In the right pane, enter `Any partner` in the **Partner port** field.
6. From the left pane, select **Protection & Security > Access control.**
7. In the right pane, under **Access control configuration**, ensure that **Disable access control** is selected.
8. In the project tree, right-click the data block you want to read and select **Properties&#x20;**&#x66;rom the popup menu.
   The *Properties&#x20;*&#x77;indow opens.
9. From the left pane, select **Attributes**.
10. In the right pane, disable the **Only store in load memory** check box.
11. Click **OK.**
12. Repeat steps 8-11 for all data blocks you want to read.
13. Click th&#x65;**&#x20;Compile&#x20;**&#x69;con on the toolbar.
14. When the project finishes compiling, clic&#x6B;**&#x20;Download to Device**.

# Step 2: Set up the PLC Device in Litmus Edge DeviceHub

Configure the following parameters when you [Connect a Device](#) with this driver. Update default values to the specific setup of your device.&#x20;

| Parameter                              | Value                                        |
| -------------------------------------- | -------------------------------------------- |
| **Type**                               | Siemens                                      |
| **Driver**                             | Siemens S7CommPlus                           |
| **Network Address**                    | The device address you defined during Step 1 |
| **Network Port**                       | 102                                          |
| **PLC Type**                           | Auto                                         |
| **Firmware Version**                   | Auto                                         |
| **Read Timeout (ms)**                  | 1000                                         |
| **Retry Count**<br />**Read Retries**  | 0                                            |
| **Keep Alive**<br />**TCP Keep-Alive** | 60                                           |

# Step 3: Configure the List of Registers

When you [Add a Tag](#) to the connected device, refer to the following tag parameters and available value types.

You can also [Browse and Add Tags from a Device](#) for this device.&#x20;

Refer to the following additional resources:

- [Organize Device and Tag Data by Using Metadata](#)
- [Tag Formula Variables](#)

## Free Tags

This driver doesn't have a list of available register names in the DeviceHub *Add Tag* form.

To add tags, you must enter the register name exactly as it is defined in the PLC.

## Available Value Types

- `bool`&#x20;
- `byte`&#x20;
- `word`&#x20;
- `dword`&#x20;
- `lword`&#x20;
- `usint`&#x20;
- `uint`&#x20;
- `udint`&#x20;
- `ulint`&#x20;
- `sint`&#x20;
- `int`&#x20;
- `dint`
- `lint`
- `real`
- `lreal`
- `s5time`
- `dt`
- `dtl`
- `time`
- `ltime`
- `tod`
- `ltod`
- `ldt`
- `date`
- `char`
- `wchar`
- `string`
- `wstring`
- `bool[]`
- `byte[]`
- `word[]`
- `dword[]`
- `lword[]`
- `usint[]`
- `uint[]`
- `udint[]`
- `ulint[]`
- `sint[]`
- `int[]`
- `dint[]`
- `lint[]`
- `real[]`
- `lreal[]`
- `s5time[]`
- `time[]`
- `ltime[]`
- `tod[]`
- `ltod[]`
- `ldt[]`
- `date[]`

## Tag Parameters

- **Name**: Enter the case-sensitive register name exactly as it is defined in the PLC.&#x20;
- **Value Type**: Select a data type from the drop-down list.&#x20;
- **Polling Interval**: Enter a value in seconds. This determines how often the tag should poll the register for data.
- **Tag Name**: Enter a name for the tag.
- **Description** (Optional): Enter a description for the tag. &#x20;
- **Tag Formula**: Enter a formula for the tag to process the generated data. Two variables are permitted: `value` (current tag value) and `timestamp` (current tag UNIX time in milliseconds). The following math functions are available:
  - sin
  - cos
  - sqrt
  - tan
  - power: power(`x`) performs the operation `10^x`.
  - log: log(`x`) is the natural logarithm (the logarithm is in base `e`).&#x20;
  - exp: exp(`x`) performs the operation `e^x`.
- **Only Publish on Change of Value**: Select the checkbox to only publish NATS messages when the *value&#x20;*&#x70;arameter changes to a new value. *Change of Value* only applies to boolean, numeric (such as int or float), and simple string data types. It does not apply to complex types, such as JSON or array. Poll-once topics will not be affected by *Change of Value* settings. These topics will still only see a single message.&#x20;
- **Meta Data**: Metadata summarizes basic information about data. This feature allows you to define key-value pair data for the device output payload later on. Metadata can then be used to find, use, and reuse particular instances of data.&#x20;

:::hint{type="info"}
**Note**: If you use special characters in meta data key names, the special characters are replaced with underscore characters in the payload. This can cause two key names to be combined into one. For example, configuring the key names a\*\*b and a&\&b will cause only one key name to be created (a\_\_b).&#x20;
:::

