DE10112843A1 - Automation data distribution system uses coded datagram for communication between data processing station and automation component - Google Patents

Automation data distribution system uses coded datagram for communication between data processing station and automation component

Info

Publication number
DE10112843A1
DE10112843A1 DE2001112843 DE10112843A DE10112843A1 DE 10112843 A1 DE10112843 A1 DE 10112843A1 DE 2001112843 DE2001112843 DE 2001112843 DE 10112843 A DE10112843 A DE 10112843A DE 10112843 A1 DE10112843 A1 DE 10112843A1
Authority
DE
Germany
Prior art keywords
datagram
data
attribute
add system
add
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE2001112843
Other languages
German (de)
Inventor
Ralph Langner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LANGNER COMM AG
Original Assignee
LANGNER COMM AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LANGNER COMM AG filed Critical LANGNER COMM AG
Publication of DE10112843A1 publication Critical patent/DE10112843A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"

Abstract

The automation data distribution system has a data processing station which is provided with a network address and an automation component (AK) with a network address, which is functionally coupled to the data processing station, with communication between them via a datagram which is fully coded in clear text. Also included are Independent claims for the following; (a) a datagram for use in a system for automation data distribution; (b) an automation data distribution method

Description

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION 1. Umfeld der Erfindung1. Environment of the invention

Die vorliegende Erfindung bewegt sich allgemein im Umfeld der Fabrikautomation. Genauer gesagt beschreibt sie ein Verfahren zur Datenverteilung zwischen Anwendungen der Fabrikautomation und Softwareanwendungen aus dem IT-Bereich.The present invention is generally in the field of Factory automation. More precisely, it describes a method for data distribution between applications of factory automation and software applications from the IT area.

2. Stand der Technik im Umfeld der Erfindung2. State of the art in the field of the invention

Automatisierungstechnik und betriebswirtschaftliche Datenverarbeitung haben sich über Jahre hinweg parallel und relativ unabhängig voneinander entwickelt. Seit geraumer Zeit wird jedoch die Wichtigkeit eines transparenten und zeitnahen Datenflusses zwischen allen Aspekten und Teilbereichen eines Unternehmens erkannt. Fabrikautomation und kaufmännische Softwareanwendungen werden dabei als integrale Bestandteile eines übergeordneten Datenfluss-Prozesses betrachtet. Der Begriff "Manufacturing Execution System" ("MES") - im Deutschen auch der Begriff "Vertikale Integration" - wird benutzt, um diese Integration anzusprechen.Have automation technology and business data processing has developed in parallel and relatively independently of one another over the years. since For some time, however, the importance of being transparent and timely Data flow between all aspects and subareas of a company recognized. Factory automation and commercial software applications are included regarded as an integral part of a higher-level data flow process. The Term "Manufacturing Execution System" ("MES") - in German also the Vertical integration term - used to refer to this integration.

MES ermöglicht es kaufmännischen Anwendungen, direkt auf Produktionsdaten zuzugreifen. Dies ist sinnvoll zur Überwachung der Prozesssteuerung: zum Beispiel für Visualisierung (HMI), Alarmierung, Fernwartung und Fernkonfiguration, und für Leitsysteme ("SCADA"). Desweiteren eignet sich MES für die Sammlung und Auswertung von Prozessdaten für Planungszwecke, zum Beispiel im Rahmen von Produktionsplanungs- und -steuerungssystemen (PPS/ERP) Manufacturing-Mangement-Information-Systeme (MMI) und zur Erfassung von Produktionsdaten. Schliesslich gibt es eine wachsende Zahl von Softwareanwendungen, die direkt mit Automatisierungskomponenten kommunizieren, um Daten von Sensoren und anderen externen Datenquellen zu erfassen. Beispiele umfassen die Gebäudeautomation, Umwelttechnik, und Laboranwendungen, in denen keine Echtzeiteigenschaften gefordert sind. MES enables commercial applications directly on Access production data. This is useful for monitoring the Process control: for example for visualization (HMI), alarming, remote maintenance and remote configuration, and for control systems ("SCADA"). It is also suitable MES for the collection and evaluation of process data for planning purposes, for Example in the context of production planning and control systems (PPS / ERP) Manufacturing Management Information Systems (MMI) and for capturing Production data. Finally, there is a growing number of Software applications that work directly with automation components communicate to data from sensors and other external data sources too to capture. Examples include building automation, environmental technology, and Laboratory applications in which no real-time properties are required.  

Zusammengefasst: MES zielt auf einen direkteren, zeitnahen Datenfluss zwischen Automatisierungskomponenten und IT-Softwareanwendungen. In vielen Unternehmen des produzierenden Gewerbes können hierdurch Qualitätsverbesserungen erzielt und Pufferzeiten verkürzt werden. Im gegenwärtigen Wettbewerbsumfeld, das durch Globalisierung, Buit-to-Order (Anfertigung nach Kundenspezifikation) und Just-in-Time-Produktion (Minimierung von Lagerzeiten) gekennzeichnet ist, lassen sich hierdurch wichtige Produktivitätsgewinne erzielen.In summary: MES aims for a more direct, timely data flow between automation components and IT software applications. In many Manufacturing companies can do this Quality improvements are achieved and buffer times are reduced. In the present Competitive environment caused by globalization, buit-to-order Customer specification) and just-in-time production (minimization of storage times) important productivity gains can be achieved.

Ein problemloser direkter Datenaustausch zwischen der Steuerungsebene (zum Beispiel automatisierungstechnischen Anwendungen) und der Planungsebene (zum Beispiel betriebswirtschaftliche Anwendungen) war bisher praktisch nahezu unmöglich, da beide Bereiche isoliert voneinander und für auf unterschiedliche Zwecke entwickelt wurden. Sie verwendeten für gewöhnlich zueinander inkompatible Verfahren und Paradigmen zur Datenübertragung. So hatten zum Beispiel Übertragungsprotokolle und -medien der Steuerungsebene kein Pendant auf der Planungsebene. Des weiteren wurden auf der Steuerungsebene zahlreiche untereinander inkompatible Übertragungsprotokolle und -medien verwendet, was einem durchgängigen Datenfluss zwangsläufig entgegensteht. Die traditionelle Industrielle Kommunikation wird am besten durch eine Vielzahl hersteller- und gerätespezifischer Übertragungs- und Anwendungsprotokolle charakterisiert (zum Beispiel 3946R, RK512, Modbus, IEC870, Mewtocol, AK, MPI, LSV2, Interbus, Devicenet, MSV2), von denen die meisten in der Office-Welt praktisch unbekannt sind.A trouble-free direct data exchange between the control level (e.g. automation technology applications) and the planning level (for example, business applications) has been practically almost so far impossible because both areas are isolated from each other and for different Purposes were developed. They usually used incompatible with each other Methods and paradigms for data transmission. For example Transmission protocols and media of the control level are not a counterpart on the Planning level. Furthermore, numerous were at the control level mutually incompatible transmission protocols and media uses what a consistent data flow inevitably stands in the way. The traditional one Industrial communication is best served by a variety of manufacturers and device-specific transmission and application protocols characterized (for Example 3946R, RK512, Modbus, IEC870, Mewtocol, AK, MPI, LSV2, Interbus, Devicenet, MSV2), most of which are virtually unknown in the office world are.

Der Einsatz von Industrieprotokollen für einen durchgängigen Datenfluss zur Planungsebene scheitert oft bereits daran, dass eine Überwachung der unteren Protokollschichten erforderlich ist, die jedoch von modernen Rechnerarchitekturen nicht unterstützt wird. So erfordert beispielsweise das M-Bus-Protokoll (ein Protokoll aus dem Bereich der Fernwirktechnik) nach dem Empfang eines Telegramms eine Pause für die Dauer von 11 Bit, bevor ein Antworttelegramm gesendet werden kann. Das ist mit aktiven (gepufferten) seriellen Schnittstellenkarten, wie sie in heutigen Computern vielfach eingesetzt werden, nicht zu machen.The use of industrial protocols for a continuous data flow to Planning level often fails because of a monitoring of the lower Protocol layers are required, however, by modern computer architectures is not supported. For example, the M-Bus protocol (a protocol from the field of telecontrol technology) after receiving a telegram 11-bit pause before a response telegram can be sent. This is with active (buffered) serial interface cards, as they are in today Computers are widely used not to make.

Die Ablaufverfahren (bzw. Paradigmen) von Steuerungsebene und Planungsebene unterscheiden sich grundlegend. Auf der Steuerungsebene werden sequenzielle Abläufe mit Abfragearchitekturen (Master/Slave) verwendet, um ein deterministisches Zeitverhalten und damit Echtzeitfähigkeit zu erreichen. Im Gegensatz dazu benutzen Softwareanwendungen aus dem IT-Bereich oft ereignisgesteuerte Architekturen. Die zyklischen, sequenziellen Programmstrkturen, die auf der Steuerungsebene verwendet werden, können nicht einfach auf die im IT- Bereich üblichen Multitasking-Rechner übertragen werden, da sie einen Grossteil der Rechenleistung beanspruchen würden. Dementsprechend ist es weder sinnvoll noch einfach für einen Windows-PC, mehrere hundert Mal pro Sekunde Sensordaten abzufragen, was erforderlich wäre, um einen Sensor zu überwachen. PCs und PC- Software eignen sich wesentlich besser zur ereignisgesteuerten Verarbeitung von Änderungsdaten anstatt zur kontinuierlichen zyklischen Überwachung von Datenquellen (welches eher die Domäne von speicherprogrammierbaren Steuerungen ist).The operational procedures (or paradigms) of control level and Planning levels differ fundamentally. At the control level  sequential processes with query architectures (master / slave) used to create a to achieve deterministic time behavior and thus real-time capability. in the In contrast, software applications from the IT area often use event-driven architectures. The cyclical, sequential program structures, that are used at the control level cannot simply be Common multitasking computers are transferred because they are a large part of the Would require computing power. Accordingly, it is neither useful nor simple for a Windows PC, sensor data several hundred times per second to query what would be required to monitor a sensor. PCs and PC Software are much better suited for event-driven processing of Change data instead of for the continuous cyclical monitoring of Data sources (which is more the domain of programmable logic controllers is).

Die meisten Industrieprotokolle wurden für einen eng umgrenzten Verwendungszweck entwickelt, d. h. für die Kommunikation mit einem spezifischen Typ von Peripheriegerät, nicht jedoch für den standardisierten Datenaustausch zwischen Systemen unterschiedlicher Architektur. Auch vermischen Industrieprotokolle zuweilen mehrere Schichten des ISO/OSI-Schichtenmodells. Dies stellt ein grosses Hindernis für die Nutzung solcher Protokolle in Office- Anwendungen und modernen Netzwerkumgebungen dar. Ein Protokoll, welches sich über mehrere Schichten des ISO/OSI-Modells erstreckt, ist unflexibel und oft nur schwierig mit anderen Anwendungen und/oder Übertragungsmedien zu verknüpfen. Die Verknüpfung mit Office-Anwendungen wäre zum Beispiel wesentlich einfacher, wenn es "nur" um die Umsetzung von unterschiedlichen Datenformaten auf den höheren Protokollschichten (ISO/OSI Schicht 6 und 7) ginge und nicht gleichzeitig auch um diffiziles Zeitverhalten auf den unteren Protokollschichten (ISO/OSI- Schichten 4 und darunter). Dort jedoch, wo sich Industrieprotokolle über mehrere Protokollschichten erstrecken, resultiert oft eine "Alles-oder-nichts"-Situation, in der die Office-Anwendung Daten mit dem industriellen Peripheriegerät nur über ein komplexes Gateway austauschen kann.Most industrial protocols have been narrowly defined Designed for use, d. H. for communication with a specific Type of peripheral device, but not for standardized data exchange between systems of different architecture. Mix also Industry protocols sometimes have multiple layers of the ISO / OSI layer model. This represents a major obstacle to the use of such protocols in office Applications and modern network environments. A protocol that is Spread over several layers of the ISO / OSI model is inflexible and often only difficult to link with other applications and / or transmission media. For example, linking to Office applications would be much easier, if it is "only" about the implementation of different data formats on the higher protocol layers (ISO / OSI layers 6 and 7) and not at the same time also about difficult time behavior on the lower protocol layers (ISO / OSI Layers 4 and below). However, wherever industrial protocols span multiple Extending protocol layers often results in an "all or nothing" situation in which the office application data with the industrial peripheral only over one can exchange complex gateway.

Ein Ansatz zur Lösung dieses Problems besteht in der Verwendung von definierten Softwareschnittstellen (APIs, = Application Program Interface, Softwareschnittstelle zwischen Anwendungsprogramm und systemnahen Softwaremodulen). Hierein fallen zahkeiche Softwareprodukte zum Zugriff auf Peripheriegeräte über nicht standardisierte APIs, DDE-Server und OPC-Server. Dem Problem inkompatibler Kommunikationsprotokolle wird hierbei durch Abstraktion von den konkreten Datenübertragungsverfahren auf eine höhere Ebene - eine definierte Softwareschnittstelle zum Anwendungsprogramm - begegnet. Deshalb braucht eine Softwareanwendung nur Funktionen aus dem API aufrufen, um mit unterschiedlichen Peripheriegeräten Daten auszutauschen, ohne sich um die Details der Datenübertragung zu kümmern. Ein API-basierender Ansatz - insbesondere, wenn er netzwerkfähig ist - ist an eine bestimmte Komponenten- bzw. Objekttechnologie wie OLE oder ActiveX gebunden. Er ist deshalb auch an bestimmte Betriebssysteme gebunden, die die betreffende Komponententechnologie unterstützen. Eine weitere Einschränkung dieses Ansatzes ist die implizierte Client/Server-Architektur von OPC und DDE, die davon ausgeht, dass ein zentraler Softwareprozess (der Server) mit unterschiedlichen Peripheriegeräten per Feldbus oder seriellen Punkt-zu-Punkt-Verbindungen verbunden ist.One approach to solving this problem is to use defined software interfaces (APIs, = Application Program Interface,  Software interface between application program and system-related Software modules). This includes numerous software products for access Peripherals via non-standard APIs, DDE servers and OPC servers. The The problem of incompatible communication protocols is caused by abstraction from the concrete data transfer procedures to a higher level - one defined software interface to the application program - encountered. Therefore a software application only needs to call functions from the API to use different peripheral devices to exchange data without worrying about the details to take care of the data transfer. An API-based approach - in particular, if it is network-compatible - is connected to a specific component or Object technology like OLE or ActiveX bound. It is therefore also on certain operating systems tied to the component technology in question support. Another limitation of this approach is that implied Client / server architecture from OPC and DDE, which assumes that a central Software process (the server) with different peripheral devices via fieldbus or serial point-to-point connections.

Ein für OPC spezifisches Problem ist seine Komplexität, sowohl im Hinblick auf die Einarbeitung als auch auf die Implementierung. OPC und OLE sind nur mit erheblichem Ressourceneinsatz im Feldgerät zu implementieren. Die Implementierung eines OPC Servers in einem embedded System mit marktgängigen Mikrocontrollern ist schwierig, wenn nicht unmöglich.A problem specific to OPC is its complexity, both in terms of on the familiarization as well as on the implementation. OPC and OLE are only with to implement considerable use of resources in the field device. The Implementation of an OPC server in an embedded system with marketable Microcontrollers are difficult, if not impossible.

Ein anderer Ansatz basiert auf dem Grundgedanken, mit Ethernet und TCP/IP ein durchgängiges Transportmedium für die Datenübertragung zu verwenden. Hier finden sich die unterschiedlichen Bestrebungen, die Ethernet als "Feldbus-Ersatz" propagieren und TCP als das künftige universelle Transportprotokoll für den Zugriff auf Automatisierungskomponenten. Ein grundlegendes Problem dieses Ansatzes ist, dass TCP lediglich ein Transportprotokoll (jedoch kein Anwendungsprotokoll) ist und aufgrund seines hohen Protokoll-Overheads nicht einmal besonders gut für automatisierungstechnische Zwecke geeignet ist (geringer Datendurchsatz und langsamer Verbindungsaufbau/-abbau). Ausserdem ist TCP nicht paketorientiert, sondern datenstromorientiert. Bei datenstromorientierten (auch: zeichenorientierten) Protokollen kann eine einzelne Datenstruktur in mehrere Pakete unterschiedlicher Länge aufgeteilt werden, wobei dann der Empfänger der Daten das Problem hat, Anfang und Ende der Datenstruktur zu erkennen. Hierzu ist mindestens ein weiteres höherrangiges, paketorientiertes Protokoll erforderlich, für das sich jedoch weder in der Automatisierungstechnik noch in der Office-Welt bisher ein Standard durchgesetzt hat (Ansätze beinhalten zum Beispiel RFC 1006 und Modbus/TCP). In der Praxis sind derartige nicht standardisierte Protokolle oberhalb von TCP nur durch OPC-Server oder vergleichbare API-Lösungen zu verwenden. Dies ist ein grundlegender Unterschied zum Internet: Internet-Anwendungen erfordern nicht die Verwendung eines bestimmten APIs oder einer bestimmten Komponententechnologie, um Email zu versenden oder Webseiten abzurufen. Der Unterschied ist darin begründet, dass Internet-Anwendungen wohldefinierte, einfache und leicht zu implementierende Anwendungsprotokolle verwenden, welche in der Fabrikautomation gerade fehlen. Ausserdem erfordert die Umstellung einer vorhandenen Kommunikationsinfrastruktur mit gängigen Feldbussen und Punkt-zu- Punkt-Verbindungen auf Ethernet erhebliche Investitionen bei Hardware, Software, Training, Inbetriebnahme und Wartung.Another approach is based on the basic idea, with Ethernet and TCP / IP to use a continuous transport medium for data transmission. Here there are different efforts to use Ethernet as a "fieldbus replacement" propagate and access TCP as the future universal transport protocol on automation components. A fundamental problem with this approach is that TCP is only a transport protocol (but not an application protocol) and not even particularly good for because of its high protocol overhead automation purposes (low data throughput and slow connection establishment / disconnection). In addition, TCP is not packet-oriented, but data stream oriented. For data stream-oriented (also: character-oriented) Protocols can separate a single data structure into multiple packets  Length, where the recipient of the data has the problem Recognize the beginning and end of the data structure. There is at least one more for this higher-level, package-oriented protocol required, but for which neither automation technology is still a standard in the office world has prevailed (approaches include, for example, RFC 1006 and Modbus / TCP). In In practice, such non-standardized protocols are only available above TCP Use OPC server or comparable API solutions. This is a fundamental difference to the Internet: Internet applications do not require that Use a specific API or a specific one Component technology for sending emails or accessing websites. The The difference is that Internet applications are well-defined, simple and use easy-to-implement application protocols that can be found in the Factory automation is currently missing. The changeover also requires one existing communication infrastructure with common field buses and point-to-point Point connections on Ethernet significant investments in hardware, software, Training, commissioning and maintenance.

Ein weiteres Verfahren besteht in der Integration eines Web-Servers ins Feldgerät (oft auf Basis eines in das Feldgerät integrierten Industrie-PCs), wodurch das Feldgerät "Internet-fähig" wird. Dieses Verfahren ist allerdings nicht nur sehr kostspielig, sondern hat auch den Nachteil, dass das hierbei verwendete HTML- Dokumentenformat schlecht für die automatisierte Weiterverarbeitung durch einen Softwareprozess geeignet ist.Another method is to integrate a web server into the Field device (often based on an industrial PC integrated into the field device), which means the field device becomes "Internet-capable". However, this process is not only very expensive, but also has the disadvantage that the HTML used here Document format bad for automated post-processing Software process is suitable.

