DE102015204751A1 - DEVICE AND METHOD FOR CREATING APPLICATIONS FOR APPLICATIONS FOR A COMMUNICATION BETWEEN A SERVER AND A CLIENT OF AN AUTOMATION PLANT - Google Patents

DEVICE AND METHOD FOR CREATING APPLICATIONS FOR APPLICATIONS FOR A COMMUNICATION BETWEEN A SERVER AND A CLIENT OF AN AUTOMATION PLANT Download PDF

Info

Publication number
DE102015204751A1
DE102015204751A1 DE102015204751.2A DE102015204751A DE102015204751A1 DE 102015204751 A1 DE102015204751 A1 DE 102015204751A1 DE 102015204751 A DE102015204751 A DE 102015204751A DE 102015204751 A1 DE102015204751 A1 DE 102015204751A1
Authority
DE
Germany
Prior art keywords
server
client
application
communication object
communication
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.)
Withdrawn
Application number
DE102015204751.2A
Other languages
German (de)
Inventor
Günther Landgraf
Stefan Benkner
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102015204751.2A priority Critical patent/DE102015204751A1/en
Publication of DE102015204751A1 publication Critical patent/DE102015204751A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Abstract

Es ist eine Vorrichtung (30) und ein Verfahren zum Erstellen von Applikationen (12, 200, 300) für Anwendungen (2, 3) zur Kommunikation zwischen einem Server (10) und einem Client (20) einer Automatisierungsanlage (1; 2; 3) bereitgestellt. Die Vorrichtung (30) umfasst eine Erzeugungseinrichtung (32; 33) zur Erzeugung eines Rumpfprogramms (610) für eine auf dem Server (10) oder einer dem Server (10) vorgelagerten Anwendung ausführbare Applikation (12, 200, 300) auf der Grundlage einer Kommunikationsobjektbeschreibung (60), welche ein Kommunikationsobjekt zwischen dem Server (10) und dem Client (20) derart beschreibt, dass auch ein Rumpfprogramm (620) für eine Applikation (22, 600, 700) auf Seiten des Clients (20) mit der Erzeugungseinrichtung (32; 33) oder einer weiteren Erzeugungseinrichtung (33; 32) auf der Grundlage der Kommunikationsobjektbeschreibung (60) erzeugbar ist, und eine Bereitstelleinrichtung (34) zum Bereitstellen des Rumpfprogramms (610) für den Server (10) oder die dem Server (10) vorgelagerte Anwendung (2, 3), so dass eine Kommunikation zwischen dem Server (10) und dem Client (20) oder zwischen der dem Server (10) vorgelagerten Anwendung (2, 3) und dem Client (20) gemäß dem in der Kommunikationsobjektbeschreibung (60) beschriebenen Kommunikationsobjekt ausführbar ist. Alternativ oder zusätzlich kann auch eine Erzeugungseinrichtung (33; 32) zur Erzeugung eines Rumpfprogramms (620) für eine auf dem Client (20) oder einer dem Client (20) vorgelagerten Anwendung ausführbare Applikation (22, 600, 700) auf der Grundlage einer Kommunikationsobjektbeschreibung (60) vorgesehen sein.It is a device (30) and a method for creating applications (12, 200, 300) for applications (2, 3) for communication between a server (10) and a client (20) of an automation system (1, 2, 3 ) provided. The device (30) comprises a generating device (32; 33) for generating a body program (610) for an application (12, 200, 300) executable on the server (10) or an application (10) upstream of the server (10) on the basis of a A communication object description (60) which describes a communication object between the server (10) and the client (20) such that a trunk program (620) for an application (22, 600, 700) on the side of the client (20) with the generation device (32; 33) or another generation device (33; 32) can be generated on the basis of the communication object description (60), and a provisioning device (34) for providing the core program (610) for the server (10) or the server (10 ) upstream application (2, 3), so that a communication between the server (10) and the client (20) or between the server (10) upstream application (2, 3) and the client (20) according to the in the Kommunikationsobj ektbeschreibung (60) described is executable communication object. Alternatively or additionally, a generating device (33; 32) for generating a body program (620) for an application (22, 600, 700) executable on the client (20) or an application upstream of the client (20) on the basis of a communication object description (60) be provided.

Description

Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zum Erstellen von Applikationen für Anwendungen zur Kommunikation zwischen einem Server und einem Client einer Automatisierungsanlage.The present invention relates to an apparatus and a method for creating applications for applications for communication between a server and a client of an automation system.

Automatisierungsanlagen werden bei der Fertigung von Produkten, wie Fahrzeugen, Teile für Fahrzeuge, Textilien, Zeitungen, Möbel, Elektrogeräte, usw. eingesetzt. Hierbei kann beispielsweise ein Produktionsleitsystem, das auch als mehrschichtiges Fertigungsmanagementsystem (Manufacturing Execution System = MES) bezeichnet wird, mit einer speicherprogrammierbaren Steuerung kommunizieren, die nachfolgend auch kurz SPS genannt wird.Automation systems are used in the manufacture of products such as vehicles, parts for vehicles, textiles, newspapers, furniture, electrical appliances, etc. Here, for example, a production control system, which is also referred to as a multi-level manufacturing management system (Manufacturing Execution System = MES), communicate with a programmable logic controller, which is also referred to below as PLC.

Das Produktionsleitsystem ist in der Regel direkt an alle verteilten Systeme der Prozessautomatisierung angebunden und ermöglicht die Führung und/oder Lenkung und/oder Steuerung und/oder Kontrolle der gesamten Produktion in Echtzeit. Hierfür wird eine klassische Datenerfassung und Datenaufbereitung durchgeführt, wie beispielsweise eine Betriebsdatenerfassung, Maschinendatenerfassung und Personaldatenerfassung. Es können aber auch alle anderen Prozesse, die eine zeitnahe Auswirkung auf den Fertigungs-/Produktionsprozess haben, in der klassischen Datenerfassung und -aufbereitung umfasst sein.The production control system is usually connected directly to all distributed process automation systems and allows the management and / or control and / or control and / or control of the entire production in real time. For this purpose, a classic data acquisition and data processing is performed, such as an operating data acquisition, machine data collection and personal data collection. However, all other processes that have a timely effect on the production / production process can also be included in the classic data collection and processing.

Das Produktionsleitsystem ist ein mehrschichtiges Gesamtsystem, das die betriebswirtschaftlichen berichtenden und die Produktion planenden Ebenen eines Unternehmens und den eigentlichen Fertigungs- bzw. Produktionsprozess in der Fertigungs- bzw. Automatisierungsebene, in der beispielsweise die SPS angeordnet ist, reflektiert. Insbesondere dient das Produktionsleitsystem der fortlaufend steuernden Durchsetzung (engl. execution) einer bestehenden und gültigen Planung und der Rückmeldung aus der Ausführung der Planung.The production control system is a multi-layered overall system, which reflects the business reporting and production planning levels of a company and the actual production or production process in the manufacturing or automation level, in which the PLC is arranged, for example. In particular, the production control system serves the ongoing controlling enforcement of existing and valid planning and the feedback from the execution of the planning.

Zwischen dem Produktionsleitsystem und der SPS als einzelne Komponente des Gesamtsystems erfolgt die Datenübertragung über vordefinierte Datentypen und/oder Datenstrukturen, die mindestens zwei variable Grunddatentypen aufweisen. Die Definition auf der Seite des Produktionsleitsystems erfolgt in der Regel zuerst. Am Ende der Inbetriebnahme der Automatisierungsanlage werden dann SPS-seitig die erforderlichen Datenstrukturen mit den mindestens zwei variablen Grunddatentypen angelegt und mit Leben erfüllt.Between the production control system and the PLC as a single component of the overall system, the data is transferred via predefined data types and / or data structures that have at least two variable basic data types. The definition on the production control system side is usually first. At the end of commissioning of the automation system, the required data structures with at least two variable basic data types are created on the PLC side and brought to life.

Nachteilig daran ist, dass sowohl ein Programmierer des MES-Systems als auch ein Programmierer der SPS die erforderlichen Datenstrukturen, Methoden, wie beispielsweise ein Arbeitsablauf oder eine Änderung von Betriebsarten, usw., und Events, wie beispielsweise eine Fehlermeldung oder Meldungen eines Zustandsautomats, usw., nachträglich in der SPS anlegen und die Datenversorgung programmieren muss. Aufgrund von in der Zwischenzeit auftretenden Änderungen muss bei der ersten Kommunikation zwischen dem Produktionsleitsystem und der SPS häufig nachgebessert werden. Dies ist sehr mühsam und zeitaufwändig und daher kostenintensiv. Vor allem bei einem großen Gesamtsystem ergibt sich dadurch ein beträchtlicher Aufwand.The disadvantage of this is that both a programmer of the MES system and a programmer of the PLC, the necessary data structures, methods such as a workflow or a change of operating modes, etc., and events, such as an error message or messages of a state machine, etc ., subsequently create in the PLC and program the data supply. Due to changes that have occurred in the meantime, the initial communication between the production control system and the PLC must often be improved. This is very tedious and time consuming and therefore costly. Especially with a large overall system, this results in a considerable effort.

Ein weiterer Nachteil ergibt sich daraus, dass die Änderung der Client- und Server-seitigen Funktionalität oft getrennt programmiert wird. Hierbei sind normalerweise unterschiedliche Personen tätig. Dies bringt einen erhöhten Dokumentations- und/oder Abstimmungsbedarf mit sich, der zeit- und kostenintensiv ist.Another disadvantage arises from the fact that the change of the client and server-side functionality is often programmed separately. There are usually different people working here. This entails an increased need for documentation and / or coordination, which is time-consuming and cost-intensive.

Schwierigkeiten entstehen auch dadurch, dass die semantische Bedeutung der Variablen für die Kommunikation häufig nur unzureichend beschrieben wird. Beispielsweise ist nicht immer klar, ob es sich bei der Variable um einen Wert handelt oder ob die Variable ein Auslöser einer Funktion oder eine Anzeige eines Ereignisses oder eines Ablaufs ist. Noch dazu sind oft die Abläufe in Bezug darauf unklar, wer wann was wie ausführen muss, oder welcher Wert einer Variablen welchen Zustand herbeiführt. Daher muss für die Kommunikation zwischen dem Produktionsleitsystem oder einem ähnlichen System und der SPS entsprechend geschultes Fachpersonal eingesetzt werden. Trotzdem ist die Inbetriebnahme der Kommunikation zwischen dem Produktionsleitsystem oder einem ähnlichen System und der SPS schwierig einzurichten. Alles dies trägt zu einer weiteren Verteuerung der Realisierung einer zuverlässigen Kommunikation mit den gewünschten Funktionen zwischen dem Produktionsleitsystem oder einem ähnlichen System und der SPS bei.Difficulties also arise because the semantic meaning of variables for communication is often described inadequately. For example, it is not always clear if the variable is a value or if the variable is a trigger of a function or an indication of an event or expiration. In addition, often the procedures are unclear as to who needs to do what and when, or what value of a variable causes which state. Therefore, appropriately trained personnel must be used for communication between the production control system or a similar system and the PLC. Nevertheless, the commissioning of the communication between the production control system or a similar system and the PLC is difficult to set up. All this contributes to further increasing the cost of implementing reliable communication with the desired functions between the production control system or similar system and the PLC.

