EtherNet/IP Meets AI: How to Connect Your PLC to ASI Biont
EtherNet/IP is one of the most widely used industrial Ethernet protocols in the world. Maintained by ODVA, it is supported by major PLC vendors such as Rockwell Automation (ControlLogix, CompactLogix), Omron, and Schneider Electric. For decades, interacting with these controllers meant designing HMIs, SCADA screens, or custom .NET applications. But what if you could simply ask an AI agent in chat to read a tag, change a setpoint, or warn you about anomalies?
ASI Biont makes that possible. It is an AI agent that connects to any industrial device through natural language and automatically writes the integration code needed. In this practical guide, we explore a specific integration between an EtherNet/IP PLC and ASI Biont: from initial connection to dialog-based monitoring and control. You'll see code examples, the exact chat workflow, and real-world automation scenarios.
Note: As of August 2026, ASI Biont's interface is entirely chat-based. There are no management panels with "Add Device" buttons. You describe the device's IP address, port, and tags, and the AI handles the rest.
What Is EtherNet/IP and Why Connect It to an AI Agent?
EtherNet/IP (Ethernet Industrial Protocol) uses the Common Industrial Protocol (CIP) over standard Ethernet. CIP supports both implicit (real-time I/O) and explicit (messaging) communication. This makes it suitable for time-critical control and for data acquisition. The open-source pycomm3 library implements a Python client for explicit messaging, allowing engineers to read and write controller tags from a regular computer. This is the library ASI Biont uses for EtherNet/IP devices.
Why connect a PLC to an AI agent? In a typical plant, operators interact with controllers through HMIs or SCADA. They have to navigate multiple screens and trend charts. With an AI agent, they can simply type: "What is the current production count?" or "Set the conveyor speed to 25." The agent reads or writes the corresponding tags and replies in natural language. This dramatically reduces the time required to get information and act on it.
Beyond simple read/write, an AI agent can detect anomalies by comparing values over time, send alerts to chat, and even combine data from many devices. For example, it can correlate a temperature rise on one machine with an increase in motor current on another — something a single HMI wouldn't flag.
How ASI Biont Connects to EtherNet/IP
ASI Biont supports many industrial protocols: COM port (RS-232/RS-485 via Hardware Bridge), MQTT, Modbus/TCP, SSH, HTTP API/WebSocket, OPC-UA, Siemens S7, BACnet, EtherNet/IP (via pycomm3), CAN bus, gRPC, CoAP, and a universal execute_python tool. For EtherNet/IP, the connection is made directly over the network to the controller's IP address. No additional hardware or gateway is required — unlike serial connections, where you would need the separately downloaded Hardware Bridge (bridge.py) launched with --token=XXX --ports=COM3 --baud 115200 --rate=10.
In the chat, the user provides the connection parameters:
Connect to ControlLogix at 192.168.1.10, slot 0. Read tags ProductionCount and LineSpeed.
The AI generates a script using pycomm3.LogixDriver, executes it in the sandbox (via execute_python), and returns the values. If a tag name is incorrect, the AI parses the error, asks for the correct name, and tries again — all through conversation.
Step-by-Step: From Chat to Control
Here is the typical integration workflow:
- Prepare the PLC information. Find the IP address, chassis slot number, and the exact tag names (e.g.,
ProductionCount,LineSpeed). In Studio 5000, you can see tags in the Controller Tags window. - Open the ASI Biont chat. Start a conversation with the AI agent.
- Describe the device. Example: "My ControlLogix is at 192.168.1.10 with tags ProductionCount and LineSpeed. Use slot 0."
- Let the AI verify the connection. ASI Biont writes a short diagnostic script that reads one tag and prints the value. If there is a connection error, the AI will ask for confirmation of the IP, slot, or tag data type.
- Define the task. Now ask for an action: "Monitor LineSpeed every 10 seconds and alert if it drops below 15" or "Write 25 to ConveyorSpeed when ProductionCount exceeds 1000."
- Run and review. The AI executes the script, shows the output, and optionally checks a threshold and sends a notification to your preferred chat (Telegram, for example).
The entire process is conversational. You don't need to write a single line of code — the AI does the coding for you.
Practical Code Example: Reading Tags
Let's look at what the AI might generate on your behalf. For a ControlLogix at 192.168.1.10, a simple read of two tags is:
from pycomm3 import LogixDriver
with LogixDriver('192.168.1.10', slot=0) as plc:
count = plc.read('ProductionCount')
speed = plc.read('LineSpeed')
if count and speed:
print(f'ProductionCount = {count.value}')
print(f'LineSpeed = {speed.value}')
else:
print('Failed to read one or more tags')
When you send your request, ASI Biont produces exactly this script and runs it via execute_python in the sandbox. After execution, you see the printed values in the chat.
For continuous monitoring, don't use while True inside execute_python, because the sandbox enforces a 30-second timeout. Instead, ask ASI Biont to run the read periodically. The AI will schedule repeated executions and compare values over time.
# One-shot read, suitable for a periodic task
from pycomm3 import LogixDriver
with LogixDriver('192.168.1.10', slot=0) as plc:
speed = plc.read('LineSpeed')
print(f'LineSpeed = {speed.value if speed else "N/A"}')
If the speed is below a threshold, the AI can add an alert. To send a Telegram message, it uses a REST call to https://api.telegram.org/bot<token>/sendMessage. No extra modules are required — just requests.
Practical Code Example: Writing Tags (Control Commands)
Control commands are just as easy. Suppose you want to automatically set ConveyorSpeed to 25 when the production count exceeds 1000. The AI generates:
from pycomm3 import LogixDriver
with LogixDriver('192.168.1.10', slot=0) as plc:
count = plc.read('ProductionCount')
if count and count.value > 1000:
plc.write('ConveyorSpeed', 25)
print('Set ConveyorSpeed to 25')
else:
print(f'No action taken. ProductionCount = {count.value if count else "N/A"}')
In the chat, you can simply say: "If ProductionCount is greater than 1000, set ConveyorSpeed to 25." The AI handles tag types and returns a confirmation. Always confirm that the PLC does not use this tag for a critical safety function; AI-generated control should be monitored and validated per your plant's safety guidelines.
Troubleshooting Common Issues
- Connection timeout: Check that the PLC's Ethernet port is active and that the IP is reachable from the server where ASI Biont runs. Use standard
ping. - Wrong slot: If the controller is not in slot 0 of the chassis, pycomm3 will fail with "no controller found." The AI will ask for the correct slot.
- Tag not found: EtherNet/IP tag names are case-sensitive. The AI will list the available tags if you have the proper permissions. You can ask: "List all tags" — the AI will attempt a browse operation via pycomm3.
- Data type mismatch: Writing a REAL value into an INT tag will either error or truncate. The AI checks the tag data type from the PLC response and converts appropriately.
- Firewall: Ensure TCP port 44818 (EtherNet/IP) is open between ASI Biont's runtime and the PLC.
Universal Adaptation: Any Device via execute_python
One of ASI Biont's biggest advantages is that it is not locked to a single protocol. The execute_python tool lets the AI write a Python script using whatever library is appropriate for your device. Need Modbus TCP? pymodbus. OPC-UA? opcua-asyncio. MQTT? paho-mqtt. Serial communication? pyserial via the Hardware Bridge. SSH? paramiko. Since the AI writes the integration code on the fly, you don't have to wait for a plugin release or vendor update.
You simply describe the device and its connection parameters in the chat. For example:
My power meter uses Modbus TCP at 192.168.1.50, unit ID 1. Read voltage and current.
The AI will create a pymodbus script, test it, and return the values. This is especially useful for mixed-protocol plants where different machines use different protocols.
Protocol Comparison Table
The following table shows common industrial protocols that ASI Biont can use in generated scripts:
| Protocol | Library | Typical Application |
|---|---|---|
| EtherNet/IP | pycomm3 | Rockwell PLCs, industrial controls |
| Modbus TCP | pymodbus | Smart meters, VFDs, remote I/O |
| OPC UA | opcua-asyncio | SCADA, MES, cross-vendor data exchange |
| MQTT | paho-mqtt | IoT devices, cloud telemetry |
| HTTP API / WebSocket | aiohttp | REST APIs, smart cameras, gateways |
| SSH | paramiko | Remote command execution on industrial PCs |
| COM / RS-232 / RS-485 | pyserial (via Hardware Bridge) | Legacy instruments, scales, scanners |
| Siemens S7 | snap7 | S7-300/400/1200/1500 PLCs |
| BACnet | bac0 | Building automation, HVAC |
| CAN bus | python-can | Automotive, robotics, embedded controllers |
| gRPC | grpcio | High-throughput microservices |
| CoAP | aiocoap | Constrained IoT nodes |
The table is not exhaustive, but it shows the breadth of connectivity. If your device uses a proprietary protocol, you can still integrate it: describe the frame format and the AI will parse it using the execute_python tool. This is how ASI Biont connects to "anything".
Real-World Use Cases
Shift Production Report
At the end of a shift, an operator asks the AI: "Summarize today's production, downtime, and number of changeovers for Line 1." ASI Biont connects to the ControlLogix, reads tags such as TotalPieces, DowntimeSec, and ChangeoverCount, then posts a formatted report to the team chat. The operator never needs to open SCADA.
Predictive Maintenance Alert
A packaging line has a CompactLogix that reads motor current and vibration from an EtherNet/IP vibration sensor. ASI Biont monitors these tags. When current rises by 15% and vibration crosses a preset threshold, the AI sends a Telegram message to the maintenance engineer with the historical values. This early warning can prevent unplanned downtime.
Batch Changeover
In a food and beverage plant, switching a line to a new product requires setting dozens of tags — temperature, pressure, speeds, valve states. Instead of hunting through documentation, the operator types: "Switch Line 3 to mango flavor, batch size 10,000 liters." The AI maps the product recipe to tag values, writes them in sequence, reads back the key parameters, and confirms the changeover in chat.
These scenarios are simple combinations of reads, writes, and conditional logic — no machine learning required. The AI agent's intelligence is in understanding the request and correctly generating the integration script.
Why the AI-Native Approach Wins
Traditional integration projects involve a software engineer, vendor SDKs, IDE licenses, and deployment cycles. An engineer writes code, compiles it, deploys it to a gateway, and maintains it when the PLC program changes. This can take days or weeks for each new integration.
With ASI Biont, the "engineer" is an AI and the "IDE" is the chat window. Integration happens in minutes. The user describes a behavior, the AI writes a script, tests it, and iterates. If a tag list changes, you simply tell the AI the new tag name. This approach also lowers the skill barrier — a controls engineer who knows the process but not Python can still automate factory-floor integrations.
What Information to Prepare
To make your first connection smooth, having the following details ready helps:
- PLC model (ControlLogix, CompactLogix, etc.)
- IP address of the Ethernet module
- Chassis slot number (usually 0 for a local backplane)
- Exact tag names and data types
- Whether the labels are in the controller's tag database or in a separate structure
If you don't have all details, the AI can help you discover them by attempting connection and reading the PLC info via pycomm3 (which returns the controller's vendor and serial number).
References and Sources
- ODVA — EtherNet/IP and CIP specifications: https://www.odva.org
- pycomm3 documentation and source: https://github.com/ottowayi/pycomm3
- Rockwell Automation — EtherNet/IP configuration guides for ControlLogix
- pymodbus by @accenture — documentation for Modbus integration
- OPC UA asyncio library: https://github.com/FreeOpcUa/opcua-asyncio
Always verify integration parameters against the official documentation of your PLC model.
Conclusion
An EtherNet/IP PLC can be connected to the ASI Biont AI agent in minutes — through nothing more than a chat dialog. You get real-time monitoring, conversational control, and AI-generated integration scripts that work with any protocol. Whether you are working with ControlLogix, a Modbus power meter, or a legacy RS-232 scale, ASI Biont adapts to the device.
Try the integration today at asibiont.com — describe your PLC's IP and tags in the chat, and watch the AI agent connect and start handling your plant floor. No dashboards, no compiled code — just conversation.
Comments