Das älteste Verfahren zum softwaretechnischen Zugriff auf Automatisierungskomponenten besteht in Gerätetreibern, die ein bestimmtes Industrieprotokoll implementieren. Der Gerätetreiber kann vom Anwendungsprogramm über eine proprietäre Softwareschnittstelle (API) benutzt werden. Die Anwendung selbst braucht wenig oder gar nichts über das verwendete Protokoll zu wissen. Diese Vorgehensweise wurde vorrangig unter DOS verwendet, findet sich aber auch auf Windows- und Unix-Systemen. Die Implementierung des Gerätetreibers erfolgt meist in Form einer statischen oder dynamischen Softwarebibliothek (LIB bzw. DLL) oder in Form von Softwarekomponenten (ActiveX, VCL). Es gibt jedoch keinen API-Standard für den Zugriff auf Automatisierungskomponenten. Ein Anwendungsprogrammierer, der unterschiedliche Industrieprotokolle verwendet (um unterschiedliche Geräte anzusprechen), muss meist mehrere unterschiedliche APIs verwenden. Des weiteren können Gerätetreiber aus praktischer Sicht normalerweise nur von Softwareentwicklern innerhalb selbst programmierter Anwendungen genutzt werden. Die Verwendung mit vorhandenen Standard-Softwareanwendungen (wie zum Beispiel Web-Browsern) oder durch Nicht-Programmierer ist praktisch nicht möglich. Darüber hinaus ist dieser Ansatz nur bedingt netzwerkfähig. Ein API oder Treiber impliziert eine eins-zu-eins-Verbindung zwischen einer Anwendung und einem Treiber bzw. einer DLL. In herkömmlichen Softwarearchitekturen funktionieren solche Verbindungen nur lokal, nicht aber über das Netzwerk. Das bedeutet, dass der Treiber oder die DLL auf demselben Rechner laufen muss wie die Anwendung und die Automatisierungskomponente ebenfalls direkt an diesem Rechner angeschlossen sein muss. Obwohl einige neuere APIs und Komponententechnologien (hauptsächlich DCOM und CORBA) in der Lage sind, "entfernte" oder "verteilte" Funktionen und Prozesse über das Netzwerk aufzurufen, geschieht dies um den Preis erhöhter Komplexität und proprietärer Technologie (im Fall von DCOM). Die grosse Mehrzahl verfügbarer APIs bzw. Treiberschnittstellen (implementiert als DLL oder als DDE-Server) im Bereich der Fabrikautomation ist nicht netzwerfähig; weshalb die Softwareanwendung auf derselben Maschine laufen muss, an den die Automatisierungskomponente direkt angeschlossen ist. Dies nachteilig, da Anwendungen (speziell auf den höheren Ebenen der Automatisierungspyramide) eher zur Zentralisierung tendieren, wogegen Automatisierungskomponenten und Steuerungen eher zur Dezentralisierung tendieren.The oldest method of accessing software Automation components consist of device drivers that have a specific Implement industrial protocol. The device driver can be from Application program used via a proprietary software interface (API) become. The application itself needs little or nothing about what is used Knowing protocol. This was primarily used under DOS, can also be found on Windows and Unix systems. The implementation of the Device drivers usually take the form of a static or dynamic Software library (LIB or DLL) or in the form of software components (ActiveX, VCL). However, there is no API standard for accessing  Automation components. An application programmer who is different Industrial protocols used (to address different devices) must mostly use several different APIs. Device drivers can also be used From a practical point of view, usually only by software developers within themselves programmed applications. Use with existing ones Standard software applications (such as web browsers) or through Non-programmers are practically impossible. Beyond that, this approach is only limited network capability. An API or driver implies a one-to-one connection between an application and a driver or DLL. In conventional Software architectures only work such connections locally, but not via the network. That means that the driver or DLL is on the same machine must run like the application and the automation component as well must be connected directly to this computer. Although some newer APIs and Component technologies (mainly DCOM and CORBA) are able to to call "remote" or "distributed" functions and processes over the network, this happens at the price of increased complexity and proprietary technology (in Case of DCOM). The vast majority of available APIs or driver interfaces (implemented as a DLL or as a DDE server) in the field of factory automation not networkable; which is why the software applications run on the same machine to which the automation component is directly connected. This disadvantageous because applications (especially at the higher levels of Automation pyramid) tend to centralize, whereas Automation components and controls rather for decentralization to tend.

DDE (Dynamic Data Exchange) ist ein Verfahren zur Interprozesskommunikation, mit dem Windows-Programme untereinander Nachrichten austauschen können. Windows-Systemaufrufe können dazu benutzt werden, um Nachrichten an eine andere Anwendung zu senden oder Nachrichten von einer anderen Anwendung zu empfangen. Viele Softwarehäuser bieten DDE-Server für Industrieprotokolle an. Oftmals ermöglichen es solche DDE-Server Windows- Anwendungen, Daten mit Automatisierungskomponenten auszutauschen, ohne Details über die verwendeten Übertragungsprotokolle und -medien zu kennen. Das Problem inkompatibler Protokolle und Datenformate wird durch ein übergeordnetes API umgangen, welches die Details der Datenübertragung vor der Anwendung verbirgt. DDE-Server verwenden ein einheitliches API (das Windows DDE API), welches auch von zahlreichen vorhandenen Windows-Anwendungen (z. B. Microsoft Excel) unterstützt wird. Deshalb können DDE-Server auch von Nicht- Programmierern benutzt werden. Andererseits erfordert DDE das Betriebssystem Microsoft Windows und ist nicht netzwerkfähig. Ausserdem hat DDE eine sehr geringe Performance und einen hohen Overhead.DDE (Dynamic Data Exchange) is a process for Interprocess communication, with which Windows programs interact with each other Can exchange messages. Windows system calls can be used for this to send messages to another application or to send messages from to receive another application. Many software houses offer DDE servers for industrial protocols. Such DDE servers often allow Windows Applications to exchange data with automation components without Knowing details about the transmission protocols and media used. The Problem of incompatible protocols and data formats is caused by a parent  API bypassed the details of data transfer before application hides. DDE servers use a uniform API (the Windows DDE API), which is also supported by numerous existing Windows applications (e.g. Microsoft Excel) is supported. Therefore DDE servers can also be used by non- Programmers. On the other hand, DDE requires the operating system Microsoft Windows and is not network-compatible. In addition, DDE has one low performance and high overhead.

OPC ist eine Weiterentwicklung der DDE-Server-Technologie für das industrielle Umfeld auf der Basis von OLE (Object Linking and Embedding). OLE ermöglicht es Windows-Anwendungen, untereinander Daten ("Objekte") auszutauschen, selbst per Netzwerk. Die Architektur von OPC ist nahezu identisch mit DDE, mit dem Unterschied, dass ein OPC-Server auch auf einem anderen, per TCP/IP-Netzwerk erreichbarem Rechner installiert werden kann. OPC Client und Server laufen jedoch stets auf PCs mit dem Betriebssystem Microsoft Windows. OPC ist eine komplexe Programmierschnittstelle mit hohem Einarbeitungsaufwand.OPC is a further development of the DDE server technology for that industrial environment based on OLE (Object Linking and Embedding). OLE enables Windows applications to exchange data ("objects") with each other exchange, even via network. The architecture of OPC is almost identical with DDE, with the difference that one OPC server is also on another, per TCP / IP network accessible computer can be installed. OPC client and However, servers always run on PCs with the Microsoft Windows operating system. OPC is a complex programming interface with a lot of training.

Seit kurzem nehmen die Bestrebungen zu, Ethernet als "besseren Feldbus" oder "Feldbus-Ersatz" in der Industrieautomation einzusetzen. Dies aufgrund der Tatsache, dass Ethernet das dominierende Übertragungsmedium im Bereich der Bürokommunikation ist, und Bauteile zu günstigen Preisen von einer Vielzahl von Anbietern bezogen werden können. Ausserdem unterstützt Ethernet höhere Übertragungsgeschwindigkeiten als konventionelle Feldbusse und ermöglicht einen einfachen Internet-Zugang.Efforts have recently been increasing to use Ethernet as a "better fieldbus" or "fieldbus replacement" in industrial automation. This is due to the The fact that Ethernet is the dominant transmission medium in the field of Office communication is, and components at affordable prices from a variety of Providers can be obtained. In addition, Ethernet supports higher Transmission speeds than conventional fieldbuses and enables one easy internet access.

Die Ludwigsburger Firma Jetter AG hat daraufhin ein neues Steuerungskonzept entwickelt, welches Ethernet und TCP/IP für den Datenaustausch im gesamten Unternehmen verwendet, bis hin zum Feldgerät in der Produktionsstätte. Dieses Konzept erfordert allerdings den Austausch vorhandener Maschinen und Automatisierungskomponenten, die nicht über eine Ethernet-Schnittstelle verfügen. Das resultierende Netzwerk wird durch Switches und Hochgeschwindigkeits-Ethernet nahezu echtzeitfähig, obwohl Ethernet streng genommen aufgrund seiner nicht­ deterministischen Protokollarchitektur nicht für Echtzeitanwendungen geeignet ist. Während Industrieautomation normalerweise in Form einer hierarchischen Architektur dargestellt wird ("Automatisierungspyramide"), ist das Jetter-Modell flach und ohne unterschiedliche hierarchische Ebenen. Es gibt keine isolierten Automatisierungszellen mehr, da die Steuerung zentral vorgenommen wird und nicht dezentral von SPSen. Die zur Steuerung verwendete Software läuft nicht auf einer lokalen SPS, sondern auf einem Server im Netzwerk. Einschränkungen dieses Lösungsansatzes sind: Vorhandene Steuerungs- und Kommunikationshardware muss ersetzt werden durch die Hardware eines einzigen Herstellers; ein Standard- Anwendungsprotokoll (ISO/OSI-Schicht 7) wird nicht spezifiziert, so dass die Anwendungsschicht proprietär ist; somit gibt es auch nur proprietäre, nicht standardisierte Übergänge in die kaufmännische Datenverarbeitung.The Ludwigsburg company Jetter AG then has a new one Control concept developed which Ethernet and TCP / IP for data exchange used throughout the company, right down to the field device in the production facility. However, this concept requires the exchange of existing machines and Automation components that do not have an Ethernet interface. The resulting network is powered by switches and high-speed Ethernet almost real-time capable, although strictly speaking not because of its Ethernet deterministic protocol architecture is not suitable for real-time applications. During industrial automation usually in the form of a hierarchical Architecture is represented ("automation pyramid") is the Jetter model  flat and without different hierarchical levels. There are no isolated ones Automation cells more, because the control is carried out centrally and not decentralized from PLCs. The software used for control does not run on one local PLC, but on a server in the network. Limitations of this The solution is: Existing control and communication hardware must be replaced by the hardware of a single manufacturer; a standard Application protocol (ISO / OSI layer 7) is not specified, so the Application layer is proprietary; thus there are only proprietary ones, not standardized transitions into commercial data processing.

ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Die vorliegende Erfindung vermeidet die dargestellten Nachteile des gegenwärtigen Stands der Technik mithilfe eines Systems und Verfahrens zum automatisierten Datenaustausch zwischen Steuerungsebene und Planungsebene. Dabei behält die vorliegende Erfindung das hierarchische Modell der Fabrikautomation ("Automatisierungspyramide"), welches sich in vielen tausend Installationen bewährt hat, bei. Ausserdem passen Implementierungen der vorliegenden Erfindung zu vorhandenen standardisierten Softwareschnittstellen. Implementierungen der vorliegenden Erfindung können auf zahlreichen Betriebssystemen und in Feldgeräten vorgenommen werden, ohne dass dafür die Ressourcen eines Windows-PCs erforderlich sind. Des weiteren kann die vorliegende Erfindung unter Benutzung unterschiedlicher Übertragungsmedien und -protokolle implementiert werden.The present invention avoids the disadvantages of current state of the art using a system and method for automated data exchange between control level and planning level. there The present invention retains the hierarchical model of factory automation ("Automation pyramid"), which has proven itself in many thousands of installations has at. Implementations of the present invention also fit existing standardized software interfaces. Implementations of the The present invention can be used on numerous operating systems and in field devices be made without the resources of a Windows PC required are. Furthermore, the present invention can be used different transmission media and protocols can be implemented.

In bestimmter Hinsicht kann die vorliegende Erfindung ein System zur Verteilung von Automatisierungsdaten (Automation Data Distribution, abgekürzt ADD) verkörpern, bestehend aus einer datenverarbeitenden Station (DS) mit einer Netzwerkadresse, und einer Automatisierungskomponente (AK) mit einer Netzwerkadresse, funktional an die DS gekoppelt; wobei DS und AK so konfiguriert sind, dass sie miteinander durch Verwendung eine oder mehrere Transaktionen kommunizieren, wobei besagte Transaktion aus einem Datagramm besteht, welches vollständig und in Klarschrift codiert ist. In dieser Implementierung können die Datagramme desweiteren ein Quell-Attribut enthalten, welches die Netzwerkadresse des Absenders des Datagramms angibt, ein Ziel-Attribut, welches die Netzwerkadresse des intendierten Empfängers dieses Datagramms enthält, und/oder ein Wert-Attribut mit einem korrespondierenden Einheits-Attribut, welches die Masseinheit des Wert-Attributs angibt. Darüber hinaus können Datagramme ein oder mehrere Sicherheitsattribute enthalten (einschliesslich, jedoch nicht beschränkt auf ein Attribut für eine digitale Signatur und/oder ein Attribut für ein Gültigkeitsende oder "Verfallsdatum"), ein Zeitstempel-Attribut, und/oder ein oder mehrere Fehlersicherungs-Attribute (einschliesslich, jedoch nicht beschränkt auf ein Prüfsummen-Attribut, welches Redundanzinformationen des Datagramm-Inhalts enthält, und ein Sequenznummer-Attribut). Das ADD-System kann darüber hinaus Profile enthalten, welche den Aufbau von einem oder mehreren Datagrammen spezifizieren. Solche Profile können die Konfiguration von mindestens einem besagter Datagramme für die Benutzung mit einer bestimmten AK spezifizieren. Das oder die Datagramme können so gestaltet sein, dass ein Zustand der AK repräsentiert wird. Das oder die Datagramme können so gestaltet sein, dass ein Kommando von einer DS an eine AK repräsentiert wird. Das oder die Datagramme können dafür benutzt werden, den Empfang eines vorherigen Datagramms zu quittieren. Die Transaktionen können aktiv, passiv, oder eine Kombination von aktiv und passiv sein. Optional kann das ADD-System eine Koordinierungsstelle beinhalten, welche funktional mit den DS und AK gekoppelt ist und welche den DS und AK Netzwerkadressen zuweisen kann. In einigen Implementierungen können die Datagramme das FactoryXML-Format verwenden. In anderen Implementierungen können die Klarschriftbeschreibungen das UTV-Format verwenden.In certain respects, the present invention can be a system for Distribution of automation data (Automation Data Distribution, abbreviated Embody ADD), consisting of a data processing station (DS) with a Network address, and an automation component (AK) with a Network address, functionally linked to the DS; where DS and AK are configured are that they are related to each other by using one or more transactions communicate, said transaction consisting of a datagram which is completely and coded in plain text. In this implementation, the Datagrams also contain a source attribute, which is the network address of the sender of the datagram specifies a target attribute which the Contains network address of the intended recipient of this datagram, and / or  a value attribute with a corresponding unit attribute, which the Specifies the unit of measurement of the value attribute. In addition, datagrams can be a or contain multiple security attributes (including but not limited to an attribute for a digital signature and / or an attribute for an expiry date or "expiry date"), a timestamp attribute, and / or one or more Failure assurance attributes (including but not limited to Checksum attribute, which contains redundancy information of the datagram content contains, and a sequence number attribute). The ADD system can also Profiles contain the structure of one or more datagrams specify. Such profiles can configure at least one specify said datagrams for use with a particular AK. The or the datagrams can be designed so that a state represents the AK becomes. The datagram (s) can be designed so that a command from a DS is represented to an AK. That or the datagrams can do it be used to acknowledge receipt of a previous datagram. The Transactions can be active, passive, or a combination of active and passive. Optionally, the ADD system can include a coordination office which is functionally coupled with the DS and AK and which the DS and AK Can assign network addresses. In some implementations, the Datagrams use the FactoryXML format. In other implementations the plain text descriptions can use the UTV format.

In anderer Hinsicht kann die vorliegende Erfindung ein System zur Verteilung von Automatisierungsdaten darstellen, welche eine Planungsebene mit einem Planungs-Netzwerk umfasst, an das eine oder mehrere DS angeschlossen sind; eine Steuerungsebene mit einem Steuerungs-Netzwerk, an das ein oder mehrere AK angeschlossen sind; und ein oder mehrere Gateways, die funktional mit der oder den AK und mit dem Planungsnetzwerk gekoppelt sind, wobei das oder die Gateways dazu dienen, der oder den DS die Kommunikation mit der oder den AK zu erleichtern, indem sie ein oder mehrere Datagramme erzeugen und an besagte AK schicken; und in dem die AK so arbeiten kann bzw. können, dass sie mit der oder den DS dadurch kommunizieren, dass sie eine oder mehrere Datagramme durch das oder die Gateways an die DS generieren und senden. In other respects, the present invention can provide a distribution system of automation data representing a planning level with a Planning network to which one or more DS are connected; a Control level with a control network to which one or more AK are connected; and one or more gateways that are functional with the one or more AK and coupled to the planning network, the gateway or gateways serve to make it easier for the DS to communicate with the AK, by generating one or more datagrams and sending them to said AK; and in which the AK can work in such a way that it works with the DS communicate that they have one or more datagrams through the gateway or gateways generate and send to the DS.  

In anderer Hinsicht kann die vorliegende Erfindung ein Datagramm umfassen, welches innerhalb eines Systems zur Verteilung von Automatisierungsdaten verwendet wird, welches wiederum aus mindestens einer AK besteht, die funktional mit mindestens einer Zielkomponente gekoppelt ist, wobei wobei das Datagramm aus einem Quell-Attribut besteht, das die Quelle (den Absender) des Datagramms kennzeichnet, einem Ziel-Attribut, welches das Ziel (den Empfänger) des Datagramms kennzeichnet, wobei das Ziel eine DS oder eine AK sein kann, und das Datagramm vollständig codiert ist.In other respects, the present invention may include a datagram which is within a system for the distribution of automation data is used, which in turn consists of at least one AK that is functional is coupled to at least one target component, wherein the datagram is composed of a source attribute that is the source (the sender) of the datagram identifies a target attribute which identifies the target (the recipient) of the Datagrams, where the target can be a DS or an AK, and that Datagram is fully encoded.

In wiederum anderer Hinsicht kann die vorliegende Erfindung ein Verfahren zur Verteilung von Automatisierungsdaten beinhalten in einem System, welches aus einer DS besteht, die funktional mit einer AK gekoppelt ist, wobei das Verfahren eine Quelleinheit beinhaltet, die ein Datagramm generiert, welches aus vollständig codierten Beschreibungen in Klarschrift besteht, und einer Zieleinheit, welche das Datagramm empfängt und darauf in geeigneter Weise reagiert. In dieser Implementierung kann die Quelleinheit eine DS sein, die ein Abfrage-Datagramm an die Zieleinheit (eine AK) sendet, und die Zieleinheit dadurch antwortet, dass sie ein Antwort-Datagramm an die Quelleinheit schickt, wobei das Antwort-Datagramm aus einem Wert-Attribut und einem zugehörigen Attribut mit der verwendeten Masseinheit besteht. Weiterhin kann das Verfahren in dieser Implementierung eine Quelleinheit (eine AK) beinhalten, die aktiv beim Eintreten vordefinierter auslösender Ereignisse ein oder mehrere Datagramme erzeugt und das oder die Datagramme an die Zieleinheit sendet.In yet another aspect, the present invention can be a method to distribute automation data in a system, which consists of a DS exists, which is functionally coupled to an AK, the method being a Contains source unit that generates a datagram, which consists of complete encoded descriptions in plain text, and a target unit, which the Datagram receives and responds appropriately. In this Implementation can be the source unit of a DS that is a query datagram the target unit (an AK) sends, and the target unit responds by sending a Send response datagram to the source unit, with the response datagram out a value attribute and an associated attribute with the one used Unit of measurement exists. Furthermore, the method in this implementation can be a Include source unit (an AK) that is active when predefined triggering occurs Events generates one or more datagrams and the datagram (s) on the destination sends.

In der vorliegenden Patentschrift bedeutet der Begriff "ein" "ein oder mehrere".In the present specification, the term "an" means an or several".

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Die folgenden Zeichnungen sind Bestandteil der vorliegenden Patentanmeldung und sind beigefügt, um bestimmte Aspekte der vorliegenden Erfindung zu veranschaulichen. Durch den Verweis auf eine oder mehrere der Zeichnungen in Verbindung mit der detaillierten Beschreibung spezifischer Implementierungen, wie sie hier dargestellt werden, ist die Erfindung eventuell besser zu verstehen.The following drawings are part of the present Patent application and are attached to certain aspects of the present To illustrate invention. By referring to one or more of the Drawings in conjunction with the detailed description more specific  Implementations as presented here may be better for the invention to understand.