Daher ist es Aufgabe der vorliegenden Erfindung, eine Vorrichtung und ein Verfahren zum Erstellen von Applikationen für Anwendungen zur Kommunikation zwischen einem Server und einem Client einer Automatisierungsanlage bereitzustellen, mit welchen die zuvor genannten Probleme gelöst werden können. Insbesondere sollen eine Vorrichtung und ein Verfahren zum Erstellen von Applikationen für Anwendungen zur Kommunikation zwischen einem Server und einem Client einer Automatisierungsanlage bereitgestellt werden, bei welchen die Realisierung eines Datenaustauschs, das Auslösen von Funktionen sowie das Absetzen von Events, gegebenenfalls mit Datenstrukturen, zwischen Teilnehmern einer Kommunikation vereinfacht und damit günstiger wird.It is therefore an object of the present invention to provide an apparatus and a method for creating applications for applications for communication between a server and a client of an automation system, with which the aforementioned problems can be solved. In particular, an apparatus and a method for creating applications for communications between a server and a client of an automation system are to be provided, in which the realization of a data exchange, the triggering of functions and the issuing of events, possibly with data structures, between participants of a Communication is simplified and thus cheaper.

Die Aufgabe wird durch eine Vorrichtung zum Erstellen von Applikationen für Anwendungen zur Kommunikation zwischen einem Server und einem Client einer Automatisierungsanlage nach Patentanspruch 1 gelöst. Die Vorrichtung umfasst eine Erzeugungseinrichtung zur Erzeugung eines Rumpfprogramms für eine auf dem Server oder einer dem Server vorgelagerten Anwendung, wie eine SPS, ausführbare Applikation auf der Grundlage einer Kommunikationsobjektbeschreibung, welche ein Kommunikationsobjekt zwischen dem Server und dem Client derart beschreibt, dass auch ein Rumpfprogramm für eine Applikation auf Seiten des Clients mit der Erzeugungseinrichtung oder einer weiteren Erzeugungseinrichtung auf der Grundlage der Kommunikationsobjektbeschreibung erzeugbar ist, und eine Bereitstelleinrichtung zum Bereitstellen des Rumpfprogramms für den Server oder die dem Server vorgelagerte Anwendung, so dass eine Kommunikation zwischen dem Server und dem Client oder zwischen der dem Server vorgelagerten Anwendung und dem Client gemäß dem in der Kommunikationsobjektbeschreibung beschriebenen Kommunikationsobjekt ausführbar ist. The object is achieved by a device for creating applications for applications for communication between a server and a client of an automation system according to claim 1. The device comprises a generating device for generating a body program for an application located upstream of the server, such as a PLC, executable application based on a communication object description which describes a communication object between the server and the client such that a body program for an application can be generated on the client side with the generation device or another generation device on the basis of the communication object description, and a provisioning device for providing the core program for the server or the application upstream of the server, such that communication between the server and the client or between the application upstream of the server and the client can be executed in accordance with the communication object described in the communication object description.

Die Aufgabe wird durch eine Vorrichtung zum Erstellen von Applikationen für Anwendungen zur Kommunikation zwischen einem Server und einem Client einer Automatisierungsanlage nach Patentanspruch 2 gelöst. Die Vorrichtung umfasst eine Erzeugungseinrichtung zur Erzeugung eines Rumpfprogramms für eine auf dem Client oder einer dem Client vorgelagerten Anwendung, wie eine HMI, ausführbare Applikation auf der Grundlage einer Kommunikationsobjektbeschreibung, welche ein Kommunikationsobjekt zwischen dem Server und dem Client derart beschreibt, dass auch ein Rumpfprogramm für eine Applikation auf Seiten des Servers mit der Erzeugungseinrichtung oder einer weiteren Erzeugungseinrichtung auf der Grundlage der Kommunikationsobjektbeschreibung erzeugbar ist, und einer Bereitstelleinrichtung zum Bereitstellen des Rumpfprogramms für den Client oder die dem Client vorgelagerte Anwendung, so dass eine Kommunikation zwischen dem Server und dem Client oder zwischen dem Server und der dem Client vorgelagerten Anwendung gemäß dem in der Kommunikationsobjektbeschreibung beschriebenen Kommunikationsobjekt ausführbar ist.The object is achieved by a device for creating applications for communications between a server and a client of an automation system according to claim 2. The device comprises a generating device for generating a body program for an application upstream of the client or a client, such as an HMI, executable application based on a communication object description which describes a communication object between the server and the client such that also a body program for an application can be generated on the server side with the generation device or another generation device on the basis of the communication object description, and a provisioning device for providing the trunk program for the client or the application upstream of the client, such that communication between the server and the client or between the server and the application upstream of the client can be executed according to the communication object described in the communication object description.

Im einfachsten Fall stellt die Erzeugungseinrichtung dem Client die vorabdefinierten Datenstrukturen und/oder Datentypen sowie Definitionen von eventuell verwendeten Methoden und/oder Events in der jeweiligen Programmiersprache zur Verfügung.In the simplest case, the generating device provides the client with the predefined data structures and / or data types as well as definitions of any methods and / or events in the respective programming language.

Mit den Vorrichtungen ist jeweils eine schnelle Inbetriebnahme der Kommunikation und der zugehörigen Abläufe zwischen den einzelnen Komponenten der Automatisierungsanlage möglich, wie einem Server und einem Client., Der Server kann insbesondere eine SPS sein, die ihre Daten unmittelbar mit einem Server der Automatisierungsanlage austauscht. Der Clientkann insbesondere eine Mensch-Maschine-Schnittstelle (Human Machine Interface = HMI) sein, die ihre Daten unmittelbar über den Client mit anderen Komponenten der Automatisierungsanlage austauscht). Mit den Vorrichtungen kann innerhalb kürzester Zeit unter Verwendung einer Beschreibung, die in einer Beschreibungssprache oder bevorzugt als grafische Definition abgefasst ist, das gewünschte Kommunikationsobjekt beschrieben werden, so dass sowohl für die Client- als auch für die Serverseitige Anwendung einfach und sicher automatisch Programmcode generiert werden kann.With the devices, in each case a rapid startup of the communication and the associated processes between the individual components of the automation system is possible, such as a server and a client. The server can be in particular a PLC, which exchanges its data directly with a server of the automation system. In particular, the client may be a human machine interface (HMI) which exchanges its data directly with other components of the automation equipment via the client). With the devices can be described within a very short time using a description that is in a description language or preferably as a graphical definition, the desired communication object, so that both the client and the server-side application easily and safely generated automatically program code can.

Die Vorrichtung kann in allen Bereichen der Automatisierungstechnik zum Einsatz kommen, in denen zwischen zwei Kommunikationsteilnehmern Daten auszutauschen sind.The device can be used in all areas of automation technology in which data is to be exchanged between two communication participants.

Vorteilhafte weitere Ausgestaltungen der Vorrichtungen sind in den abhängigen Patentansprüchen angegeben.Advantageous further embodiments of the devices are specified in the dependent claims.

Möglicherweise ist die Erzeugungseinrichtung zudem ausgestaltet, mindestens eine Datenstruktur und/oder Datentyp und/oder Methode und/oder Event für den Client aus der Kommunikationsobjektbeschreibung zu erzeugen, und/oder die Bereitstellungseinheit ist zudem ausgestaltet zu prüfen, ob der Server und/oder der Client berechtigt ist, das jeweilige Rumpfprogramm und/oder die mindestens eine Datenstruktur und/oder Datentyp und/oder Methode und/oder Event zu empfangen.Possibly, the generating device is also configured to generate at least one data structure and / or data type and / or event for the client from the communication object description, and / or the provisioning unit is also designed to check whether the server and / or the client is entitled to receive the respective body program and / or the at least one data structure and / or data type and / or method and / or event.

In einer speziellen Ausgestaltung ist die Erzeugungseinrichtung zudem ausgestaltet, in dem Rumpfprogramm für den Client Sequenzen zu erzeugen, aufgrund welcher die Anwendung automatisch eine Kommunikationsverbindung mit dem Server herstellen kann, und/oder wobei die Erzeugungseinrichtung zudem ausgestaltet ist, aus einem Schlüsselwort in der Kommunikationsobjektbeschreibung eine vorbestimmte Codesequenz für die Applikation zu erzeugen. Auf diese Weise könnte auch noch zur Laufzeit Code, wie beispielsweise bestimmte SPS-Programmteile/Funktionsbausteine erzeugt, nachgeladen oder ausgewählt werden.In a special embodiment, the generating device is also configured to generate sequences in the body program for the client, on the basis of which the application can automatically establish a communication connection with the server, and / or wherein the generation device is also configured from a keyword in the communication object description generate predetermined code sequence for the application. In this way, even at runtime code, such as certain PLC program parts / function blocks generated, reloaded or selected.

Außerdem kann die Erzeugungseinrichtung ausgestaltet sein, aus der Kommunikationsobjektbeschreibung einen virtuellen Server oder einen virtuellen Client zu erzeugen.In addition, the generation device can be configured to generate a virtual server or a virtual client from the communication object description.

Vorzugsweise sind die Applikation auf Seiten des Servers und die Applikation auf Seiten des Clients ausgestaltet, in Echtzeit Daten gemäß dem Kommunikationsobjekt auszutauschen.Preferably, the application on the server side and the application on the client side are configured to exchange data according to the communication object in real time.

Zumindest eine der zuvor beschriebenen Vorrichtungen kann Teil einer Automatisierungsanlage sein, die zudem mindestens eine Anwendung mit Verbindung zu einem Server, und mindestens eine weitere Anwendung mit Verbindung zu einem Client aufweist, wobei der Client mit dem Server über eine Kommunikationsverbindung verbunden ist. Hierbei kann einem Server des mindestens einen Servers eine SPS und einem Client des mindestens einen Clients ein Produktionsleitsystem vorgelagert sein, oder eine Anwendung des Clients ein Produktionsleitsystem (MES) und eine Anwendung des Servers eine speicherprogrammierbare Steuerung (SPS) sein, und/oder einem Server des mindestens einen Servers kann eine speicherprogrammierbare Steuerung (SPS) und einem Client des mindestens einen Clients kann eine Mensch-Maschine-Schnittstelle (HMI) vorgelagert sein. Jegliche Kombinationen sind denkbar. Beispielsweise übernimmt ein Server für eine numerische Steuerung (Numeric Control = NC) und eine SPS die Kommunikation mit anderen Clients. At least one of the devices described above may be part of an automation system, which also has at least one application connected to a server, and at least one further application connected to a client, wherein the client is connected to the server via a communication link. In this case, a server of the at least one server, a PLC and a client of the at least one client may be preceded by a production control system, or an application of the client may be a production control system (MES) and an application of the server a programmable logic controller (PLC), and / or a server The at least one server may be preceded by a programmable logic controller (PLC) and a client of the at least one client may have a human-machine interface (HMI). Any combinations are conceivable. For example, a Numeric Control (NC) server and a PLC handle communication with other clients.

