Engineering Interface (ENI)
Funktion des ENI
Das ENI (TwinCAT Engineering Interface) dient dazu, die Bausteine (Objekte) eines TwinCAT PLC Projekts in einem zentralen eigenständigen Datenablagesystem zu verwalten, das anderen Benutzern und Applikationen ebenfalls zugänglich ist.
Damit werden folgende Anforderungen bezüglich der Datenverwaltung während der Erstellung eines Automatisierungsprojektes erfüllt:
Zugriff verschiedener Applikationen auf dieselben Projektdaten:
Neben dem Programmiersystem können auch andere Tools, die über die ENI-Schnittstelle verfügen, auf eine gemeinsame Datenbank zugreifen. Beispielsweise externe Visualisierungen, ECAD-Systeme etc., die die im TwinCAT PLC Control erzeugten Daten benötigen oder selbst Daten erzeugen, die andererseits im Programmiersystem benötigt werden.
Mehrbenutzerbetrieb:
Die aktuelle Version der Bausteine eines Projekts kann einer ganzen Gruppe von Anwendern zugänglich gemacht werden. Die von einem Benutzer ausgecheckten Bausteine sind für die anderen Benutzer als 'in Bearbeitung' markiert und nicht veränderbar. Somit können mehrere Anwender parallel am gleichen Projekt arbeiten, ohne gegenseitig Objektversionen zu überschreiben.
Versionsverwaltung für Projekte und zugehörige Ressourcen (gemeinsam genutzte Objekte):
Wurde ein Objekt aus der Datenbank ausgecheckt, modifiziert und wieder eingecheckt, wird in der Datenbank eine neue Version des Objekts erzeugt, die alten Versionen bleiben jedoch erhalten und können bei Bedarf ebenfalls wieder abgerufen werden. Für jedes Objekt und für ein gesamtes Projekt wird die Änderungshistorie aufgezeichnet. Versionen können auf Unterschiede geprüft werden.
Struktur und Kommunikation
Das ENI bedient ein Datenablagesystem für Projektdatenobjekte. Bei diesem kann es sich um ein bereits bestehendes Datenbanksystem oder lokales Dateisystem handeln. Damit das Ablagesystem auch auf einem anderen Rechner liegen kann (sonst wäre kein Mehrbenutzerbetrieb möglich), ist die ENI-Schnittstelle in einen Server- und einen Client-Teil aufgetrennt.

ENI Server
Der Engineering Interface Server läuft als separater Dienst. Als Protokoll zur Kommunikation wird HTTP mit XML als Nutzdaten verwendet. Die Verwaltung und Kontrolle des Servers erfolgt über die Programme 'ENI Admin' und 'ENI Control'. (ENI Server, ENI Admin und ENI Control sind Bestandteile der ENI Server Suite.)
ENI Client
Die Clients des ENI Servers sind beispielsweise ein TwinCAT PLC Control Programmiersystem, aber auch andere Applikationen, die auf die Datenablage zugreifen müssen. Alle Clients sind gleichberechtigt.
Verbindung zwischen ENI Server und Datenbanksystem (DB)
Das ENI definiert kein eigenes Ablageformat. Die Anbindung an ein bestehendes Datenhaltungssystem erfolgt über entsprechende Treiber (Database Interface). Verfügbar sind Treiber für die Datenbanksysteme 'Visual SourceSafe 5.0', 'Visual SourceSafe 6.0', 'Tortoise SVN' und ein lokales Dateisystem. Für die Anbindung an andere bestehende Ablagesysteme kann dem Anwender ein ENI Driver Development Kit zur Verfügung gestellt werden.
Welches Datenablagesystem ein ENI Server aktuell bedient, wird in ENI Control festgelegt. Die Clients des Servers können dann auf genau dieses System zugreifen.
HTTP als Kommunikationsprotokoll, XML für die Übertragung
Beim Datenaustausch mit dem ENI-Server kommen das HTTP-Protokoll und das allgemein akzeptierte Standard-Format XML zum Einsatz. Das HTTP-Protokoll ermöglicht ein Arbeiten durch Firewalls hindurch und das Durchführen bestimmter Operationen mittels Standard-Tools.
Es gibt eine Client-C++ DLL (Client Interface), mit deren Hilfe das Protokoll in C++-Klassen gekapselt werden kann, so daß nicht zwingendermaßen nur HTTP- und XML-Software für den Zugriff auf den ENI Server einsetzbar ist.