Fig. 1 ist ein abstraktes Blockdiagramm einer beispielhaften Implementierung der vorliegenden Erfindung, welches ein System zur Verteilung von Automatisierungsdaten veranschaulicht. Fig. 1 is an abstract block diagram of an exemplary implementation of the present invention, illustrating a system for distribution of automation data.

Fig. 2 ist ein abstraktes Blockdiagramm einer beispielhaften Implementierung der vorliegenden Erfindung und veranschaulicht ein alternatives System zur Verteilung von Automatisierungsdaten, welches ein Hardware-Gateway beinhaltet. Fig. 2 is an abstract block diagram of an exemplary implementation of the present invention and illustrates an alternative system for distribution of automation data, which includes a hardware gateway.

Fig. 3 ist ein abstraktes Blockdiagramm einer beispielhaften Implementierung der vorliegenden Erfindung und veranschaulicht ein alternatives System zur Verteilung von Automatisierungsdaten, welches ein DDE-Software- Gateway beinhaltet. Fig. 3 is an abstract block diagram of an exemplary implementation of the present invention and illustrates an alternative system for distribution of automation data which includes a DDE software gateway.

Fig. 4 ist ein abstraktes Blockdiagramm einer beispielhaften Implementierung der vorliegenden Erfindung und veranschaulicht ein alternatives System zur Verteilung von Automatisierungsdaten, welches ein OPC-Software- Gateway beinhaltet. Fig. 4 is an abstract block diagram of an exemplary implementation of the present invention and illustrates an alternative system for distribution of automation data, which contains a OPC software gateway.

BESCHREIBUNG BEISPIELHAFTER IMPLEMENTIERUNGENDESCRIPTION OF EXEMPLARY IMPLEMENTATIONS

Fig. 1 zeigt ein System zur Verteilung von Automatisierungsdaten ("ADD") entsprechend einer beispielhaften Implementierung der vorliegenden Erfindung. Ein Vorteil der vorliegenden Erfindung besteht darin, dass sie den Datenfluss zwischen und innerhalb der Steuerungsebene (160) und der Planungsebene (150) eines geschlossenen Systems wie einer Fabrik oder eines Büros erleichtert. Kaufmännische Softwareanwendungen auf Computern befinden sich normalerweise innerhalb der Planungsebene (150), während sich speicherprogrammierbare Steuerungen, Peripheriegeräte, Feldgeräte und automatisierungstechnische Softwareanwendungen normalerweise innerhalb der Steuerungsebene befinden. Für die Zwecke der vorliegenden Schrift wird die Bezeichnung "datenverarbeitende Station" (DS) für steuernde, überwachende und auswertende Geräte und Softwareanwendungen sowohl in der Steuerungsebene als auch in der Planungsebene verwendet. Der Begriff "Automatisierungskomponente" (AK) bezieht sich hingegen auf Peripheriegeräte, Feldgeräte und automatisierungstechnische Softwareanwendungen. Systemkomponenten (sowohl AK als auch DS) können physikalische Geräte sein, Peripheriegeräte und Softwareanwendungen. Fig. 1 shows a system for distribution of automation data ( "ADD") according to an exemplary implementation of the present invention. An advantage of the present invention is that it facilitates data flow between and within the control level ( 160 ) and the planning level ( 150 ) of a closed system such as a factory or an office. Commercial software applications on computers are usually within the planning level ( 150 ), while programmable logic controllers, peripheral devices, field devices, and automation software applications are usually within the control level. For the purposes of this document, the term "data processing station" (DS) is used for controlling, monitoring and evaluating devices and software applications both in the control level and in the planning level. The term "automation component" (AK), however, refers to peripheral devices, field devices and automation technology software applications. System components (both AK and DS) can be physical devices, peripheral devices and software applications.

Die vorliegende Erfindung ermöglicht wirkliche Datenverteilung innerhalb des Gesamtsystems durch die Verwendung eines einheitlichen Transaktions-Formats, das von allen Systemkomponenten verwendet wird, egal auf welcher Ebene sie sich befinden. Die Transaktions-Grundeinheit für Datenübertragung in ADD ist ein vollständig codierter Gerätezustand oder ein vollständig codiertes Kommando. Vollständig codiert bedeutet, dass keine zusätzliche Information (wie eine vordefinierte Umsetzungstabelle) erforderlich ist, um den Gerätezustand oder das Kommando zu bestimmen. Im Gegensatz hierzu liefern gängige AK oft nur einen einzelnen Wert, wenn sie abgefragt werden. Zum Beispiel kann eine gängige Waage ihre Daten über ihre Computerschnittstelle einfach mit einer Zeilenbegrenzung versehen abliefern (z. B. 525.55[CR]). Obwohl 525.55 auf eine Gewichtsmessung hinweisen kann, müsste eine DS noch wissen, welche Masseinheit die betreffende Waage verwendet hat. In einer typischen Installation würde die DS "wissen" (vielleicht durch Heranziehung einer Umsetzungstabelle), dass die Daten von einer bestimmten AK (zum Beispiel "Waage 3") in Kilogramm kalibriert sind. Ohne Kenntnis der verwendeten Masseinheit sind Daten von AK von begrenztem Wert. Selbst bei Verwendung von Umsetzungstabellen ist diese Art der Implementierung schlecht geeignet für eine Verteilung der Daten innerhalb eines Netzwerks, da eine beliebige DS innerhalb des Netzwerks nicht in der Lage wäre, die Datenquelle, den Zeitpunkt und die Masseinheit der Messung zu bestimmen. Ausserdem wären bei Konfigurationsänderungen netzwerk-weite Updates der Umsetzungstabellen erforderlich. ADD begegnet diesem Problem durch die Verwendung von vollständig codierten Gerätezuständen oder Kommandos, welche im vorangegangenen Beispiel die Masseinheit des übertragenen Wertes beinhalten würden.The present invention enables real data distribution within of the overall system through the use of a uniform transaction format, which is used by all system components, no matter at which level they are are located. The basic transaction unit for data transmission in ADD is a fully coded device status or a fully coded command. Fully encoded means that no additional information (such as a predefined implementation table) is required to determine the device status or the Command to determine. In contrast, common AKs often only deliver one single value when queried. For example, a common scale their data via their computer interface simply with a line boundary Delivered with a label (e.g. 525.55 [CR]). Although 525.55 on a weight measurement can indicate, a DS would still have to know which unit of measurement the relevant Scales. In a typical installation, the DS would "know" (perhaps by using a conversion table) that the data is from a certain AK (for example "Libra 3") are calibrated in kilograms. Without Knowing the unit of measurement used, AK data is of limited value. Even when using conversion tables, this is the type of implementation badly suited for a distribution of the data within a network, because a any DS within the network would not be able to find the data source Determine the time and unit of measurement. Also would be Configuration changes network-wide updates of the implementation tables required. ADD addresses this problem entirely by using coded device states or commands, which in the previous example would include the unit of measurement of the transferred value.

Ein vollständig codierter Datensatz sollte einer DS wenigstens ermöglichen, ohne Zugriff auf externe Information die Datenquelle zu ermitteln und, falls Daten übertragen werden, die Einheit dieser Daten. Bei vollständiger Codierung sind Umsetzungstabellen beim Empfänger nicht nötig. Die übermittelte Information sollte von beliebigen Empfängern ohne weitere Anforderungen verarbeitet werden können.A fully encoded data set should at least enable a DS to: to determine the data source without access to external information and, if data  the unit of this data is transmitted. When coding is complete Conversion tables at the recipient are not necessary. The information provided should can be processed by any recipient without further requirements.

In bevorzugten Implementierungen verwendet die vorliegende Erfindung Datensätze in Klartext, wann immer möglich und sinnvoll. Die Codierung von Daten in Klarschrift hat mehrere Vorteile gegenüber anderen Codierungsarten. Erstens ist sie menschlich lesbar. Das allereinfachste "Terminal" (das heisst, ein Drucker oder ein einfaches Datensichtgerät) kann benutzt werden, um ADD-Daten für einen menschlichen Benutzer anzuzeigen. Viele altgediente Wartungsingenieure im Aussendienst hat es viel Zeit und Frustration gekostet, gestörte Übertragungskanäle durch das Entziffern von Bitfeldern, Prüfsummen usw. zu analysieren. Die Möglichkeiten zur Fehlersuche sind bei ADD hervorragend, was wichtig für die Fälle ist, in denen aufwendige Datentester normalerweise nicht zur Verfügung stehen und Ausfallzeiten teuer sind. Mit ADD kann ein Wartungsingenieur ein Gerät sogar mit einem einfachen Terminal-Emulator manipulieren, da ADD-Datensätze ohne aufwendige Software zusammengestellt und übertragen werden können.In preferred implementations, the present invention uses Data records in plain text whenever possible and sensible. The encoding of data in plain text has several advantages over other types of coding. First, it is human readable. The simplest "terminal" (that is, a printer or a simple data display device) can be used to display ADD data for a display human users. Many veteran maintenance engineers in the Sales force has cost a lot of time and frustration, disturbed transmission channels by deciphering bit fields, checksums etc. The Troubleshooting options are excellent at ADD, which is important for the cases in which complex data testers are usually not available and Downtime is expensive. With ADD, a maintenance engineer can even use a device manipulate a simple terminal emulator since ADD records are without complex software can be compiled and transferred.

Desweiteren ist die von ADD verwendete Klarschrift-Codierung weniger fehleranfällig für Versionskonflikte innerhalb einer verteilten Umgebung. Bei Binärcodierung müssen Umsetzungstabellen verwendet werden, um die übertragenen Daten zu interpretieren. Wenn die Umsetzungstabellen lokal gespeichert werden (wie dies normalerweise der Fall ist), treten Fehler auf, wenn diese Tabellen nicht im gesamten Netzwerk upgedated werden. Ein Vorteil von ADD liegt darin, dass die Notwendigkeit von Umsetzungstabellen zur Interpretation von Daten weitgehend schwindet.Furthermore, the plain text coding used by ADD is less error prone to version conflicts within a distributed environment. At Binary coding must be used to convert the transmitted tables Interpret data. If the conversion tables are saved locally (like this is usually the case), errors occur when these tables are not in the entire network will be updated. An advantage of ADD is that the The need for implementation tables to interpret data largely disappears.

Weiterhin stellt die Verwendung von Klarschrift-Codierung wenig Ansprüche an den Übertragungskanal. In einigen Implementierungen der vorliegenden Erfindung kann eine 7-Bit-Codierung verwendet werden, und ASCII-Steuerzeichen können für Protokollzwecke verwendet werden, wenn sie nicht in den Nutzdaten auftreten. Diese Implementierungen vereinfachen die Konstruktion von Gateways. Die vereinfachte Datenformatierung vereinfacht die Verteilung der Daten bedeutend. Furthermore, the use of plain text coding makes few demands to the transmission channel. In some implementations of the present invention 7-bit encoding can be used, and ASCII control characters can be used for Protocol purposes are used if they do not appear in the user data. This Implementations simplify the construction of gateways. The simplified one Data formatting significantly simplifies the distribution of the data.  

Wie gezeigt kann eine Implementierung der vorliegenden Erfindung ein oder mehrere DS (kaufmännische Softwareanwendung [100] und speicherprogrammierbare Steuerung / SPS [110]) und eine oder mehrere AK (120 und 130) beinhalten, welche funktional durch ein Übertragungsmedium (140) miteinander gekoppelt sind. Obwohl DS 100 und 110 und AK 120 und 130 als direkt an das Übertragungsmedium angeschlossen dargestellt sind, wird ein technisch kundiger Leser verstehen, dass "funktional gekoppelt" keine direkte Verbindung erfordert. Für die Zwecke der vorliegenden Patentschrift kann ein Gerät als funktional gekoppelt mit einem anderen Gerät bezeichnet werden, wenn die Geräte miteinander Informationen austauschen können, unabhängig vom Vorhandensein irgendwelcher zwischengeschalteter Geräte oder Übertragungsmedien.As shown, an implementation of the present invention may include one or more DS (commercial software application [ 100 ] and programmable logic controller / PLC [ 110 ]) and one or more AK ( 120 and 130 ) that are functionally coupled to one another by a transmission medium ( 140 ) . Although the DS 100 and 110 and AK 120 and 130 are shown as directly connected to the transmission medium, a technically knowledgeable reader will understand that "functionally coupled" does not require a direct connection. For the purposes of this specification, a device can be said to be functionally coupled to another device if the devices can exchange information with one another regardless of the presence of any intermediary devices or transmission media.

In einer bevorzugten Implementierung kann ADD direkt in jede AK implementiert werden. Dadurch könnten AK 120 und 130 direkt mit DS 100 und 110 kommunizieren. Diese Implementierung wäre geeignet, traditionelle Industrieprotokolle wie zeilenorientiertes ASCII, Modbus oder das AK-Protokoll (ein Anwendungsprotokoll aus der Automobil-Zulieferindustrie) zu ersetzen. TCP/IP über Ethernet ist ein bevorzugtes Übertragungsmedium 140. Ein technisch kundiger Leser wird indessen verstehen, dass jedes geeignete Übertragungsmedium 140 verwendet werden kann, einschliesslich (jedoch nicht beschränkt auf) serielle Asynchronverbindungen, ISDN, drahtloses TCP/IP, USB, Verbindungen über Parallelschnittstellen und GSM.In a preferred implementation, ADD can be implemented directly in any AK. This would allow AK 120 and 130 to communicate directly with DS 100 and 110 . This implementation would be suitable to replace traditional industrial protocols such as line-oriented ASCII, Modbus or the AK protocol (an application protocol from the automotive supply industry). TCP / IP over Ethernet is a preferred transmission medium 140 . However, one of skill in the art will understand that any suitable transmission medium 140 may be used, including (but not limited to) serial asynchronous connections, ISDN, wireless TCP / IP, USB, parallel interface connections, and GSM.

In einigen Fällen mögen Systemkomponenten der Steuerungsebene (160) nicht in der Lage sein, die erforderlichen Netzwerkprotokolle zur direkten Kommunikation mit Systemkomponenten auf der Planungsebene (160) zu benutzen oder sich daran anzuschliessen. In diesen Fällen kann ein Gateway benutzt werden, um eine Kommunikation zu ermöglichen. Viele der heute gebräuchlichen Gateways (sowohl Hardware- als auch Softwaregateways) können hierfür benutzt werden. Ein technisch kundiger Leser könnte angeben, welches spezielle Gateway mit den Systemkomponenten in einer bestimmten Implmentierung benutzt werden kann.In some cases, control level ( 160 ) system components may not be able to use or connect to the necessary network protocols to communicate directly with planning level ( 160 ) system components. In these cases, a gateway can be used to enable communication. Many of the gateways in use today (both hardware and software gateways) can be used for this. A technically knowledgeable reader could indicate which special gateway can be used with the system components in a particular implementation.

Wie in Fig. 2 dargestellt, können ADD-Hardware-Gateways (210, 220, 230) benutzt werden, wo vorhandene AK nicht in der Lage sind, die erforderlichen Netzwerkprotokolle zu benutzen oder sich daran anzuschliessen. Ein ADD-Hardware- Gateway übersetzt vom Netzwerk-Medium zum Punkt-zu-Punkt-Medium (beispielsweise serielle Asynchronschnittstelle) und kümmert sich um die erforderlichen Protokollumwandlungen auf den höheren Schichten (wie zum Beispiel der Präsentationsschicht und der Anwendungsschicht). ADD erfordert im allgemeinen keine grosse Rechen- und Speicherkapazität. ADD-Hardware-Gateways können daher in bevorzugten Implementierungen as kleine Protokollkonverter implementiert werden, die hutschienenmontiert oder als Zwischenstecker auf eine vorhandene Kommunikationsschnittstelle der AK aufgesteckt werden können. Ein Beispiel für ein ADD-Hardware-Gateway ist (ohne hierauf beschränkt zu sein) ein SMS-Gateway.As shown in Fig. 2, ADD hardware gateways ( 210 , 220 , 230 ) can be used where existing AKs are unable to use or join the required network protocols. An ADD hardware gateway translates from the network medium to the point-to-point medium (for example serial asynchronous interface) and takes care of the required protocol conversions on the higher layers (such as for example the presentation layer and the application layer). ADD generally does not require a large amount of computing and storage capacity. In preferred implementations, ADD hardware gateways can therefore be implemented as small protocol converters, which can be mounted on a top-hat rail or plugged onto an existing communication interface of the AK. An example of an ADD hardware gateway is (but is not limited to) an SMS gateway.

In anderen (nicht abgebildeten) Implementierungen der vorliegenden Erfindung kann das Übertragungsmedium 140 aus zwei Netzwerken bestehen, einem Netzwerk der Steuerungsebene und einem Netzwerk der Planungsebene, mit einem oder mehreren Hardware-Gateways zur Erleichterung der Kommunikation zwischen den beiden Ebenen. Das Planungsnetzwerk und das Steuerungsnetzwerk können beide als Teile des Gesamtnetzwerks 140 betrachtet werden. In anderen Implementierungen mögen die AK 120 und 130 überhaupt nicht direkt mit dem Übertragungsmedium 140 verbunden sein. In diesen Implementierungen können die AK 120 und 130 stattdessen mit einer SPS 110 verbunden sein, welche ihrerseits an das Übertragungsmedium 140 über ein Hardware- oder Software-Gateway (siehe unten) gekoppelt ist.In other implementations (not shown) of the present invention, the transmission medium 140 may consist of two networks, a control level network and a planning level network, with one or more hardware gateways to facilitate communication between the two levels. The planning network and the control network can both be regarded as parts of the overall network 140 . In other implementations, AK 120 and 130 may not be directly connected to transmission medium 140 at all. In these implementations, the AK 120 and 130 may instead be connected to a PLC 110 , which in turn is coupled to the transmission medium 140 via a hardware or software gateway (see below).

Alternativ kann die Gateway-Funktionalität auch softwaremässig implementiert werden. Wie in Fig. 3 dargestellt, kann ein ADD-Softwaregateway als DDE Client 300 implementiert werden, der mit AK 340 über einen DDE Server 320 kommuniziert. Wie dargestellt, kann das ADD Gateway auf dem Computer installiert werden, auf dem der DDE Server läuft. DDE-Implementierungen laufen gegenwärtig ausschliesslich auf Windows-PCs. Da die meisten Windows-PCs netzwerkfähig sind, hat diese Implementierung den zusätzlichen Vorteil, dass ADD-Systemkomponenten im gesamten Netzwerk den DDE Server benutzen und mit ihm kommunizieren können. Der DDE Server 320 kann mit einer AK 340 über ein Industrieprotokoll 330 kommunizieren und dieses in DDE API-Aufrufe 310 für die Kommunikation mit dem DDE Client 300 übersetzen, und umgekehrt.Alternatively, the gateway functionality can also be implemented in software. As shown in FIG. 3, an ADD software gateway can be implemented as a DDE client 300 , which communicates with AK 340 via a DDE server 320 . As shown, the ADD Gateway can be installed on the computer on which the DDE server is running. DDE implementations currently only run on Windows PCs. Since most Windows PCs are network-compatible, this implementation has the additional advantage that ADD system components can use and communicate with the DDE server in the entire network. The DDE server 320 can communicate with an AK 340 via an industrial protocol 330 and translate this into DDE API calls 310 for communication with the DDE client 300 , and vice versa.

Wie in Fig. 4 gezeigt, kann ein ADD Softwaregateway auch als OPC Software-Gateway implementiert werden. Im speziellen kann ein ADD Gateway als OPC Client-Anwendung 400 implementiert werden. In der abgebildeten Implementierung meldet sich das ADD Gateway als OPC Client bei einem OPC Server 430 an und setzt ADD in OPC 400 und umgekehrt um, um mit AK 450 zu kommunizieren. Ein Vorteil hiervon ist, dass vorhandene OPC Client-Software 410 weiter benutzt werden kann, da OPC Server mehrere Clients gleichzeitig bedienen können.As shown in FIG. 4, an ADD software gateway can also be implemented as an OPC software gateway. In particular, an ADD gateway can be implemented as an OPC client application 400 . In the implementation shown, the ADD gateway logs on to an OPC server 430 as an OPC client and converts ADD to OPC 400 and vice versa in order to communicate with AK 450 . An advantage of this is that existing OPC client software 410 can continue to be used, since OPC servers can serve several clients at the same time.