Die Aufgabe wird zudem durch ein Verfahren zum Erstellen von Applikationen für Anwendungen zur Kommunikation zwischen einem Server und einem Client einer Automatisierungsanlage nach Patentanspruch 8 gelöst. Das Verfahren weist die Schritte auf: Erzeugen, mit einer Erzeugungseinrichtung, eines Rumpfprogramms für eine auf dem Server oder einer dem Server vorgelagerten Anwendung, wie einer SPS), ausführbare Applikation auf der Grundlage einer Kommunikationsobjektbeschreibung, welche ein Kommunikationsobjekt zwischen dem Server und dem Client derart beschreibt, dass auch ein Rumpfprogramm für eine Applikation auf Seiten des Clients mit der Erzeugungseinrichtung oder einer weiteren Erzeugungseinrichtung auf der Grundlage der Kommunikationsobjektbeschreibung erzeugbar ist, und Bereitstellen, mit einer Bereitstelleinrichtung, des Rumpfprogramms für den Server oder die dem Server vorgelagerte Anwendung, so dass eine Kommunikation zwischen dem Server und dem Client oder zwischen der dem Server vorgelagerten Anwendung und dem Client gemäß dem in der Kommunikationsobjektbeschreibung beschriebenen Kommunikationsobjekt ausführbar ist.The object is also achieved by a method for creating applications for applications for communication between a server and a client of an automation system according to claim 8. The method comprises the steps of: generating, with a generator, a body program for an application upstream of the server or an application upstream of the server, such as a PLC), executable application based on a communication object description which is a communication object between the server and the client describes that also a body program for an application on the part of the client with the generation device or another generation device based on the communication object description can be generated, and providing, with a provisioning device, the core program for the server or the server upstream application, so that a Communication between the server and the client or between the server upstream application and the client according to the communication object described in the communication object description is executable.

Die Aufgabe wird zudem durch ein Verfahren zum Erstellen von Applikationen für Anwendungen zur Kommunikation zwischen einem Server und einem Client einer Automatisierungsanlage nach Patentanspruch 9 gelöst. Das Verfahren weist die Schritte auf: Erzeugen, mit einer Erzeugungseinrichtung, eines Rumpfprogramms für eine auf dem Client oder einer dem Client vorgelagerten Anwendung, wie einer HMI, ausführbare Applikation auf der Grundlage einer Kommunikationsobjektbeschreibung, welche ein Kommunikationsobjekt zwischen dem Server und dem Client derart beschreibt, dass auch ein Rumpfprogramm für eine Applikation auf Seiten des Servers mit der Erzeugungseinrichtung oder einer weiteren Erzeugungseinrichtung auf der Grundlage der Kommunikationsobjektbeschreibung erzeugbar ist, und Bereitstellen, mit einer Bereitstelleinrichtung, des Rumpfprogramms für den Client oder die dem Client vorgelagerte Anwendung, so dass eine Kommunikation zwischen dem Server und dem Client oder zwischen dem Server und der dem Client vorgelagerten Anwendung gemäß dem in der Kommunikationsobjektbeschreibung beschriebenen Kommunikationsobjekt ausführbar ist.The object is also achieved by a method for creating applications for applications for communication between a server and a client of an automation system according to claim 9. The method comprises the steps of generating, with a generating means, a body program for an application upstream of the client or a client, such as an HMI, executable application based on a communication object description describing a communication object between the server and the client in that a body program for an application can also be generated by the server with the generation device or another generation device on the basis of the communication object description, and providing, with a provisioning device, the trunk program for the client or the application upstream of the client, such that a communication between the server and the client or between the server and the application upstream of the client according to the communication object described in the communication object description is executable.

Die Verfahren erzielen die gleichen Vorteile, wie sie zuvor in Bezug auf die Vorrichtung genannt sind.The methods achieve the same advantages as previously mentioned with respect to the device.

Die Verfahren können zudem einen Schritt eines Erstellens der Kommunikationsobjektbeschreibung aufweisen.The methods may also include a step of creating the communication object description.

Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen.Further possible implementations of the invention also include not explicitly mentioned combinations of features or embodiments described above or below with regard to the exemplary embodiments. The skilled person will also add individual aspects as improvements or additions to the respective basic form of the invention.

Nachfolgend ist die Erfindung unter Bezugnahme auf die beiliegende Zeichnung und anhand von Ausführungsbeispielen näher beschrieben. Es zeigen:The invention is described in more detail below with reference to the accompanying drawings and to exemplary embodiments. Show it:

1 ein vereinfachtes Blockschaltbild einer Automatisierungsanlage gemäß einem ersten Ausführungsbeispiel; 1 a simplified block diagram of an automation system according to a first embodiment;

2 ein weiteres vereinfachtes Blockschaltbild einer Automatisierungsanlage gemäß einem ersten Ausführungsbeispiel; 2 a further simplified block diagram of an automation system according to a first embodiment;

3 ein Beispiel für den Aufbau einer Datenstruktur bei der Automatisierungsanlage gemäß dem ersten Ausführungsbeispiel; 3 an example of the structure of a data structure in the automation system according to the first embodiment;

4 eine grafische Darstellung eines Kommunikationsobjekts für die Automatisierungsanlage gemäß dem ersten Ausführungsbeispiel; 4 a graphical representation of a communication object for the automation system according to the first embodiment;

5 ein Flussdiagramm eines Verfahrens zum Erstellen von Applikationen für Anwendungen zur Kommunikation zwischen einem Server und einem Client gemäß dem ersten Ausführungsbeispiel; 5 a flowchart of a method for creating applications for applications for communication between a server and a client according to the first embodiment;

6 ein vereinfachtes Blockschaltbild einer Automatisierungsanlage gemäß einem zweiten Ausführungsbeispiel; und 6 a simplified block diagram of an automation system according to a second embodiment; and

7 ein vereinfachtes Blockschaltbild einer Automatisierungsanlage gemäß einem dritten Ausführungsbeispiel; 7 a simplified block diagram of an automation system according to a third embodiment;

8 ein vereinfachtes Blockschaltbild einer Automatisierungsanlage gemäß einem vierten Ausführungsbeispiel; und 8th a simplified block diagram of an automation system according to a fourth embodiment; and

9 ein vereinfachtes Blockschaltbild einer Automatisierungsanlage gemäß dem vierten Ausführungsbeispiel. 9 a simplified block diagram of an automation system according to the fourth embodiment.

In den Figuren sind gleiche oder funktionsgleiche Elemente, sofern nichts anderes angegeben ist, mit denselben Bezugszeichen versehen.In the figures, identical or functionally identical elements are provided with the same reference numerals, unless stated otherwise.

1 zeigt in Bezug auf ein erstes Ausführungsbeispiel eine Automatisierungsanlage 1 mit einer speicherprogrammierbaren Steuerung 2, die nachfolgend auch kurz SPS 2 genannt wird, einer Numerischen Steuerung 3, die nachfolgend auch kurz NC 3 genannt wird, einem Provider 4, einem Provider 5, einer HMI 6 (Human Machine Interface = Mensch-Maschine-Schnittstelle), einem Produktionsleitsystem 7, das auch als mehrschichtiges Fertigungsmanagementsystem (Manufacturing Execution System = MES) bezeichnet wird, einem Server 10, einem Client 20, und eine Verbindung 40. Die SPS 2 und die NC 3 sind dem Server 10 vorgelagerte Anwendungen 2, 3 und können über den Provider 4 mit dem Server 10 kommunizieren. Die HMI 6 und das Produktionsleitsystem 7 bzw. die MES 7 sind dem Client 20 vorgelagerte Anwendungen 6, 7 und können über den Provider 5 mit dem Client 20 kommunizieren. Der Server 10 und der Client 20 können über die Verbindung 40 miteinander kommunizieren. Wie durch Punkte rechts neben der MES 7 und der NC 3 in 1 dargestellt, können noch weitere nicht dargestellte Einrichtungen, wie Robotik, Motion usw. an die Provider 4, 5 angeschlossen sein. 1 shows with respect to a first embodiment of an automation system 1 with a programmable logic controller 2 , below also short PLC 2 is called a numerical control 3 , below also short NC 3 is called a provider 4 , a provider 5 , an HMI 6 (Human Machine Interface), a production control system 7 , also referred to as a Manufacturing Execution System (MES), a server 10 a client 20 , and a connection 40 , The PLC 2 and the NC 3 are the server 10 upstream applications 2 . 3 and can through the provider 4 with the server 10 communicate. The HMI 6 and the production control system 7 or the MES 7 are the client 20 upstream applications 6 . 7 and can through the provider 5 with the client 20 communicate. The server 10 and the client 20 can over the connection 40 communicate with each other. As by dots to the right of the MES 7 and the NC 3 in 1 shown, can still other devices not shown, such as robotics, motion, etc. to the provider 4 . 5 be connected.

Es sind beliebige andere Ausgestaltungen möglich. Beispielsweise ist es bei einer hier nicht weiter betrachteten Variante auch möglich, dass das Produktionsleitsystem 7 die Funktion des Servers 10 und die SPS 2 die Funktion des Clients 20 hat.Any other configurations are possible. For example, it is also possible in a variant not considered here that the production control system 7 the function of the server 10 and the PLC 2 the function of the client 20 Has.

2 zeigt die Struktur von Server 10 und Client 20 in Bezug auf eine Vorrichtung 30 genauer. Zur Vereinfachung sind die Provider 4, 5 in 2 nicht dargestellt. Der Server 10 und der Client 20 können über die Kommunikationsverbindung 40, die beispielsweise als Datenbus ausgeführt sein kann, Daten 50 in Form von insbesondere mindestens einer Datenstruktur 630 und/oder Datentyp 632, 6321, 6322 und/oder Methode 63 und/oder Event 64 austauschen, die später in Bezug auf 3 und 4 näher erläutert sind. Der Server 10 und der Client 20 können hierbei die Daten 50 in Form von insbesondere mindestens einer Datenstruktur 630 und/oder Methode 63 und/oder Event 64 insbesondere in Echtzeit austauschen. Unter Echtzeit wird verstanden, dass der Server 10 und der Client 20 als Kommunikationsteilnehmer bestimmte Ergebnisse, wie die Übertragung der Daten 50, zuverlässig innerhalb einer vorbestimmten Zeitspanne, zum Beispiel in einem festen Zeitraster, liefern können. In die Vorrichtung 30 wird eine Kommunikationsobjektbeschreibung 60 eingegeben. Alternativ kann die Beschreibung auch direkt in den Server 10 und/oder direkt in den Client 20 eingegeben werden. 2 shows the structure of server 10 and client 20 in terms of a device 30 more accurate. For simplicity, the providers 4 . 5 in 2 not shown. The server 10 and the client 20 can over the communication connection 40 , which may be implemented as a data bus, for example, data 50 in particular in the form of at least one data structure 630 and / or data type 632 . 6321 . 6322 and / or method 63 and / or event 64 exchange that later in terms of 3 and 4 are explained in more detail. The server 10 and the client 20 Here are the dates 50 in particular in the form of at least one data structure 630 and / or method 63 and / or event 64 especially in real time exchange. Under real time it is understood that the server 10 and the client 20 As a communication participant certain results, such as the transmission of data 50 , can deliver reliably within a predetermined period of time, for example in a fixed time frame. Into the device 30 becomes a communication object description 60 entered. Alternatively, the description can also be sent directly to the server 10 and / or directly to the client 20 be entered.

