Importing EDS Files for S7-1200 EtherNet/IP Scanner Communication
1. Understanding EDS Files in EtherNet/IP Networks
An Electronic Data Sheet (EDS) is a text file conforming to the CIP Volume 1, Chapter 4 device-profile specification. It is the EtherNet/IP equivalent of a PROFIBUS GSD or PROFINet GSDML. The file extension is .eds and the content is structured into sections including [Device], [Device Classification], [Identity], [Connection Manager], [Assembly], [Parameter], and [Port].
| EDS Section | Engineering Purpose |
|---|---|
[Device] |
Vendor ID, Product Code, Revision, Catalog Number |
[Identity] |
CIP Identity Object (Class 0x01) attributes: Vendor, Device Type, Product Code, Revision, Serial Number |
[Connection Manager] |
Defines supported Class 0x06 connection instances, transport class (Class 0/1/3), trigger type (Cyclic, Change-of-State, Application) |
[Assembly] |
Input (T→O) and Output (O→T) assembly instance numbers, byte lengths, member path layouts |
[Parameter] |
Configurable parameter instances (Class 0x0F) with min/max/default values and scaling |
[Port] |
Physical port descriptors for CIP port object (Class 0xF4) |
The EDS file is consumed by an EtherNet/IP scanner (formerly "master") configuration tool during engineering to pre-populate the device catalog, generate connection tags, and instantiate I/O assemblies. Without an EDS, the scanner must be configured manually by entering the Class 0x04 Assembly Instance numbers and data lengths byte-by-byte.
2. Scanner vs. Adapter Architecture in CIP
Common Industrial Protocol (CIP) defines two distinct device roles on EtherNet/IP:
- EtherNet/IP Scanner (originator of connections): Opens Class 0x06 connections, initiates Forward_Open requests, and schedules cyclic I/O exchanges. The S7-1200 CPU with the LCCF_EnetScanner function block acts in this role.
- EtherNet/IP Adapter (target of connections): Responds to Forward_Open, exposes Input and Output Assembly instances, and publishes T→O (Target-to-Originator) data at the configured RPI (Requested Packet Interval).
Two messaging categories traverse the scanner-adapter pair:
- I/O Messages (Class 0x04 implicit): Cyclic UDP/IP traffic on port 2222 using Class 0/1/3 transport. Trigger types are Cyclic (most common, default RPI 10–100 ms), Change-of-State, and Application-triggered.
- Explicit Messages (Class 0x03 explicit, also called "connected" or "unconnected"): TCP/IP or UDP/IP on port 44818 for parameter read/write, Get_Attribute_Single, Set_Attribute_Single, and CIP routing diagnostics.
Only the scanner needs to import the EDS file. The adapter already embeds its identity object and assembly layouts in firmware and broadcasts them via the CIP Identity Object at runtime (CIP Class 0x01, Instance 1).
3. S7-1200 Native EtherNet/IP Limitations
Siemens S7-1200 CPUs (order numbers 6ES721x-1xxxx-xxxx, firmware V4.0 through V4.7) ship with the following PROFINET-capable interfaces:
| CPU Model | PROFINET Interface | Native EtherNet/IP Scanner | Native EtherNet/IP Adapter |
|---|---|---|---|
| S7-1211C, S7-1212C, S7-1214C, S7-1215C | 1 × PROFINET (X1) | No | No |
| S7-1217C | 1 × PROFINET (X1) | No | No |
| S7-1500 (all) | 1–2 × PROFINET with IRT | No (S7-1500 also requires LCCF for scanner) | No |
Unlike the Allen-Bradley CompactLogix 5380 (5069-L320ERM, 5069-L340ERM) which embeds a native EtherNet/IP scanner in Logix Designer, or the Modicon M580 (BMEP58xxxx) which provides EDS import via Control Expert's DTM browser, the S7-1200 has no EDS-aware engineering dialog. TIA Portal cannot parse .eds files directly. The engineering gap is bridged by the LCCF_EnetScanner library — a Siemens partner-developed function block suite that converts EDS parameter intent into TCON, TSEND, TRCV, and TUSEND/TURCV call patterns on the S7-1200 PROFINET interface.
4. LCCF_EnetScanner Library Prerequisites
Before installing the LCCF library, verify the following engineering prerequisites:
- CPU firmware: S7-1200 must run firmware V4.2 or higher. Earlier V4.0/V4.1 firmware lacks the TUSEND/TURCV instruction set required for UDP-based CIP implicit messaging.
- TIA Portal version: V15.1 or higher is recommended. TIA Portal V17 (with Update 2 or later) provides the best compatibility with the current library revision (V2.1).
- Library file: Download "LCCF_EnetScanner" from the Siemens application example 109782314. The archive contains the TIA Portal V15.1 project, V16 project, function block source, and the user documentation PDF.
- CPU bit width support: LCCF_EnetScanner operates on 32-bit instance DBs. S7-1200 CPUs (which use the S7-1200 instruction set) are supported, but the LCCF library must be opened and re-saved in TIA Portal before it is dropped into a V17+ project to refresh the version signature.
- PROFINET interface IP scheme: The S7-1200 PROFINET interface (X1) must have a routable IP address in the same subnet as the third-party EtherNet/IP adapter. Default TIA Portal subnet is 192.168.0.0/24. A typical scanner address is 192.168.0.1, adapter 192.168.0.50.
5. Importing EDS Files in TIA Portal for S7-1200 Scanner Operation
TIA Portal does not provide an "Import EDS" command under Devices & Networks. The EDS file from the third-party vendor must be manually translated into LCCF function block parameters. The procedure is:
- Open the EDS file in a text editor (Notepad++ or VS Code with the EDS language extension). Identify the following mandatory parameters that the LCCF scanner expects at the function-block inputs:
| EDS Source Section | LCCF Parameter (FB input) | Example Value |
|---|---|---|
[Connection Manager] Trigger |
eTriggerType |
Cyclic / COS / Application |
[Assembly] Input Instance |
iAssemblyInputInst |
0x64 (100 decimal) |
[Assembly] Input Size |
iAssemblyInputSize |
32 (bytes) |
[Assembly] Output Instance |
iAssemblyOutputInst |
0x65 (101 decimal) |
[Assembly] Output Size |
iAssemblyOutputSize |
32 (bytes) |
[Connection Manager] RPI |
iRPI_ms |
50 |
[Identity] Vendor ID |
iVendorID |
0x00A1 (161 dec, RTA Automation) |
[Identity] Product Code |
iProductCode |
0x0A0F |
[Connection Manager] Transport Class |
iTransportClass |
0 (Class 0) or 1 (Class 1) or 3 (Class 3) |
- In TIA Portal, open the project, navigate to PLC_1 → Program blocks → Add new block → LCCF_EnetScanner [FB]. Drop the function block into the cyclic OB1.
- Open the instance DB and populate the inputs above with the values extracted from the EDS file. Use the LCCF documentation "Section 4 — Parameterization" for bit-level field definitions.
- Compile the program, download to the S7-1200 CPU, and place the CPU in RUN.
.eds. If the vendor can deliver an .edsx (CIP XML on ODVA 2.0 schema), the translation can be partially automated using the Rockwell EDS Hardware Installation Tool in non-installation mode (i.e., extract parameters to a CSV, then paste into TIA Portal data blocks).6. Step-by-Step LCCF_EnetScanner Integration
The following procedure assumes TIA Portal V17, S7-1215C DC/DC/DC (6ES7215-1AG40-0XB0), firmware V4.5, and a third-party EtherNet/IP adapter such as a Softing epGate PN or a Turck TBEN-S block.
Step 6.1 — Load the library
Unzip the application example 109782314 archive. Open LCCF_EnetScanner_V17.ap17. In TIA Portal, Options → Global libraries → Open library and navigate to the unzipped library file. Mark LCCF_EnetScanner as a master copy and drag it into your project library.
Step 6.2 — Instantiate the FB
Inside Program blocks of the S7-1200 CPU, create an instance DB for LCCF_EnetScanner. The instance DB contains the connection parameters, status flags, and process data buffers.
Step 6.3 — Map the connection parameters
Open the instance DB, switch to the Parameters view, and populate the EDS-extracted fields from Section 5 above. Set tConnParam.tRemoteAddr.nRemotePort to 44818 for explicit messaging and 2222 for implicit I/O. The library uses separate connection blocks for each class.
Step 6.4 — Wire cyclic OB
In OB1, call LCCF_EnetScanner with the instance DB. Wire a 1-Hz clock pulse from a system clock byte (e.g., Clock_1Hz) to the bExecute input if change-of-state triggering is configured.
Step 6.5 — Compile and download
Compile the project. The LCCF library internally references the S7-1200 TCON, TDISCON, TUSEND, and TURCV instructions — these are auto-compiled into the program.
Step 6.6 — Commissioning
Download the hardware and software configuration to the CPU. Toggle the input bStart on the LCCF FB. Monitor iStatus — value 16#0000 indicates Idle, 16#8001 indicates Forward_Open pending, 16#0001 indicates established connection, and 16#8xxx indicates a CIP error. Common CIP error codes are listed in Section 10.
7. EDS File Import on Schneider Control Expert (M580/M340)
For engineers on a Schneider Electric platform who must import the same third-party EDS file, Control Expert (formerly Unity Pro) provides a DTM-driven workflow:
- Open the Control Expert project and select the M580 (BMEP58xxxx) or M340 (BMXP3420xx) PLC.
- Right-click on the M580 CPU in the Project Browser and select Device Menu → Additional functions → Import EDS library.
- Navigate to the
.edsfile. Control Expert validates the CIP Identity Object fields and inserts a DTM entry under the EtherNet/IP scanner tree. - The DTM exposes Configuration, Parameters, and I/O Assembly tabs. The Input/Output Assembly instance numbers from the EDS are propagated automatically.
The procedure is documented in Schneider Electric FAQ 000261842 — "How do you import the .eds library file into Control Expert?". The supported Control Expert build is at minimum V14.0 with the EtherNet/IP DTM catalog pack 2023 or later.
8. EDS File Registration in Rockwell Studio 5000
For engineers on Allen-Bradley Logix Designer (Studio 5000 V33+) who must register the same EDS, the workflow uses the EDS Hardware Installation Tool (also called the "Device Description File Installation Tool"):
- Launch EDS Hardware Installation Tool from the Windows Start menu under Rockwell Software → EDS Hardware Installation Tool. The installer is shipped with every Studio 5000 Logix Designer installation.
- Select Add and navigate to the
.edsfile (or a directory containing multiple.edsfiles). - Review the vendor registration summary, then click Next → Finish. The device appears in the Logix Designer Select Module Type dialog under the appropriate vendor tree.
- Add the new module to the EtherNet/IP scanner tree. Logix Designer prompts for the Connection parameters (RPI, Class 0/1/3 transport, input/output assembly instances). These defaults are pre-populated from the EDS.
The official procedure is documented in the Rockwell Automation knowledge base at knowledge-base article ID 23893 — "Registering an EDS file using the Device Description File Installation Tool". Studio 5000 Logix Designer supports .eds versions up to CIP Volume 1, Revision 3.34 without conversion; older revisions are auto-upgraded.
9. EDS vs. GSDML: Protocol File Selection
A frequent confusion arises when Siemens users encounter a third-party device file. The file extension tells you the bus type:
| Extension | Bus Protocol | Engineering Tool | Configuration Behavior |
|---|---|---|---|
.eds |
EtherNet/IP (CIP Volume 1) | Studio 5000, Control Expert, RSLogix 5000 | Scanned by EDS Hardware Installation Tool, placed in module catalog |
.edsx |
EtherNet/IP (CIP XML, ODVA 2.0) | Studio 5000 V33+, Control Expert V14+ | Same as .eds, but with structured XML schema |
.gsd |
PROFIBUS DP | TIA Portal, STEP 7 | Imported via Devices & Networks → Options → Manage GSD files |
.gsdml |
PROFINET (PROFIBUS & PROFINET International) | TIA Portal, STEP 7 | Imported via Devices & Networks → Options → Manage GSDML files |
.ico / .cfm
|
IO-Link (legacy) | Siemens S7-PCT, Balluff, IFM | Imported via IODD interpreter tool |
.gsdml and the device is actually EtherNet/IP (not PROFINET), the file cannot be parsed by an EtherNet/IP scanner. Confirm the file extension matches the actual fieldbus before commissioning. Most CIP Identity Object Vendor ID entries ≥ 1000 indicate ODVA-registered EtherNet/IP devices, which always ship an .eds.10. Verification, Diagnostics, and CIP Status Codes
Once the S7-1200 scanner is operational, verify connectivity with the following checks:
-
LCCF Status Word:
iStatus=16#0001(connection established) andbConnectionActive= TRUE on the LCCF instance DB. Process data words atInputData[0..31]show non-zero counts (or whatever the default adapter publishes). - PROFINET interface LEDs: The X1 port "LINK" LED on the S7-1200 CPU illuminates steady; the "RX/TX" LED flickers at the configured RPI rate (e.g., 50 ms → 20 Hz nominal).
-
Wireshark capture: Filter
udp.port == 2222for implicit I/O,tcp.port == 44818for explicit messages. A healthy cyclic I/O connection shows ENIP encapsulation packets at the RPI cadence withCommand = 0x0070(SendRRData) and a 0x04 CIP Connection path. - CIP Forward_Open response: General Status = 0x00 (Success). If the LCCF reports non-zero General Status, decode using the table below.
| CIP General Status (Hex) | Meaning | Remediation |
|---|---|---|
| 0x00 | Success — connection open | None |
| 0x01 | Connection failure — resource unavailable | Reduce concurrent connections; verify adapter supports the requested transport class |
| 0x02 | Invalid parameter value in Forward_Open | Re-check iRPI_ms against adapter minimum RPI (typical 10 ms) |
| 0x04 | Path segment error — assembly instance not found | Verify iAssemblyInputInst / iAssemblyOutputInst against EDS [Assembly]
|
| 0x05 | Path destination unknown | Verify CIP routing; check VLAN |
| 0x07 | Connection lost — adapter timed out | Increase Connection Timeout Multiplier in LCCF (default 4× RPI) |
| 0x0E | Service not supported — adapter does not implement the requested service | Switch from Class 3 explicit to Class 1 implicit, or vice versa |
| 0x1F | Authentication required (CIP Security) | Configure CIP Security credentials in adapter, or disable security if not used |
11. Troubleshooting Matrix
| Symptom | Likely Root Cause | Action |
|---|---|---|
TIA Portal rejects the .eds file when "opened" |
TIA Portal does not natively parse EDS | Use the manual translation procedure (Section 5) or switch to Studio 5000 / Control Expert for native EDS support |
LCCF iStatus = 0x8004 (path segment error) |
Input assembly instance number in EDS does not match the adapter firmware | Cross-reference vendor datasheet; verify the adapter supports the requested Class 0x04 instance |
LCCF iStatus = 0x8002 (invalid parameter) |
RPI below adapter minimum | Increase iRPI_ms from 10 to 50 ms and re-test |
| Wireshark shows ARP but no UDP/2222 packets | Firewall on Windows engineering station blocks CIP traffic | Disable Windows Defender Firewall on the engineering PC during commissioning |
Adapter appears online but InputData is frozen at zero |
Vendor ships EDS with input assembly size 0 (placeholder) | Configure the input assembly instance via adapter web server or vendor config tool, then re-download EDS |
| Connection drops every 30–60 seconds | PROFINET I/O and EtherNet/IP traffic contend on X1 port | Separate EtherNet/IP adapters on a managed switch VLAN, or upgrade to S7-1217C with second PROFINET port |
| Studio 5000 EDS installation fails with "EDS file is corrupted" | EDS file encoded with CRLF line endings inconsistent with ODVA spec | Convert line endings to LF using Notepad++ Edit → EOL Conversion → Unix |
| Control Expert EDS import hangs at 50% | DTM catalog database locked by another instance | Close all Control Expert windows; delete the lock file in %APPDATA%\Schneider Electric\DTM Catalog\catalog.lock
|
12. Frequently Asked Questions
Can TIA Portal directly import an .eds file for EtherNet/IP communication?
No. TIA Portal has no native EDS import dialog for any device version through V18. For S7-1200 and S7-1500 EtherNet/IP scanner operation, engineers must use the LCCF_EnetScanner library and manually translate the EDS parameters into the LCCF function-block inputs, as documented in Siemens application example 109782314.
What is the minimum S7-1200 firmware version for LCCF_EnetScanner?
Firmware V4.2 or higher is required. The library uses the TUSEND and TURCV instructions, which were added in firmware V4.2 (released 2019). Earlier firmware V4.0/V4.1 lacks the UDP/IP send/receive block set needed for CIP implicit messaging on port 2222.
Where do I find the Input Assembly and Output Assembly instance numbers from the EDS?
Open the .eds file in a text editor and locate the [Assembly] section. The Input instance is the T→O (target-to-originator, scanner-receive) assembly, and the Output instance is the O→T (originator-to-target, scanner-send) assembly. Typical values are 0x64 (100) and 0x65 (101), but the exact numbers are vendor-specific and must match the adapter firmware.
Do I need GSDML instead of EDS for a PROFINET device?
Yes. If the third-party device is PROFINET, the vendor ships a .gsdml file, not .eds. Import the GSDML via TIA Portal Devices & Networks → Options → Manage GSDML files. Confusing the two extensions is the most common error when integrating mixed-protocol networks.
Can I use the S7-1200 as an EtherNet/IP adapter (slave)?
No native adapter functionality is available on the S7-1200 platform. For adapter operation, use the S7-1500 with a third-party CIP adapter library (different from the scanner library), or replace the S7-1200 with a CompactLogix 5380 or Modicon M580, both of which have native scanner and adapter roles on EtherNet/IP.
What is the maximum number of EtherNet/IP connections per S7-1200 with LCCF?
The LCCF library supports up to 16 concurrent Class 1 implicit connections per S7-1200 CPU instance, limited by the number of available TCON connections (8 simultaneous TCP/UDP connections per PROFINET interface on the S7-1200). Plan accordingly when scaling beyond a handful of adapters.
How do I import an EDS file into Schneider Control Expert?
Open the Control Expert project, right-click on the BMENOC0301 module in the DTM browser, and select Device Menu → Additional functions → Import EDS library. The official Schneider Electric FAQ 000261842 documents the procedure step-by-step for M580 and M340 CPUs.