Eine dritte Gruppe von Gateway-Software (ohne Abbildung) unterstützt jene Industrieprotokolle, die von sich aus TCP/IP als Übertragungskanal verwenden, wie RFC 1006, oder die Netzwerkvariante von Modbus, oder Peripheriegeräte wie digitale I/O-Baugruppen mit proprietären Netzwerkprotokollen. Diese Art ADD-Gateway kann auf irgendeinem Computer im Netzwerk installiert werden. Eine DS würde in diesem Fall nicht direkt mit der Systemkomponente "hinter" dem Gateway kommunizieren. Stattdessen würde die DS ein Datagramm an die Netzwerkadresse des Gateways schicken. Das Gateway übersetzt das Datagramm in die Protokolle und Kommandos der Systemkomponente und umgekehrt.A third group of gateway software (not shown) supports them Industrial protocols that use TCP / IP as a transmission channel, such as RFC 1006, or the network variant of Modbus, or peripheral devices such as digital I / O modules with proprietary network protocols. This type of ADD gateway can be installed on any computer on the network. A DS would be in in this case not directly with the system component "behind" the gateway communicate. Instead, the DS would send a datagram to the network address of the gateway. The gateway translates the datagram into the protocols and System component commands and vice versa.

In anderen Implementierungen (ohne Abbildung) kann eine Kombination aus Software- und Hardware-Gateways innerhalb desselben Systems verwendet werden. Desweiteren können einige Implementierungen der vorliegenden Erfindung Gateways für Systemkomponenten verwenden, die Gateways erfordern, und zusätzlich andere Systemkomponenten, die ADD-kompatibel sind und keine Gateways erfordern.In other implementations (not shown) a combination of Software and hardware gateways can be used within the same system. Furthermore, some implementations of the present invention can be gateways use for system components that require gateways and others System components that are ADD compatible and do not require gateways.

TransaktionenTransactions

In ADD-Systemen erfolgt die Kommunikation zwischen AK und DS (und untereinander) durch eine oder mehrere Transaktionen. Allgemein gesprochen sind Transaktionen ein Informationsaustausch zwischen verschiedenen Systemkomponenten des ADD-Systems in Form vollständig codierter Datagramme. Für Zwecke der vorliegenden Patentschrift bestehen alle Datagramme aus vollständig codierter Information. In einigen Fällen kann der Inhalt eines Datagramms Daten in einem Format enthalten, das nicht ohne weiteres menschlich lesbar ist (zum Beispiel binär oder hexadezimal codierte Daten). Bevorzugterweise sind Datagramme jedoch menschlich lesbar, wenn immer es möglich ist. In ADD systems, communication takes place between AK and DS (and with each other) through one or more transactions. Generally speaking Transactions an exchange of information between different System components of the ADD system in the form of fully coded datagrams. For the purposes of this specification, all datagrams are made up of complete encoded information. In some cases, the content of a datagram can contain data in a format that is not easily human-readable (for example binary or hexadecimal encoded data). However, datagrams are preferred human readable whenever possible.  

Vollständig codierte Datagramme sind die Basiseinheit einer ADD- Transaktion. Ein Datagramm kann mit einem "Record" (Datensatz) einer Datenbank verglichen werden. Ein Datagramm kann unterschiedliche Funktionen haben. Typische Funktionen sind (ohne hierauf beschränkt zu sein): Darstellung eines Gerätezustands, Darstellung eines Kommandos, oder Quittierung eines vorangegangenen Kommandos. In einigen Fällen kann ein Datagramm mehrere Funktionen gleichzeitig haben.Fully encoded datagrams are the basic unit of an ADD Transaction. A datagram can be associated with a "record" of a database be compared. A datagram can have different functions. Typical functions are (but are not limited to): Representation of a Device status, representation of a command, or acknowledgment of a previous commands. In some cases, a datagram can have multiple Have functions at the same time.

Im Hinblick auf AK können Transaktionen in die beiden Kategorien "aktiv" und "passiv" unterteilt werden. Bei passiven Transaktionen empfängt eine AK ein Kommando oder eine Anfrage von einer anderen Systemkomponente und kann darauf, falls erforderlich, entsprechend antworten. Bei aktiven Transaktionen kann eine AK Daten spontan, auf eigene Initiative hin übertragen (normalerweise beim Eintreten eines auslösenden Ereignisses, oder zyklisch). In vielen Systemen sind aktive Transaktionen zu bevorzugen, da sie den Trend zur Dezentralisierung verstärken - sie reduzieren den Datenverkehr im Netz und vereinfachen die Programmierung von datenverarbeitenden Anwendungen, dem ereignisgesteuerten Paradigma der modernen Softwareentwicklung entsprechen, wie es für IT- Anwendungen üblich ist. Die spezifische Struktur und Konfiguration jeder Transaktion kann von mehreren Faktoren abhängig sein, inklusive (jedoch ohne hierauf beschränkt zu sein) der Art der Implementierung, dem Datenformat (siehe unten) und den Übertragungskanälen, die in einem ADD-System verwendet werden.With regard to AK, transactions can be "active" in the two categories and "passive" can be divided. An AK receives for passive transactions Command or request from another system component and can if necessary, respond accordingly. With active transactions can an AK data spontaneously transferred on their own initiative (usually at the Occurrence of a triggering event, or cyclically). In many systems Prefer active transactions as they are decentralizing amplify - they reduce data traffic in the network and simplify it Programming of data processing applications, the event-driven Paradigm of modern software development as it is for IT Applications is common. The specific structure and configuration of each Transaction can depend on several factors, including (but without to be limited to this) the type of implementation, the data format (see below) and the transmission channels used in an ADD system.

Jedes Datenformat kann benutzt werden, das zu vollständig codierten Datagrammen führt. Dabei werden zwei Datenformate - FactoryXML und UTV (Unstructured Tag/Value) bevorzugt, weil sie gut zu existierenden Softwareschnittstellen passen. FactoryXML ist abgeleitet vom Format der extensible Markup Language (XML). UTV enthält ähnliche Inhalte wie FactoryXML, verwendet jedoch eine einfachere, unstrukturierte Syntax.Any data format can be used that is fully encoded Datagrams leads. There are two data formats - FactoryXML and UTV (Unstructured Tag / Value) preferred because they are well-existing Software interfaces fit. FactoryXML is derived from the extensible format Markup Language (XML). UTV contains content similar to that used by FactoryXML however, a simpler, unstructured syntax.

FactoryXMLFactoryXML

FactoryXML benutzt die im XML-Standard definierte Syntax, entspricht aber nicht notwendigerweise dem XML-Dokumentenmodell. Anstelle des für XML- Dokumente typischen statischen Inhalts kann (und wird) sich der Inhalt eines FactoryXML-Datagramms, welches einen Gerätezustand repräsentiert, dynamisch ändern. Ausserdem können sich mehrere FactoryXML-Datagramme auf ein und denselben Gegenstand beziehen. Dies ist ein wichtiger Unterschied zwischen XML und FactoryXML. In XML ist die Grundeinheit ein Dokument (oder eine Datei). Unterschiedliche Dokumente repräsentieren unterschiedliche Dinge (Bücher, Artikel usw.). In FactoryXML ist die Grundeinheit ein Datagramm. Unterschiedliche FactoryXML-Datagramme können sich auf ein und denselben Gegenstand beziehen (zum Beispiel auf ein bestimmtes Peripheriegerät), und repräsentieren dabei unterschiedliche Zustände zu unterschiedlichen Zeitpunkten. Obwohl sich der Zustand des Peripheriegeräts ändern kann, bleibt das Peripheriegerät doch ein und dasselbe. Da ein vollständig codiertes ADD-Datagramm einen Gerätezustand eindeutig repräsentieren muss, darf es innerhalb eines FactoryXML-Datagramms keine mehrfachen identischen Unterelemente geben. Ein Sensor kann zum Beispiel zu einem bestimmten Zeitpunkt immer nur einen bestimmten Wert liefern. Jede Änderung muss in einem separaten Datagramm codiert werden. Ein Sensor- Datagramm mit mehrfachen "value"-Elementen ist daher unzulässig (wogegen mehrfache "value"-Elemente wie "value1", "value2" usw. bei komplexen Sensoren benutzt werden können, solange keine mehrfachen Instanzen eines einzelnen Elements existieren). Demgegenüber sind mehrfache Unterelemente in XML- Dokumenten (z. B. "Kapitel", "Absatz") zulässig und sogar üblich. Trotz der Unterschiede zwischen XML und FactoryXML können FactoryXML-Datagramme von gewöhnlichen XML-Parsern verarbeitet werden. Deshalb kann eine XML-fähige Datenbank FactoryXML-Datagramme auch unmittelbar speichern.FactoryXML uses the syntax defined in the XML standard, but corresponds not necessarily the XML document model. Instead of that for XML Documents of typical static content can (and will) become the content of a  FactoryXML datagram, which represents a device state, dynamic to change. In addition, several FactoryXML datagrams can be on one and refer to the same subject. This is an important difference between XML and FactoryXML. In XML, the basic unit is a document (or a file). Different documents represent different things (books, articles etc.). In FactoryXML, the basic unit is a datagram. Different FactoryXML datagrams can refer to the same item (for example on a certain peripheral device), and represent different states at different times. Although the Can change the state of the peripheral device, the peripheral device remains on and the same thing. Because a fully encoded ADD datagram is a device state must represent clearly, it may be within a FactoryXML datagram do not give multiple identical sub-elements. A sensor can, for example, too deliver only a certain value at a certain point in time. Each Changes must be encoded in a separate datagram. A sensor Datagram with multiple "value" elements is therefore not permitted (against multiple "value" elements such as "value1", "value2" etc. for complex sensors can be used as long as no multiple instances of a single one Elements exist). In contrast, multiple sub-elements in XML Documents (e.g. "Chapter", "Paragraph") permitted and even common. Despite the Differences between XML and FactoryXML can be FactoryXML datagrams processed by ordinary XML parsers. Therefore, an XML-enabled Store FactoryXML datagrams immediately.

Ein beispielhaftes FactoryXML-Datagramm kann wie folgt aussehen:
An example FactoryXML datagram can look like this:

Implementierungen der vorliegenden Erfindung, welche FactoryXML-Datagramme (wie das obige Beispiel) verwenden, können aus einem oder mehreren Elementen bestehen, die einen Elementnamen ("Tag") und einen optimalen Inhalt (Wert) haben. Implementations of the present invention, which FactoryXML datagrams (like the example above) can use one or more elements consist of an element name ("Tag") and an optimal content (value).  

In einigen Implementierungen können Tags lediglich aus Buchstaben in Kleinschreibung bestehen, mit Ausnahme vordefinierter Tags, bei denen der erste Buchstabe gross geschrieben ist. Alternativ kann Gross- und Kleinschreibung ignoriert werden.In some implementations, tags can only consist of letters in Lowercase exists, with the exception of predefined tags, where the first Is capitalized. Alternatively, upper and lower case be ignored.

Ein FactoryXML-Element kann Unterelemente beliebiger hierarchischer Tiefe enthalten. Unterelemente des FactoryXML-Wurzelelements müssen jedoch eindeutig sein; mehrfache identische Unterelemente sind nicht erlaubt, egal, ob sie auf derselben oder auf unterschiedlichen hierarchischen Ebenen stehen. Tags für FactoryXML-Elemente können frei definiert werden, mit der Ausnahme vordefinierter Standard-Tags (siehe unten).A FactoryXML element can be sub-elements of any hierarchical depth contain. However, sub-elements of the FactoryXML root element must be unique his; Multiple identical sub-elements are not allowed, regardless of whether they are on the same or at different hierarchical levels. Tags for FactoryXML elements can be freely defined, with the exception predefined standard tags (see below).

FactoryXML beinhaltet eine standardisierte Attributliste. Welche Standardattribute in einem bestimmten FactoryXML-Datagramm verwendet werden, kann konfiguriert werden (zum Beispiel durch die Verwendung von Profilen, siehe unten). Die Standard-Attributliste kann folgende Attribute enthalten (ohne hierauf beschränkt sein zu müssen): Attribute zur Datensicherheit (zum Beispiel eine digitale Signatur, ein Gültigkeitsende usw.), einen Zeitstempel, und Attribute zur Sicherung der Datenintegrität (zum Beispiel eine Prüfsumme, CRC usw.).FactoryXML includes a standardized attribute list. Which Standard attributes are used in a particular FactoryXML datagram, can be configured (for example by using profiles, see below). The standard attribute list can contain the following attributes (without this) to be limited): Attributes for data security (for example a digital one Signature, expiry date, etc.), a time stamp, and attributes for backup data integrity (e.g. a checksum, CRC, etc.).

Obwohl FactoryXML-Attribute generell optional sind, kann ihre Verwendung oder Nicht-Verwendung in bestimmten Situationen vorgeschrieben sein, die durch die Konfiguration des ADD-Systems spezifiziert werden. So kann zum Beispiel die Verwendung einer digitalen Signatur die gleichzeitige Verwendung eines Zeitstempels und einer Sequenznummer erfordern. Ein FactoryXML-kompatibles Gerät muss in der Lage sein, alle Standard-Attribute zu verarbeiten und darf nicht mit Fehlerzuständen oder undefiniertem Verhalten auf den Empfang irgendeines Standard-Attributs reagieren.Although FactoryXML attributes are generally optional, you can use them or non-use may be required in certain situations by the Configuration of the ADD system. For example, the Using a digital signature using one simultaneously Timestamp and a sequence number. A FactoryXML compatible Device must be able to process all standard attributes and must not be included Error conditions or undefined behavior on receiving any Standard attribute respond.

In vielen FactoryXML-Implementierungen kann die Codierung von Datagrammen im ASCII-Zeichensatz erfolgen. Numerische Daten können als Fliesskommawerte mit einem Dezimalpunkt codiert werden, mit einem optionalen Vorzeichen (Präfix) und einem optionalen Exponenten (Suffix). Ein weggelassenes Vorzeichen kann einen positiven Wert anzeigen. Ein weggelassener Exponent kann einen Exponenten von eins anzeigen. Daten können auch als ganzzahlige Werte (Integer) dargestellt werden, entweder in dezimaler oder in hexadezimaler Schreibweise. Hexadezimale Schreibweise kann durch den Präfix "0x" angezeigt werden. Negative dezimale Werte können durch ein vorangestelltes Minuszeichen kenntlich gemacht werden. Ein weggelassenes Vorzeichen kann einen positiven Wert kennzeichnen. Daten können auch als Textwerte dargestellt werden. Textwerte setzen sich aus Zeichenketten zusammen, wie sie im XML-Dokumentenformat spezifiziert sind. Die Verarbeitung von Textzwischenräumen (Whitespace) kann identisch zum XML-Dokumentenformat erfolgen. Schliesslich kann FactoryXML einen Satz vordefinierter Tags zur eindeutigen Kennzeichnung bestimmter Zustände und Einheiten bereitstellen. Vordefinierte Tags können in FactoryXML-Datagrammen als leere Elemente verwendet werden. Der Anfangsbuchstabe eines vordefinierten Tags ist immer gross geschrieben. Beispiele umfassen (ohne Anspruch auf Vollständigkeit): <On/<, <Off/<, <Leftl<, <Right/<, <Up/<, <Down/<, <Open/<, <Closed/<, <Full/<, <Empty/<. Die Verwendung dieser Tags kann ohne die Angabe einer Einheit erfolgen. Für andere Situationen kann es vordefinierte Tags für alle Basiseinheiten und abgeleitete Masseinheiten geben, wie beispielsweise (ohne hierauf beschränkt zu sein): <Meter/<, <Kilogram/<, <Second/<, <Ampere/<, <Kelvin/<, <Mol/<, <Candela/<, <Fahrenheit/<, <Celsius/<, <Inch/<, <Ampereh/<, <Percent/<.In many FactoryXML implementations, the encoding of Datagrams are made in the ASCII character set. Numerical data can be viewed as Floating point values can be encoded with a decimal point, with an optional Sign (prefix) and an optional exponent (suffix). An omitted Sign can indicate a positive value. An omitted exponent can display an exponent of one. Data can also be integer values  (Integer), either in decimal or in hexadecimal Spelling. Hexadecimal notation can be indicated by the prefix "0x" become. Negative decimal values can be preceded by a minus sign be identified. An omitted sign can be a positive value mark. Data can also be displayed as text values. Set text values are made up of strings as specified in XML document format are. The processing of text spaces (whitespace) can be identical to XML document format. Finally, FactoryXML can do one sentence Predefined tags to clearly identify certain states and Deploy units. Predefined tags can be used in FactoryXML datagrams as empty elements can be used. The first letter of a predefined day is always capitalized. Examples include (without claim to Completeness): <On / <, <Off / <, <Leftl <, <Right / <, <Up / <, <Down / <, <Open / <, <Closed / <, <Full / <, <Empty / <. The use of these tags can be done without specifying one unit. For other situations, there can be predefined tags for everyone Give base units and derived units of measurement, such as (without this) limited): <Meter / <, <Kilogram / <, <Second / <, <Ampere / <, <Kelvin / <, <Mol / <, <Candela / <, <Fahrenheit / <, <Celsius / <, <Inch / <, <Ampereh / <, <Percent / <.

In einer bevorzugten Implementierung verwenden Anwendungen vordefinierte FactoryXML-Tags wenn immer möglich, um die Möglichkeit nicht eindeutiger Wertebezeichnungen zu vermindern. Wo Werte bzw. Masseinheiten nach Gutdünken als Textfelder codiert werden, gibt es Interpretationsbedarf. Beispiel: Das folgende FactoryXML-Datagramm -
In a preferred implementation, applications use predefined FactoryXML tags whenever possible to reduce the possibility of ambiguous value labels. Where values or units of measurement are coded as text fields at will, there is a need for interpretation. Example: The following FactoryXML datagram -

- verwendet keine standardisierte Einheit. Der Wert "F" für das Element <unit< legt die Einheit Fahrenheit nahe, ist jedoch nicht eindeutig. Das folgende FactoryXML- Datagramm eliminiert jede Mehrdeutigkeit durch die Verwendung eines vordefinierten Tags:
- does not use a standardized unit. The value "F" for the element <unit <suggests the unit Fahrenheit, but is not unique. The following FactoryXML datagram eliminates any ambiguity by using a predefined tag:

In einigen Implementierungen können spezifische oder besonders aussagekräftige Tags verwendet werden, um Gerätezustände zusätzlich oder anstelle des <value<-Tags zu repräsentieren. So kann zum Beispiel für ein Thermometer auch ein Tag namens <temperature< verwendet werden. In ähnlicher Weise kann in einem Durchflussmesser ein Tag namens <rate< verwendet werden. Einige Einheiten können mehrere Werte übermitteln und hierfür unterschiedliche Tags verwenden (zum Beispiel <rate1<, <rate2< usw.).In some implementations, they can be specific or special Meaningful tags are used to add or replace device states of the <value <tag. For example, for a thermometer too a tag called <temperature <can be used. Similarly, in one Flow meter a day called <rate <can be used. Some units can transmit multiple values using different tags (for example <rate1 <, <rate2 <etc.).

Ein "src"-Attribut kann verwendet werden, um die Datenquelle (d. h. die Netzwerkadresse der Datenquelle) eines FactoryXML-Datagramms kenntlich zu machen. Im Hinblick auf die vorliegende Erfindung ist mit "Netzwerkadresse" die eindeutige Adresse gemeint, die den eindeutigen Ort einer Einheit innerhalb des Systems beschreibt. Eine Netzwerkadresse kann eine IP-Adresse, IPX-Adresse usw. sein, oder es kann eine symbolische Adresse sein (zum Beispiel "Thermometer2"). Quelladressen können frei definiert werden, um ein bestimmtes Gerät oder eine bestimmte Anwendung innerhalb eines Netzwerkes zu identifizieren. In einer bevorzugten Implementierung ist die Quelladresse ein verständlicher symbolischer Name. ADD-Quelladressen müssen eindeutig sein, aber müssen nicht identisch mit Netzwerkadressen des Übertragungsmediums sein (d. h. Hostnamen oder IP- Adressen); sie müssen auch nicht für ein bestimmtes Gerät identisch sein, da auf einem Gerät mehrere Anwendungen laufen können, die dann unterschiedliche Adressen benötigen.An "src" attribute can be used to identify the data source (i.e. the Network address of the data source) of a FactoryXML datagram do. In view of the present invention, "network address" is unique address means the unique location of a unit within the Systems describes. A network address can be an IP address, IPX address, etc. or it can be a symbolic address (for example "Thermometer2"). Source addresses can be freely defined to a specific device or a identify specific application within a network. In a preferred implementation, the source address is an understandable symbolic Surname. ADD source addresses must be unique, but do not have to be identical to Network addresses of the transmission medium (i.e. host name or IP Addresses); they also don't have to be identical for a particular device because on one application can run several applications, which then have different applications Need addresses.