In 2 hat die SPS 2 eine auf der SPS 2 ausführbare Applikation 200. Die NC 3 hat eine auf der NC 3 ausführbare Applikation 300. Der Server 10 hat Hardware 11, mindestens eine Applikation 12 und eine Bedieneinheit 13. Die Hardware 11 kann eine zentrale Verarbeitungseinheit, die auch CPU genannt werden kann, und mindestens eine Speichereinrichtung, usw. umfassen. Über die Applikation(en) 2 sind die Funktionen des Servers 10 implementiert. Die Bedieneinheit 13 kann Eingabemittel 131, wie eine Tastatur, eine Maus, einen berührungsempfindlichen Bildschirm oder dergleichen, und Ausgabemittel 132, wie eine akustische und/oder optische Anzeige aufweisen. Eine der Anwendung(en) 2, 3 kann beispielsweise mit dem Ausgabemittel 132 kommunizieren, um die Daten 50 in Form von insbesondere Datenstrukturen 630 und/oder Methoden und/oder Events mit Hilfe des Ausgabemittels 132 für einen Benutzer der Automatisierungsanlage 1 anzuzeigen. Die Applikationen 12, 200, 300 sind insbesondere ein auf dem Server 10 bzw. der SPS 2 bzw. der NC 3 lauffähiges Computerprogramm.In 2 has the PLC 2 one on the PLC 2 executable application 200 , The NC 3 has one on the NC 3 executable application 300 , The server 10 has hardware 11 , at least one application 12 and a control unit 13 , The hardware 11 For example, a central processing unit, which may also be called a CPU, and at least one memory device, etc. may be included. About the application (s) 2 are the functions of the server 10 implemented. The operating unit 13 can be input means 131 such as a keyboard, a mouse, a touch screen or the like, and output means 132 as having an acoustic and / or visual indication. One of the application (s) 2 . 3 for example, with the output means 132 communicate to the data 50 in the form of in particular data structures 630 and / or methods and / or events using the output means 132 for a user of the automation system 1 display. The applications 12 . 200 . 300 are in particular one on the server 10 or the PLC 2 or the NC 3 running computer program.

Die HMI 6 hat eine auf der HMI 6 ausführbare Applikation 600. Die MES 7 hat eine auf der MES 7 ausführbare Applikation 700. Der Client 20 hat Hardware 21 und eine Bedieneinheit 23. Die Hardware 21 kann eine zentrale Verarbeitungseinheit, die auch CPU genannt werden kann, und mindestens eine Speichereinrichtung, usw. umfassen. Über die Anwendung(en) 6, 7 bzw. deren Applikationen 600, 700 sind die Funktionen des Clients 20 implementiert. Die Bedieneinheit 23 kann Eingabemittel 231, wie eine Tastatur, eine Maus, einen berührungsempfindlichen Bildschirm oder dergleichen, und Ausgabemittel 232, wie eine akustische und/oder optische Anzeige aufweisen. Eine der Anwendung(en) 6, 7 kann beispielsweise mit dem Ausgabemittel 232 kommunizieren, um die Daten 50 in Form von insbesondere Datenstrukturen 630 und/oder Methoden 63 und/oder Events von dem Server 10 mit Hilfe des Ausgabemittels 232 für einen Benutzer der Automatisierungsanlage 1 anzuzeigen. Die Applikationen 22, 600, 700 sind insbesondere ein auf dem Client 20 bzw. der HMI 6 bzw. der MES 7 lauffähiges Computerprogramm.The HMI 6 has one on the HMI 6 executable application 600 , The MES 7 has one on the MES 7 executable application 700 , The client 20 has hardware 21 and a control unit 23 , The hardware 21 For example, a central processing unit, which may also be called a CPU, and at least one memory device, etc. may be included. About the application (s) 6 . 7 or their applications 600 . 700 are the functions of the client 20 implemented. The operating unit 23 can be input means 231 such as a keyboard, a mouse, a touch screen or the like, and output means 232 as having an acoustic and / or visual indication. One of the application (s) 6 . 7 for example, with the output means 232 communicate to the data 50 in the form of in particular data structures 630 and / or methods 63 and / or events from the server 10 with the help of the output device 232 for a user of the automation system 1 display. The applications 22 . 600 . 700 are in particular one on the client 20 or the HMI 6 or the MES 7 running computer program.

Die Vorrichtung 30 hat eine Empfangseinheit 31, eine erste Erzeugungseinheit 32, eine zweite Erzeugungseinheit 33 und eine Bereitstellungseinheit 34. Die Empfangseinheit 31 dient zum Empfang der Kommunikationsobjektbeschreibung 60 und gibt diese an die erste und zweite Erzeugungseinheit 32, 33 weiter. Die Kommunikationsobjektbeschreibung 60 ist eine eindeutige Beschreibung des Kommunikationsobjekts für die jeweils benötigte Funktionalität für die Kommunikation zwischen Server 10 und Client 20.The device 30 has a receiving unit 31 , a first generation unit 32 , a second generating unit 33 and a delivery unit 34 , The receiving unit 31 serves to receive the communication object description 60 and gives these to the first and second generation units 32 . 33 further. The communication object description 60 is a unique description of the communication object for each required functionality for communication between servers 10 and client 20 ,

Die erste Erzeugungseinheit 32 erzeugt aus der Kommunikationsobjektbeschreibung 60 ein Rumpfprogramm 610 für die Applikation 12 des Servers 10 oder einer der vorgelagerten Anwendungen 2, 3. Die zweite Erzeugungseinheit 33 erzeugt aus der Kommunikationsobjektbeschreibung 60 ein Rumpfprogramm 620 und/oder Datenstrukturen 630 für die Applikation 22 des Clients 20 oder einer der vorgelagerten Anwendungen 6, 7. Die Bereitstellungseinheit 34 stellt das Rumpfprogramm 610 dem Server 10 für dessen Applikation 12 und/oder Anwendungen 2, 3 bereit. Außerdem stellt die Bereitstellungseinheit 34 dem Client 20 das Rumpfprogramm 620 und/oder die Datenstrukturen 630 für dessen Applikation 22 und/oder Anwendungen 6, 7 bereit. Das Bereitstellen kann ein Senden des Rumpfprogramms 610 an den Server 10 sein, wobei der Server 10 insbesondere mit Hilfe seiner Hardware 21 das Rumpfprogramm in die Applikation 12, 200, 300 implementiert. Alternativ oder zusätzlich kann bei dem Bereitstellen auch die Vorrichtung 30, insbesondere ihre Bereitstellungseinheit 34 ein Implementieren des Rumpfprogramms 610 in der Applikation 12, 200, 300 alleine oder auch mit Hilfe des Servers 10 ausführen. Das Gleiche gilt für das Bereitstellen des Rumpfprogramms 620 und der Datenstrukturen 630 für den Client 20 und die Applikationen 22, 600, 700 der Anwendungen 6, 7.The first generation unit 32 generated from the communication object description 60 a hull program 610 for the application 12 of the server 10 or one of the upstream applications 2 . 3 , The second generation unit 33 generated from the communication object description 60 a hull program 620 and / or data structures 630 for the application 22 of the client 20 or one of the upstream applications 6 . 7 , The delivery unit 34 Represents the core program 610 the server 10 for its application 12 and / or applications 2 . 3 ready. It also provides the deployment unit 34 the client 20 the trunk program 620 and / or the data structures 630 for its application 22 and / or applications 6 . 7 ready. Deploying may be sending the trunk program 610 to the server 10 be the server 10 especially with the help of its hardware 21 the trunk program in the application 12 . 200 . 300 implemented. Alternatively or additionally, in providing the device 30 , in particular its delivery unit 34 implementing the core program 610 in the application 12 . 200 . 300 alone or with the help of the server 10 To run. The same applies to providing the core program 620 and the data structures 630 for the client 20 and the applications 22 . 600 . 700 the applications 6 . 7 ,

Die Bereitstellung der Rumpfprogramme 610, 620 oder zumindest die Beschreibung der Datenstrukturen 630, der Events 64 (mit Daten) und der Methoden 63 kann alternativ auch direkt den Anwendungen 2, 3, 6, 7 des Clients 20 sowie des Servers 10, insbesondere mit Hilfe des entsprechenden Providers 4, 5, bereitgestellt werden.The provision of the trunk programs 610 . 620 or at least the description of the data structures 630 , the events 64 (with data) and the methods 63 Alternatively, it can also be used directly in the applications 2 . 3 . 6 . 7 of the client 20 as well as the server 10 especially with the help of the appropriate provider 4 . 5 , to be provided.

3 zeigt ein Beispiel für den Aufbau einer Datenstruktur 630. Die Datenstruktur 630 hat einen ersten variablen Grunddatentyp 631 und einen zweiten variablen Grunddatentyp 632. Der zweite variable Grunddatentyp 632 hat wiederum einen ersten variablen Unterdatentyp 6321 und einen zweiten variablen Unterdatentyp 6322. 3 shows an example of the structure of a data structure 630 , The data structure 630 has a first variable basic data type 631 and a second variable basic data type 632 , The second variable basic data type 632 again has a first variable subdata type 6321 and a second variable sub data type 6322 ,

Beispielsweise hat die Datenstruktur 630 von 3 die Bezeichnung MySuperStruct[MySuperStruct_Type] und ist somit vom Typ MySuperStruct_Type. Der Typ „MySuperStruct_Type” umfasst zum einen den ersten variablen Grunddatentyp 631 mit der Bezeichnung A, der vom Datentyp Integer32 ist. Zum anderen umfasst der Typ „MySuperStruct_Type” den zweiten variablen Grunddatentyp 632 mit der Bezeichnung MyStruct[MyStruct_Type], der vom Datentyp MyStruct_Type ist. Der Typ „MyStruct_Type” umfasst zum einen den ersten variablen Unterdatentyp 6311 mit der Bezeichnung X, der vom Datentyp Integer32 ist. Zum anderen umfasst der Typ „MyStruct_Type” den zweiten variablen Unterdatentyp 6322 mit der Bezeichnung Y, der vom Datentyp Boolean ist.For example, the data structure has 630 from 3 the name MySuperStruct [MySuperStruct_Type] and is therefore of the type MySuperStruct_Type. The type "MySuperStruct_Type" includes the first variable basic data type 631 with the label A, which is of the data type Integer32. On the other hand, the type "MySuperStruct_Type" contains the second variable basic data type 632 named MyStruct [MyStruct_Type], which is of the MyStruct_Type data type. The type "MyStruct_Type" includes the first variable subdata type 6311 with the name X, which is of the data type Integer32. Second, the MyStruct_Type type includes the second variable subdata type 6322 with the name Y, which is of the data type Boolean.

Die Datenstrukturen 630 können ganz allgemein mindestens zwei variable Grunddatentypen 631, 632 aufweisen, die wiederum mindestens zwei Unterdatentypen 6321, 6322 aufweisen können. Es sind auch noch den Unterdatentypen 6321, 6322 weitere untergeordnete Unterdatentypen möglich, usw.The data structures 630 can generally have at least two variable basic data types 631 . 632 which in turn has at least two sub-types 6321 . 6322 can have. There are also the subdata types 6321 . 6322 other subordinate child types possible, etc.

4 zeigt ein Beispiel für eine Kommunikationsobjektbeschreibung 60, die als OPC Unified Architecture (OPC UA) Informationsmodell ausgestaltet sein kann. Gemäß dem Beispiel soll zwischen dem Server 10 und dem Client 20 eine Kommunikation in Bezug auf ein Energiemanagement der Automatisierungsanlage 1 möglich sein. In der Kommunikationsobjektbeschreibung 60 sind daher Objekte 61, Unterobjekte 61A, Variable 62 und eine Methode 63 definiert. Das Energiemanagement und/oder die Methode 63 können Ereignisse oder Events 64 auslösen. Eine Methode 63 kann ganz allgemein beispielsweise ein Arbeitsablauf oder eine Änderung von Betriebsarten, usw. sein. Ein Event 64 kann ganz allgemein beispielsweise eine Fehlermeldung oder Meldungen eines Zustandsautomats, usw. sein. 4 shows an example of a communication object description 60 , which can be configured as an OPC Unified Architecture (OPC UA) information model. According to the example, between the server 10 and the client 20 a communication in relation to an energy management of the automation system 1 to be possible. In the communication object description 60 are therefore objects 61 , Subobjects 61A , Variable 62 and a method 63 Are defined. The energy management and / or the method 63 can events or events 64 trigger. A method 63 In general, for example, a workflow or a change of operating modes, etc. may be. An event 64 In general, for example, an error message or messages from a state machine, etc. may be.

