---
title: AB PLC5 (Gen1.3)
slug: litmusedge/quickstart-guide/industrial-systems-connection-guide/allen-bradley/ab-plc5-gen1
description: Review the following information for setting up and configuring the AB PLC5 (Gen1) driver. 
docTags: 
createdAt: 2022-05-26T20:56:06.000Z
---

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

# Litmus Edge Compatible Series

| Compatibility parameter      | Compatible items                                                                                                              |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Driver type**              | Serial                                                                                                                        |
| **Validated devices/series** | [PLC5](https://www.rockwellautomation.com/en-us/products/hardware/allen-bradley/discontinued-products/plc-5-controllers.html) |

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

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

:::hint{type="info"}
**Note**: When configuring the settings for the PLC, the *Error Detect* setting must be set to CRC, otherwise a connection with Litmus Edge won't be successful.&#x20;
:::

Refer to the following parameters and reference images when setting up the PLC.

- **Device**: PLC5/40C
- **Communication I/F**ꓽ RS232

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/Vuzyjc9Ga0gsbEKsKmp0J_image.png" size="80" width="1509" height="1740" position="flex-start" showCaption="false"}

![](https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/I1cWq7sLWkZLO5s6KmGmE_image.png)

Complete the following steps to setup and configure the PLC.&#x20;

**To configure the PLC:**

1. Connect the PLC to the computer with a serial port 25-pin D-shell cable.
2. Open **RSLinx Classic&#x20;**&#x73;oftware.&#x20;
3. Click the **Configure Drivers** icon. Then, click **Add New** and add the *RS-232 DF1 devices* driver.&#x20;

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/Pv7L50fnFDVDhH32HMKQr_plc5-03.png" size="100" width="783" height="438" position="flex-start" showCaption="false" indent="2"}

4. Configure the driver with the following parameter values and click **OK**.&#x20;
   **Baud Rate**: 9600
   **Bits Per Char**: 8
   **Stop Bits**: 1
   **Parity**: None
   **Error Detect**: CRC

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/l4ly-qvg5A0gpC4UzNtlQ_plc5-04.png" size="100" width="880" height="683" position="flex-start" showCaption="false" indent="2"}

5. In the driver settings, click **Auto-Configure** and confirm that you see an `Auto Configuration Successful!` message.&#x20;

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/1YiiprT-HsMr9d2xZHc2c_plc5-05.png" size="100" width="1134" height="820" position="flex-start" showCaption="false" indent="2"}

6. Ensure these same settings are configured in the PLC to establish a connection.

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/SyrwJ7JGbpPGMHPA0p1YX_plc5-06.png" size="100" width="1221" height="704" position="flex-start" showCaption="false" indent="2"}

7. Open **RSLogix 5** software.&#x20;
8. Click **Comms&#x20;**&#x61;nd select **Who Active Go Online**.&#x20;

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/1aKoajDOGyJLH_9qZp0RQ_plc5-07.png" size="100" width="1035" height="220" position="flex-start" showCaption="false" indent="2"}

9. Select the device that you configured and click **Online**.&#x20;

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/FndapLEP2lzeKLxbfrOdJ_plc5-08.png" size="100" width="1123" height="610" position="flex-start" showCaption="false" indent="2"}

10. In the navigation menu, click **Channel Configuration** and select **Open**.&#x20;

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/GP2NNwVk0f6nNt3AhQPJs_plc5-09.png" size="100" width="819" height="300" position="flex-start" showCaption="false" indent="2"}

11. Confirm the *Serial Port* settings for **Channel 0**, which is the RS232 port. Note down the Baud Rate, Data Bits, Stop Bits, and Parity. The *Error Detect* setting must be set to **CRC**.&#x20;

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/2NO4ryrjiopaxydtoFlrw_plc5-10.png" size="100" width="666" height="521" position="flex-start" showCaption="false" indent="2"}

12. You can use **Channel 3A** to configure the Ethernet port, if applicable.&#x20;

::Image[]{src="https://app.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/iTtHacTheCd3F6ocBhMMi_plc5-11.png" size="100" width="776" height="590" position="flex-start" 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**               | Allen Bradley                     |
| **Driver**             | AB PLC5 (Gen1.3)                  |
| **Communication Port** | Local Serial connection file path |
| **Data Bits**          | 8                                 |
| **Baud Rate**          | 9600                              |
| **Parity**             | Even, Odd, None                   |
| **Stop Bits**          | 1                                 |
| **Slot**               | 0                                 |

# Step 3: Configure the List of Registers

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

See the following additional resources if necessary:&#x20;

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

## Register Table

| **Name** | **Value Type** | **Access Types** | **Address Format** | **Min Address** | **Max Address** | **Description**                    |
| -------- | -------------- | ---------------- | ------------------ | --------------- | --------------- | ---------------------------------- |
| I        | bit            | R/W              | DDDdd              | 0               | 25515           | Input bit                          |
| O        | bit            | R/W              | DDDdd              | 0               | 25515           | Output bit                         |
| S        | int            | R/W              | DDD                | 0               | 255             | Status file                        |
| B3       | bit            | R/W              | DDDdd              | 0               | 25515           |                                    |
| Bfn      | bit            | R/W              | FFFDDDdd           | 10000           | 25525515        |                                    |
| T4.ACC   | int            | R/W              | DDD                | 0               | 255             | Timer Accumulator (T4)             |
| T4.PRE   | int            | R/W              | DDD                | 0               | 255             |                                    |
| Tfn.ACC  | int            | R/W              | FFFDDD             | 10000           | 255255          |                                    |
| Tfn.PRE  | int            | R/W              | FFFDDD             | 10000           | 255255          |                                    |
| CS.ACC   | int            | R/W              | DDD                | 0               | 255             | Counter Accumulator (CS)           |
| CS.PRE   | int            | R/W              | DDD                | 0               | 255             |                                    |
| Cfn.ACC  | int            | R/W              | FFFDDD             | 10000           | 255255          |                                    |
| Dfn.PRE  | int            | R/W              | FFFDDD             | 10000           | 255255          |                                    |
| R6       | int            | R/W              | DDD                | 0               | 255             | Control File(R6)                   |
| R6.POS   | int            | R/W              | DDD                | 0               | 255             | Control file pointer position (R6) |
| R6.LEN   | int            | R/W              | DDD                | 0               | 255             |                                    |
| Rfn      | int            | R/W              | FFFDDD             | 0               | 255255          |                                    |
| Rfn.POS  | int            | R/W              | FFFDDD             | 0               | 255255          |                                    |
| Rfn.LEN  | int            | R/W              | FFFDDD             | 0               | 255255          |                                    |
| N7       | int, bit(int)  | R/W              | DDDdd              | 0               | 25515           |                                    |
| Nfn      | int, bit(int)  | R/W              | FFFDDDdd           | 10000           | 25599915        |                                    |
| Lfn      | int            | R/W              | FFFDDD             | 10000           | 255999          |                                    |
| F8       | float          | R/W              | DDD                | 0               | 255             |                                    |
| Ffn      | float          | R/W              | FFFDDD             | 10000           | 255999          |                                    |

## 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;
:::