Darüber hinaus unterstützt FactoryXML weltweit eindeutige Quelladressen, die von einer Koordinierungsstelle vergeben werden können. Solch eine Adresse kann zum Beispiel in ein Peripheriegerät vom Hersteller "eingebrannt" werden, so dass dieses Gerät ohne weitere Konfigurationsschritte bei Inbetriebnahme adressiert werden kann.In addition, FactoryXML supports unique source addresses worldwide, that can be assigned by a coordination office. Such an address can for example, "burned" into a peripheral device by the manufacturer, so that addressed this device without further configuration steps during commissioning can be.

Das "src"-Attribut ermöglicht ein sehr einfaches und genaues Mitprotokollieren von Transaktionen, da Datagramme sofort einem Absender zugeordnet werden können. Darüber hinaus ermöglicht es die Verwendung eines Transportkanals für mehrere Geräte (Multiplexing).The "src" attribute enables a very simple and precise Log transactions as datagrams are immediately sent to a sender  can be assigned. It also allows the use of a Transport channel for multiple devices (multiplexing).

In bevorzugten Implementierungen verwendet jedes FactoryXML-fähige Gerät eine weltweit eindeutige Quelladresse, die von der Koordinierungsstelle ausgegeben wird. Wo dies nicht möglich ist, kann eine andere voreingestellte Quelladresse (wie zum Beispiel "ADD") verwendet werden. In diesem Fällen kann die voreingestellte Quelladresse verwendet werden, um ein Gerät zu initialisieren, so dass Anwendungen die Möglichkeit haben, festzustellen, ob das Gerät ADD- kompatibel ist. In anderen Implementierungen kann die Verwendung einer voreingestellten Quelladresse unterbleiben.In preferred implementations, everyone uses FactoryXML-enabled Device has a globally unique source address that is assigned by the coordination office is issued. Where this is not possible, another preset can be used Source address (such as "ADD") can be used. In these cases the default source address can be used to initialize a device, so that applications have the ability to determine whether the device is ADD is compatible. In other implementations, the use of a default source address.

Ein Datagramm kann weitere Informationen enthalten, wie in folgendem Beispiel:
A datagram can contain additional information, as in the following example:

In diesem Datagramm bezeichnet das Attribut für die Zieladresse ("dest") die Datensenke, an die das Datagramm gesendet wird. Die Zieladresse ist identisch mit der Quelladresse des Geräts, an das das Datagramm gesendet wird. Es kann vordefinierte globale Adressen geben, wie "*" oder "any", die verwendet werden können, wenn ein Datagramm an alle Geräte bzw. Anwendungen gesendet werden soll, die über einen gegebenen Übertragungskanal erreicht werden können. In einigen Implementierungen können im Zieladress-Attribut auch Platzhalter (Wildcards) verwendet werden.In this datagram, the attribute for the destination address ("dest") denotes the Data sink to which the datagram is sent. The destination address is identical to the source address of the device to which the datagram is sent. It can give predefined global addresses, such as "*" or "any", which are used can, if a datagram are sent to all devices or applications that can be achieved via a given transmission channel. In some Implementations can also use wildcards in the destination address attribute. be used.

Ein Zeitstempel-Attribut ("t" im obigen Beispiel) kann dazu verwendet werden, den Zeitpunkt zu spezifizieren, zu dem das Datagramm erzeugt wurde. In bevorzugten Implementierungen haben alle Datagramme einen Zeitstempel. Die Verwendung von Zeitstempeln ist besonders sinnvoll in verteilten Umgebungen, bei denen Daten ohne weitere Zwischenschritte direkt in eine Datenbank geschrieben werden. Für die Codierung von Zeitstempeln können verschiedene Methoden benutzt werden. In einer bevorzugten Implementierung kann der ISO-6801-Standard benutzt werden, um einen Zeitstempel mit Stunden, Minuten und Sekunden ohne Doppelpunkte und Bindestriche zu erzeugen. Ausserdem können Jahr, Monat, Tag, Millisekunden und Zulu-Zeit (UTC) angegeben werden. Für netzwerkfähige Geräte kann die Uhrzeit mit dem in RFC 1129 spezifizierten Protokoll synchronisiert werden. Für Geräte, die die Uhrzeit nicht berechnen können, kann ein voreingestellter Wert verwendet werden. In anderen Implementierungen sind Zeitstempel optional.A timestamp attribute ("t" in the example above) can be used for this to specify the point in time at which the datagram was created. In preferred implementations all datagrams have a time stamp. The Using timestamps is particularly useful in distributed environments which data is written directly to a database without any further intermediate steps  become. Various methods can be used for coding time stamps become. In a preferred implementation, the ISO 6801 standard can be used be a timestamp with hours, minutes and seconds without Generate colons and hyphens. In addition, year, month, day, Milliseconds and Zulu time (UTC) can be specified. For network-compatible devices the time can be synchronized with the protocol specified in RFC 1129. For devices that cannot calculate the time, a preset value can be set be used. In other implementations, timestamps are optional.

Ein Sequenz-Attribut ("seq") kann verwendet werden, um die Reihenfolge eines bestimmten Datagramms in bezug zu vorherigen und nachfolgenden Datagrammen kenntlich zu machen. In bevorzugten Implementierungen kann die Sequenznummer als positiver ganzzahliger Wert zwischen 0 und 65535 geführt werden. Bei Überlauf kann die Sequenznummer wieder auf 0 zurückgesetzt werden. Das Sequenz-Attribut ermöglicht es, Datenverluste und Sequenzfehler zu erkennen, die bei nicht-fehlerkorrigierenden Übertragungskanälen (wie beispielsweise UDP) auftreten können. Bei der Verwendung von Quittungen (siehe unten) kann dadurch ein Datenverlust durch erneute Übertragung verhindert werden. Beim Übertragen von Kommandos kann die datenverarbeitende Station die Beantwortung des Kommandos eindeutig referenzieren. Wenn die datenverarbeitende Station eine Sequenznummer zusammen mit einem Kommando (set) oder einer Abfrage (poll) verwendet, kann die Antwort dieselbe Sequenznummer verwenden.A sequence attribute ("seq") can be used to order of a particular datagram in relation to previous and subsequent ones Identify datagrams. In preferred implementations, the Sequence number as a positive integer value between 0 and 65535 become. In the event of an overflow, the sequence number can be reset to 0. The sequence attribute enables data loss and sequence errors to be recognized, for non-error-correcting transmission channels (such as UDP) may occur. This can result when using receipts (see below) data loss through retransmission can be prevented. When transferring Commands, the data processing station can answer the command clearly reference. If the data processing station has a sequence number used together with a command (set) or a query (poll), the Answer use the same sequence number.

In einigen Implementierungen kann ein Prüfsummen-Attribut ("crc") verwendet werden, welches Redundanzinformation des Datagramm-Inhalts enthält. Die Prüfsumme ermöglicht eine Fehlererkennung bei Verwendung ungesicherter Übertragungskanäle, wie zum Beispiel seriellen Asynchronschnittstellen. In bevorzugten Implementierungen wird das Prüfsummenattribut im Quittungsbetrieb verwendet. Eine Prüfsumme zusammen mit Quittungsdatagrammen kann eine automatische Fehlerkorrektur bereitstellen. So kann ein Empfänger zum Beispiel anhand der Prüfsumme feststellen, ob das Datagramm fehlerfrei übertragen wurde. Falls nicht, kann er eine erneute Übertragung durch Absenden einer negativen Quittung erzwingen. Diese Prozedur wird wiederholt, bis das Datagramm fehlerfrei übertragen wurde (d. h., bis Inhalt und Prüfsumme zusammen passen). Dies ist nicht besonders sinnvoll für TCP/IP-Übertragungskanäle, es kann aber wichtig für serielle Punkt-zu-Punkt-Verbindungen und Modemstrecken sein, wo eine automatische Fehlerkorrektur nicht zwingend bereits durch den Übertragungskanal vorgenommen wird. Die Implementierungsverfahren für Prüfsummen sind allgemein bekannt. In einer Implementierung der vorliegenden Erfindung kann die Prüfsumme als CRC-16 für den Datagramm-Inhalt ohne Leerzeichen (Whitespace) und ohne die Prüfsumme selbst berechnet werden.In some implementations, a checksum attribute ("crc") are used, which contains redundancy information of the datagram content. The checksum enables error detection when using unsecured Transmission channels, such as serial asynchronous interfaces. In preferred implementations, the checksum attribute is in acknowledgment mode used. A checksum together with receipt datagrams can be one provide automatic error correction. For example, a recipient use the checksum to determine whether the datagram was transferred without errors. If not, he can retransmit by sending a negative Force receipt. This procedure is repeated until the datagram is error free has been transferred (i.e. until the content and checksum match). this is not  particularly useful for TCP / IP transmission channels, but it can be important for serial Point-to-point connections and modem routes should be automatic Error correction is not necessarily already carried out by the transmission channel becomes. The implementation methods for checksums are generally known. In In one implementation of the present invention, the checksum can be called CRC-16 for the datagram content without whitespace and without the checksum be calculated yourself.

Ein Attribut für eine digitale Signatur ("sig") kann verwendet werden, welches verschlüsselte Redundanzinformation des Datagramm-Inhalts enthält. In einer bevorzugten Implementierung kann die Signatur aus dem Datagramm-Inhalt mit dem RSA-Algorithmus berechnet werden, welcher zuvor mit der MDS-Hash-Funktion codiert wird. Ein Public-Key-Verfahren kann verwendet werden. Der Empfänger kann den öffentlichen Schlüssel des Senders verwenden, um den verschlüsselten Hash-Wert zu entschlüsseln und mit einem zweiten, selbst aus dem Datagramm-Inhalt berechneten Hash-Wert zu vergleichen. Wenn die beiden Werte übereinstimmen, wird der Inhalt des Datagramms als gültig betrachtet. In einer bevorzugten Implementierung müssen bei Verwendung einer digitalen Signatur auch eine Quelladresse, ein Zeitstempel und eine Sequenznummer verwendet werden. Zur weiteren Erhöhung der Sicherheit kann ein Gültigkeitsende ("exp") verwendet werden. Ein Datagramm mit einer digitalen Signatur darf nicht als Antwort auf ein Datagramm ohne Signatur oder als Antwort auf ein Datagramm mit einer ungültigen Signatur gesendet werden. Bei der Verwendung von Netzwerk-Übertragungskanälen kann ausserdem das SSL-Protokoll (Secure Socket Layer) benutzt werden, um die Sicherheit weiter zu erhöhen.An attribute for a digital signature ("sig") can be used, which contains encrypted redundancy information of the datagram content. In a preferred implementation can use the signature from the datagram content with the RSA algorithm can be calculated, which previously with the MDS hash function is encoded. A public key process can be used. The recipient can use the sender's public key to encrypt the Decrypt the hash value and use a second one, even from the datagram content compare the calculated hash value. If the two values match, the content of the datagram is considered valid. In a preferred one Implementations must also use a digital signature Source address, a time stamp and a sequence number can be used. For to further increase security, an expiry date ("exp") can be used become. A datagram with a digital signature must not be a response to one Datagram without signature or in response to a datagram with an invalid one Signature will be sent. When using network transmission channels the SSL protocol (Secure Socket Layer) can also be used to transfer the To further increase security.

Ein Gültigkeitsende-Attribut ("exp") kann verwendet werden, welches den Zeitpunkt definiert, an dem oder nach dem ein Datagramm ungültig wird. Ein Gültigkeitsende kann besonders sinnvoll sein, um die Sicherheit bei der Manipulation von Aktuatoren zu erhöhen. Ohne Gültigkeitsende kann ein auf einem "angezapften" Übertragungskanal "mitgehörtes" Datagramm (selbst dann, wenn es mit einer digitalen Signatur gesichert ist) identisch zu einem späteren Zeitpunkt erneut gesendet werden, um eine bestimmte Aktion zu wiederholen (zum Beispiel ein Tor, eine Sicherheitsschleuse usw. zu öffnen). Die Angabe eines Gültigkeitsendes (zum Beispiel eine Sekunde nachdem das Datagramm abgesendet wurde) kann einen Schutz gegen missbräuchlich erneut übertragene Datagramme bieten, da sie nach dem Gültigkeitsende vom Empfänger nicht bearbeitet werden.An expiry attribute ("exp") can be used which represents the Defines the point in time at or after which a datagram becomes invalid. On End of validity can be particularly useful to ensure security when manipulating of actuators to increase. Without an expiry date, a "tapped" Transmission channel "listened to" datagram (even if it is with a digital signature is secured) sent again identically at a later date to repeat a specific action (e.g. a goal, a Security lock etc. to open). The specification of an end of validity (for  Example one second after the datagram has been sent) can one Provide protection against improperly retransmitted datagrams, since after the End of validity cannot be processed by the recipient.

Einige Implementierungen der vorliegenden Erfindung können gespeicherte Profile verwenden. Profile können allgemein dazu benutzt werden, um die Gesamtheit der Elemente inklusive zulässiger Wertebereiche zu beschreiben, die in Datagrammen für ein bestimmtes Gerät oder eine bestimmte Anwendung benutzt werden können. FactoryXML-Profle können in unterschiedlicher Form spezifiziert werden. Zum Beispiel kann ein FactoryXML-Profil als XML Document Type Definition (DTD) ausgedrückt werden. Alternativ hierzu kann ein FactoryXML-Profil als XML Schema ausgedrückt werden. Bevorzugterweise modelliert ein Profil eine bestimmte Systemkomponente so vollständig wie möglich. In einigen Implementierungen, können generische Profile als Ausgangspunkt für individuelle Profile benutzt werden. In anderen Implementierungen können FactoryXML-Profile auf der Basis standardisierter Profile modelliert werden, die von Standardisierungsgremien für verschiedene Anwendungszwecke, Gerätetypen und Branchen definiert wurden.Some implementations of the present invention can be saved Use profiles. Profiles can be used generally to cover the whole to describe the elements, including permissible value ranges, in datagrams can be used for a specific device or a specific application. FactoryXML profiles can be specified in different forms. To the Example can be a FactoryXML profile as XML Document Type Definition (DTD) be expressed. Alternatively, a FactoryXML profile can be used as an XML schema be expressed. A profile preferably models a specific one System component as complete as possible. In some implementations, generic profiles can be used as a starting point for individual profiles. In other implementations, FactoryXML profiles can be based standardized profiles are modeled by standardization bodies for Different applications, device types and industries have been defined.

Ein beispielhaftes FactoryXML-Profil kann wie folgt aussehen:
An exemplary FactoryXML profile can look like this:

Das dargestellte Profil ist ein generisches FactoryXML-Profil für Sensoren (wie zum Beispiel Temperaturfühler, Drucksensoren, Spannungsmesser, Waagen usw.), bestehend aus einem Element <value< und einem Element <unit<. Ein Beispieldatagramm für einen Temperatursensor sieht folgendermassen aus:
The profile shown is a generic FactoryXML profile for sensors (such as temperature sensors, pressure sensors, voltmeters, scales, etc.), consisting of an element <value <and an element <unit <. An example datagram for a temperature sensor looks like this:

Als eine Implementierungsmöglichkeit kann ein generisches FactoryXML- Profil für Aktoren (wie Schalter, Ventile usw.) mit einem <value<-Element wie folgt implementiert werden:
As an implementation option, a generic FactoryXML profile for actuators (such as switches, valves, etc.) can be implemented with a <value <element as follows:

Ein beispielhaftes Datagramm zur Manipulation eines digitalen (binären) Ausgangs (Schalters) mit diesem Profil kann wie folgt aussehen:
An exemplary datagram for manipulating a digital (binary) output (switch) with this profile can look like this:

Komplexe Peripheriegeräte wie SPSen können meist nur schwer mit generischen Profilen modelliert werden. Dennoch lassen sich anwendungsspezifische Profile für komplexe Peripheriegeräte definieren. Ein beispielhaftes FactoryXML- Profil für das Siemens-Bilderkennungssystem SIMATIC VS710 sieht folgendermassen aus:
Complex peripheral devices such as PLCs are usually difficult to model with generic profiles. Nevertheless, application-specific profiles for complex peripheral devices can be defined. An example FactoryXML profile for the Siemens image recognition system SIMATIC VS710 looks as follows:

In dieser Implementierung besteht das Peripheriegerät aus einer Kamera mit einem integrierten Prozessor zur Bilderkennung, um Prozesse zum Beispiel in Zusammenhang mit Fliessbändern zu überwachen. Die VS710 hat ein PROFIBUS- Interface und eine asynchrone serielle Schnittstelle. Die asynchrone serielle Schnittstelle verwendet das 3964R-Protokoll zur Fehlerkorrektur und ein proprietäres, gerätespezifisches Protokoll oberhalb von 3964R zum Kommando- und Datenaustausch.In this implementation, the peripheral device consists of a camera an integrated processor for image recognition, for example in processes Monitor connection with conveyor belts. The VS710 has a PROFIBUS Interface and an asynchronous serial interface. The asynchronous serial Interface uses the 3964R protocol for error correction and a proprietary, device-specific protocol above 3964R for command and Data exchange.

Wie gezeigt können FactoryXML-Profile so gestaltet werden, dass sie alle Funktionen und Eigenarten eines Geräts oder einer Anwendung beinhalten. Zum Beispiel kann das FactoryXML-Element "program" benutzt werden, um das Bilderkennungsprogramm innerhalb des VS710 zu manipulieren. Es verwendet die Unterelemente "load", "reset", "start" und "stop". Das FactoryXML-Element "monitor" startet oder stoppt die Ausgabe von Bilderkennungsergebnissen. Das FactoryXML-Element "observation" enthält Ergebnisse, die vom VS710 spontan erzeugt werden, wenn die Beobachtungsfunktion "monitor" eingeschaltet wurde. Die FactoryXML-Elemente "readconfig" und "writeconfig" können dazu benutzt werden, um Konfigurationsdaten zu lesen oder zu schreiben.As shown, FactoryXML profiles can be designed to do all of them Functions and idiosyncrasies of a device or application. To the For example, the FactoryXML element "program" can be used to create the Manipulate image recognition program within the VS710. It uses the Sub-elements "load", "reset", "start" and "stop". The FactoryXML element "monitor" starts or stops the output of image recognition results. The FactoryXML element "observation" contains results from the VS710 spontaneously generated when the monitoring function "monitor" has been switched on. The FactoryXML elements "readconfig" and "writeconfig" can be used to to read or write configuration data.

Optional können FactoryXML-Datagramme in einen FactoryXML- "Envelope" eingeschlossen werden. Ein FactoryXML-Envelope ist kein FactoryXML-Element, da er mehrfache identische Unterelemente enthalten kann. FactoryXML-Envelopes können darüber hinaus keine FactoryXML-Standardattribute enthalten. Ein FactoryXML-Envelope kann in Situationen hilfreich sein, in denen ein XML-Parser keine mehrfachen Wurzelelemente unterstützt. Ein beispielhaftes FactoryXML-Datagramm in einem FactoryXML-Envelope kann wie folgt aussehen:
FactoryXML datagrams can optionally be included in a FactoryXML envelope. A FactoryXML envelope is not a FactoryXML element because it can contain multiple identical sub-elements. FactoryXML envelopes cannot contain standard FactoryXML attributes. A FactoryXML envelope can be useful in situations where an XML parser does not support multiple root elements. An example FactoryXML datagram in a FactoryXML envelope can look like this:

UTVUTV

Die vorliegende Erfindung sieht die Verwendung alternativer Datenformate vor. Eines dieser alternativen Datenformat wird als UTV bezeichnet, ein Akronym for "unstructured tag/value". Ein sehr einfaches UTV-Datagramm kann wie folgt aussehen:
src = Thermometer2
t = 234412
value = 1.92
unit = Celsius
The present invention provides for the use of alternative data formats. One of these alternative data formats is called UTV, an acronym for "unstructured tag / value". A very simple UTV datagram can look like this:
src = thermometer2
t = 234412
value = 1.92
unit = Celsius