In dem Beispiel von 4 ist das Objekt „EnergyManagement” definiert, dem die Unterobjekte „Configuration”, „Status” und „Control” untergeordnet sind.In the example of 4 the object "EnergyManagement" is defined, to which the sub-objects "Configuration", "Status" and "Control" are subordinate.

Das Objekt „EnergyManagement” in der Kommunikationsobjektbeschreibung 60 „hat den Typ EnergyManagementType” 611.The "EnergyManagement" object in the communication object description 60 "Has the type EnergyManagementType" 611 ,

In 4 sind dem Unterobjekt „Configuration” die beiden Variablen „TimeEMxToEMOp” und „EnergyEMxToEMOp” zugeordnet. Es können jedoch noch weitere Variable 62 vorgesehen sein. Dem Unterobjekt „Status” sind die beiden Variablen „EnergyConsumption” und „CurrentEnergyMode” zugeordnet. Es können jedoch noch weitere Variable 62 vorgesehen sein. Dem Unterobjekt „Control” ist die Methode 63 „ChangeEnergyConsumption” zugeordnet.In 4 the subobject "Configuration" is assigned the two variables "TimeEMxToEMOp" and "EnergyEMxToEMOp". However, there may be other variables 62 be provided. The subobject "Status" is assigned the two variables "EnergyConsumption" and "CurrentEnergyMode". However, there may be other variables 62 be provided. The sub-object "Control" is the method 63 Assigned to "ChangeEnergyConsumption".

Ein Pfeil EN (EventNotification) in 4 gibt an, dass der Server 10 in der Lage sein soll, den Client 20 über ein Event 64 in Bezug auf das Energiemanagement der Automatisierungsanlage 1 zu informieren. Beispielsweise kann der Server 10 den Client 20 über ein Event 64, gegebenenfalls mit weiteren Daten, informieren, dass sich die Energiebetriebsart (EnergyMode) geändert hat.An arrow EN (EventNotification) in 4 indicates that the server 10 should be able to serve the client 20 about an event 64 in relation to the energy management of the automation system 1 to inform. For example, the server 10 the client 20 about an event 64 , optionally with others Data, inform that the energy mode (EnergyMode) has changed.

Wie durch einen Pfeil WD (WriteData) in 4 veranschaulicht, soll der Client 10 in der Lage sein, Daten für die beiden Variablen „TimeEMxToEMOp” und/oder „EnergyEMxToEMOp” und/oder gegebenenfalls weiteren Variablen 62 des Unterobjekts „Configuration” zu liefern bzw. in sie zu schreiben. Außerdem gibt ein Pfeil RD (ReadData) in 4 an, dass der Client 10 auch in der Lage sein soll, Daten aus den beiden Variablen „TimeEMxToEMOp” und/oder „EnergyEMxToEMOp” und/oder gegebenenfalls weiteren Variablen 62 des Unterobjekts „Configuration” zu lesen.As indicated by an arrow WD (WriteData) in 4 illustrates, the client should 10 be able to provide data for the two variables "TimeEMxToEMOp" and / or "EnergyEMxToEMOp" and / or other variables as appropriate 62 of the sub-object "Configuration" or to write in it. There is also an arrow RD (ReadData) in 4 to that the client 10 It should also be able to extract data from the two variables "TimeEMxToEMOp" and / or "EnergyEMxToEMOp" and / or other variables as appropriate 62 of the sub-object "Configuration".

Ein Pfeil DCN (DataChangeNotification) in 4 gibt an, dass der Server 10 in der Lage sein soll, den Client 20 darüber zu informieren, dass sich die Daten in Bezug auf das Unterobjekt „Status” geändert haben. Beispielsweise kann der Server 10 den Client 20 informieren, dass sich der Wert und damit die Daten der Variablen „EnergyConsumption” geändert haben, da nun ein höherer oder niedrigerer Energieverbrauch als vorher vorliegt.An arrow DCN (DataChangeNotification) in 4 indicates that the server 10 should be able to serve the client 20 to inform you that the data regarding the subitem "Status" has changed. For example, the server 10 the client 20 inform you that the value and thus the data of the variable "EnergyConsumption" have changed, as there is now a higher or lower energy consumption than before.

Ein weiterer Pfeil RD (ReadData) in 4 gibt an, dass der Client 10 auch in der Lage sein soll, Daten aus den beiden Variablen „EnergyConsumption” und/oder „CurrentEnergyMode” und/oder gegebenenfalls weiteren Variablen 62 des Unterobjekts „Status” zu lesen.Another arrow RD (ReadData) in 4 indicates that the client 10 It should also be able to collect data from the two variables "EnergyConsumption" and / or "CurrentEnergyMode" and / or other variables as appropriate 62 of the subitem "Status".

Ein Pfeil IR (InvokeRoutine) in 4 gibt an, dass der Client 20 in der Lage sein soll, die Methode 63 „ChangeEnergyConsumption” aufzurufen, die auf dem Server 10 ausgeführt werden kann.An arrow IR (InvokeRoutine) in 4 indicates that the client 20 should be able to use the method 63 Call "ChangeEnergyConsumption" on the server 10 can be executed.

Gemäß 5 wird bei einem Verfahren zum Erstellen der Applikationen 12, 22, 200, 300, 600, 700 zur Kommunikation zwischen dem Server 10 und dem Client 20 zunächst bei einem Schritt S1 eine Kommunikationsobjektbeschreibung 60 erzeugt, wie beispielsweise in 4 gezeigt. Die Kommunikationsobjektbeschreibung 60 kann hierbei eine grafische Darstellung der Kommunikationsparameter, wie Objekte 61, Variable 62 und deren Verbindung mit auszuführenden Methoden 63 und Kommunikationen, die durch die Pfeile EN, WR, RD, SCN, IM dargestellt sind, umfassen. Die Kommunikationsobjektbeschreibung 60 kann jedoch auch in einer Beschreibungssprache, wie beispielsweise XML, usw. geschrieben sein. Anders ausgedrückt, bei dem Schritt S1 wird das Kommunikationsobjekt modelliert. Die grafische Modellierung des Kommunikationsobjekts kann beispielsweise mit entsprechender Software oder Computerprogrammen, wie Visio der Firma Microsoft, oder Ähnlichem, erstellt werden, um Daten im XML-Format zu erzeugen.According to 5 will be in a process for creating the applications 12 . 22 . 200 . 300 . 600 . 700 for communication between the server 10 and the client 20 first, at a step S1, a communication object description 60 generated, such as in 4 shown. The communication object description 60 can be a graphical representation of the communication parameters, such as objects 61 , Variable 62 and their connection with methods to be performed 63 and communications represented by the arrows EN, WR, RD, SCN, IM. The communication object description 60 however, it may also be written in a description language, such as XML, etc. In other words, in step S1, the communication object is modeled. The graphical modeling of the communication object can be created, for example, with appropriate software or computer programs, such as Visio from Microsoft, or the like, to generate data in XML format.

Somit wird bei dem Schritt S1 eine eindeutige Beschreibung des Kommunikationsobjekts für die jeweils benötigte Funktionalität der Kommunikation zwischen Server 10 und Client 20 vorgenommen. Danach geht der Fluss zu einem Schritt S2 weiter.Thus, in step S1, a clear description of the communication object for the respective required functionality of the communication between server 10 and client 20 performed. Thereafter, the flow proceeds to a step S2.

Bei dem Schritt S2 wird das Rumpfprogramm 610, oder zumindest die Beschreibung der Datenstrukturen 630, der Methoden 63 und Events 64, gegebenenfalls mit Daten, für die mindestens eine Applikation 12, 200, 300 beim Server 10 auf der Grundlage der bei dem Schritt S1 erzeugten Kommunikationsobjektbeschreibung 60 erzeugt. Ist dem Server 10 beispielsweise eine SPS 2 vorgelagert, können hier Objekte 61 und/oder Unterobjekte 61A, und/oder Funktionen und/oder Ereignisse in Programmteile oder Funktionsbausteine (FBs) und/oder Unter-Programmteile oder Funktionsbausteine (Unter-FBs) überführt werden. Solche Funktionen können beispielsweise ein Daten schreiben oder lesen usw. sein, wie zuvor in Bezug auf 4 beschrieben. Solche Events 64 können beispielsweise eine Datenänderung oder der Aufruf oder die Beendigung der Methode 63 sein, wie zuvor in Bezug auf 4 beschrieben. Der Schritt S2 kann von der ersten Erzeugungseinrichtung 32 ausgeführt werden, wie zuvor auch in Bezug auf 2 beschrieben. Danach geht der Fluss zu einem Schritt S3 weiter.In step S2, the body program 610 , or at least the description of the data structures 630 , the methods 63 and events 64 , optionally with data, for the at least one application 12 . 200 . 300 at the server 10 based on the communication object description generated at step S1 60 generated. Is the server 10 for example, a PLC 2 upstream, here objects can 61 and / or sub-objects 61A , and / or functions and / or events in program parts or function blocks (FBs) and / or sub-program parts or function blocks (sub-FBs) are transferred. Such functions may be, for example, writing or reading data, etc. as previously described with respect to 4 described. Such events 64 may, for example, be a data change or the call or termination of the method 63 be as before regarding 4 described. The step S2 may be performed by the first generating means 32 be executed, as previously with respect to 2 described. Thereafter, the flow proceeds to a step S3.

Bei dem Schritt S3 wird das Rumpfprogramm 620 und/oder die Beschreibung der Datenstrukturen 630, der Methoden 63 und Events 64, gegebenenfalls mit Daten, für die mindestens eine Applikation 22, 600, 700 beim Client 20 auf der Grundlage der bei dem Schritt S1 erzeugten Kommunikationsobjektbeschreibung 60 erzeugt. Der Schritt S3 kann von der zweiten Erzeugungseinrichtung 32 ausgeführt werden, wie zuvor auch in Bezug auf 2 beschrieben. Danach geht der Fluss zu einem Schritt S4 weiter.In step S3, the body program 620 and / or the description of the data structures 630 , the methods 63 and events 64 , optionally with data, for the at least one application 22 . 600 . 700 at the client 20 based on the communication object description generated at step S1 60 generated. Step S3 may be performed by the second generating means 32 be executed, as previously with respect to 2 described. Thereafter, the flow proceeds to a step S4.

Bei dem Schritt S4 werden die Rumpfprogramme 610, 620 und/oder die Beschreibung der Datenstrukturen 630, der Methoden 63 und Events 64, gegebenenfalls mit Daten, der zugehörigen Applikation 12, 22, 200, 300, 600, 700 bereitgestellt, wie zuvor in Bezug auf 2 beschrieben. Danach geht das Verfahren zu dem Schritt S1 zurück.In step S4, the trunk programs 610 . 620 and / or the description of the data structures 630 , the methods 63 and events 64 , possibly with data, of the associated application 12 . 22 . 200 . 300 . 600 . 700 provided as previously with respect to 2 described. Thereafter, the process returns to step S1.

