---
title: Beckhoff TwinCAT3 Ethernet Symbolic (Gen1.3)
slug: litmusedge/beckhoff-twinCAT3-ethernet-symbolic
description: Review the following information for setting up and configuring the Beckhoff TwinCAT3 Ethernet (Gen1) driver. 
docTags: 
createdAt: 2022-05-26T20:56:06.000Z
---

Review the following information for setting up and configuring the Beckhoff TwinCAT3 Ethernet Symbolic (Gen1.3) driver.&#x20;

# Litmus Edge Compatible Series&#x20;

| Compatibility parameter      | Compatible items                                                                                                                                                                                                                                                                                      |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Driver type**              | Ethernet                                                                                                                                                                                                                                                                                              |
| **Validated devices/series** | [Beckhoff TwinCat 3](https://www.beckhoff.com/en-ca/products/automation/twincat/tc1xxx-twincat-3-base/tc1200.html)<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, follow the steps below.

:::hint{type="info"}
**Notes**:&#x20;

- Make sure the Litmus Edge IP address is configured in TWINCAT.
- The Beckhoff PLC is also a PC with its own OS, and an IP address can be set up like a PC.
:::

**To configure your device:**

1. &#x20;Note down the following information and refer to it as needed.&#x20;
   &#x20;    **Device**: TwinCAT 3 Beckhoff PLC
   &#x20;    **Communication I/F**: Ethernet
2. Launch a new project in TcXaeShell.&#x20;
3. Click **Routes&#x20;**&#x74;o add the target that is going to connect to the PLC.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/HaponcqXFtWYQjLP27IRQ_twincat-01-update.png" size="100" width="1460" height="633" position="center" darkWidth="1460" darkHeight="633" showCaption="false" indent="2"}

4. Click **Add...**&#x43;onfigure the following parameters. Please note that only clients in the *Routes&#x20;*&#x6C;ist can connect to the PLC.&#x20;
   **Route Name (Target)**: Enter a name for the route.&#x20;
   **AmsNetId**: Enter the AmsNetId for the route. If the PLC is running as a soft connection, and Litmus Edge and the panel PC are on the same network, the *AmsNetId* and *Address info* values should be the same with `.1.1` at the end.&#x20;
   **Transport Type**: Review and confirm the transport type for the route.&#x20;
   **Address Info**: Enter the IP address of the corresponding target system in the network. If the PLC is running as a soft connection, and Litmus Edge and the panel PC are on the same network, the *AmsNetId&#x20;*&#x61;nd *Address info* values should be the same with `.1.1` at the end.
   **Target Route**: Select **Static**.&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/-7FWVIf21WcYjwoyXpa0o_twincat-02-01.png" size="100" width="1326" height="768" position="center" darkWidth="1326" darkHeight="768" showCaption="false" indent="2"}

5. Click the **Restart TwinCAT&#x20;**&#x69;con. Then, click the **Login&#x20;**&#x69;con to start the simulator.&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/HNFglQwMydR6a1sq3g0P6_twincat-03.png" size="100" width="964" height="330" position="center" darkWidth="964" darkHeight="330" showCaption="false" indent="2"}

# 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**            | Beckhoff                                                                                                                                                                                             |
| **Driver**          | Beckhoff TwinCAT3 Ethernet Symbolic (Gen1.3)                                                                                                                                                         |
| **Network Address** | The device address you defined in Step 1                                                                                                                                                             |
| **Network Port**    | 48898<br />Enter the network port for the Beckhoff device defined in Step 1                                                                                                                          |
| **Ads port**        | 851                                                                                                                                                                                                  |
| **Ams ID**          | AMS ID for the Beckhoff device<br />Enter the following: `[Beckhoff device Ams ID].1.1`<br />For example, if your Beckhoff Ams ID is 37.136.43.210, enter `37.136.43.210.1.1`.                       |
| **Local Ams ID**    | Local AMS ID for the Litmus Edge device<br /><br />Enter the following: `[Litmus Edge IP address].1.1`<br />For example, if your Litmus Edge IP address is 192.168.0.152, enter `192.168.0.152.1.1`. |

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

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 case-sensitive register name exactly as it is defined in the PLC.

A **Connected** status for the device won't display until a tag with a correct register name is created.

## Available Value Types

- `bool`
- `sint`
- `byte`
- `int`
- `word`
- `dint`
- `dword`
- `lint`
- `lword`
- `real `
- `lreal`
- `ltime`
- `string`
- `wstring`
- `date`
- `time`
- `dateandtime`
- `timeofday`

## Tag Parameters

- **Name**: Enter the case-sensitive register name exactly as it is defined in the PLC.
- **Value Type**: Select a data type from the drop-down list. The available options depend on the register name selected.&#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;
- **Count**: Enter the number of register values to read. A count higher than 1 will generate an array of values from the address value configured and respective subsequent address values. &#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 customize NATS messages to be published only when the *value&#x20;*&#x70;arameter changes from a previous value to a new one. *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. It 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;
:::