Wie man sieht, enthält UTV ähnlichen Inhalt wie FactoryXML, aber die Daten weisen eine geringere Strukturierung auf. Bei UTV-Codierung kann ein Tag von einem optionalen Wert gefolgt werden. Tags und Werte können zum Beispiel durch ein Gleichheitszeichen voneinander abgetrennt werden. Tags ohne Werte entsprechen leeren FactoryXML-Elementen. Vordefinierte Tags (wie <Kg/<, <On/<, <Off/<) können in UTV wie Werte behandelt werden. Multiple Tags können durch Leerzeichen (Whitespace) voneinander abgetrennt werden. Als Leerzeichen können gelten (ohne Anspruch auf Vollständigkeit): [SP] (ASCII-Zeichen 32), "und"-Zeichen ("&"), Pluszeichen ("+"), Tabulatoren, Wagenrückläufe ([CR], ASCII-Zeichen 13) und Zeilenvorschübe ([LF], ASCII-Zeichen 10). Elemente und Attribute werden in UTV im allgemeinen syntaktisch gleich behandelt. Das folgende Beispieldatagramm enthält den selben Inhalt wie das obige Beispiel, verwenden aber andere Trennzeichen:
src = Themometer2 = 234412 = 1.92 = Celsius
As you can see, UTV contains content similar to FactoryXML, but the data is less structured. With UTV coding, a tag can be followed by an optional value. For example, tags and values can be separated by an equal sign. Tags without values correspond to empty FactoryXML elements. Predefined tags (such as <Kg / <, <On / <, <Off / <) can be treated like values in UTV. Multiple tags can be separated by whitespace. The following can be used as spaces (without claim to completeness): [SP] (ASCII characters 32), "and" characters ("&"), plus signs ("+"), tabs, carriage returns ([CR], ASCII characters 13) and line feeds ([LF], ASCII characters 10). Elements and attributes are generally treated syntactically in the same way in UTV. The following example datagram contains the same content as the example above, but uses different separators:
src = Themometer2 = 234412 = 1.92 = Celsius

Einige UTV-Implementierungen können übergeordnete Elemente enthalten, um mehr Information und Struktur zu übermitteln. Übergeordnete Elemente können als Präfixe codiert werden, wobei zur Abtrennung des Präfixes ein Punkt verwendet wird. Ein beispielhaftes Datagramm dieser Implementierung kann wie folgt strukturiert sein:
sensor.src = Thermometer2
sensor.t = 234412
sensor.value = 1.92
sensor.unit = Celsius
Some UTV implementations can include parent elements to convey more information and structure. Parent elements can be encoded as prefixes, using a period to separate the prefix. An exemplary datagram of this implementation can be structured as follows:
sensor.src = Thermometer2
sensor.t = 234412
sensor.value = 1.92
sensor.unit = Celsius

UTV kann in Situationen verwendet werden, in denen die Zielanwendung nicht in der Lage ist, FactoryXML zu verarbeiten oder in denen FactoryXML einfach unpraktisch wäre. UTV erfordert paketorientierte Übertragungskanäle, bei denen das Übertragungsprotokoll die Kennzeichnung des Nachrichtenendes (bzw. Datagrammendes) unterstützt. Sinnvolle Übertragungskanäle für UTV beinhalten (ohne Ausschliesslichkeit): HTTP Clients, die Gerätezustände an einen HTTP-Server mittels URI-Codierung übermitteln (da URI-Codierung FactoryXML nicht unterstützt, wohl aber UTV); HTTP Server, die passive Transaktionen mittels URI- Codierung akzeptieren; SMS-Gateways (bidirektional), da aktive Alarm- Transaktionen UTV verwenden können, um Alarmnachrichten an Handy-Displays (als UTV-Datagramm codiert) zu übertragen, auf welche ein Benutzer mit der Rückübertragung einer UTV-codierten SMS-Nachricht antworten kann, die er auf der Tastatur seines Handies eingetippt hat und die auf der anderen Seite zu Konfigurationsänderungen oder ähnlichem führt; WAP/WML Clients aufgrund der eingeschränkten Darstellungsmöglichkeiten bei WAP; Alarmierung und Fernkonfiguration per Email; und einfache HTML-Seiten für Browser, die XML nicht unterstützen. UTV can be used in situations where the target application is unable to process FactoryXML or in which FactoryXML simply would be impractical. UTV requires packet-oriented transmission channels, in which the Transmission protocol marking the end of the message (or Datagram end) supported. Include meaningful transmission channels for UTV (Without exclusivity): HTTP clients, the device states to an HTTP server transmit via URI coding (since URI coding FactoryXML not supported, but probably UTV); HTTP server, the passive transactions using URI Accept coding; SMS gateways (bidirectional) as active alarm Transactions UTV can use to send alarm messages to cell phone displays (encoded as a UTV datagram) to which a user with the Retransmission of a UTV-encoded SMS message that he can reply to on the Type in the keyboard of his cell phone and the one on the other side too Changes in configuration or the like; WAP / WML clients due to the limited display options with WAP; Alerting and Remote configuration via email; and simple HTML pages for browsers that don't use XML support.  

TransaktionenTransactions

Kommandos können an eine Automatisierungskomponente mit dem Standardelement "set" gesendet werden. In einer bevorzugten Implementierung wird ein Kommando mit dem neuen bzw. aktuellen Gerätezustand quittiert. Wenn das "seq"-Attribut (Sequenznummer) verwendet wird, wird die Automatisierungskomponente bevorzugterweise denselben "seq"-Wert in ihrem Antwortdatagramm verwenden. Die folgende Ablauftabelle verdeutlicht die Inhalte eines Datagrammaustauschs, bei dem eine DS ein Kommando an eine AK (zum Beispiel einen binären Ausgang) sendet, den Zustand "On" zu setzen:
Commands can be sent to an automation component with the standard element "set". In a preferred implementation, a command is acknowledged with the new or current device status. If the "seq" attribute (sequence number) is used, the automation component will preferably use the same "seq" value in its response datagram. The following sequence table shows the contents of a datagram exchange in which a DS sends a command to an AK (for example a binary output) to set the status "On":

In der dargestellten Transaktion sendet die DS ein Kommando an eine AK mit der Netzadresse "Switch5". Das Kommando lautet, dass der Inhalt des Elements <value< auf den Wert "On" gesetzt werden soll. Die DS verwendet die Sequenznummer 12 zur Kennzeichnung dieser Transaktion. Die AK antwortet mit einem Datagramm, welches den neuen Wert enthält, und zeigt damit an, dass das Kommando erfolgreich ausgeführt wurde. Das Antwortdatagramm verwendet dieselbe Sequenznummer wie das Kommandodatagramm, so dass die Antwort eindeutig dem Kommando zugeordnet werden kann.In the transaction shown, the DS sends a command to an AK with the Network address "Switch5". The command is that the content of the element <value < should be set to the value "On". The DS uses sequence number 12 for Identify this transaction. The AK replies with a datagram, which contains the new value, indicating that the command was successful was carried out. The response datagram uses the same sequence number as the command datagram so that the answer is clearly the command can be assigned.

Im Fehlerfall enthält das Antwortdatagramm den tatsächlichen Wert des betreffenden Elements, zusammen mit einem <error<-Element, welches eine Fehlerbeschreibung enthält. Die folgende Ablauftabelle stellt den Austausch von Datagrammen dar, bei dem eine DS Kommandos an eine AK (zum Beispiel einen digitalen Ausgang) schickt, um einen - nicht unterstützten - Zustand "high" einzuschalten.
In the event of an error, the response datagram contains the actual value of the element concerned, together with an <error <element, which contains an error description. The following sequence table shows the exchange of datagrams, in which a DS sends commands to an AK (for example a digital output) in order to switch on an "unsupported" state "high".

Wie zu sehen ist, schlug diese Transaktion fehl, da die DS versucht hat, den Wert "high" einzustellen, die AK jedoch nur die Werte "On" und "Off" unterstützt.As can be seen, this transaction failed because the DS tried the value Set "high", but the AK only supports the values "On" and "Off".

Das Akzeptieren von Kommandos durch eine Systemkomponente kann per Konfiguration auf Kommandos von bestimmten Stationen (identifiziert durch ihre Quelladresse) beschränkt werden. Zusammen mit der Netzwerkadresse (sofern vorhanden) und mit der digitalen Signatur lässt sich die Kommandoübergabe auf ausgewählte Stationen beschränken, wodurch Missbrauchsmöglichkeiten eingeschränkt werden.The acceptance of commands by a system component can be done via Configuration on commands from specific stations (identified by their Source address). Together with the network address (if available) and with the digital signature you can transfer the command restrict selected stations, creating opportunities for abuse be restricted.

Das Standardelement <poll< kann dazu verwendet werden, einen Geräte- oder Anwendungszustand abzufragen. Eine Abfrage-Transaktion ist ähnlich einer Kommando-Transaktion. Wenn <poll< als leeres Element verwendet wird, enthält das Antwortdatagramm eine vollständige Datenstruktur des abgefragten Geräts bzw. der abgefragten Anwendung. <poll< kann jedoch auch dazu benutzt werden, bestimmte Unterelemente gezielt abzufragen. Die folgende Beispiel-Transaktion veranschaulicht den Inhalt von Datagrammen, mit denen eine DS ("erp") den Zustand einer AK ("ramp") abfragt:
The standard element <poll <can be used to query a device or application status. A query transaction is similar to a command transaction. If <poll <is used as an empty element, the response datagram contains a complete data structure of the queried device or application. However, <poll <can also be used to query specific sub-elements. The following example transaction illustrates the content of datagrams with which a DS ("erp") queries the status of an AK ("ramp"):

Die folgende Beispiel-Transaktion zeigt, wie eine DS den Inhalt eines bestimmten Unterelements abfragen kann:
The following example transaction shows how a DS can query the content of a specific sub-element:

Aktive TransaktionenActive transactions

Aktive Transaktionen werden spontan von einer AK initiiert. Die Ausgabe erfolgt zyklisch, bei Zustandsänderung oder beim Eintreffen bestimmter Bedingungen. In bevorzugten Implementierungen können aktive Transaktionen (speziell solche, die durch Zustandsänderungen ausgelöst werden) durch die Verwendung von Quittungen gegen Datenverlust geschützt werden.Active transactions are initiated spontaneously by an AK. The edition takes place cyclically, when the state changes or when certain ones arrive Conditions. In preferred implementations, active transactions (especially those that are triggered by changes in state) by the Protect receipts against data loss.

Bei einer aktiven zyklischen Datenausgabe kann eine AK Datagramme zyklisch in vordefinierten Zeitintervallen (zum Beispiel jede Sekunde) absenden. In vielen Situationen wird allerdings die aktive Ausgabe bei Zustandsänderungen vorzuziehen sein, da sie die Netzwerklast reduziert und die Programmierung der DS vereinfacht.With an active cyclic data output an AK can use datagrams Send cyclically at predefined time intervals (e.g. every second). In In many situations, however, the active output when the status changes be preferred because it reduces network load and programming the DS simplified.

Bei einer aktiven Datenausgabe bei Zustandsänderungen kann eine AK ein Datagramm im Fall eines Zustandswechsels absenden. Ausserdem kann der aktuelle Zustand der AK beim Verbindungsaufbau oder beim Einschalten des Geräts (für verbindungslose Übertragungskanäle) gesendet werden. Aktive Datenausgabe bei Zustandsänderungen ermöglicht eine erhebliche Reduktion der Komplexität von Softwareanwendungen, die die Daten auswerten, und trägt ausserdem dazu bei, die Netzwerklast zu reduzieren. Für verbindungslose oder ungesicherte Übertragungskanäle können Quittungen benutzt werden, um Datenverluste zu vermeiden, die sonst zu schwerwiegenden Störungen führen könnten. If there is an active data output when there are changes in status, an AK can be activated Send datagram in case of a change of state. In addition, the current Status of the AK when establishing a connection or when switching on the device (for connectionless transmission channels) are sent. Active data output at State changes allow a significant reduction in the complexity of Software applications that evaluate the data and also helps the Reduce network load. For connectionless or unsecured Acknowledgment channels can be used to prevent data loss avoid that could otherwise lead to serious malfunctions.  

Bei der aktiven Datenausgabe beim Eintreten bestimmter Bedingungen (Alarmierung) kann eine AK ein Datagramm abschicken, wenn eine oder mehrere Bedingungen erfüllt sind. Die Bedingungen können einfach oder komplex sein.With active data output when certain conditions occur (Alerting) an AK can send a datagram if one or more Conditions are met. The conditions can be simple or complex.

In bevorzugten Implementierungen können aktive Transaktionen von der DS quittiert werden, um zu verhindern, dass Datagramme nicht verloren gehen, speziell wenn nicht fehlerkorrigierende Übertragungskanäle wie UDP verwendet werden. Im Quittungsbetrieb wartet eine AK auf eine Quittung für jedes Datagramm, bevor das nächste Datagramm übertragen wird. Eine Quittung kann ein leeres Wurzelelement mit der Sequenznummer des empfangenen Datagramms sein. Alternativ können die Standardelemente <ack< und <nak< verwendet werden. Der Vorteil hiervon ist, dass damit auch negative Quittungen möglich sind, wodurch eine Transaktion bei einem gestörten Übertragungskanal beschleunigt wird (der Sender muss nicht erst bis zum Ablauf seines Timeouts warten). Die folgende Transaktion veranschaulicht den Quittungsbetrieb:
In preferred implementations, active transactions can be acknowledged by the DS to prevent datagrams from being lost, especially if non-error correcting transmission channels such as UDP are used. In acknowledgment mode, an AK waits for an acknowledgment for each datagram before the next datagram is transmitted. An acknowledgment can be an empty root element with the sequence number of the received datagram. Alternatively, the standard elements <ack <and <nak <can be used. The advantage of this is that negative acknowledgments are also possible, which speeds up a transaction in the event of a faulty transmission channel (the sender does not have to wait until his timeout expires). The following transaction illustrates the receipt operation:

Bei Verwendung fehlererkennender Übertragungskanäle wie UDP braucht nicht unbedingt ein Prüfsummenattribut verwendet zu werden. Prüfsummen werden vorzugsweise auf nicht fehlergesicherten Übertragungskanälen wie seriellen Asynchronschnittstellen verwendet.When using error-detecting transmission channels such as UDP not necessarily a checksum attribute to be used. Checksums preferably on non-error-proof transmission channels such as serial Asynchronous interfaces used.

Wenn die datenerzeugende Station innerhalb einer vordefinierten Zeit (Timeout) keine Quittung erhält, kann das letzte Datagramm erneut übertragen werden, bis eine Quittung empfangen wird oder eine vordefinierte maximale Zahl von Wiederholungen erreicht ist. Keine Folgedatagramme sollten übertragen werden, bevor eine gültige Quittung empfangen wurde. If the data generating station within a predefined time (Timeout) does not receive an acknowledgment, the last datagram can be retransmitted until an acknowledgment is received or a predefined maximum number of Repetitions is reached. No subsequent datagrams should be transmitted before a valid receipt has been received.  

Quittungen sind besonders sinnvoll in Verbindung mit der aktiven Datenausgabe bei Zustandswechsel. Die aktive Datenausgabe bei Zustandswechsel ist vorteilhaft, da sie die Programmierung vereinfacht und die Netzlast reduziert. Diese Übertragungsart kann jedoch zu fatalen Konsequenzen führen, wenn Datenverluste unbemerkt bleiben. Der Quittungsbetrieb kann benutzt werden, um solche Datenverluste bei nicht fehlerkorrigierenden Übertragungskanälen wie UDP zu verhindern.Receipts are particularly useful in connection with the active one Data output when the state changes. The active data output when the status changes advantageous because it simplifies programming and reduces the network load. This However, the type of transmission can lead to fatal consequences if data is lost remain unnoticed. The receipt operation can be used to such Data loss with non-error-correcting transmission channels such as UDP prevent.

Anmeldung und Abmeldung (subscribe/unsubscribe)Registration and deregistration (subscribe / unsubscribe)

Die Zieladresse für aktive Transaktionen kann typischerweise auf zwei Arten festgelegt werden: (1) fest konfiguriert innerhalb eines Gerätes oder einer Anwendung, (2) dynamisch durch Anmeldung und Abmeldung. Eine dynamische Anmeldung und Abmeldung ist insbesondere sinnvoll für verbindungslose Übertragungskanäle wie UDP. Sie kann mit den Standardelementen "subscribe" und "unsubscribe" implementiert werden. Eine Station, die sich bei einem ADD-Gerät mit "subscribe" anmeldet, erhält Ausgaben von diesem Gerät je nach der vorkonligurierten Betriebsart (zum Beispiel aktive zyklische Datenausgabe), bis sie sich mit "unsubscribe" wieder abmeldet.The destination address for active transactions can typically be two ways to be defined: (1) permanently configured within a device or a Application, (2) dynamic by signing in and out. A dynamic one Registration and deregistration is particularly useful for connectionless Transmission channels like UDP. You can use the standard elements "subscribe" and "unsubscribe" can be implemented. A station that deals with an ADD device "subscribe" will receive output from this device depending on the preconfigured operating mode (for example active cyclic data output) until it unsubscribes with "unsubscribe".

An- und Abmeldung können ADD-Kommandos sein. Eine An- und Abmeldung kann von der AK quittiert werden. Die folgenden Attribute können bei der Anmeldung verwendet werden:
<!ATTLIST subscribe
trigger (cyclic|delta|alarm) #IMPLIED
ack (yes|no) #IMPLIED<
Registration and deregistration can be ADD commands. Registration and deregistration can be acknowledged by the AK. The following attributes can be used when logging in:
<! ATTLIST subscribe
trigger (cyclic | delta | alarm) #IMPLIED
ack (yes | no) #IMPLIED <

Das Attribut "trigger" legt fest, ob die Ausgabe zyklisch (cyclic), bei Zustandsänderungen (delta) oder beim Eintreffen bestimmter Bedingungen (alarm) erfolgt. Das Attribut "ack" legt fest, ob Quittungen gesendet werden oder nicht.The "trigger" attribute determines whether the output is cyclic State changes (delta) or when certain conditions occur (alarm) he follows. The "ack" attribute specifies whether acknowledgments are sent or not.

Einige Implementierungen der vorliegenden Erfindung können An- und Abmeldetransaktionen verwenden. Eine beispielhafte An- und Abmeldetransaktion kann wie folgt aussehen:
Some implementations of the present invention can use logon and logoff transactions. An exemplary registration and deregistration transaction can look like this:

In diesem Beispiel meldet sich eine DS bei einer Waage ("ramp2") an, die daraufhin zyklisch (jede Sekunde) Datagramme an die DS sendet, bis sich die DS mit "unsubscribe" wieder abmeldet. An- und Abmeldung werden von der AK quittiert.In this example, a DS registers with a scale ("ramp2"), which then cyclically (every second) sends datagrams to the DS until the DS joins unsubscribe again. Registration and deregistration will be acknowledged by the AK.

In einigen Fällen kann die DS eine Transaktionsbetriebsart wählen, der sich von der voreingestellten Betriebsart unterscheidet. Dies geschieht dadurch, dass Werte für die Attribute "trigger" und "ack" gesetzt werden. Die folgende Ablauftabelle stellt eine beispielhafte Transaktion dar, die veranschaulicht, wie eine Einheit sich für aktive Datenausgabe bei Zustandswechsel mit Bestätigungen anmelden kann:
In some cases, the DS can choose a transaction mode that is different from the default mode. This is done by setting values for the "trigger" and "ack" attributes. The following sequence table shows an exemplary transaction that illustrates how a unit can register for active data output with changes of status with confirmations:

Hier meldet sich die DS für aktive Datenausgabe bei Zustandswechsel mit Bestätigungen an. Die AK beginnt die Ausgabe mit der Sequenznummer 0. Das Datagramm wird von der DS quittiert. Um 09:23:13 Uhr gibt es keine Übertragung, da sich der Gerätezustand (in diesem Fall das gemessene Gewicht) nicht geändert hat. Die nächste Übertragung erfolgt um 09:23:14 Uhr, da sich das Gewicht von 123.2 auf 123.9 Kilogramm verändert hat. Wieder wird das Datagramm quittiert, und anschliessend meldet sich die DS ab.Here the DS reports for active data output when the status changes Confirmations. The AK begins the output with the sequence number 0. Das Datagram is acknowledged by the DS. At 9:23:13 a.m. there is no broadcast, since the device status (in this case the measured weight) has not changed. The next transmission takes place at 09:23:14, as the weight changes from 123.2 to Changed 123.9 kilograms. The datagram is acknowledged again, and the DS then logs off.