Bei dem Verfahren müssen der Schritt S2 und S3 nicht in der genannten Reihenfolge nacheinander ausgeführt werden. Der Schritt S3 kann auch vor dem Schritt S2 ausgeführt werden. Außerdem ist es möglich, dass bei nachfolgenden Änderungen des Kommunikationstyps auch nur entweder der Schritt S2 oder der Schritt S3 ausgeführt wird, wenn die Änderung des Kommunikationstyps nur Auswirkungen auf eines der Rumpfprogramme 610, 620 und/oder die Datentypen 630 für mindestens eine der Applikationen 12, 22, 200, 300, 600, 700 haben sollte. Es ist auch möglich, dass das Verfahren nach dem Schritt S4 beendet ist. In diesem Fall muss das Verfahren neu aufgerufen werden, wenn eine Änderung an dem Kommunikationsobjekt auftritt.In the method, steps S2 and S3 do not have to be executed sequentially in the order named. The step S3 may also be executed before the step S2. In addition, it is possible that in subsequent changes of the communication type, only either the step S2 or the step S3 is executed, if the change of the communication type only affects one of the trunk programs 610 . 620 and / or the data types 630 for at least one of the applications 12 . 22 . 200 . 300 . 600 . 700 should have. It is also possible that the procedure after step S4 is finished. In this case, the procedure must be called again if a change to the communication object occurs.

Somit können sowohl für die Client- als auch für die Server-seitige Applikation 12, 22, 200, 300, 600, 700 ausgehend von der einen gemeinsamen Kommunikationsobjektbeschreibung 60 als Kommunikationsobjektmodell in sich stimmige Programmrümpfe bzw. Rumpfprogramme 610, 620 und/oder Datentypen 630 automatisch generiert werden.Thus, both for the client and for the server-side application 12 . 22 . 200 . 300 . 600 . 700 starting from the one common communication object description 60 as a communication object model coherent program bodies or trunk programs 610 . 620 and / or data types 630 automatically generated.

Auf diese Weise können Änderungen der Kommunikation zwischen dem Server 10 und dem Client 20 in einfacher Weise durchgeführt werden.In this way, changes in communication between the server 10 and the client 20 be carried out in a simple manner.

Ein großer Vorteil bei der zuvor geschilderten Ausführung liegt darin, dass nur eine Quelle zur Kommunikationsbeschreibung, nämlich die Kommunikationsobjektbeschreibung 60, als Grundlage zur Erstellung für die Client- und Server-Applikationen 12, 22, 200, 300, 600, 700 herangezogen wird.A major advantage of the previously described embodiment is that only one source for communication description, namely the communication object description 60 , as a basis for creation for the client and server applications 12 . 22 . 200 . 300 . 600 . 700 is used.

In einer Modifikation des ersten Ausführungsbeispiels kann die Bereitstellung der Beschreibung der Datenstrukturen 630 und/oder der Datentypen 632, 6321, 6322 und/oder der Methoden 63 und/oder Events 64 gegebenfalls mit Daten, und/oder Rumpfprogrammen 610, 620 durch die Bereitstellungseinheit 34 auch nur erfolgen, wenn die Datenstrukturen 630 und/oder Rumpfprogramme 610, 620 für den Server 10 und/oder den Client 20 bestimmt sind. Daher kann die Bereitstellungseinheit 34 auch prüfen, ob der Server 10 und/oder der Client 20 berechtigt ist, das jeweilige Rumpfprogramm 610, 620 und/oder die Datenstrukturen 630 zu empfangen. Diese Prüfung kann beispielsweise unter Verwendung von Zugangsberechtigungscodes ausgeführt werden.In a modification of the first embodiment, the provision of the description of the data structures 630 and / or the data types 632 . 6321 . 6322 and / or methods 63 and / or events 64 if necessary with data, and / or hull programs 610 . 620 through the delivery unit 34 also only done if the data structures 630 and / or trunk programs 610 . 620 for the server 10 and / or the client 20 are determined. Therefore, the deployment unit 34 also check if the server 10 and / or the client 20 is entitled to the respective trunk program 610 . 620 and / or the data structures 630 to recieve. This check may be performed, for example, using conditional access codes.

6 zeigt eine Automatisierungsanlage 2 gemäß einem zweiten Ausführungsbeispiel. Die Automatisierungsanlage 2 ist in weiten Teilen auf die gleiche Weise aufgebaut, wie in Bezug auf das erste Ausführungsbeispiel beschrieben. Im Unterschied zum ersten Ausführungsbeispiel hat die Automatisierungsanlage 2 gemäß dem zweiten Ausführungsbeispiel Sequenzen 620A, 221, um den Verbindungsaufbau über die Kommunikationsverbindung 40 zur Kommunikation zwischen Client 20 und Server 10 automatisch zu generieren. Die Sequenzen 620A, 221 können als Programmcodesequenzen in dem Rumpfprogramm 620 für den Client 20 oder auch in den Applikationen 22, 600, 700 von den entsprechenden Erzeugungseinrichtungen 31, 32 automatisch generiert werden. Hierbei ist es vorzuziehen, dass der Verbindungsaufbau für eine Kommunikation zwischen Client 20 und Server 10 nur dann automatisch hergestellt wird, wenn keine Kommunikationsverbindung, beispielsweise über die Kommunikationsverbindung 40, zwischen Client 20 und Server 10 besteht. 6 shows an automation system 2 according to a second embodiment. The automation system 2 is largely constructed in the same way as described with respect to the first embodiment. In contrast to the first embodiment, the automation system 2 according to the second embodiment sequences 620A . 221 to establish a connection via the communication link 40 for communication between client 20 and server 10 automatically generate. The sequences 620A . 221 can be used as program code sequences in the body program 620 for the client 20 or in the applications 22 . 600 . 700 from the corresponding generation facilities 31 . 32 automatically generated. In this case, it is preferable that the connection establishment for communication between client 20 and server 10 is only automatically established if no communication connection, for example via the communication link 40 , between client 20 and server 10 consists.

7 zeigt eine Automatisierungsanlage 3 gemäß einem dritten Ausführungsbeispiel. Die Automatisierungsanlage 3 ist in weiten Teilen auf die gleiche Weise aufgebaut, wie in Bezug auf das erste Ausführungsbeispiel beschrieben. Im Unterschied zum ersten Ausführungsbeispiel hat die Automatisierungsanlage 3 gemäß dem dritten Ausführungsbeispiel zusätzlich das Merkmal, dass auf Seiten des Clients 20 und des Servers 10, der beispielsweise als SPS ausgeführt ist, mittels Schlüsselworten 600A spezielle Codesequenzen 620B, 222, generiert werden. Demzufolge weist die Kommunikationsobjektbeschreibung 60 zumindest ein Schlüsselwort 60A auf, so dass die Erzeugungseinrichtungen 32, 33 das oder die Schlüsselworte 60A zur automatischen Generierung oder Erzeugung der Codesequenzen 620B, 222 heranziehen können. Das heißt, eine Codesequenz der Codesequenzen 620B, 222 kann auch aus mehr als einem Schlüsselwort 600A erzeugt werden. 7 shows an automation system 3 according to a third embodiment. The automation system 3 is largely constructed in the same way as described with respect to the first embodiment. In contrast to the first embodiment, the automation system 3 according to the third embodiment additionally the feature that on the client side 20 and the server 10 which is executed, for example, as a PLC, by means of keywords 600A special code sequences 620B . 222 , to be generated. Consequently, the communication object description points 60 at least one keyword 60A on, so the generating equipment 32 . 33 the keyword or keywords 60A for automatic generation or generation of the code sequences 620B . 222 can draw. That is, a code sequence of the code sequences 620B . 222 can also consist of more than one keyword 600A be generated.

8 zeigt die Automatisierungsanlage 1 gemäß einem vierten Ausführungsbeispiel. Hier ist es auch möglich, dass anstelle des Servers 10 mit Provider 4 und Anwendung(en) 2, 3 gemäß den vorangehenden Ausführungsbeispielen der Server 10 mit Provider 4 und Anwendung(en) 2, 3 auch simuliert werden, wobei eine lauffähige Instanz des Servers als virtueller Server 10A einschließlich einer oder mehreren Anwendung(en) 2, 3 und Provider 4 generiert wird. Dadurch umfasst der Server 10A neben seinen Funktionen, die zuvor in Bezug auf zumindest eines der vorangehenden Ausführungsbeispiele beschrieben sind, auch alle Funktionen der Anwendung(en) 2, 3 und des Providers 4, wie für zumindest eines der vorangehenden Ausführungsbeispiele beschrieben. Der Server 10 zeigt hierzu unter Verwendung des vorgegebenen Kommunikationsobjekts bereits das gewünschte Verhalten gemäß der Kommunikationsobjektbeschreibung 60. Bei OPC UA beispielsweise könnte die Kommunikationsobjektbeschreibung 60 direkt zum Aufbau des Adressraums im virtuellen Server 10A genutzt werden. Auf diese Weise kann auf der Client-Seite unmittelbar eine Applikation 22, 600, 700 geschrieben und in Grundzügen gegenüber dem virtuellen Server 10A getestet werden. 8th shows the automation system 1 according to a fourth embodiment. Here it is also possible that instead of the server 10 with provider 4 and application (s) 2 . 3 according to the preceding embodiments, the server 10 with provider 4 and application (s) 2 . 3 also be simulated, with a running instance of the server as a virtual server 10A including one or more application (s) 2 . 3 and providers 4 is generated. This includes the server 10A in addition to its functions previously described in relation to at least one of the preceding embodiments, also all functions of the application (s) 2 . 3 and the provider 4 as described for at least one of the preceding embodiments. The server 10 shows for this purpose using the given communication object already the desired behavior according to the communication object description 60 , For example, in the case of OPC UA, the communication object description could 60 directly to the structure of the address space in the virtual server 10A be used. In this way, an application can be directly on the client side 22 . 600 . 700 written and in outline against the virtual server 10A be tested.

Somit ist hier die Erzeugungseinrichtung 32 ausgestaltet, aus der Kommunikationsobjektbeschreibung 60 einen virtuellen Server 10A zu erzeugen.Thus here is the generator 32 designed, from the communication object description 60 a virtual server 10A to create.

Gleiches soll auch auf Client-Seite ermöglicht werden, wie in 9 gezeigt, so dass eine lauffähige Instanz des Clients als virtueller Client 20A zur Verfügung steht, gegenüber der ein Server 10 erstellt bzw. getestet werden kann, wie in Bezug zumindest eines der vorangehenden Ausführungsbeispiele beschrieben. Der virtuelle Client 20A hat neben seinen Funktionen, die zuvor in Bezug auf zumindest eines der vorangehenden Ausführungsbeispiele beschrieben sind, auch alle Funktionen der Anwendung(en) 6, 7 und des Providers 5, wie für zumindest eines der vorangehenden Ausführungsbeispiele beschrieben.The same should also be possible on the client side, as in 9 shown, making a working instance of the client as a virtual client 20A is available, opposite to a server 10 can be created or tested as described in relation to at least one of the preceding embodiments. The virtual client 20A In addition to its functions previously described in relation to at least one of the preceding embodiments, it also has all the functions of the application (s). 6 . 7 and the provider 5 as described for at least one of the preceding embodiments.

In diesem Fall ist also die Erzeugungseinrichtung 33 ausgestaltet, aus der Kommunikationsobjektbeschreibung 60 einen virtuellen Client 20A zu erzeugen.In this case, therefore, the generating device 33 designed, from the communication object description 60 a virtual client 20A to create.

Alle zuvor beschriebenen Ausgestaltungen der Automatisierungsanlagen 1, 2, 3, der Vorrichtung 30 und des Verfahrens können einzeln oder in allen möglichen Kombinationen Verwendung finden. Insbesondere können alle Merkmale und/oder Funktionen der zuvor beschriebenen Ausführungsbeispiele beliebig kombiniert und bei Bedarf auch weggelassen werden. Zusätzlich sind insbesondere folgende Modifikationen denkbar.All previously described embodiments of automation systems 1 . 2 . 3 , the device 30 and the method can be used individually or in all possible combinations. In particular, all features and / or functions of the embodiments described above can be combined as desired and also omitted if necessary. In addition, the following modifications are conceivable, in particular.

