# Ethernet/IP I/O Module

**URL:** <https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362>\
**Category:** 3rd Party Modules\
**Created:** [November 15, 2016, 9:44pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362 "2016-11-15T21:44:36Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 15, 2016, 9:44pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/1 "2016-11-15T21:44:36Z")

</div>

Automation Professionals is pleased to announce the public beta for its latest module in the showcase: [Ethernet/IP Class 1 Communications](https://inductiveautomation.com/moduleshowcase/module/automation-professionals-llc-ethernetip-class-1-communications):[quote]Provides I/O Scanning and I/O Emulation on top of partial emulation of a Logix processor (Controller Tags and User-Defined data types). Use robust, low latency UDP packets to communicate with Logix processors as one or more I/O modules (passive slave mode), and with a variety of Ethernet/IP I/O modules as an I/O scanner (active master mode). With the Controller Tag emulation, you can minimize unnecessary network traffic using Data Table messages initiated as needed by your control system, eliminating the corresponding OPC driver polling.[/quote]Please give it a spin!

Direct link to the [module](https://www.automation-pros.com/ignition/EthernetIP%20Class%201%20Communications-0.9.2.1611222132.modl).  
Direct link the PDF [User Manual](https://www.automation-pros.com/enip1/UserManual.pdf).

---

<div class="post-metadata">

**Author:** ![KathyApplebaum](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kathyapplebaum/32/7261_2.png) [@KathyApplebaum](https://forum.inductiveautomation.com/u/KathyApplebaum)\
**Post date:** [November 16, 2016, 3:05pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/2 "2016-11-16T15:05:46Z")

</div>

![:thumb_left:](https://us1.discourse-cdn.com/inductiveautomation/original/1X/e26afb081ddde6df016df6ee49159cf56aaca688.gif ":thumb\_left:")

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 16, 2016, 3:11pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/3 "2016-11-16T15:11:11Z")

</div>

> [@KathyApplebaum](#):
>
> :thumb\_left:

Much appreciated. I'm especially interested in comments / suggestions for improving the user manual. It's very dense with technical information, but I'm not sure what I could leave out or present more simply.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 16, 2016, 5:04pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/4 "2016-11-16T17:04:59Z")

</div>

Already found a bug in run/program mode indication. Direct link above fixed.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 16, 2016, 5:09pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/5 "2016-11-16T17:09:49Z")

</div>

I’ve been testing with a 1734-AENT Point I/O assembly with four I/O modules: IE2C, OE2V, IB4, and OB4. You can use the configuration file I’ve constructed to run them as a template for your own setup:

```auto
<Controller>
  <DataTypes>
    <DataType Name="AB:1734_DI4:C:0" Handle="1124">
      <Member Name="Pt0FilterOffOn" DataType="INT" Dimension="0" />
      <Member Name="Pt0FilterOnOff" DataType="INT" Dimension="0" />
      <Member Name="Pt1FilterOffOn" DataType="INT" Dimension="0" />
      <Member Name="Pt1FilterOnOff" DataType="INT" Dimension="0" />
      <Member Name="Pt2FilterOffOn" DataType="INT" Dimension="0" />
      <Member Name="Pt2FilterOnOff" DataType="INT" Dimension="0" />
      <Member Name="Pt3FilterOffOn" DataType="INT" Dimension="0" />
      <Member Name="Pt3FilterOnOff" DataType="INT" Dimension="0" />
    </DataType>
    <DataType Name="AB:1734_DI8:I:0" Handle="2c1f">
      <Member Name="Fault" DataType="DINT" Dimension="0" />
      <Member Name="Data" DataType="SINT" Dimension="0" />
    </DataType>
    <DataType Name="AB:1734_DO4_NoDiag:C:0" Handle="2e4f">
      <Member Name="FaultMode" DataType="SINT" Dimension="0" />
      <Member Name="Pt0FaultMode" DataType="BIT" Target="FaultMode" BitNumber="0" />
      <Member Name="Pt1FaultMode" DataType="BIT" Target="FaultMode" BitNumber="1" />
      <Member Name="Pt2FaultMode" DataType="BIT" Target="FaultMode" BitNumber="2" />
      <Member Name="Pt3FaultMode" DataType="BIT" Target="FaultMode" BitNumber="3" />
      <Member Name="FaultValue" DataType="SINT" Dimension="0" />
      <Member Name="Pt0FaultValue" DataType="BIT" Target="FaultValue" BitNumber="0" />
      <Member Name="Pt1FaultValue" DataType="BIT" Target="FaultValue" BitNumber="1" />
      <Member Name="Pt2FaultValue" DataType="BIT" Target="FaultValue" BitNumber="2" />
      <Member Name="Pt3FaultValue" DataType="BIT" Target="FaultValue" BitNumber="3" />
      <Member Name="ProgMode" DataType="SINT" Dimension="0" />
      <Member Name="Pt0ProgMode" DataType="BIT" Target="ProgMode" BitNumber="0" />
      <Member Name="Pt1ProgMode" DataType="BIT" Target="ProgMode" BitNumber="1" />
      <Member Name="Pt2ProgMode" DataType="BIT" Target="ProgMode" BitNumber="2" />
      <Member Name="Pt3ProgMode" DataType="BIT" Target="ProgMode" BitNumber="3" />
      <Member Name="ProgValue" DataType="SINT" Dimension="0" />
      <Member Name="Pt0ProgValue" DataType="BIT" Target="ProgValue" BitNumber="0" />
      <Member Name="Pt1ProgValue" DataType="BIT" Target="ProgValue" BitNumber="1" />
      <Member Name="Pt2ProgValue" DataType="BIT" Target="ProgValue" BitNumber="2" />
      <Member Name="Pt3ProgValue" DataType="BIT" Target="ProgValue" BitNumber="3" />
      <Member Name="Pad" DataType="DINT" Dimension="0" />
    </DataType>
    <DataType Name="AB:1734_DO8:O:0" Handle="a272">
      <Member Name="Data" DataType="SINT" Dimension="0" />
    </DataType>
    <DataType Name="AB:1734_DOB8:I:0" Handle="f497">
      <Member Name="Fault" DataType="DINT" Dimension="0" />
      <Member Name="Status" DataType="SINT" Dimension="0" />
    </DataType>
    <DataType Name="AB:1734_IE2:C:0" Handle="1cca">
      <Member Name="Ch0LowEngineering" DataType="INT" Dimension="0" />
      <Member Name="Ch0HighEngineering" DataType="INT" Dimension="0" />
      <Member Name="Ch0DigitalFilter" DataType="INT" Dimension="0" />
      <Member Name="Ch0LAlarmLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch0HAlarmLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch0LLAlarmLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch0HHAlarmLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch0RangeType" DataType="SINT" Dimension="0" />
      <Member Name="Ch0LimitAlarmLatch" DataType="SINT" Dimension="0" />
      <Member Name="Ch0AlarmDisable" DataType="SINT" Dimension="0" />
      <Member Name="Ch1LowEngineering" DataType="INT" Dimension="0" />
      <Member Name="Ch1HighEngineering" DataType="INT" Dimension="0" />
      <Member Name="Ch1DigitalFilter" DataType="INT" Dimension="0" />
      <Member Name="Ch1LAlarmLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch1HAlarmLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch1LLAlarmLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch1HHAlarmLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch1RangeType" DataType="SINT" Dimension="0" />
      <Member Name="Ch1LimitAlarmLatch" DataType="SINT" Dimension="0" />
      <Member Name="Ch1AlarmDisable" DataType="SINT" Dimension="0" />
      <Member Name="NotchFilter" DataType="SINT" Dimension="0" />
      <Member Name="RealTimeSample" DataType="INT" Dimension="0" />
    </DataType>
    <DataType Name="AB:1734_IE2:I:0" Handle="b81e">
      <Member Name="Fault" DataType="DINT" Dimension="0" />
      <Member Name="Ch0Data" DataType="INT" Dimension="0" />
      <Member Name="Ch1Data" DataType="INT" Dimension="0" />
      <Member Name="Ch0Status" DataType="SINT" Dimension="0" />
      <Member Name="Ch0Fault" DataType="BIT" Target="Ch0Status" BitNumber="0" />
      <Member Name="Ch0Calibration" DataType="BIT" Target="Ch0Status" BitNumber="1" />
      <Member Name="Ch0LAlarm" DataType="BIT" Target="Ch0Status" BitNumber="2" />
      <Member Name="Ch0HAlarm" DataType="BIT" Target="Ch0Status" BitNumber="3" />
      <Member Name="Ch0LLAlarm" DataType="BIT" Target="Ch0Status" BitNumber="4" />
      <Member Name="Ch0HHAlarm" DataType="BIT" Target="Ch0Status" BitNumber="5" />
      <Member Name="Ch0Underrange" DataType="BIT" Target="Ch0Status" BitNumber="6" />
      <Member Name="Ch0Overrange" DataType="BIT" Target="Ch0Status" BitNumber="7" />
      <Member Name="Ch1Status" DataType="SINT" Dimension="0" />
      <Member Name="Ch1Fault" DataType="BIT" Target="Ch1Status" BitNumber="0" />
      <Member Name="Ch1Calibration" DataType="BIT" Target="Ch1Status" BitNumber="1" />
      <Member Name="Ch1LAlarm" DataType="BIT" Target="Ch1Status" BitNumber="2" />
      <Member Name="Ch1HAlarm" DataType="BIT" Target="Ch1Status" BitNumber="3" />
      <Member Name="Ch1LLAlarm" DataType="BIT" Target="Ch1Status" BitNumber="4" />
      <Member Name="Ch1HHAlarm" DataType="BIT" Target="Ch1Status" BitNumber="5" />
      <Member Name="Ch1Underrange" DataType="BIT" Target="Ch1Status" BitNumber="6" />
      <Member Name="Ch1Overrange" DataType="BIT" Target="Ch1Status" BitNumber="7" />
    </DataType>
    <DataType Name="AB:1734_OE2:C:0" Handle="283b">
      <Member Name="Ch0FaultValue" DataType="INT" Dimension="0" />
      <Member Name="Ch0ProgValue" DataType="INT" Dimension="0" />
      <Member Name="Ch0LowEngineering" DataType="INT" Dimension="0" />
      <Member Name="Ch0HighEngineering" DataType="INT" Dimension="0" />
      <Member Name="Ch0LowLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch0HighLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch0RangeType" DataType="SINT" Dimension="0" />
      <Member Name="Ch0FaultMode" DataType="SINT" Dimension="0" />
      <Member Name="Ch0ProgMode" DataType="SINT" Dimension="0" />
      <Member Name="Ch0LimitAlarmLatch" DataType="SINT" Dimension="0" />
      <Member Name="Ch0AlarmDisable" DataType="SINT" Dimension="0" />
      <Member Name="Ch1FaultValue" DataType="INT" Dimension="0" />
      <Member Name="Ch1ProgValue" DataType="INT" Dimension="0" />
      <Member Name="Ch1LowEngineering" DataType="INT" Dimension="0" />
      <Member Name="Ch1HighEngineering" DataType="INT" Dimension="0" />
      <Member Name="Ch1LowLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch1HighLimit" DataType="INT" Dimension="0" />
      <Member Name="Ch1RangeType" DataType="SINT" Dimension="0" />
      <Member Name="Ch1FaultMode" DataType="SINT" Dimension="0" />
      <Member Name="Ch1ProgMode" DataType="SINT" Dimension="0" />
      <Member Name="Ch1LimitAlarmLatch" DataType="SINT" Dimension="0" />
      <Member Name="Ch1AlarmDisable" DataType="SINT" Dimension="0" />
    </DataType>
    <DataType Name="AB:1734_OE2:I:0" Handle="8d56">
      <Member Name="Fault" DataType="DINT" Dimension="0" />
      <Member Name="Ch0Status" DataType="SINT" Dimension="0" />
      <Member Name="Ch0Fault" DataType="BIT" Target="Ch0Status" BitNumber="0" />
      <Member Name="Ch0Calibration" DataType="BIT" Target="Ch0Status" BitNumber="1" />
      <Member Name="Ch0LAlarm" DataType="BIT" Target="Ch0Status" BitNumber="2" />
      <Member Name="Ch0HAlarm" DataType="BIT" Target="Ch0Status" BitNumber="3" />
      <Member Name="Ch1Status" DataType="SINT" Dimension="0" />
      <Member Name="Ch1Fault" DataType="BIT" Target="Ch1Status" BitNumber="0" />
      <Member Name="Ch1Calibration" DataType="BIT" Target="Ch1Status" BitNumber="1" />
      <Member Name="Ch1LAlarm" DataType="BIT" Target="Ch1Status" BitNumber="2" />
      <Member Name="Ch1HAlarm" DataType="BIT" Target="Ch1Status" BitNumber="3" />
    </DataType>
    <DataType Name="AB:1734_OE2:O:0" Handle="e19e">
      <Member Name="Ch0Data" DataType="INT" Dimension="0" />
      <Member Name="Ch1Data" DataType="INT" Dimension="0" />
    </DataType>
  </DataTypes>
  <Tags>
    <Tag Name="PointAI:C" DataType="AB:1734_IE2:C:0" Dimensions="0">
      <Data>
        00 00 10 27 00 00 00 80 ff 7f 00 80 ff 7f 03 00
        00 00 00 00 00 00 00 00 00 80 ff 7f 00 80 ff 7f
        03 00 00 06 00 00 00 00
      </Data>
    </Tag>
    <Tag Name="PointAI:I" DataType="AB:1734_IE2:I:0" Dimensions="0">
      <Data>
        00 00 00 00 a6 13 00 00 00 41 00 00
      </Data>
    </Tag>
    <Tag Name="PointAO:C" DataType="AB:1734_OE2:C:0" Dimensions="0">
      <Data>
        00 00 00 00 00 00 10 27 00 80 ff 7f 01 01 01 00
        00 00 00 00 00 00 00 00 10 27 00 80 ff 7f 01 01
        01 00 00 00
      </Data>
    </Tag>
    <Tag Name="PointAO:I" DataType="AB:1734_OE2:I:0" Dimensions="0">
      <Data>
        00 00 00 00 00 00 00 00
      </Data>
    </Tag>
    <Tag Name="PointAO:O" DataType="AB:1734_OE2:O:0" Dimensions="0">
      <Data>
        00 00 ee 02
      </Data>
    </Tag>
    <Tag Name="PointDI:C" DataType="AB:1734_DI4:C:0" Dimensions="0">
      <Data>
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      </Data>
    </Tag>
    <Tag Name="PointDI:I" DataType="AB:1734_DI8:I:0" Dimensions="0">
      <Data>
        00 00 00 00 03 00 00 00
      </Data>
    </Tag>
    <Tag Name="PointDO:C" DataType="AB:1734_DO4_NoDiag:C:0" Dimensions="0">
      <Data>
        00 00 00 00 00 00 00 00
      </Data>
    </Tag>
    <Tag Name="PointDO:I" DataType="AB:1734_DOB8:I:0" Dimensions="0">
      <Data>
        00 00 00 00 00 00 00 00
      </Data>
    </Tag>
    <Tag Name="PointDO:O" DataType="AB:1734_DO8:O:0" Dimensions="0">
      <Data>
        0b 00 00 00
      </Data>
    </Tag>
  </Tags>
  <Assemblies>
  </Assemblies>
  <Modules>
    <Module Name="PointAI" CatalogNumber="1734-IE2C/C" Inhibited="false"
    Vendor="1" ProductType="115" ProductCode="24" Major="3" Minor="1"
    InRPI="250000" UnicastIn="true" InRTMF="0" OutRPI="250000" UnicastOut="true" OutRTMF="3">
      <EKey State="ExactMatch" />
      <Route>port 2 10.16.7.11 slot 1</Route>
      <Application>2004 247b 2cbe 2c65 800201000000</Application>
      <InputTag Size="10">PointAI:I</InputTag>
      <ConfigTag Size="38">PointAI:C</ConfigTag>
    </Module>
    <Module Name="PointAO" CatalogNumber="1734-OE2V/C" Inhibited="false"
    Vendor="1" ProductType="115" ProductCode="56" Major="3" Minor="1"
    InRPI="250000" UnicastIn="false" InRTMF="0" OutRPI="250000" UnicastOut="true" OutRTMF="4">
      <EKey State="ExactMatch" />
      <Route>port 2 10.16.7.11 slot 2</Route>
      <Application>2004 247b 2c66 2c65 800201000000</Application>
      <InputTag Size="6">PointAO:I</InputTag>
      <OutputTag>PointAO:O</OutputTag>
      <ConfigTag Size="36">PointAO:C</ConfigTag>
    </Module>
    <Module Name="PointDI" CatalogNumber="1734-IB4" Inhibited="false"
    Vendor="1" ProductType="7" ProductCode="130" Major="3" Minor="1"
    InRPI="100000" UnicastIn="false" InRTMF="0" OutRPI="100000" UnicastOut="true" OutRTMF="3">
      <EKey State="ExactMatch" />
      <Route>port 2 10.16.7.11 slot 3</Route>
      <Application>2004 2467 2cbe 2c03 800201000000</Application>
      <InputTag Size="5">PointDI:I</InputTag>
      <ConfigTag Size="20">PointDI:C</ConfigTag>
    </Module>
    <Module Name="PointDO" CatalogNumber="1734-OB4/C" Inhibited="false"
    Vendor="1" ProductType="7" ProductCode="231" Major="3" Minor="1"
    InRPI="100000" UnicastIn="false" InRTMF="0" OutRPI="100000" UnicastOut="true" OutRTMF="4">
      <EKey State="ExactMatch" />
      <Route>port 2 10.16.7.11 slot 4</Route>
      <Application>2004 247b 2c21 2c2b 800201000000</Application>
      <InputTag Size="5">PointDO:I</InputTag>
      <OutputTag Size="1">PointDO:O</OutputTag>
      <ConfigTag>PointDO:C</ConfigTag>
    </Module>
  </Modules>
</Controller>

```

---

<div class="post-metadata">

**Author:** ![KathyApplebaum](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kathyapplebaum/32/7261_2.png) [@KathyApplebaum](https://forum.inductiveautomation.com/u/KathyApplebaum)\
**Post date:** [November 16, 2016, 5:51pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/6 "2016-11-16T17:51:05Z")

</div>

[quote]I’m especially interested in comments / suggestions for improving the user manual. It’s very dense with technical information, but I’m not sure what I could leave out or present more simply.[/quote]Heh, this is exactly why I’m glad I don’t write documentation full time. It’s an art.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 18, 2016, 6:49pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/7 "2016-11-18T18:49:37Z")

</div>

So, the user manual says that there will be future support for producer and consumer tags. I’ve started poking at that, picking up where I left off a few months ago. There were bugs then, and I had decided to focus on the ETHERNET-MODULE support and I/O scanning support. It seems that my efforts to make those work dealt with the bugs in producer tag support, as my L72 testbed for producer tags worked as soon as I turned it on. That is, any “Logix” tag defined in my module that meets the general data type requirements and size limit (500 bytes) can be consumed by a real Logix processor. (-:

Next up: consuming a tag from a Logix processor.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 22, 2016, 10:17pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/8 "2016-11-22T22:17:59Z")

</div>

New version 0.9.2 is available, with Producer and Consumer tags working, and documentation updated to match. One bug that affected multiple I/O module startup has been fixed. The links above point to the updated version.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 27, 2020, 9:56pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/9 "2020-07-27T21:56:00Z")

</div>

This module has been updated with my new Code Signing Certificate…

[https://www.automation-pros.com/ignition/EthernetIP%20Class%201%20Communications-1.4.1.2007162048.modl](https://www.automation-pros.com/ignition/EthernetIP%20Class%201%20Communications-1.4.1.2007162048.modl)

[https://www.automation-pros.com/ignition/EthernetIP%20Class%201%20Communications-1.4.1.2007162037-v8.modl](https://www.automation-pros.com/ignition/EthernetIP%20Class%201%20Communications-1.4.1.2007162037-v8.modl)

---

<div class="post-metadata">

**Author:** ![david.l](https://avatars.discourse-cdn.com/v4/letter/d/3d9bf3/32.png) [@david.l](https://forum.inductiveautomation.com/u/david.l)\
**Post date:** [October 1, 2022, 6:42pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/10 "2022-10-01T18:42:43Z")

</div>

FYI, the certificate might have expired this year in July 2022. (at least for the Ignition 8.1, v1.4.3 on the website)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/5/9522deddf0861dc79652216278ce9eac289cbf40.png)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [October 1, 2022, 8:15pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/11 "2022-10-01T20:15:26Z")

</div>

Yeah, I have to resign everything. Will be switching to an independent CA, since IA doesn't actually require conventional chain-of-trust.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 3, 2023, 10:53pm UTC](https://forum.inductiveautomation.com/t/ethernet-ip-i-o-module/12362/12 "2023-01-03T22:53:50Z")

</div>

Note that a major upgrade of this module is now in public beta:

> [@Automation Professionals' EtherNet/IP Communication Suite V2](https://forum.inductiveautomation.com/t/automation-professionals-ethernet-ip-communication-suite-v2/68190):
>
> Automation Professionals is pleased to announce its latest EtherNet/IP Communications Suite driver module, a major upgrade to its EtherNet/IP Class1 Communications module, as a Public Beta. As of April 15, 2023, this is now a Production Release. The primary new feature is its new Generic EtherNet/IP Client Driver, a drop-in replacement for IA's Logix V21+ driver and its Omron NJ/NX driver. It does work with older Logix processors, and also works with Rockwell's MicroLogix 8xx family (ethernet…