Bei der Anmeldung kann auch ein gültiger Wertebereich für ein bestimmtes Element festgelegt werden. Dies ist sinnvoll für Alarmierung, wobei unterschiedliche Anwendungen unterschiedliche Schwellwerte definieren können. Im Alarmierungsbetrieb wird eine Ausgabe ausgelöst, wenn Werte ausserhalb des zulässigen Bereichs fallen. Die Ausgabe wird bei Zustandswechseln fortgesetzt, bis der Wert des betreffenden Elements wieder innerhalb des gültigen Bereichs liegt, oder die Ausgabe kann zyklisch für eine vordefinierte Zeit fortgesetzt werden. Zur Definition eines gültigen Wertebereichs können die Standardelemente "min", "max", "equal" und "unequal" benutzt werden.When registering, you can also enter a valid range of values for a specific one Element. This is useful for alerting, being different Applications can define different threshold values. in the An alert is triggered if values outside the  allowable range fall. The output continues when the state changes until the value of the element concerned is again within the valid range, or the output can be continued cyclically for a predefined time. For The standard elements "min", "max", "equal" and "unequal" are used.

Die folgenden Beispiele erläutern (sowohl in FactoryXML als auch in UTV) Datagramme zur Anmeldung, die in unterschiedlichen Situationen benutzt werden können. Im folgenden Beispiel meldet sich eine DS für Alarmierung an, falls der Wert des Elements "temperature" den Wert 110.9 überschreitet oder den Wert 34.2 unterschreitet:
The following examples explain (both in FactoryXML and in UTV) datagrams for registration that can be used in different situations. In the following example, a DS registers for an alarm if the value of the "temperature" element exceeds 110.9 or falls below 34.2:

Das folgende Beispiel zeigt, wie sich eine Anwendung für Alarmierung anmelden kann, wenn der Wert des Elements "gate5" auf den Wert "Open" wechselt:
The following example shows how an alarm application can register when the value of the "gate5" element changes to the "Open" value:

Das nächste Beispiel zeigt, wie sich eine Anwendung für Alarmierung anmelden kann, wenn das Element "color" einen anderen Wert als "green" einnimmt:
The next example shows how an application can register for alarms if the "color" element takes a value other than "green":

Die Definition von Alarmbedingungen kann die Elemente "max", "min", "equal" und "unequal" verwenden. Das Vermischen dieser Elemente (mit Ausnahme von "max" und "min") innerhalb einer Bedingungsdefinition ist unzulässig und unsinnig. "max" und "min" können zusammen oder einzeln benutzt werden.The definition of alarm conditions can include the elements "max", "min", Use "equal" and "unequal". Mixing these elements (except of "max" and "min") within a condition definition is not permitted and nonsensical. "max" and "min" can be used together or individually.

ÜbertragungskanäleTransmission channels

Keines der Datenformate, die in der vorliegenden Patentschrift beschrieben sind, ist an ein bestimmtes Transportmedium oder -protokoll gebunden. Dennoch werden in der Praxis bevorzugt Implementierungen mit TCP/IP oder verwandten Internet-Protokollen anzutreffen sein.None of the data formats described in the present specification are bound to a specific transport medium or protocol. Yet are preferred in practice implementations with TCP / IP or related Internet protocols can be found.

Implementierungen der vorliegenden Erfindung können mehrere unterschiedliche Übertragungskanäle verwenden, einschliesslich einfacher Transportprotokolle (ISO/OSI-Schicht 4) und Anwendungsprotokolle (ISO/OSI- Schicht 7). In der Praxis werden bevorzugt Implementierungen mit Transportprotokollen anzutreffen sein, da sie flexiblere und effizientere Möglichkeiten des Datenaustauschs erlauben.Implementations of the present invention can be multiple use different transmission channels, including simple ones Transport protocols (ISO / OSI layer 4) and application protocols (ISO / OSI- Layer 7). In practice, implementations are preferred Transport protocols can be found because they are more flexible and efficient Allow data exchange options.

In einer Form der Implementierung fungiert die AK als TCP Server und wartet auf Verbindungsanfragen. Eine DS kann eine Verbindung als TCP Client aufbauen, um Kommandos an die AK zu senden und/oder um Daten von der AK zu empfangen. Diese Art des Übertragungskanals kann alle FactoryXML-Transaktionen unterstützen. Ein Quittungsbetrieb ist hier allerdings nicht sinnvoll, da TCP bereits fehlerkorrigierend ist. Über diesen Kanal kann auch eine An- und Abmeldung (subscribe/unsubscribe) erfolgen, wobei die AK aktiv eine TCP-Client-Verbindung zur DS aufbaut, ein Datagramm übermittelt, und die TCP-Verbindung wieder schliesst.In one form of implementation, the AK acts as a TCP server and waits on connection requests. A DS can establish a connection as a TCP client, to send commands to the AK and / or to receive data from the AK. This type of transmission channel can support all FactoryXML transactions. Acknowledgment operation does not make sense here, since TCP already is error correcting. You can also use this channel to log in and out (subscribe / unsubscribe), with the AK actively using a TCP client connection  to the DS, transmits a datagram, and the TCP connection again closes.

In einer anderen Implementierung kann die AK als TCP Client fungieren und Verbindungen zu einem vorkonfigurierten TCP Server aufbauen, um Datagramme zu übermitteln. Als Alternative zu fest konfigurierten Verbindungen können auch Verbindungen zu DS aufgebaut werden, die sich zuvor über einen TCP-Serverkanal bei der AK angemeldet haben (subscribe). Dieser Übertragungskanal ist in erster Linie sinnvoll für aktive (spontane) Transaktionen. Die Verwendung von Bestätigungsdatagrammen ist auf diesem Übertragungskanal nicht sinnvoll, da TCP bereits fehlerkorrigierend ist.In another implementation, the AK can act as a TCP client and Establish connections to a preconfigured TCP server to send datagrams to transfer. As an alternative to permanently configured connections, too Connections to DS are established that were previously via a TCP server channel have registered with the AK (subscribe). This transmission channel is the first Line useful for active (spontaneous) transactions. The use of Confirmation datagrams do not make sense on this transmission channel since TCP is already error correcting.

Anstelle von TCP kann auch UDP verwendet werden. UDP hat gegenüber TCP einige Vorteile, unter anderem bessere Performance durch geringeren Protokoll- Overhead, paketorientierte gegenüber datenstromorientierter Übertragung und Unterstützung von Broadcasts. Auf der anderen Seite ist UDP zwar fehlererkennend, aber nicht fehlerkorrigierend, so dass Paketverluste als Folge von Übertragungsfehlern auftreten können. Ausserdem können UDP-Datagramme beim Empfänger in der falschen Reihenfolge eintreffen. FactoryXML löst diese Probleme durch die Verwendung von Sequenznummern. Sequenznummern können dazu verwendet werden, Datenverluste und Sequenzfehler zu erkennen.Instead of TCP, UDP can also be used. UDP has opposite TCP has some advantages, including better performance through lower protocol Overhead, packet-oriented versus stream-oriented transmission and Broadcast support. On the other hand, UDP is error-detecting, but not error correcting, so packet loss as a result of Transmission errors can occur. In addition, UDP datagrams can Arrive in the wrong order. FactoryXML solves these problems through the use of sequence numbers. Sequence numbers can do this used to detect data loss and sequence errors.

Datenverluste sind im Abfragebetrieb ("poll") möglicherweise nicht kritisch, da die DS das Ausbleiben einer Antwort auf ihre Abfrage erkennt und die Abfrage darauf hin erneut starten kann. Auch bei der aktiven (spontanen) zyklischen Ausgabe von Daten ist der Verlust einzelner Datenpakete normalerweise unkritisch, da ein "Update" der Daten automatisch im nächsten Zyklus erfolgt. Werden bei der spontanen Datenausgabe nur Änderungsdaten (oder Alarmierungsdaten) übertragen, empfiehlt sich dagegen die Verwendung eines anderen Transportprotokolls als UDP oder die Benutzung des Quittungsbetriebs. In dieser Betriebsart ist der mit den Quittungen verbundene Protokolloverhead für gewöhnlich akzeptabel, da eine Änderung der Daten, die zum Absenden eines Datagramms führt, vergleichsweise selten in den Betriebsarten auftritt, in denen dieses Verfahren normalerweise benutzt wird. Data loss may not be critical in polling operations, because the DS recognizes the lack of a response to its query and the query can then start again. Even with active (spontaneous) cyclical output of data, the loss of individual data packets is usually not critical, since a The data is automatically updated in the next cycle. Are at the spontaneous data output only transfer change data (or alarm data), however, it is recommended to use a transport protocol other than UDP or the use of the receipt mode. In this mode, the one with the Receipts associated with protocol overhead are usually acceptable since one Comparatively changing the data that leads to the sending of a datagram rarely occurs in the modes in which this method is normally used becomes.  

In Verbindung mit UDP sind die Anmeldung und Abmeldung für spontane Datagramme (subscribe/unsubscribe) besonders sinnvoll. Eine DS kann sich als UDP Client bei einer AK, die als UDP Server fungiert, anmelden (subscribe). Nach der Anmeldung werden die Rollen vertauscht und die AK sendet Änderungsdaten an die DS, die dann UDP-Datagramme empfängt.In connection with UDP, the login and logout are for spontaneous Datagrams (subscribe / unsubscribe) are particularly useful. A DS can be called UDP Register the client with an AK that acts as a UDP server (subscribe). After The roles are swapped over and the AK sends change data to DS, which then receives UDP datagrams.

Alternativ zu TCP und UDP können auch andere Internet-Protokolle wie zum Beispiel T/TCP (TCP for Transactions, siehe RFC 1379 und RFC 1644) verwendet werden. T/TCP bietet einen sehr viel schnelleren Verbindungsauf- und -abbau als TCP und ist von der Performance her mit UDP vergleichbar, ist jedoch fehlerkorrigierend wie TCP. Im Hinblick auf die vorliegende Erfindung ist T/TCP eine bevorzugte schnellere Alternative zu TCP.As an alternative to TCP and UDP, other Internet protocols such as Example T / TCP (TCP for Transactions, see RFC 1379 and RFC 1644) used become. T / TCP offers a much faster connection and disconnection than TCP and is comparable in performance to UDP, but is error correcting like TCP. In view of the present invention is T / TCP a preferred faster alternative to TCP.

Sowohl FactoryXML als auch UTV können beliebige datenstromorientierte Transportkanäle nutzen, wie zum Beispiel serielle Asynchronschnittstellen, ISDN oder USB. In der Praxis werden Implementierungen mit fehlerkorrigierenden Protokollen bevorzugt. Bei der Verwendung von fehlererkennenden, aber nicht fehlerkorrigierenden Protokollen können die in FactoryXML vorgesehenen Quittungen verwendet werden, um Datenverluste zu vermeiden. Für UTV sind fehlerkorrigierende, paketorientierte Übertragungskanäle erforderlich.Both FactoryXML and UTV can be any data stream oriented Use transport channels, such as serial asynchronous interfaces, ISDN or USB. In practice, implementations are used to correct errors Protocols preferred. When using error-detecting, but not error-correcting protocols can be provided in FactoryXML Receipts are used to avoid data loss. For UTV are error-correcting, packet-oriented transmission channels required.

Implementienmgen der vorliegenden Erfindung können auch HTTP als Übertragungskanal nutzen. Der Vorteil von HTTP ist die grosse Anzahl von installierten HTTP Servern und Clients (d. h. Web-Browsern) weltweit. Der folgende Abschnitt beschreibt unterschiedliche Arten der Benutzung von HTTP zusammen mit der vorliegenden Erfindung, stellt dabei jedoch keine vollständige Liste möglicher Impementierungen dar.Implementations of the present invention can also be used as HTTP Use transmission channel. The advantage of HTTP is the large number of installed HTTP servers and clients (i.e. web browsers) worldwide. The following Section describes different ways of using HTTP together with of the present invention, however, does not provide a complete list of possible ones Implementations.

HTTP Server, POST-MethodeHTTP server, POST method

Ein HTTP-POST-Befehl einer DS (der HTTP Client) kann benutzt werden, um ein FactoryXML-Datagramm (zum Beispiel mit einem <set<- oder <poll<- Datagramm) zu einer AK (dem HTTP Server) zu schicken. Die AK kann mit einem FactoryXML-Datagramm antworten. Eine weitergehende Datenausgabe der AK ist nur möglich, wenn die unterliegende TCP-Verbindung offen gehalten wird. An HTTP-POST command from a DS (the HTTP client) can be used a FactoryXML datagram (for example with a <set <- or <poll <- Datagram) to an AK (the HTTP server). The AK can with one Answer FactoryXML datagram. A further data output of the AK is only possible if the underlying TCP connection is kept open.  

HTTP Server, GET-MethodeHTTP server, GET method

Eine HTTP-GET-Anfrage (zum Beispiel mit einem "set"- oder "poll"- Standardelement) kann von einer DS ausgelöst werden, wobei ein UTV-Datagramm innerhalb des URI transportiert wird. Beispiele hierfür sind die URIs "http://lightswitch5?set.actuator.value = on"und "http://themometer2?poll.sensor.unit". Die AK, die als HTTP Server fungiert, kann mit einem FactoryXML-Datagramm antworten. Weitere Ausgaben der AK sind möglich, sofern die unterliegende TCP- Verbindung geöffnet bleibt.An HTTP GET request (for example with a "set" or "poll" - Standard element) can be triggered by a DS, being a UTV datagram is transported within the URI. Examples of this are the URIs "http: // lightswitch5? set.actuator.value = on" and "http: // themometer2? poll.sensor.unit". The AK, which acts as an HTTP server, can use a FactoryXML datagram reply. Further issues of the AK are possible, provided the underlying TCP Connection remains open.

HTTP Client, POST-MethodeHTTP client, POST method

Dieser Übertragungskanal ist sinnvoll für Anwendungen, bei denen eine AK Daten durch Ausfüllen eines "Web-Formulars" übermitteln soll, oder wo einfach die weit verbreitete CGI-Technik genutzt werden soll, um betriebswirtschaftlichen Anwendungen Automatisierungsdaten zur Verfügung zu stellen. Der HTTP Server kann zum Beispiel eine betriebswirtschaftliche Anwendung sein, die so konfiguriert ist, dass sie die Sendedaten einer AK (zum Beispiel ein UTV-Datagramm) mit einem CGI-Script verarbeiten kann. Die AK (der HTTP Client) muss in geeigneter Form für aktive Datenausgabe konfiguriert sein, in der Regel für Ausgaben bei Zustandswechsel oder beim Eintreten vordefinierter Bedingungen.This transmission channel is useful for applications in which an AK Submit data by filling out a "web form", or where simply the Widely used CGI technology is to be used for business Applications to provide automation data. The HTTP server can be, for example, a business application that configures is that it transmits the transmission data of an AK (for example a UTV datagram) with a Can process CGI script. The AK (the HTTP client) must be suitable for active data output must be configured, usually for output at Change of state or when predefined conditions occur.

HTTP Client, GET-MethodeHTTP client, GET method

Eine AK meldet sich als HTTP Client bei einer DS (dem HTTP Server) an und übermittelt ein UTV-Datagramm als Teil des URI. Ein Beispiel hierfür wäre der URI "http://server?src = thermometer2 = 23.442 = Celsius". Der HTTP Server kann darauf mit einem FactoryXML-Datagramm antworten, welches von einem CGI- Script generiert wird. Dieser Übertragungskanal ist sinnvoll für aktive Datenausgabe bei Zustandswechsel oder beim Eintreten vordefinierter Kriterien.An AK registers as an HTTP client with a DS (the HTTP server) and transmits a UTV datagram as part of the URI. An example of this would be the URI "http: // server? src = thermometer2 = 23,442 = Celsius". The HTTP server can respond with a FactoryXML datagram, which is generated by a CGI Script is generated. This transmission channel is useful for active data output in the event of a change of state or the occurrence of predefined criteria.

Email kann als Übertragungskanal benutzt werden und ist besonders sinnvoll für Alarmierung und Fernwartung. Email-Versand kann für aktive Datenausgabe einer AK genutzt werden. Die AK kann ein UTV-Datagramm zu einer vorkonfigurierten Email-Adresse senden oder an einen entfernten Benutzer, der sich per "subscribe" angemeldet hat. Email-Empfang kann für Fernkonfiguration verwendet werden. Ein entfernter Administrator kann Befehle in UTV- (oder FactoryXML-) Codierung absenden, die mit dem Internet-Email-Protokoll übertragen werden können. Email- Empfang kann ausserdem für die Anmeldung ("subscribe") für aktive Datenausgabe verwendet werden, wobei die aktive Datenausgabe dann an die Email-Adresse des entfernten Administrators per Email-Versand geschickt werden kann. Kommandos könne sowohl in das Betreff-Feld der Email als auch in den Email-Inhalt geschrieben werden.Email can be used as a transmission channel and is particularly useful for alarming and remote maintenance. Emailing can be used for active data output AK can be used. The AK can preconfigure a UTV datagram Send email address or to a remote user who "subscribe" has registered. Email reception can be used for remote configuration. On  remote administrator can use commands in UTV (or FactoryXML) encoding send that can be transmitted using the Internet email protocol. E-mail- Reception can also be used for registration ("subscribe") for active data output are used, the active data output then to the email address of the remote administrators can be sent via email. Commands can be written both in the subject field of the email and in the email content become.

Andere Implementierungen der vorliegenden Erfindung verwenden drahtlose Übertragungskanäle wie SMS und WAP. Handys haben eine besondere praktische Bedeutung für Alarmierung, Fernwartung und Fernkonfiguration. Praktisch jeder Wartungsingenieur im Aussendienst verfügt über ein Handy. Ausserdem sind Handies in der Lage, ASCII-Textnachrichten (SMS) zu empfangen und zu senden und dienen als eingeschränkte Zugangsmöglichkeit zum Internet per WAP. Beide Möglichkeiten machen sie zu geeigneten und attraktiven Terminals für ADD.Other implementations of the present invention use wireless Transmission channels like SMS and WAP. Cell phones have a special practical Significance for alarming, remote maintenance and remote configuration. Virtually everyone Maintenance engineer in the field has a cell phone. Also are cell phones able to receive and send ASCII text messages (SMS) and serve as a restricted access to the Internet via WAP. Both options make them suitable and attractive terminals for ADD.

SMS-Nachrichten sind kurze Textnachrichten (maximal 160 Zeichen) die auf dem Handy-Display ausgegeben werden können oder auf der Tastatur des Handies eingegeben werden können. Die aktive Datenausgabe einer AK aufgrund von Zustandswechseln oder aufgrund des Eintretens vordefinierter Bedingungen kann UTV-codiert zu einem oder mehreren Handys per SMS geschickt werden. Je nach SMS Service Center kann es unterschiedliche Zugangsmöglichkeiten geben, um in das Funknetzwerk zu gelangen. Die Zugangsmöglichkeiten umfassen normalerweise Email, Analogmodem, ISDN, und GSM-Modem; alle diese Möglichkeiten können auf einfache Weise von ADD-Geräten unterstützt werden. Für alle Zugangsmöglichkeiten zum SMS Service Center ausser Email kann es wünschenswert sein, ein SMS- Netzwerk-Gateway zu installieren, welches mehrere Anwendungen bzw. Geräte innerhalb des Netzwerks benutzen können. AK können per Handy durch Verwendung von SMS-Nachrichten manipuliert werden.SMS messages are short text messages (up to 160 characters) can be output on the mobile phone display or on the keyboard of the mobile phone can be entered. The active data output of an AK due to Change of state or due to the occurrence of predefined conditions UTV coded to be sent to one or more cell phones via SMS. Depending on SMS Service Center can have different access options to get to to get the radio network. The access options usually include Email, analog modem, ISDN, and GSM modem; all of these options can be found on easily supported by ADD devices. For all access options to the SMS Service Center besides email it may be desirable to send an SMS Install network gateway, which has multiple applications or devices can use within the network. AK can be used by mobile phone are manipulated by SMS messages.