Die in den Figuren dargestellten Teile sind schematisch dargestellt und können in der genauen Ausgestaltung von den in den Figuren gezeigten Formen abweichen, solange deren zuvor beschriebenen Funktionen gewährleistet sind.The parts shown in the figures are shown schematically and may differ in the exact embodiment of the shapes shown in the figures, as long as their functions described above are guaranteed.

Es ist auch denkbar, dass der Server 10, der Client 20 und die Vorrichtung 30 jeweils Teilnehmer eines Bussystems sind. An das Bussystem können auch weitere Clients 20 und/oder Server 10 angeschlossen sein. Hierbei kann die Vorrichtung 30 für alle Paarungen aus Client 20 und zugehörigem Server 10 die Rumpfprogramme 610, 620 und Datentypen 630 erstellen. Alternativ ist auch eine direkte Bereitstellung der Rumpfprogramme 610, 620 denkbar.It is also possible that the server 10 , the client 20 and the device 30 are each participants of a bus system. Other clients can also be connected to the bus system 20 and / or server 10 be connected. Here, the device 30 for all pairings from client 20 and associated server 10 the trunk programs 610 . 620 and data types 630 create. Alternatively, a direct provision of the trunk programs 610 . 620 conceivable.

Außerdem ist es möglich, dass die Vorrichtung 30 nur eine Erzeugungseinrichtung 32 aufweist, welche neben ihren zuvor beschriebenen Funktionen zusätzlich die Funktionen der zweiten Erzeugungseinrichtung 33 aufweist.It is also possible that the device 30 only one generating device 32 which, in addition to their previously described functions additionally the functions of the second generating device 33 having.

Claims (10)

Vorrichtung (30) zum Erstellen von Applikationen (12, 200, 300) für Anwendungen (2, 3) zur Kommunikation zwischen einem Server (10) und einem Client (20) einer Automatisierungsanlage (1; 2; 3), mit einer Erzeugungseinrichtung (32; 33) zur Erzeugung eines Rumpfprogramms (610) für eine auf dem Server (10) oder einer dem Server (10) vorgelagerten Anwendung (2, 3) ausführbare Applikation (12, 200, 300) auf der Grundlage einer Kommunikationsobjektbeschreibung (60), welche ein Kommunikationsobjekt zwischen dem Server (10) und dem Client (20) derart beschreibt, dass auch ein Rumpfprogramm (620) für eine Applikation (22, 600, 700) auf Seiten des Clients (20) mit der Erzeugungseinrichtung (32; 33) oder einer weiteren Erzeugungseinrichtung (33; 32) auf der Grundlage der Kommunikationsobjektbeschreibung (60) erzeugbar ist, und einer Bereitstelleinrichtung (34) zum Bereitstellen des Rumpfprogramms (610) für den Server (10) oder die dem Server (10) vorgelagerte Anwendung (2, 3), so dass eine Kommunikation zwischen dem Server (10) und dem Client (20) oder zwischen der dem Server (10) vorgelagerten Anwendung (2, 3) und dem Client (20) gemäß dem in der Kommunikationsobjektbeschreibung (60) beschriebenen Kommunikationsobjekt ausführbar ist.Contraption ( 30 ) for creating applications ( 12 . 200 . 300 ) for applications ( 2 . 3 ) for communication between a server ( 10 ) and a client ( 20 ) an automation system ( 1 ; 2 ; 3 ), with a generating device ( 32 ; 33 ) for generating a core program ( 610 ) for one on the server ( 10 ) or a server ( 10 ) upstream application ( 2 . 3 ) executable application ( 12 . 200 . 300 ) based on a communication object description ( 60 ), which is a communication object between the server ( 10 ) and the client ( 20 ) describes that a trunk program ( 620 ) for an application ( 22 . 600 . 700 ) on the client side ( 20 ) with the generating device ( 32 ; 33 ) or another generation device ( 33 ; 32 ) based on the communication object description ( 60 ) and a provisioning device ( 34 ) for providing the core program ( 610 ) for the server ( 10 ) or the server ( 10 ) upstream application ( 2 . 3 ), allowing communication between the server ( 10 ) and the client ( 20 ) or between the server ( 10 ) upstream application ( 2 . 3 ) and the client ( 20 ) according to the communication object description ( 60 ) described communication object is executable. Vorrichtung (30) zum Erstellen von Applikationen (22, 600, 700) für Anwendungen (6, 7) zur Kommunikation zwischen einem Server (10) und einem Client (20) einer Automatisierungsanlage (1; 2; 3), mit einer Erzeugungseinrichtung (33; 32) zur Erzeugung eines Rumpfprogramms (620) für eine auf dem Client (20) oder einer dem Client (20) vorgelagerten Anwendung (6, 7) ausführbare Applikation (22, 600, 700) auf der Grundlage einer Kommunikationsobjektbeschreibung (60), welche ein Kommunikationsobjekt zwischen dem Server (10) und dem Client (20) derart beschreibt, dass auch ein Rumpfprogramm (610) für eine Applikation (12, 200, 300) auf Seiten des Servers (20) mit der Erzeugungseinrichtung (33; 32) oder einer weiteren Erzeugungseinrichtung (32; 33) auf der Grundlage der Kommunikationsobjektbeschreibung (60) erzeugbar ist, und einer Bereitstelleinrichtung (34) zum Bereitstellen des Rumpfprogramms (620) für den Client (20) oder die dem Client (20) vorgelagerte Anwendung (6, 7), so dass eine Kommunikation zwischen dem Server (10) und dem Client (20) oder zwischen dem Server (10) und der dem Client (20) vorgelagerten Anwendung (6, 7) gemäß dem in der Kommunikationsobjektbeschreibung (60) beschriebenen Kommunikationsobjekt ausführbar ist.Contraption ( 30 ) for creating applications ( 22 . 600 . 700 ) for applications ( 6 . 7 ) for communication between a server ( 10 ) and a client ( 20 ) an automation system ( 1 ; 2 ; 3 ), with a generating device ( 33 ; 32 ) for generating a core program ( 620 ) for one on the client ( 20 ) or one of the clients ( 20 ) upstream application ( 6 . 7 ) executable application ( 22 . 600 . 700 ) based on a communication object description ( 60 ), which is a communication object between the server ( 10 ) and the client ( 20 ) describes that a trunk program ( 610 ) for an application ( 12 . 200 . 300 ) on the server side ( 20 ) with the generating device ( 33 ; 32 ) or another generation device ( 32 ; 33 ) based on the communication object description ( 60 ) and a provisioning device ( 34 ) for providing the core program ( 620 ) for the client ( 20 ) or the client ( 20 ) upstream application ( 6 . 7 ), allowing communication between the server ( 10 ) and the client ( 20 ) or between the server ( 10 ) and the client ( 20 ) upstream application ( 6 . 7 ) according to the communication object description ( 60 ) described communication object is executable. Vorrichtung (30) nach Anspruch 1 oder 2, wobei die Erzeugungseinrichtung (33) zudem ausgestaltet ist, mindestens eine Datenstruktur (630) und/oder Datentyp (632, 6321, 6322) und/oder Methode (63) und/oder Event (64) für den Client (20) aus der Kommunikationsobjektbeschreibung (60) zu erzeugen, und/oder wobei die Bereitstellungseinheit (34) zudem ausgestaltet ist zu prüfen, ob der Server (10) und/oder der Client (20) berechtigt ist, das jeweilige Rumpfprogramm (610, 620) und/oder die mindestens eine Datenstruktur (630) und/oder Datentyp (632, 6321, 6322) und/oder Methode (63) und/oder Event (64) zu empfangen.Contraption ( 30 ) according to claim 1 or 2, wherein the generating device ( 33 ) is configured, at least one data structure ( 630 ) and / or data type ( 632 . 6321 . 6322 ) and / or method ( 63 ) and / or event ( 64 ) for the client ( 20 ) from the communication object description ( 60 ) and / or wherein the delivery unit ( 34 ) is also designed to check whether the server ( 10 ) and / or the client ( 20 ), the respective trunk program ( 610 . 620 ) and / or the at least one data structure ( 630 ) and / or data type ( 632 . 6321 . 6322 ) and / or method ( 63 ) and / or event ( 64 ) to recieve. Vorrichtung (30) nach einem der vorangehenden Ansprüche, wobei die Erzeugungseinrichtung (32; 33) zudem ausgestaltet ist, in dem Rumpfprogramm (620) für den Client (20) Sequenzen (620A) zu erzeugen, aufgrund welcher die Anwendung (22) automatisch eine Kommunikationsverbindung (40) mit dem Server (10) herstellen kann, und/oder wobei die Erzeugungseinrichtung (32; 33) zudem ausgestaltet ist, aus einem Schlüsselwort (60A) in der Kommunikationsobjektbeschreibung (60) eine vorbestimmte Codesequenz (610B; 620B) für die Applikation (12; 22; 200; 300; 600; 700) zu erzeugen, und/oder wobei die Erzeugungseinrichtung (32; 33) zudem ausgestaltet ist, aus der Kommunikationsobjektbeschreibung (60) einen virtuellen Server (10A) oder einen virtuellen Client (20A) zu erzeugen.Contraption ( 30 ) according to one of the preceding claims, wherein the generation device ( 32 ; 33 ) is also configured in the trunk program ( 620 ) for the client ( 20 ) Sequences ( 620A ) too generate due to which the application ( 22 ) automatically a communication connection ( 40 ) with the server ( 10 ) and / or wherein the generating device ( 32 ; 33 ) is also made up of a keyword ( 60A ) in the communication object description ( 60 ) a predetermined code sequence ( 610B ; 620B ) for the application ( 12 ; 22 ; 200 ; 300 ; 600 ; 700 ) and / or wherein the generation device ( 32 ; 33 ) is also configured, from the communication object description ( 60 ) a virtual server ( 10A ) or a virtual client ( 20A ) to create. Vorrichtung (30) nach einem der vorangehenden Ansprüche, wobei die Applikation (12; 200; 300) auf Seiten des Servers (10) und die Anwendung (22; 600; 700) auf Seiten des Clients (20) ausgestaltet sind, in Echtzeit Daten (50) gemäß dem Kommunikationsobjekt austauschen.Contraption ( 30 ) according to one of the preceding claims, wherein the application ( 12 ; 200 ; 300 ) on the server side ( 10 ) and the application ( 22 ; 600 ; 700 ) on the client side ( 20 ) are configured in real time ( 50 ) according to the communication object. Automatisierungsanlage (1; 2; 3), mit mindestens einer Anwendung (2, 3) mit Verbindung zu einem Server (10), und mindestens einer weiteren Anwendung (6, 7) mit Verbindung zu einem Client (20), wobei der Client (20) mit dem Server (10) über eine Kommunikationsverbindung (40) verbunden ist, und mindestens einer Vorrichtung (30) nach einem der vorangehenden Ansprüche.Automation system ( 1 ; 2 ; 3 ), with at least one application ( 2 . 3 ) with connection to a server ( 10 ), and at least one other application ( 6 . 7 ) with connection to a client ( 20 ), whereby the client ( 20 ) with the server ( 10 ) via a communication connection ( 40 ) and at least one device ( 30 ) according to one of the preceding claims. Automatisierungsanlage (1; 2; 3) nach Anspruch 6, wobei einem Server (10) des mindestens einen Servers (10) eine SPS (2) und einem Client (20) des mindestens einen Clients (20) ein Produktionsleitsystem (7) vorgelagert ist, und/oder wobei einem Server (10) des mindestens einen Servers (10) eine SPS (2) und einem Client (20) des mindestens einen Clients (20) eine HMI 3 vorgelagert ist.Automation system ( 1 ; 2 ; 3 ) according to claim 6, wherein a server ( 10 ) of the at least one server ( 10 ) a PLC ( 2 ) and a client ( 20 ) of the at least one client ( 20 ) a production control system ( 7 ) and / or wherein a server ( 10 ) of the at least one server ( 10 ) a PLC ( 2 ) and a client ( 20 ) of the at least one client ( 20 ) an HMI 3 is upstream. Verfahren zum Erstellen von Applikationen (12, 200, 300) für Anwendungen (2, 3) zur Kommunikation zwischen einem Server und einem Client einer Automatisierungsanlage, wobei das Verfahren die Schritte aufweist Erzeugen, mit einer Erzeugungseinrichtung (32; 33), eines Rumpfprogramms (610) für eine auf dem Server (10) oder einer dem Server (10) vorgelagerten Anwendung (2, 3) ausführbare Applikation (12, 200, 300) auf der Grundlage einer Kommunikationsobjektbeschreibung (60), welche ein Kommunikationsobjekt zwischen dem Server (10) und dem Client (20) derart beschreibt, dass auch ein Rumpfprogramm (620) für eine Applikation (22, 600, 700) auf Seiten des Clients (20) mit der Erzeugungseinrichtung (32; 33) oder einer weiteren Erzeugungseinrichtung (33; 32) auf der Grundlage der Kommunikationsobjektbeschreibung (60) erzeugbar ist, und Bereitstellen, mit einer Bereitstelleinrichtung (34), des Rumpfprogramms (610) für den Server (10) oder die dem Server (10) vorgelagerte Anwendung (2, 3), so dass eine Kommunikation zwischen dem Server (10) und dem Client (20) oder zwischen der dem Server (10) vorgelagerten Anwendung (2, 3) und dem Client (20) gemäß dem in der Kommunikationsobjektbeschreibung (60) beschriebenen Kommunikationsobjekt ausführbar ist.Method for creating applications ( 12 . 200 . 300 ) for applications ( 2 . 3 ) for communication between a server and a client of an automation system, the method comprising the steps of generating, with a generation device ( 32 ; 33 ), a core program ( 610 ) for one on the server ( 10 ) or a server ( 10 ) upstream application ( 2 . 3 ) executable application ( 12 . 200 . 300 ) based on a communication object description ( 60 ), which is a communication object between the server ( 10 ) and the client ( 20 ) describes that a trunk program ( 620 ) for an application ( 22 . 600 . 700 ) on the client side ( 20 ) with the generating device ( 32 ; 33 ) or another generation device ( 33 ; 32 ) based on the communication object description ( 60 ), and providing, with a provisioning device ( 34 ), the hull program ( 610 ) for the server ( 10 ) or the server ( 10 ) upstream application ( 2 . 3 ), allowing communication between the server ( 10 ) and the client ( 20 ) or between the server ( 10 ) upstream application ( 2 . 3 ) and the client ( 20 ) according to the communication object description ( 60 ) described communication object is executable. Verfahren zum Erstellen von Applikationen (22, 600, 700) für Anwendungen (6, 7) zur Kommunikation zwischen einem Server (10) und einem Client (20) einer Automatisierungsanlage (1; 2; 3), mit Erzeugen, mit einer Erzeugungseinrichtung (33; 32), eines Rumpfprogramms (620) für eine auf dem Client (20) oder einer dem Client (20) vorgelagerten Anwendung (6, 7) ausführbare Applikation (22, 600, 700) auf der Grundlage einer Kommunikationsobjektbeschreibung (60), welche ein Kommunikationsobjekt zwischen dem Server (10) und dem Client (20) derart beschreibt, dass auch ein Rumpfprogramm (610) für eine Applikation (12, 200, 300) auf Seiten des Servers (20) mit der Erzeugungseinrichtung (33; 32) oder einer weiteren Erzeugungseinrichtung (32; 33) auf der Grundlage der Kommunikationsobjektbeschreibung (60) erzeugbar ist, und Bereitstellen, mit einer Bereitstelleinrichtung (34), des Rumpfprogramms (620) für den Client (20) oder die dem Client (20) vorgelagerte Anwendung (6, 7), so dass eine Kommunikation zwischen dem Server (10) und dem Client (20) oder zwischen dem Server (10) und der dem Client (20) vorgelagerten Anwendung (6, 7) gemäß dem in der Kommunikationsobjektbeschreibung (60) beschriebenen Kommunikationsobjekt ausführbar ist.Method for creating applications ( 22 . 600 . 700 ) for applications ( 6 . 7 ) for communication between a server ( 10 ) and a client ( 20 ) an automation system ( 1 ; 2 ; 3 ), with generating, with a generating device ( 33 ; 32 ), a core program ( 620 ) for one on the client ( 20 ) or one of the clients ( 20 ) upstream application ( 6 . 7 ) executable application ( 22 . 600 . 700 ) based on a communication object description ( 60 ), which is a communication object between the server ( 10 ) and the client ( 20 ) describes that a trunk program ( 610 ) for an application ( 12 . 200 . 300 ) on the server side ( 20 ) with the generating device ( 33 ; 32 ) or another generation device ( 32 ; 33 ) based on the communication object description ( 60 ), and providing, with a provisioning device ( 34 ), the hull program ( 620 ) for the client ( 20 ) or the client ( 20 ) upstream application ( 6 . 7 ), allowing communication between the server ( 10 ) and the client ( 20 ) or between the server ( 10 ) and the client ( 20 ) upstream application ( 6 . 7 ) according to the communication object description ( 60 ) described communication object is executable. Verfahren nach Anspruch 8 oder 9, zudem mit einem Schritt eines Erstellens (S1) der Kommunikationsobjektbeschreibung (60).The method of claim 8 or 9, further comprising a step of creating (S1) the communication object description ( 60 ).
DE102015204751.2A 2015-03-17 2015-03-17 DEVICE AND METHOD FOR CREATING APPLICATIONS FOR APPLICATIONS FOR A COMMUNICATION BETWEEN A SERVER AND A CLIENT OF AN AUTOMATION PLANT Withdrawn DE102015204751A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015204751.2A DE102015204751A1 (en) 2015-03-17 2015-03-17 DEVICE AND METHOD FOR CREATING APPLICATIONS FOR APPLICATIONS FOR A COMMUNICATION BETWEEN A SERVER AND A CLIENT OF AN AUTOMATION PLANT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015204751.2A DE102015204751A1 (en) 2015-03-17 2015-03-17 DEVICE AND METHOD FOR CREATING APPLICATIONS FOR APPLICATIONS FOR A COMMUNICATION BETWEEN A SERVER AND A CLIENT OF AN AUTOMATION PLANT

