---
title: AB DF1 (Gen1)
slug: manufacturing-connect-edge-v1/ab-df1-gen1
docTags: 
createdAt: 2022-05-26T20:56:06.000Z
---

Review the following information for setting up and configuring the AB DF1 (Gen1) driver.&#x20;

# Manufacturing Connect Edge Compatible Series&#x20;

| Compatibility parameter      | Compatible items                                                                                                                                                                                                                                                                                                                                                                                   |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Driver type**              | Serial                                                                                                                                                                                                                                                                                                                                                                                             |
| **Validated devices/series** | [MicroLogix](https://www.rockwellautomation.com/en-us/products/hardware/allen-bradley/programmable-controllers/micro-controllers/micrologix-family/micrologix-1400-controllers.html)<br />[SLC 500](https://www.rockwellautomation.com/en-us/products/hardware/allen-bradley/programmable-controllers/small-controllers/slc-500-controllers.html)<br />Allen-Bradley DF1 drivers use CRC checksum. |

To set up and configure this device in Manufacturing Connect 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 Manufacturing Connect Edge DeviceHub
- Step 3: Configure the List of Registers

# Step 1: Set up and Configure the PLC Device

Record the serial communication parameters for the device. Otherwise, follow the steps below.&#x20;

The setup shown here is for the Rockwell Automation Allen-Bradley DF1 (Gen1) PLC.

Refer to the following parameters.&#x20;

**Communication Mode:**

DF1 Full Duplex protocol 19200, None, 8, 1 (default)

Error Check: CRC

**To configure your device:&#x20;**

1. Note down the following information and refer to it as needed.&#x20;
   **Device**: AB DF1 SLC 5/04
   **Communication I/F**: RS232. Refer to the following figure.

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/Zx0ExTUn_RHbbI5EVM1bj_abdf1reference.png" size="80" width="523" height="795" caption="AB DF1 reference" position="center" showCaption="true"}
2. Launch RSLinx Classic, and then click **Configure Drivers**.
3. Add an RS-232 DF1 devices driver and then click **Configure**.
4. Set up communication parameters, click **Auto-Configure** to test, and then click **OK**.
   ![](https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/NOjKDxWnJPl-iHG06B1f2_ab-df1-auto.png "Communication parameters")
5. Launch RSLogix 500 V8.10.00, and then click **Comms > System Comms**.

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

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

| Parameter              | Value                             |
| ---------------------- | --------------------------------- |
| **Type**               | Allen Bradley                     |
| **Driver**             | AB DF1 (Gen1)                     |
| **Communication Port** | Local Serial connection file path |
| **Data Bits**          | 8                                 |
| **Baud Rate**          | 19200                             |
| **Parity**             | Even, Odd, None                   |
| **Stop Bits**          | 1                                 |
| **Slot**               | 0                                 |

# Step 3: Configure the List of Registers

When you [Add Tags](docId\:iOaNZd2AwqnkuppgeE3Eh) to the connected device, refer to the following register table and tag parameters.

Refer to the following additional resources:

- [Organize Device and Tag Data by Using Metadata](docId\:f-B720niVlLBer44RfyHN)
- [Tag Formula Variables](docId\:PWd-7P-kZjXkt_pYAwAOw)

## Register Table

| **Name** | **Value Type** | **Address Format** | **Min Address** | **Max Address** | **Description**                        |
| -------- | -------------- | ------------------ | --------------- | --------------- | -------------------------------------- |
| I        | bit            | DDDdd              | 0               | 25515           | Input bit                              |
| O        | bit            | DDDdd              | 0               | 25515           | Output bit                             |
| S        | int            | DDD                | 0               | 255             | Status bit                             |
| B3       | bit            | DDDdd              | 0               | 25515           | Bit data file (B3)                     |
| Bfn      | bit            | FFFDDDdd           | 10000           | 25525515        | Bit data file                          |
| T4.ACC   | int            | DDD                | 0               | 255             | Timer Preset Value (T4)                |
| T4.PRE   | int            | DDD                | 0               | 255             | Timer Accumulator Value (T4)           |
| Tfn.ACC  | int            | FFFDDD             | 1000            | 255255          | Timer Accumulator Value                |
| Tfn.PRE  | int            | FFFDDD             | 1000            | 255255          | Timer Preset Value                     |
| CS.ACC   | int            | DDD                | 0               | 255             | Counter Accumulator Value (CS)         |
| CS.PRE   | int            | DDD                | 0               | 255             | Counter Preset Value (CS)              |
| Cfn.ACC  | int            | FFFDDD             | 1000            | 255255          | Counter Accumulator Value              |
| Cfn.PRE  | int            | FFFDDD             | 1000            | 255255          | Counter Preset Value                   |
| R6       | int            | DDD                | 0               | 255             | Control Register (R6)                  |
| R6.POS   | int            | DDD                | 0               | 255             | Control Register pointer position (R6) |
| R6.LEN   | int            | DDD                | 0               | 255             | Control Register pointer length (R6)   |
| Rfn      | int            | FFFDDD             | 0               | 255255          | Control Rgister                        |
| Rfn.POS  | int            | FFFDDD             | 0               | 255255          | Control Register pointer position      |
| Rfn.LEN  | int            | FFFDDD             | 0               | 255255          | Control Register pointer length        |
| N7       | int            | DDD                | 0               | 255             | Integer data file (N7)                 |
| Nfn      | int            | FFFDDD             | 1000            | 255999          | Integer data file                      |
| Lfn      | int            | FFFDDD             | 1000            | 255999          |                                        |
| F8       | float          | DDD                | 0               | 255             | Floating point data file (F8)          |
| Ffn      | float          | FFFDDD             | 1000            | 255999          | Floating point data file               |

## Tag Parameters

- **Name**: Select a register name from the drop-down list. The available options depend on the names in the register table.&#x20;
- **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;
- **Address**: Enter a tag address. The value must in the decimal format, within the allowed min/max range. Omit the leading zeros. The device might use the decimal (D), hexadecimal (H), or octal (O) address format. See the Register Table at the bottom of the dialog box. For Bit tags, append the bit address without the bit separator. The lowercase letters in the address format indicate how many digits you should enter in the Bit address.
- **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;
:::

