Engineering Interface (ENI)

ENI function

The ENI (TwinCAT Engineering Interface) is used for managing the blocks (objects) of a TwinCAT PLC project in a central independent data storage system, which is also accessible for other users and applications.

The following requirements with regard to data management during the preparation of an automation project are thus met:

Access for various applications to the same project data:

In addition to the programming system, other tools with ENI interface can access a shared database. Examples are external visualisations or ECAD systems etc. requiring the data generated in TwinCAT PLC Control, or which generate data themselves that are required in the programming system.

Multi-user operation:

The current versions of the blocks of a project can be made accessible to a whole group of users. For other users, the blocks checked out by a user are marked as 'in progress' and cannot be modified. Several users can thus work in parallel on the same project without overwriting each other's object versions.

Version management for projects and associated resources (shared objects):

Once an object was checked out of the database, modified and checked in again, a new version of the object is created in the database, although the old versions are preserved and can be retrieved if necessary. A change history is logged for each object and for each complete project. Versions can be checked for differences.


Structure and communication

The ENI serves a data storage system for project data objects. This may be an existing database system or a local file system. The ENI interface is split into a server part and a client part, so that the storage system may reside on another computer (otherwise multi-user operation would not be possible).

Engineering Interface (ENI) 1:

ENI Server

The Engineering Interface Server runs as a separate service. HTTP with XML as user data is used as communication protocol. The programs 'ENI Admin' and 'ENI Control' are used for managing and controlling the server. (ENI Server, ENI Admin and ENI Control are part of the ENI Server Suite.)

ENI Client

Clients of the ENI Server may be TwinCAT PLC Control programming systems or other applications requiring access to the database. All clients have the same rights.

Connection between ENI Server and database system (DB)

The ENI does not define its own storage format. Appropriate drivers (database interface) are used for the connection to an existing data management system. Drivers are available for the database systems 'Visual SourceSafe 5.0', 'Visual SourceSafe 6.0', 'Tortoise SVN', and for a local file system. For connecting to other existing storage systems, an ENI Driver Development Kit can be made available to the user.

The data storage system currently served by an ENI Server is specified in ENI Control. The clients of the server can then access this system, and only this system.

HTTP as communications protocol, XML for transfer

The HTTP protocol and the generally accepted standard XML format are used for the data exchange with the ENI server. The HTTP protocol enables operation through firewalls and execution of certain operations via standard tools.

A client C++ DLL (client interface) can be used for encapsulating the protocol in C++ classes, so that access to the ENI Server is not necessarily limited to HTTP and XML software.