Publications (1)

Publication Number Publication Date
DE102015204751A1 true DE102015204751A1 (en) 2016-09-22

Family

ID=56852733

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015204751.2A Withdrawn DE102015204751A1 (en) 2015-03-17 2015-03-17 DEVICE AND METHOD FOR CREATING APPLICATIONS FOR APPLICATIONS FOR A COMMUNICATION BETWEEN A SERVER AND A CLIENT OF AN AUTOMATION PLANT

Country Status (1)

Country Link
DE (1) DE102015204751A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230117B1 (en) * 1997-03-27 2001-05-08 International Business Machines Corporation System for automated interface generation for computer programs operating in different environments
US6578191B1 (en) * 1999-05-17 2003-06-10 International Business Machines Corporation Method and apparatus for dynamic generation of adapters
US6708074B1 (en) * 2000-08-11 2004-03-16 Applied Materials, Inc. Generic interface builder
EP2088507A2 (en) * 2008-01-31 2009-08-12 NCR Corporation Interoperability method and software
US8510762B1 (en) * 2011-10-12 2013-08-13 Google Inc. Generate custom client library samples based on a machine readable API description
WO2014061516A1 (en) * 2012-10-19 2014-04-24 国立大学法人東京大学 Method and device for generation of conversion module linking between different robot middleware types

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230117B1 (en) * 1997-03-27 2001-05-08 International Business Machines Corporation System for automated interface generation for computer programs operating in different environments
US6578191B1 (en) * 1999-05-17 2003-06-10 International Business Machines Corporation Method and apparatus for dynamic generation of adapters
US6708074B1 (en) * 2000-08-11 2004-03-16 Applied Materials, Inc. Generic interface builder
EP2088507A2 (en) * 2008-01-31 2009-08-12 NCR Corporation Interoperability method and software
US8510762B1 (en) * 2011-10-12 2013-08-13 Google Inc. Generate custom client library samples based on a machine readable API description
WO2014061516A1 (en) * 2012-10-19 2014-04-24 国立大学法人東京大学 Method and device for generation of conversion module linking between different robot middleware types

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WO 2014061516 A1 (abstract). WPI [online].

Similar Documents

Publication Publication Date Title
EP1330685B1 (en) Testing method and testing device for starting up systems which are controlled by means of a program logic
EP2799983B1 (en) Flexible distribution of I/O channels of a hardware component
DE112011100069T5 (en) A method of developing software and apparatus for the same
DE112014001359T5 (en) Predictive system for deploying enterprise applications
EP3948446A1 (en) Generating and distributing configuration data structures for control systems
AT412131B (en) AUTOMATION SYSTEM FOR SOLVING A PROCESS TECHNICAL TASK AND METHOD FOR THIS
DE102011055657A1 (en) Method, system and computer program product for simulating a production automation system with service-oriented architecture
EP1634130B1 (en) Device and method for programming and/or executing programs for industrial automation systems
DE10324594A1 (en) Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment
EP3709188A1 (en) Computer architecture for an interface for aggregation of data objects in a distributed system
DE10215653A1 (en) Program code automatic generation method in which program code sections are generated using input and output controls or masks so that flexible engineering workflows can be gernated
DE102015204751A1 (en) DEVICE AND METHOD FOR CREATING APPLICATIONS FOR APPLICATIONS FOR A COMMUNICATION BETWEEN A SERVER AND A CLIENT OF AN AUTOMATION PLANT
DE10354938B4 (en) Automated management data processing system and method for automated management of a data processing system
EP2329374A1 (en) Test module and method for testing an o/r imaging middleware
EP3771979A1 (en) Method and device for optimal configuration of a device of a device class
EP3376736A1 (en) Method and device for communications of data in a computer network and computer program with an implementation of the method
DE102005010405B4 (en) System arrangement and method for automated application development with user guidance
DE102004023634B4 (en) Method for checking the completeness and consistency of an information library
AT522186B1 (en) Computer-implemented method for the computer-aided generation of an executable control program for controlling and / or regulating a technical process
DE102020005055A1 (en) Adaptation of data transmission from a control device to a cloud system using machine learning
DE102008060970A1 (en) Device for generating a marked reference data stream
DE102021119116A1 (en) Technology for realizing a visualization for an automation system with a programmable logic controller
WO2023208578A1 (en) Method and computer program for automatically generating communication interfaces in algorithms from the field of artificial intelligence
DE102015121486B4 (en) Method and device for operating a vehicle control system
DE102021123596A1 (en) Technique for providing diagnostic functionality for a programmable logic controller based application

Legal Events

Date Code Title Description
R163 Identified publications notified
R005 Application deemed withdrawn due to failure to request examination