Einige Handies können bereits im Internet "Browsen", indem sie das Wireless Application Protocol (WAP) für Datenübertragung unterstützen und die Wireless Markup Language (WML) zur Darstellung der Daten. WML ist eine Untermenge von HTML. WAP ermöglicht die Abfrage von ADD-Geräten durch "Browsen" durch Menüs und Hotlinks und kann für Ferndiagnose und Fernwartung eingesetzt werden. Some cell phones can already "browse" the Internet by using the wireless Application Protocol (WAP) for data transmission support and wireless Markup Language (WML) to display the data. WML is a subset of HTML. WAP enables the querying of ADD devices by "browsing" Menus and hotlinks and can be used for remote diagnosis and remote maintenance.  

WAP ist jedoch ungeeignet für Alarmierung und aktive Datenausgabe in einigen Implementierungen, da ein Peripheriegerät per WAP möglicherweise nicht aktiv an ein Handy senden kann.However, WAP is unsuitable for alarming and active data output in some Implementations because a peripheral device may not be active via WAP can send a cell phone.

Die vorstehenden Beispiele wurden geschildert, um bestimmte Implementierungen der Erfindung zu erläutern. Technisch kundige Leser sollten die in den Beispielen dargestellten Techniken bitte als solche verstehen, die der Erfinder als gut funktionierend für die praktische Umsetzung der Erfindung erkannt hat und die deshalb als bevorzugte Verfahrensweisen bei ihrer praktischen Umsetzung betrachtet werden können. Technisch kundige Leser sollten jedoch auch verstehen, dass zahlreiche Änderungen innerhalb bestimmter hier dargelegter Implementierungen der Erfindung vorgenommen werden können, die dennoch zu einem gleichen oder ähnlichen Resultat führen, ohne vom Geist und vom Geltungsbereich der Erfindung abzuweichen.The above examples have been outlined to determine certain Explain implementations of the invention. Technically knowledgeable readers should Please understand the techniques presented in the examples as those of the inventor recognized as working well for the practical implementation of the invention and the therefore viewed as preferred practices in their practical implementation can be. However, technically knowledgeable readers should also understand that numerous changes within certain implementations of the Invention can be made that are still the same or lead to similar results without deviating from the spirit and scope of the invention to deviate.

Claims (26)

1. Ein System zur Verteilung von Automatisierungsdaten (ADD), bestehend aus:
einer datenverarbeitenden Station (DS) mit einer Netzwerkadresse;
einer Automatisierungskomponente (AK) mit einer Netzwerkadresse und funktional verbunden mit der DS;
in dem besagte DS und besagte AK so konfiguriert sind, dass sie mittels einer oder mehrerer Transaktionen miteinander kommunizieren, wobei besagte Transaktion aus einem Datagramm besteht, wobei das Datagramm vollständig codiert ist und eine Beschreibung in Klarschrift enthält.
1. A system for the distribution of automation data (ADD), consisting of:
a data processing station (DS) with a network address;
an automation component (AK) with a network address and functionally connected to the DS;
in which said DS and AK are configured to communicate with one another by means of one or more transactions, said transaction consisting of a datagram, the datagram being fully encoded and containing a description in plain text.
2. Das ADD-System nach Anspruch 1, in dem besagtes Datagramm des weiteren ein Quell-Attribut zur Kennzeichnung der Netzwerkadresse der Quelle des Datagramms enthält.2. The ADD system of claim 1, further said in said datagram a source attribute to identify the network address of the source of the Contains datagrams. 3. Das ADD-System nach Anspruch 1, in dem besagtes Datagramm des weiteren ein Ziel-Attribut enthält, welches die Netzwerkadresse der intendierten Datensenke für dieses Datagramm enthält.3. The ADD system of claim 1, in said datagram further a target attribute containing the network address of the intended data sink for this datagram contains. 4. Das ADD-System nach Anspruch 1, in dem besagtes Datagramm des weiteren enthält:
ein Wert-Attribut, sowie
ein Einheit-Attribut, welches die von besagtem Wert-Attribut verwendete Einheit angibt.
4. The ADD system of claim 1, wherein said datagram further includes:
a value attribute, as well
a unit attribute that specifies the unit used by said value attribute.
5. Das ADD-System nach Anspruch 1, in dem besagtes Datagramm des weiteren ein oder mehrere Sichheitsattribute enthält.5. The ADD system of claim 1, in said datagram further contains one or more security attributes. 6. Das ADD-System nach Anspruch 5. in dem mindestens eines der besagten Sicherheitsattribute aus einem Attribut mit einer digitalen Signatur besteht. 6. The ADD system of claim 5 in which at least one of said Security attributes consist of an attribute with a digital signature.   7. Das ADD-System nach Anspruch 5. in dem mindestens eines der besagten Sicherheitsattribute aus einem Gültigkeitsende-Attribut besteht, welches einen Zeitpunkt angibt, nach welchem besagtes Datagramm ungültig wird.7. The ADD system of claim 5 in which at least one of said Security attributes consist of an end-of-validity attribute, which is a Indicates the time after which said datagram becomes invalid. 8. Das ADD-System nach Anspruch 1, in dem besagtes Datagramm des weiteren ein Zeitstempel-Attribut beinhaltet, welches den Zeitpunkt angibt, an dem besagtes Datagramm erzeugt wurde.8. The ADD system of claim 1, further said in said datagram contains a timestamp attribute which indicates the time at which said Datagram was created. 9. Das ADD-System nach Anspruch 1, in dem besagtes Datagramm des weiteren ein oder mehrere Attribute zur Fehlersicherung beinhaltet.9. The ADD system of claim 1, in said datagram further contains one or more attributes for error protection. 10. Das ADD-System nach Anspruch 9, in dem besagtes Datagramm des weiteren ein Prüfsummen-Attribut umfasst, welches Redundanzinformation des Inhalts von besagtem Datagramm enthält.10. The ADD system of claim 9, further comprising said datagram a checksum attribute which includes redundancy information of the content of contains said datagram. 11. Das ADD-System nach Anspruch 9, in dem besagtes Datagramm des weiteren ein Sequenznummer-Attribut enthält.11. The ADD system of claim 9, further said in said datagram contains a sequence number attribute. 12. Das ADD-System nach Anspruch 1, welches des weiteren ein Profil enthält, welches die in besagtem Datagramm zulässigen Elemente, Parameter und Attribute spezifiziert.12. The ADD system of claim 1, which further includes a profile, which are the permissible elements, parameters and attributes in said datagram specified. 13. Das ADD-System nach Anspruch 12, in welchem besagtes Profil ein Datagramm zur Verwendung mit einer bestimmten Art AK spezifiziert.13. The ADD system of claim 12, in which said profile Datagram specified for use with a particular type of AK. 14. Das ADD-System nach Anspruch 1, in welchem besagtes Datagramm einen Zustand besagter AK repräsentiert.14. The ADD system of claim 1, wherein said datagram is a State of said AK represents. 15. Das ADD-System nach Anspruch 1, in welchem besagtes Datagramm ein Kommando von besagter DS an besagte AK repräsentiert.15. The ADD system of claim 1, wherein said datagram is a Command from said DS to said AK represented. 16. Das ADD-System nach Anspruch 1, in dem besagte Transaktion des weiteren ein Quittungsdatagramm beinhaltet, mit dem der erfolgreiche oder nicht erfolgreiche Empfang besagten Datagramms angezeigt werden kann. 16. The ADD system of claim 1, wherein said transaction further contains a receipt datagram with which the successful or unsuccessful Receipt of said datagram can be displayed.   17. Das ADD-System nach Anspruch 1, in dem besagte Transaktion(en) eine aktive Transaktion ist.17. The ADD system of claim 1, wherein said transaction (s) is one active transaction. 18. Das ADD-System nach Anspruch 1, in dem besagte Transaktion(en) eine passive Transaktion ist.18. The ADD system of claim 1, wherein said transaction (s) is one is a passive transaction. 19. Das ADD-System nach Anspruch 1, welches des weiteren eine Koordinierungsstelle enthält, welche funktional mit besagter/besagten DS und mit besagter/besagten AK gekoppelt ist, wobei besagte Koordinierungsstelle besagten DS und AK Netzwerkadressen zuweisen kann.19. The ADD system of claim 1, further comprising a Coordination point contains which is functional with said / said DS and with said / said AK is coupled, said coordination point said DS and AK can assign network addresses. 20. Das ADD-System nach Anspruch 1, in dem besagtes Datagramm das FactoryXML-Format verwendet.20. The ADD system of claim 1, wherein said datagram is the FactoryXML format used. 21. Das ADD-System nach Anspruch 1, in dem besagtes Datagramm das UTV- Format verwendet.21. The ADD system of claim 1, wherein said datagram is the UTV Format used. 22. Ein System zur Verteilung von Automatisierungsdaten, bestehend aus:
eine Planungsebene, bestehend aus
einem Planungsnetzwerk, und einer oder mehrerer DS, die funktional mit besagtem Planungsnetzwerk gekoppelt sind;
einer Steuerungsebene, bestehend aus
einem Steuerungsnetzwerk und einer oder mehreren AK, die funktional mit besagtem Planungsnetzwerk gekoppelt sind; und
einer oder mehrerer Gateway-Einheiten, die funktional mit besagtem/n AK
und mit besagtem Planungsnetzwerk verknüpft sind,
wobei besagte Gateway-Einheit(en) dazu dienen, besagte DS darin zu unterstützen, mit besagten AK zu kommunizieren, indem sie ein oder mehrere Datagramme generieren und zu besagten AK senden, wobei die Datagramme vollständig codierte Beschreibungen in Klarschrift enthalten; und
wobei besagte AK mit besagter/n DS dadurch kommunizieren können, dass sie ein oder mehrere Datagramme durch besagte Gateway- Einheiten zu besagten DS senden können.
22. A system for the distribution of automation data, consisting of:
a planning level consisting of
a planning network, and one or more DS that are functionally coupled to said planning network;
a control level consisting of
a control network and one or more AKs that are functionally coupled to said planning network; and
one or more gateway units that functionally with said / n AK
and are linked to said planning network,
wherein said gateway unit (s) serve to assist said DS in communicating with said AK by generating and sending one or more datagrams, said datagrams containing fully encoded descriptions in plain text; and
said AK can communicate with said DS by sending one or more datagrams through said gateway units to said DS.
23. Ein Datagramm zur Verwendung in einem System zur Verteilung von Automatisierungsdaten, bestehend aus einem AK, welches funktional mit einer DS gekoppelt ist, wobei das Datagramm beinhaltet:
ein Quell-Attribut, welches die Datenquelle besagten Datagramms identifiziert, wobei besagte Datenquelle die AK oder die DS sein kann;
ein Ziel-Attribut, welches eine Datensenke besagten Datagramms identifiziert, wobei besagte Datensenke die AK oder die DS sein kann;
wobei besagtes Datagramm vollständig codiert ist.
23. A datagram for use in a system for distributing automation data, consisting of an AK, which is functionally coupled to a DS, the datagram containing:
a source attribute identifying the data source of said datagram, said data source being the AK or the DS;
a target attribute which identifies a data sink of said datagram, said data sink may be the AK or the DS;
said datagram being fully encoded.
24. Ein Verfahren zur automatisierten Datenverteilung in einem System bestehend aus einer Quelleinheit, welche funktional mit einer Zieleinheit gekoppelt ist, wobei das Verfahren beinhaltet:
eine Quelleinheit, die ein Datagramm generiert, welches aus vollständig codierten Beschreibungen in Klarschrift besteht; und
einer Zieleinheit, die besagtes Datagramm empfängt und auf den Inhalt besagten Datagramms sinnvoll antwortet.
24. A method for automated data distribution in a system consisting of a source unit which is functionally coupled to a target unit, the method comprising:
a source unit that generates a datagram consisting of fully encoded descriptions in plain text; and
a target unit that receives said datagram and replies meaningfully to the content of said datagram.
25. Das Verfahren zur automatisierten Datenübertragung nach Anspruch 24, in dem besagte Quelleinheit eine DS ist, welche ein Abfrage-Datagramm an besagte Zieleinheit (eine AK) sendet, und besagte Zieleinheit mit dem Senden eines Datagramms zu besagter Quelleinheit antwortet, wobei das Datagramm ein Wert- Attribut und ein zugehöriges Einheiten-Attribut enthält.25. The method for automated data transmission according to claim 24, in said source unit is a DS which said a query datagram to Sends target unit (an AK), and said target unit with sending one Responds to said source unit, the datagram being a value Attribute and an associated unit attribute. 26. Das Verfahren zur automatisierten Datenverteilung nach Anspruch 24, in dem des weiteren besagte Quelleinheit eine AK ist, die aktiv ein oder mehrere Datagramme generiert und besagte ein oder mehrere Datagramme an besagte Zieleinheit beim Eintreten eines vordefinierten auslösenden Ereignisses sendet.26. The method for automated data distribution according to claim 24, in which furthermore said source unit is an AK which is actively one or more Datagrams generated and said one or more datagrams to said Sends target device when a predefined triggering event occurs.
DE2001112843 2000-03-17 2001-03-16 Automation data distribution system uses coded datagram for communication between data processing station and automation component Ceased DE10112843A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US52777300A 2000-03-17 2000-03-17

Publications (1)

Publication Number Publication Date
DE10112843A1 true DE10112843A1 (en) 2001-09-27

Family

ID=24102865

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001112843 Ceased DE10112843A1 (en) 2000-03-17 2001-03-16 Automation data distribution system uses coded datagram for communication between data processing station and automation component

Country Status (1)

Country Link
DE (1) DE10112843A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003071455A2 (en) * 2002-02-19 2003-08-28 Siemens Aktiengesellschaft Engineering method and system for industrial automation systems
DE10163565A1 (en) * 2001-12-21 2003-12-04 Endress & Hauser Gmbh & Co Kg Method for data exchange between a field device and a control device via the Internet
DE10313389A1 (en) * 2003-03-25 2004-10-07 Endress + Hauser Process Solutions Ag Method for transferring software code from a control unit to a field device in process automation technology
EP1806637A1 (en) * 2005-12-12 2007-07-11 Siemens Aktiengesellschaft Automation device and method for operating the same
US7254770B2 (en) 2002-05-30 2007-08-07 Okuma Corporation Sensor apparatus and monitoring method of control system using detected data from sensor apparatus
US7302485B2 (en) 2000-08-03 2007-11-27 Siemens Aktiengesellschaft System and method for transmitting OPC data via data networks, in particular the internet, using an asynchronous data connection
US7502701B2 (en) 2002-03-28 2009-03-10 Siemens Aktiengesellschaft PC-arrangement for visualisation, diagnosis and expert systems for monitoring, controlling and regulating high voltage supply units of electric filters
US7689669B2 (en) 2001-10-08 2010-03-30 Siemens Aktiengesellschaft System and method for accessing a process control automation device from a network client
DE102011005062A1 (en) * 2011-03-03 2012-09-06 Endress + Hauser Process Solutions Ag Method for providing data from field device in automation system, arranged on network, involves instantiating an additional application-specific data, in automation/integration platform and making the data available to remote client
DE102015105407A1 (en) 2015-04-09 2016-10-13 Harting Electric Gmbh & Co. Kg Method, network and device for controlling and / or supplying at least one machine
DE102016107045A1 (en) * 2016-04-15 2017-10-19 Endress + Hauser Gmbh + Co. Kg Method and system for safely configuring a field device of process automation
EP2988183B1 (en) 2014-08-14 2020-04-01 Siemens Aktiengesellschaft System for observing and/or controlling a plant

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302485B2 (en) 2000-08-03 2007-11-27 Siemens Aktiengesellschaft System and method for transmitting OPC data via data networks, in particular the internet, using an asynchronous data connection
US7689669B2 (en) 2001-10-08 2010-03-30 Siemens Aktiengesellschaft System and method for accessing a process control automation device from a network client
DE10163565A1 (en) * 2001-12-21 2003-12-04 Endress & Hauser Gmbh & Co Kg Method for data exchange between a field device and a control device via the Internet
US7657404B2 (en) 2002-02-19 2010-02-02 Siemens Aktiengesellschaft Engineering method and system for industrial automation systems
DE10206902A1 (en) * 2002-02-19 2003-09-11 Siemens Ag Engineering process and engineering system for industrial automation systems
WO2003071455A3 (en) * 2002-02-19 2004-05-13 Siemens Ag Engineering method and system for industrial automation systems
WO2003071455A2 (en) * 2002-02-19 2003-08-28 Siemens Aktiengesellschaft Engineering method and system for industrial automation systems
US7502701B2 (en) 2002-03-28 2009-03-10 Siemens Aktiengesellschaft PC-arrangement for visualisation, diagnosis and expert systems for monitoring, controlling and regulating high voltage supply units of electric filters
US7254770B2 (en) 2002-05-30 2007-08-07 Okuma Corporation Sensor apparatus and monitoring method of control system using detected data from sensor apparatus
DE10313389A1 (en) * 2003-03-25 2004-10-07 Endress + Hauser Process Solutions Ag Method for transferring software code from a control unit to a field device in process automation technology
US8060872B2 (en) 2003-03-25 2011-11-15 Endress + Hauser Process Solutions Ag Method for transmitting a software code from a control unit to a field device of process automation technology
EP1806637A1 (en) * 2005-12-12 2007-07-11 Siemens Aktiengesellschaft Automation device and method for operating the same
DE102011005062A1 (en) * 2011-03-03 2012-09-06 Endress + Hauser Process Solutions Ag Method for providing data from field device in automation system, arranged on network, involves instantiating an additional application-specific data, in automation/integration platform and making the data available to remote client
EP2988183B1 (en) 2014-08-14 2020-04-01 Siemens Aktiengesellschaft System for observing and/or controlling a plant
DE102015105407A1 (en) 2015-04-09 2016-10-13 Harting Electric Gmbh & Co. Kg Method, network and device for controlling and / or supplying at least one machine
WO2016162007A1 (en) 2015-04-09 2016-10-13 Harting Electric Gmbh & Co. Kg Method, network and device for controlling and/or supplying at least one machine
DE102016107045A1 (en) * 2016-04-15 2017-10-19 Endress + Hauser Gmbh + Co. Kg Method and system for safely configuring a field device of process automation
DE102016107045B4 (en) 2016-04-15 2024-05-02 Endress+Hauser SE+Co. KG Method and system for securely configuring a process automation field device

Similar Documents

Publication Publication Date Title
EP1436676B1 (en) Method for operating and observing field devices
US6411987B1 (en) Industrial automation system and method having efficient network communication
US6505247B1 (en) Industrial automation system and method for efficiently transferring time-sensitive and quality-sensitive data
FI114745B (en) Control systems for field devices
EP3648416B1 (en) Automation device with integrated network analysis and cloud connection
WO2003036400A1 (en) Method for implementing an operating and observation system for field devices
EP3353610B2 (en) Connection unit, monitoring system and method for operating an automation system
EP1527554B1 (en) Computer network with diagnosis computer nodes
DE102007045728A1 (en) Apparatus and method for inserting wireless data into an existing process control system
EP2131256B1 (en) Determining datagram lengths
EP3627800A1 (en) Publish/subscribe communication of machine control data
DE10112843A1 (en) Automation data distribution system uses coded datagram for communication between data processing station and automation component
DE10038552A1 (en) System and method for the transmission of OPC data via data networks, in particular the Internet, with an asynchronous data connection
WO2018197197A1 (en) Method for operating a field device
DE102016125171A1 (en) Monitoring data transfer in a client-server-based device access system
EP3718265A1 (en) Interface apparatus for a data interchange between a field bus network and a cloud
WO2003036401A2 (en) Method for detecting a number of field devices in a device configuration
DE60312552T2 (en) PROCESS DATA MANAGEMENT
DE102010040055B4 (en) System for communication of several clients with several field devices in automation technology
DE102010027286B4 (en) Method and device for transmitting data in an automation system
DE10260404A1 (en) System and method for monitoring technical systems and objects
WO2010026011A1 (en) Method for the operation of a process automation device
DE10151117A1 (en) Method for forming an operating function of field devices and field device
WO2003038536A2 (en) Method for transmitting raw data and field device
Jacquin et al. Design of a Gateway Module for Multi-protocol Industrial Connected Objects and Cloud Services

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection