CH712388A2 - Method for programming control functions by means of semantic analysis of the HMI. - Google Patents

Method for programming control functions by means of semantic analysis of the HMI. Download PDF

Info

Publication number
CH712388A2
CH712388A2 CH00542/16A CH5422016A CH712388A2 CH 712388 A2 CH712388 A2 CH 712388A2 CH 00542/16 A CH00542/16 A CH 00542/16A CH 5422016 A CH5422016 A CH 5422016A CH 712388 A2 CH712388 A2 CH 712388A2
Authority
CH
Switzerland
Prior art keywords
controller
support module
user interface
control
functions
Prior art date
Application number
CH00542/16A
Other languages
German (de)
Other versions
CH712388B1 (en
Inventor
Brügger Peter
Original Assignee
Ininet Solutions 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 Ininet Solutions Gmbh filed Critical Ininet Solutions Gmbh
Priority to CH00542/16A priority Critical patent/CH712388B1/en
Publication of CH712388A2 publication Critical patent/CH712388A2/en
Publication of CH712388B1 publication Critical patent/CH712388B1/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

Die vorliegende Erfindung beschreibt ein Verfahren zur Unterstützung eines Programmierers bei der Integration und Programmierung einer industriellen Steuerung in ein bestehendes, vernetztes Umfeld von weiteren Steuerungskomponenten (Fremdsteuerungen). Grundlage dazu bilden auf den bestehenden Fremdsteuerungen vorhandene Bedieneroberflächen (HMI, Human Machine Interface), welche häufig über emdedded Webserver zugegriffen werden können. Diese HMI sollen im erfindungsgemässen Verfahren importiert und nach verschiedenen Methoden automatisch analysiert werden, um Informationen über die Variablennamen, die verwendeten Kommunikationsprotokolle sowie insbesondere der dahinterliegenden Steuerungsfunktionen zu erlangen. Die auf dem HMI der Fremdsteuerungen vorhandenen Bedienelemente erklären die dahinterliegenden Steuerungsfunktionen. Durch einen Vergleich mit bereits bekannten HMI-Elementen kann im erfindungsgemässen Verfahren die semantische Bedeutung der zugeordneten Daten erfasst und dem Programmierer passende Interfaces, Kommunikations- und Steuerungsfunktionen vorgeschlagen werden.The present invention describes a method for assisting a programmer in integrating and programming an industrial controller into an existing, networked environment of other control components (third party controllers). The basis for this is provided on the existing third-party controls existing user interfaces (HMI, Human Machine Interface), which can be accessed frequently via emdedded web server. These HMIs are to be imported in the method according to the invention and automatically analyzed by various methods in order to obtain information about the variable names, the communication protocols used and, in particular, the underlying control functions. The control elements on the HMI of the third-party controls explain the underlying control functions. By comparison with already known HMI elements, the semantic meaning of the assigned data can be detected in the method according to the invention and suitable interfaces, communication and control functions can be proposed to the programmer.

Description

Beschreibung Technisches Gebiet [0001] Die vorliegende Erfindung betrifft ein Verfahren für die Programmierung mindestens einer an ein Netzwerk angeschlossenen Fremdsteuerung gemäss dem Oberbegriff des unabhängigen Anspruchs 1.Description TECHNICAL FIELD The present invention relates to a method for programming at least one external controller connected to a network according to the preamble of independent claim 1.

Stand der Technik [0002] Industrielle Steuerungen sind mikroprozessorbasierte Steuerungen wie weiter unten unter (A) und (B) beschrieben und werden heute überall eingesetzt, wo Steuerungs- und Überwachungsaufgaben automatisiert werden sollen (z.B. industrielle Automation, Gebäudeautomation, Heimautomation, usw.). Solche Steuerungen bestehen aus einem Micropro-zessorsystem, welches in der Lage ist, z.B. Sensoren und elektrische Eingänge einzulesen und auf Aktoren oder Ausgänge zu schreiben. Solche Steuerungen werden in der Fachsprache z.B. als SPS oder PLC (Speicherprogrammierbare Steuerung), Regler, Raumcontroller, DDC (Direct Digital Control), usw. bezeichnet. Die Steuerungen sind entweder fest programmiert und werden im Feld ggf. noch über eine Parametrierung für ihre Aufgabe konfiguriert oder sie sind über eine Vielzahl von Codierungssprachen mehr oder weniger frei programmierbar. Dabei kommt es häufig vor, dass für unterschiedliche Aufgabenstellungen in einer Fabrik oder in einem Gebäude unterschiedliche Systeme von verschiedenen Herstellern und Integratoren für die diversen Aufgaben zum Einsatz kommen.Background Art Industrial controllers are microprocessor-based controllers as described below under (A) and (B) and are now widely used where control and monitoring tasks are to be automated (e.g., industrial automation, building automation, home automation, etc.). Such controls consist of a microprocessor system which is capable, e.g. Read in sensors and electrical inputs and write on actuators or outputs. Such controls are known in the art e.g. referred to as PLC or PLC (Programmable Logic Controller), controller, room controller, DDC (Direct Digital Control), etc. The controllers are either permanently programmed and may still be configured in the field via a parameterization for their task or they are more or less freely programmable via a multiplicity of coding languages. It often happens that different systems from different manufacturers and integrators for different tasks are used for different tasks in a factory or in a building.

[0003] In neuerer Zeit sind diese Steuerungen auch häufig über ein TCP/IP Netzwerk miteinander verbunden und sie verfügen über einen integrierten Webserver, über welchen der Benutzer kommunizieren und die Steuerung über ein browserfähiges Benutzer-Interface (HMI) bedienen kann. Die Steuerungen können z.B. über dieses TCP/IP Netzwerk über geeignete Feldbusprotokolle auch Daten untereinander austauschen.More recently, these controllers are also commonly interconnected via a TCP / IP network, and they have an integrated web server through which the user can communicate and operate the controller via a browser-enabled user interface (HMI). The controls may e.g. Exchange data with one another via this TCP / IP network via suitable fieldbus protocols.

[0004] Will man die verschiedenen Steuerungen und die darauf implementierten Funktionen miteinander interagieren lassen, um z.B. eine gesamte Anlage zu kontrollieren oder zusätzliche Funktionen anzubinden, so muss die Programmierung einer der bestehenden oder einer zusätzlichen Steuerung erweitert sowie die Steuerungen miteinander verbunden werden.If one wants to let the various controllers and the functions implemented on them interact with each other, e.g. To control an entire system or to connect additional functions, the programming of one of the existing or an additional controller must be extended and the controllers interconnected.

[0005] Dazu muss der Benutzer zuerst das geeignete Kommunikationsprotokoll wählen, welches beide der betroffenen Steuerungen beherrschen. Danach muss er sich mit der Programmierung der anzuschliessenden Steuerung beschäftigen, um zu erfahren, welche Variablen dass er für seine neu zu schreibenden Funktionen benötigt. Diese Variablen müssen u.U. noch für die gewählte Kommunikation bereitgestellt werden. Auf der Seite der neuen Steuerung müssen diese Variablen nun importiert und die gewünschte Steuerungsapplikation in der gewünschten Programmiersprache geschrieben werden. Danach wird die neue Funktion in Betrieb genommen und getestet. Dieses Vorgehen beschreibt den heutigen Stand der Technik und erfordert ein ausreichendes technisches Wissen über die verwendeten Komponenten sowie über allgemeine Programmierkenntnisse. Ausserdem ist es notwendig, dass der Programmcode der Steuerung A oder wenigstens einige Informationen daraus vorliegen.For this purpose, the user must first select the appropriate communication protocol, both of which control the affected controls. Then he has to deal with the programming of the controller to be connected to find out which variables he needs for his new functions to be written. These variables may need to be still be provided for the chosen communication. On the new controller side, these variables must now be imported and the desired controller application must be written in the desired programming language. Then the new function is put into operation and tested. This procedure describes the current state of the art and requires sufficient technical knowledge of the components used as well as general programming knowledge. In addition, it is necessary that the program code of the controller A or at least some information therefrom.

[0006] Im Rahmen von zukünftigen Entwicklungen wie z.B. des «Internet of Things» (loT) ist davon auszugehen, dass sich die Anzahl von programmierbaren, vernetzten Steuerungskomponenten («Smart Devices») vervielfachen wird.In the context of future developments such as e.g. The "Internet of Things" (loT) assumes that the number of programmable, networked control components ("smart devices") will multiply.

[0007] Die Anzahl der verfügbaren Techniker, die in der Lage sind, Programme im Rahmen des oben beschriebenen Ablaufes zu erstellen, wird aber kaum in dem gleichen Masse schritthalten können.However, the number of available technicians who are able to create programs within the framework of the process described above will hardly be able to keep up to the same extent.

[0008] Es ist also notwendig, dass Verfahren gefunden werden, welche die Integration von bestehenden Steuerungen und die Programmierung von neuen Funktionen signifikant vereinfachen.Thus, it is necessary to find methods that significantly simplify the integration of existing controllers and the programming of new functions.

[0009] Die grossen Herausforderungen der Zukunft werden sein: Wie kann man so viele «Smart Devices» programmieren? Wie kann man die Komplexität beherrschen? Wie kann man verifizieren, dass alles richtig funktioniert? [0010] Um diese Herausforderungen zu meistern, sind heute verschiedene Bestrebungen im Gange, um technische Standards zu schaffen, die nicht nur eine binäre Kompatibilität gewährleisten, sondern eine standardisierte Beschreibung der semantischen Bedeutung von Daten umfassen. Einen frühen Ansatz in diese Richtung zeigt der Building Automation and Control Networks (BACnet) Standard, welcher eine wohldefinierte Anzahl von Objekten für die typischen Funktionen der Gebäudeautomation vorschreibt. Der Nutzen für den Anwender/Programmierer besteht darin, dass einerseits eine her-stellerübergreifende Kombination von Automationskomponenten möglich wird, v.A. aber, dass in einem Netzwerk gezielt nach Funktionen für eine gewünschte Aufgabenstellung gesucht werden kann.[0009] The big challenges of the future will be: how to program so many smart devices? How can one master the complexity? How can you verify that everything is working properly? In order to meet these challenges, today various efforts are under way to create technical standards that not only ensure binary compatibility but include a standardized description of the semantic meaning of data. An early approach in this direction is the Building Automation and Control Networks (BACnet) standard, which prescribes a well-defined number of objects for typical building automation functions. The benefit for the user / programmer is that, on the one hand, a manufacturer-independent combination of automation components becomes possible, v.A. but that in a network can be searched for specific functions for a desired task.

[0011] Ein weiteres Beispiel für eine solche Standardisierung zeigt uns das Open Platform Communications Unified Ar-chitecture (OPC UA) Gremium, in welchem neben der Normierung der bekannten binären Kompatibilität daran gearbeitet wird, für viele Branchen abstrakte Beschreibungen (in einem Extensible Markup Language (XML) Format) von archetypischen Funktionen zu erfassen (Informationsmodell). Diese Beschreibungen werden dann auf den Steuerungskomponenten hinterlegt und können von einem Programmierer gefunden, gebrowst und importiert werden. Dies kann die Programmierung in Zukunft wesentlich vereinfachen.Another example of such standardization shows us the Open Platform Communications Unified Architecture (OPC UA) panel, which in addition to the standardization of the known binary compatibility is working on it, abstract descriptions for many industries (in an Extensible Markup Language (XML) format) of archetypical functions (information model). These descriptions are then stored on the control components and can be found, browsed and imported by a programmer. This can greatly simplify programming in the future.

[0012] Das Problem bei diesen Bestrebungen liegt darin, dass die Umsetzung der Standardisierung und der notwendigen Beschreibungen eine relativ lange Zeit benötigen werden, bis genügend solcher Steuerungskomponenten im Feld vorhanden sind, sodass sich für den Programmierer ein realer Nutzen ergibt.The problem with these efforts is that the implementation of standardization and the necessary descriptions will take a relatively long time until there are enough such control components in the field that the programmer has a real benefit.

Darstellung der Erfindung [0013] Das im Folgenden beschriebene erfindungsgemässe Verfahren bringt dem Programmierer einen vergleichbaren Nutzen, kann aber bereits mit vielen heute sich im Feld befindlichen Systemen verwendet werden.DESCRIPTION OF THE INVENTION The method according to the invention described below gives the programmer a comparable benefit, but can already be used with many systems currently in the field.

[0014] Die nachfolgenden Beispiele beschreiben ein mögliches Vorgehen unter Verwendung von heute vorhandenen Steuerungen und Anwendungen, um das Konzept an konkreten Aufgaben zu erklären. Die Steuerungen, welche in Zukunftverwendet werden, können andere Aufgaben erfüllen und werden vielerlei neue Funktionen im Bereich des «Internet of Things» (loT) abdecken, z.B. in den Bereichen Home-Automation, Sicherheit, Logistik, Unterhaltung, Dienstleistungen usw. Die erfindungsgemässen Verfahren sind in analoger Weise auch bei solchen zukünftigen Steuerungen anwendbar.The following examples describe a possible procedure using existing controls and applications to explain the concept of specific tasks. The controllers that will be used in the future may perform other tasks and will cover many new functions in the area of the Internet of Things (loT), e.g. in the fields of home automation, security, logistics, entertainment, services, etc. The inventive methods are analogously applicable to such future controls.

[0015] Insbesondere besteht das Wesen der Erfindung im Folgenden: Für die Programmierung mindestens einer an ein Netzwerk angeschlossenen Fremdsteuerung, wobei auf der mindestens einen Fremdsteuerung oder auf einem weiteren Rechner, welcher über das Netzwerk mit der Steuerung verbunden ist, Funktionen in Form von mindestens einem Programm und mindestens einer Bedieneroberfläche zum Steuern oder Beobachten des mindestens einen Programms, beispielsweise über einen Webserver, implementiert sind, umfasst ein Verfahren die Schritte: Bereitstellen eines Unterstützungsmoduls; Verbinden des Unterstützungsmoduls mit der mindestens einen Fremdsteuerung oder mit dem weiteren Rechner über das Netzwerk; und Implementieren einer mikroprozessorbasierten Steuerung (B) oder eines Programmes auf (B) oder eines Programmes auf einem Portal (D) zur Weiterverarbeitung der erfassten Daten. Das Unterstützungsmodul ist dazu ausgestaltet, die mindestens eine Bedieneroberfläche der Fremdsteuerung zu importieren, und die importierte mindestens eine Bedieneroberfläche automatisiert zu analysieren, indem von für einen Bediener sichtbaren Elementen die dahinterliegenden, zum Element gehörenden Daten, Datenstrukturen und Kommunikationsprotokolle gefunden werden, die jeweiligen Bedienelemente mit bekannten Elementen verglichen werden und daraus eine Steuerungs- oder Kommunikationsfunktion auf der Steuerung erzeugt wird oder eine Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung vorgeschlagen wird. Die Steuerung ist dazu ausgestaltet, die mindestens eine Fremdsteuerung mittels der erzeugten Steuerungs- oder Kommunikationsfunktion oder der vorgeschlagenen Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung zu steuern, zu überwachen oder weiter zu verarbeiten. Das erfindungsgemässe Verfahren kann dadurch einige wichtige Vorteile bieten. So muss der Programmierer z.B. nicht wie bisher die auf der Fremdsteuerung vorhandene Programmierung analysieren und verstehen, und er ist nicht darauf angewiesen, dass die auf der Fremdsteuerung vorhandenen Programme dokumentiert sind und im Sourcecode vorliegen. Stattdessen könnte die im Rahmen des Unterstützungsmodules beschriebene Software den Import und die Klassifizierung der Daten übernehmen, die für den Anschluss einer Fremdsteuerung oder Applikation wichtig sein könnten. Der Programmierer arbeitet dadurch viel effektiver und könnte lediglich eine Auswahl aus den durch das Unterstützungsmodul vorgeschlagenen möglichen Komponenten treffen. Ist z.B. keine Dokumentation der Fremdsteuerung verfügbar, so wäre eine Anbindung an die Fremdsteuerung ohne die Funktion des Unterstützungsmodules gar nicht möglich, weil die Informationen dazu fehlen. Die Bedieneroberfläche für den Betrieb der Anlage wird aber in der Regel vorliegen und kann so als Informationsquelle genutzt werden.In particular, the essence of the invention in the following: For the programming of at least one external control connected to a network, wherein on the at least one third-party control or on another computer, which is connected via the network to the controller, functions in the form of at least a program and at least one user interface for controlling or observing the at least one program, for example via a web server, a method comprising the steps of: providing a support module; Connecting the support module to the at least one third party controller or to the other computer via the network; and implementing a microprocessor-based controller (B) or a program on (B) or a program on a portal (D) for further processing of the acquired data. The support module is configured to import the at least one operator interface of the third party controller, and to automatically analyze the imported at least one user interface by locating the elementary data, data structures, and communication protocols underlying elements visible to an operator, the respective controls be compared to known elements and a control or communication function on the control is generated or a number of suitable components or algorithms for connection to the functions of the external control is proposed. The controller is configured to control, monitor, or further process the at least one third party controller by the generated control or communication function or the proposed set of suitable components or algorithms for interfacing with the functions of the third party controller. The method according to the invention can thereby offer some important advantages. So the programmer has to not analyze and understand the existing programming on the third-party control as before, and he does not depend on the fact that the existing on the third-party control programs are documented and available in the source code. Instead, the software described in the support module could handle the import and classification of data that might be important for connecting to a third-party control or application. The programmer thereby works much more effectively and could only make a selection from the possible components proposed by the support module. Is e.g. no documentation of the third-party control available, a connection to the third-party control without the function of the support module would not be possible because the information is missing. The user interface for the operation of the system will usually be available and can be used as a source of information.

[0016] In einer ersten bevorzugten Ausführungsform ist das Unterstützungsmodul Teil der Steuerung. Diese Ausführungsform hat den Vorteil, dass die ganze Funktionalität für Programmierung und Betrieb auf einer Komponente integriert ist. Der Programmierer muss keine zusätzliche Software auf seinem eigenen Rechner installieren und wird darum auch nicht mit dem Problem konfrontiert, dass er auf einer Anlage nicht die richtige Programmier-Software oder das richtige Programm dabei hat.In a first preferred embodiment, the support module is part of the controller. This embodiment has the advantage that all functionality for programming and operation is integrated on one component. The programmer does not have to install any additional software on his own computer and therefore is not confronted with the problem that he does not have the correct programming software or the right program on a system.

[0017] In einer zweiten bevorzugten Ausführungsform ist das Unterstützungsmodul in einem sich im Netzwerk befindlichen Rechner vorgesehen. Diese Ausführungsform wird z.B. dann vorgezogen, wenn die Steuerung aus Kostengründen nicht genügend Ressourcen für die Integration eines Unterstützungsmodules aufweist. In diesem Fall könnte das Unterstützungsmodul auf dem Rechner des Programmierers integriert werden, wenn es sich z.B. um einen Laptop handelt. In einer anderen Variante könnte es sich um einen weiteren Rechner handeln. Der Programmierer greift dann z.B. mit einem Tablet auf diesen Rechner, welcher das Unterstützungsmodul beinhaltet, zu. Dieser Rechner könnte für die Integration von mehreren Steuerungen genutzt werden und könnte auf der Anlage verbleiben, oder er könnte vom Programmierer wieder mitgenommen werden.In a second preferred embodiment, the support module is provided in a computer located in the network. This embodiment is e.g. preferred if the controller does not have sufficient resources for the integration of a support module for cost reasons. In this case, the support module could be integrated on the computer of the programmer, if e.g. is about a laptop. In another variant, it could be another computer. The programmer then accesses e.g. with a tablet on this computer, which includes the support module to. This calculator could be used for the integration of multiple controllers and could remain on the system, or it could be taken back by the programmer.

[0018] In einer dritten bevorzugten Ausführungsform umfasst das Netzwerk das Internet, und das Unterstützungsmodul ist in einer mit dem Internet verbundenen Remotekomponente vorgesehen. Diese Ausführungsform nutzt z.B. eine «Cloud» als Plattform für das Unterstützungsmodul. Der Vorteil dieser Ausführungsform besteht z.B. darin, dass in der Cloud auf eine grosse Rechenleistung, eine grosse Menge Daten und eine Vielzahl von Algorithmen direkt zugegriffen werden kann. Effektive und komplexe Suchmethoden werden so u.U. erst möglich. Diese Verfahren könnten die durch das Unterstützungsmodul importierten Daten mit Daten von unzähligen anderen Anlagen vergleichen, sowie die Daten der vorliegenden Fremdsteuerung und der Steuerung in eine Datenbank ablegen.In a third preferred embodiment, the network comprises the Internet, and the support module is provided in a remote component connected to the Internet. This embodiment uses e.g. a "cloud" as a platform for the support module. The advantage of this embodiment is e.g. in the fact that in the cloud a large amount of computing power, a large amount of data and a multitude of algorithms can be accessed directly. Effective and complex search methods may become so u.U. only possible. These methods could compare the data imported by the support module with data from countless other assets, as well as storing the data of the existing third party controller and controller in a database.

[0019] Vorzugsweise erfolgt die Analyse der importierten mindestens einen Bedieneroberfläche im Unterstützungsmodul durch Lesen eines für die Anzeige der Bedieneroberflächen verwendeten Codes. Die meisten Webinterfaces sind komplett oder mindestens teilweise in einem ASCII Format aufgebaut, sei es z.B. als Script, SVG oder auch XML Files. Diese Files könnten sich parsen und entsprechend analysieren lassen.Preferably, the analysis of the imported at least one user interface in the support module is done by reading a code used for the display of the user interfaces. Most web interfaces are completely or at least partially constructed in an ASCII format, be it e.g. as script, SVG or XML files. These files could be parsed and analyzed accordingly.

[0020] Dabei ist ein Format, in welchem die mindestens eine Bedieneroberfläche vorliegt, vorzugsweise syntaktisch und semantisch bekannt, so dass mittels Parsen eine Rekonstruktion von in der mindestens einen Bedieneroberfläche vorhandenen Informationen möglich ist. Diese bevorzugte Ausführungsform des erfindungsgemässen Verfahrens würde z.B. auf Reverse Engineering von bestehenden Entwicklungswerkzeugen zur Erstellung von Bedieneroberflächen basieren. Z.B. gibt es im Automationsumfeld einige verbreitete Tools zur Gestaltung von Webinterfaces. Diese gängigen Werkzeuge könnten im Reverse Engineering komplett verstanden und damit ein spezifischer Parser implementiert werden, welcher eine sehr hohe semantische Informationsdichte hervorbringt, da jedes HMI-Element mit all seinen Eigenschaften komplett extrahiert werden kann. Häufig werden mit diesen Tools auch ganze Bibliotheken mit Macrofunktionen für branchenspezifische Lösungen aufgebaut, z.B. gibt es für Systemkomponenten wie z.B. einen Wärmetauscher im Bereich Heizung/Lüf-tung/Kühlung vorgefertigte Reglerfunktionen für die Steuerung und dazu passende HMI Macros für die Visualisierung. Oft bieten die Hersteller der Steuerungen solche Bibliotheken kostenlos an, weshalb diese rege benutzt werden. Solche branchen- und applikationsspezifischen Macro-Bibliotheken bzw. die einzelnen Macros könnten erkannt werden, was ein sehr tiefes Verständnis der dahinterliegenden Funktionen und Daten ermöglicht.In this case, a format in which the at least one user interface is present is preferably known syntactically and semantically, so that a reconstruction of information present in the at least one user interface is possible by means of parsing. This preferred embodiment of the method according to the invention would e.g. based on reverse engineering of existing development tools for creating user interfaces. For example, In the automation environment, there are some common tools for designing web interfaces. These common tools could be completely understood in reverse engineering, and thus a specific parser could be implemented, yielding a very high semantic information density, since every HMI element with all its properties can be completely extracted. Frequently, these tools also build entire libraries of industry-standard macro functions, e.g. is there for system components such as a heat exchanger in the heating / ventilation / cooling area ready-made controller functions for the controller and matching HMI macros for the visualization. Often the manufacturers of the controllers offer such libraries for free, which is why they are used extensively. Such industry-specific and application-specific macro libraries or the individual macros could be recognized, allowing a very deep understanding of the underlying functions and data.

[0021] Dabei ist vorzugsweise ein Format, in welchem die mindestens eine Bedieneroberfläche vorliegt, syntaktisch bekannt und semantisch nicht bekannt, so dass der Source-Code, welcher beispielsweise in JavaScript vorliegen könnte, gemäss einem Prozess zur Erfassung von Call-Stacks, Benutzung von API Funktionen und Verwendung von Variablennamen analysiert und geeignet katalogisiert wird. Diese bevorzugte Ausführungsform des erfindungsgemässen Verfahrens käme z.B. dann zur Anwendung, wenn man das für das HMI verwendete Werkzeug (z.B. einen HMI Editor) nicht kennt oder das HMI als Sourcecode implementiert wurde («von Hand» programmiert). In diesem Fall müsste die Programmiersprache erkannt werden, d.h. die Syntax ist bekannt, jedoch ist nicht abschliessend bekannt, welche Funktionen in dem vorliegenden Code implementiert wurden, d.h. die Semantik kann nicht wie im ersten Verfahren a priori vollständig abgebildet werden. Im erfindungsgemässen Verfahren könnte z.B. wie folgt vorgegangen werden: Ein Call-Stack wird erstellt durch die Analyse der Aufrufe von Funktionen. Eine erste Funktion, welche z.B. von einen Button aufgerufen wird, ruft eine Weitere, diese wiederum eine Weitere, usw., bis schliesslich dieser Aktionspfad beendet ist. Die so involvierten Funktionen benutzen u.U. wiederum sog. API (Application Programming Interface) Funktionen, welche z.B. durch Bibliotheken der Programmiersprache zur Verfügung gestellt werden. So eine API Funktion könnte z.B. zum Senden eines HTTP Lesekommandos an einen Webserver oder zum Zeichnen einer Linie auf dem Bildschirm verwendet werden. Diese API Funktionen sind normalerweise nicht im Source-Code verfügbar, aber sind dokumentiert und deren Funktionsweise und Wirkung würde bei der Analyse, soweit relevant, als bekannt vorausgesetzt. Diese Verfahren zum Reverse Engineering von Source-Code, wie sie durch diese bevorzugte Ausführungsform des erfindungsgemässen Verfahrens zu Hilfe genommen werden können, können etablierte Technologien sein, z.B. in Tools für Reverse Engineering, Decompiler, RAD, Debugger u.v.m.. Kombiniert mit der Suche nach Schlüsselwörtern können statistische Verfahren bereits eine Vielzahl an Information extrahieren.Preferably, a format in which the at least one user interface is present, syntactically known and semantically unknown, so that the source code, which could be present in JavaScript, for example, according to a process for detecting call stacks, use of API functions and use of variable names is analyzed and properly cataloged. This preferred embodiment of the process according to the invention would be e.g. then used, if one does not know the tool used for the HMI (for example an HMI Editor) or if the HMI was implemented as source code (programmed "by hand"). In this case, the programming language would have to be recognized, i. the syntax is known, but it is not exhaustively known which functions have been implemented in the present code, i. the semantics can not be completely reproduced a priori as in the first method. In the method according to the invention, e.g. Proceed as follows: A call stack is created by analyzing the calls of functions. A first function, which is e.g. When a button is called, it calls another one, this one more, etc., until finally this action path is finished. The functions involved may use u.U. again, so-called API (Application Programming Interface) functions, which e.g. provided by libraries of the programming language. Such an API function could e.g. to send an HTTP read command to a web server or to draw a line on the screen. These API functions are not normally available in source code, but are documented and their functioning and effect would be known as known in the analysis, if relevant. These source code reverse engineering techniques, as may be used by this preferred embodiment of the method of the invention, may be established technologies, e.g. in tools for Reverse Engineering, Decompiler, RAD, Debugger and more. Combined with the search for keywords, statistical methods can already extract a large amount of information.

[0022] Dabei wird die Analyse der importierten mindestens einen Bedieneroberfläche vorzugsweise durch das Unterstützungsmodul auf einem Drittrechner in einem simulierten Kontext durch Erstellen von fotografischen Abbildern der mindestens einen Bedieneroberfläche ausgeführt, wobei den fotografischen Abbildern der mindestens einen Bedieneroberfläche über einen Bilderkennungsprozess geeignete Merkmale extrahiert werden und die extrahierten Merkmale mit bekannten Mustern verglichen werden, sodass durch diesen Bilderkennungsprozess einzelne Elemente oder Elementgruppen auf der mindestens einen Bedieneroberfläche erkannt werden, und durch Qualifizierung der erkannten Elemente oder Elementgruppen Rückschlüsse auf die in der Programmierung dahinterliegende Funktion sowie der verwendeten Variablen gezogen werden.In this case, the analysis of the imported at least one user interface is preferably carried out by the support module on a third computer in a simulated context by creating photographic images of the at least one user interface, wherein the photographic images of the at least one user interface via an image recognition process suitable features are extracted and the extracted features are compared with known patterns, so that by means of this image recognition process individual elements or element groups are recognized on the at least one user interface, and by qualification of the detected elements or element groups conclusions about the function behind the programming as well as the variables used are drawn.

[0023] Häufig werden in HMI’s Grafiken und Bilder zur Illustration verwendet. Diese Bilder könnten in Rastergrafikformaten wie z.B. BMP, PNG, GIF, JPG oder auch als Vektorgrafiken wie SVG vorliegen. Manchmal werden solche Symbole auch mit basalen Funktionen zum Zeichnen von Linien, Rechtecken etc. aus der Programmiersprache oder einem HMI Tool aufgebaut. Häufig sind auf diesen Bildern Anlagenteile als Foto, als Symbol oder gar als DIN-Symbol zu erkennen. Das HMI könnte zur Verarbeitung dieser Symbole in einem simulierten Betrieb als x' oder x" gestartet werden. Ziel dieser Simulation wäre es, dass der HMI Code auch seine grafische Darstellung auf einen virtuellen Bildschirm bringt, sodass aus diesem virtuellen Bildschirm die gewünschten Ausschnitte als photographisches Abbild kopiert und in der Folge mit gängigen Algorithmen der Bilderkennung qualifiziert werden könnten. Durch Vergleiche mit bekannten Funktionen bzw. Bildern kann ein Rückschluss auf die Funktion des dargestellten Anlagenteiles gezogen werden.Frequently, graphics and images are used for illustration in HMIs. These images could be printed in raster graphics formats such as e.g. BMP, PNG, GIF, JPG or vector graphics like SVG. Sometimes such symbols are also constructed with basic functions for drawing lines, rectangles, etc. from the programming language or an HMI tool. In many cases, system parts can be recognized as a photo, a symbol or even a DIN symbol. The HMI could be started to process these symbols in a simulated operation as x 'or x ", and the goal of this simulation would be for the HMI code to also display its graphical representation on a virtual screen so that the desired clippings from this virtual screen are displayed as photographic images Image and subsequently be qualified with conventional image recognition algorithms By comparison with known functions or images, a conclusion can be drawn on the function of the represented part of the plant.

[0024] Vorzugsweise startet das Unterstützungsmodul die importierte mindestens eine Bedieneroberfläche und führt sie aus zur automatischen Analyse auf einem Rechner in einem simulierten Kontext, um den Datenaustausch mit der Steuerung aufzuzeichnen und auszuwerten und diese Informationen zur automatischen Analyse des mindestens einen Programms zu verwenden. In diesem Verfahren könnte die importierte Bedieneroberfläche losgelöst vom Prozess auf der Anlage analysiert werden. Mögliche Vorteile ergeben sich dadurch, dass die Schnittstellen des Codes der Bedieneroberfläche in diesem simulierten Kontext durch geeignete Dritt-Software aufgezeichnet und analysiert werden kann. Ein weiterer Vorteil könnte darin liegen, dass die Schnittstellen (z.B. TCP-API’s) nicht mit den regulären Funktionen des Betriebssystemes verbunden werden, sondern mit identischen API 1s der Analysesoftware. Dadurch wäre es möglich, die Kommunikation mit simulierten Antworten zu betreiben und das Verhalten der Bedieneroberfläche zu beobachten. Ein weiterer Vorteil könnte darin liegen, dass die Kommunikation der Bedienoberfläche mit der Fremdsteuerung auch Zustände annehmen könnte, welche im normalen Betrieb stören oder schaden würden.Preferably, the support module starts the imported at least one user interface and executes it for automatic analysis on a computer in a simulated context to record and evaluate the data exchange with the controller and to use this information to automatically analyze the at least one program. In this process, the imported user interface could be analyzed detached from the process on the plant. Possible advantages result from the fact that the interfaces of the code of the user interface in this simulated context can be recorded and analyzed by suitable third-party software. Another advantage could be that the interfaces (e.g., TCP APIs) are not connected to the regular functions of the operating system, but to identical APIs of the analysis software. This would make it possible to operate the communication with simulated responses and observe the behavior of the user interface. Another advantage could be that the communication of the user interface with the third-party control could also assume states which would disturb or harm in normal operation.

[0025] Vorzugsweise startet das Unterstützungsmodul die importierte mindestens eine Bedieneroberfläche und führt sie aus zur automatischen Analyse auf einem Rechner in einem simulierten Kontext, in den Programm-Code der importierten mindestens einen Bedieneroberfläche gezielt zusätzlichen ausführbaren Code injiziert, den injizierten Code im Rahmen einer Simulation aufruft, das Verhalten des gesamten Codes an bekannten Messpunkten analysiert und dadurch die automatische Analyse auf den Rechnern zusätzlich unterstützt. Ein dergestalt modifizierter Code könnte in einem simulierten Betrieb in einer sog. «Sandbox» gestartet (als x' oder x ") und in dieses modifizierte HMI gezielt durch den Simulator erzeugte Ereignisse eingespeist werden. Das nachfolgende Verhalten könnte nun analyisiert werden, indem man diese injizierten Trigger-Funktionen quasi unter Laborbedingungen auslöst. So kann man sich vorstellen, dass eine in einem Edit-Feld im HMI angezeigte Variable sowie das für die Kommunikation verwendete Protokoll gefunden werden sollen. Wir nehmen an, dass z.B. ein Edit-Field eine uns bekannte API-Funktion verwendet (z.B. aus Java Script oder HTML) und dass deshalb in die Schreib-Methode («OnUpdate») Code injiziert werden kann, welcher dieselbe Wirkung auf das HMI hat, wie wenn ein Benutzer von Hand den entsprechenden Wert eingefügt hätte. Nun könnte die Reaktion des HMI Codes auf dieses simulierte Ereignis z.B. durch Überwachung der Netzwerkkommunikation analysiert und dadurch der Name der Variablen sowie das verwendete Kommunikationsprotokoll identifiziert werden. In diesem Verfahren würde also durch das Parsen des Sourcecodes zwar nicht die komplette Funktion verstanden, aber es würden relevante Ein- und Austrittspunkte identifiziert und diese gezielt manipuliert, um die Funktion zu erfahren.Preferably, the support module starts the imported at least one user interface and executes it for automatic analysis on a computer in a simulated context, injected into the program code of the imported at least one user interface specifically additional executable code, the injected code as part of a simulation calls, analyzes the behavior of the entire code at known measuring points and thereby additionally supports the automatic analysis on the computers. A code modified in this way could be started in a so-called "sandbox" (as x 'or x ") in a simulated operation and events specifically generated by the simulator in this modified HMI could be analyzed Thus, one can imagine that a variable displayed in an edit field in the HMI and the protocol used for the communication should be found, for example, an edit field that we know API function used (eg from Java Script or HTML) and therefore in the write method ("OnUpdate") code can be injected, which has the same effect on the HMI, as if a user had manually inserted the appropriate value. Now the reaction of the HMI code to this simulated event could be analyzed, eg by monitoring the network communication and thereby the name of the Variables and the communication protocol used. In this method, the parsing of the source code would not be understood as the complete function, but relevant entry and exit points would be identified and manipulated specifically to experience the function.

[0026] Vorzugsweise ergänzt das Unterstützungsmodul die auf der Steuerung erzeugte Steuerungsfunktionen zusätzlich durch Code, welcher im Betrieb kontinuierlich Daten erfasst und diese zur automatisierten Validierung, Verifikation und Verbesserung der Erzeugung der Steuerungs- oder Kommunikationsfunktion auf der Steuerung beziehungsweise des Vorschlagens der Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung verwendet werden. Diese bevorzugte Ausführungsform des erfindungsgemässen Verfahrens würde z.B. die Qualität der vorgeschlagenen Lösungen über einen längeren Zeitraum betrachtet verbessern, indem z.B. mittels statistischen Methoden oder z.B. mittels als «Machine Learning» bezeichneten Algorithmen die gemessenen Resultate rückgekoppelt würden.Preferably, the support module further supplements the control functions generated by the controller by code which continuously collects data during operation and to automatically validate, verify and improve the generation of the control or communication function on the controller or suggesting the series of suitable components or algorithms for connection to the functions of the external control can be used. This preferred embodiment of the method according to the invention would e.g. improve the quality of the proposed solutions over a longer period, e.g. by statistical methods or e.g. The measured results would be fed back by means of algorithms called "machine learning".

[0027] Vorzugsweise werden einzelne oder alle Funktionen, welche auf dem oder den Rechnern implementiert sind, auch auf der Steuerung oder einem beliebigen Dritten innerhalb oder ausserhalb des Netzwerkes, durchgeführt. Die im erfindungsgemässen Verfahren beschriebenen Funktionen wie des Unterstützungsmodules und der anderen beteiligten Systemen könnten, wenn es sich um mit einem Netzwerk verbundene Systeme handelt, auf verschiedenen sich im Netzwerk befindlichen Orten implementiert sein. Eine unmittelbare Bindung einer bestimmten Funktion an ein spezifisches Gerät muss daher nicht zwingend gegeben sein.Preferably, individual or all functions that are implemented on the computer (s) are also performed on the controller or any third party inside or outside the network. The functions described in the method according to the invention, such as the support module and the other systems involved, could, if they are systems connected to a network, be implemented on different locations located in the network. An immediate connection of a specific function to a specific device does not necessarily have to be given.

[0028] Vorzugsweise ist das Netzwerk ein lokales Netzwerk. Alle beschriebenen erfindungsgemässen Verfahren benutzen teilweise Funktionen oder Komponenten, welche im Internet, z.B. in einer Cloud, implementiert sind. Alle diese Funktionen könnten auch komplett in einem lokalen Netzwerk betrieben werden. Der Vorteil davon könnte sein, dass die verarbeiteten Daten nicht auf öffentlichen Netzwerken exponiert werden. Ein anderer Fall könnte die Verwendung der erfindungsgemässen Verfahren in einem geschlossenen Netzwerk einer grossen Firma, Organisiation oder Infrastruktur betreffen.Preferably, the network is a local area network. All of the described methods according to the invention partly use functions or components which are available on the Internet, e.g. in a cloud, are implemented. All these functions could also be operated completely in a local network. The advantage of this could be that the processed data is not exposed on public networks. Another case could involve the use of the inventive methods in a closed network of a large company, organization or infrastructure.

[0029] Vorzugsweise ist das Unterstützungsmodul dazu ausgestaltet, die Analyse der importierten mindestens einen Bedieneroberfläche zu verwenden, um eine automatisierte Erzeugung von abstrakten funktionalen Beschreibungen in einem dazu geeigneten Standard durchzuführen. In dieser bevorzugten Ausführungsform des erfindungsgemässen Verfahrens könnten die aus den importierten Bedieneroberflächen gewonnenen Informationen dazu genutzt werden, diese in einem Standard abzuspeichern und damit auch Drittaplikationen zur Verfügung zu stellen. Als mögliches Beispiel eines solchen Standards kann die Datenmodellierung in OPC UA verwendet werden.Preferably, the support module is configured to use the analysis of the imported at least one user interface to perform automated generation of abstract functional descriptions in a standard appropriate thereto. In this preferred embodiment of the method according to the invention, the information obtained from the imported user interfaces could be used to store them in a standard and thus also make third-party applications available. As a possible example of such a standard, data modeling in OPC UA can be used.

[0030] Ein anderer Aspekt der Erfindung betrifft eine Netzwerkkomponente mit einer mikroprozessorbasierten Steuerung. Die Steuerung ist dazu ausgestaltet, Bedieneroberflächen einer Fremdsteuerung zu importieren, und die importierten Bedieneroberflächen automatisiert zu analysieren, indem von für einen Bediener sichtbaren Elementen die dahinterliegenden, zum Element gehörenden Daten, Datenstrukturen und Kommunikationsprotokolle gefunden werden, die jeweiligen Bedienelemente mit bereits bekannten Elementen verglichen werden, daraus eine Steuerungs- oder Kommunikationsfunktion auf der Steuerung erzeugt wird oder eine Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung vorgeschlagen wird.Another aspect of the invention relates to a network component having a microprocessor-based controller. The controller is configured to import operator interfaces of a third-party controller and to automatically analyze the imported operator interfaces by locating the element-specific data, data structures, and communication protocols behind elements visible to an operator, comparing respective controls with already known elements from which a control or communication function is generated on the controller, or a number of suitable components or algorithms are suggested for connection to the functions of the external controller.

Wege zur Ausführung der Erfindung [0031] Im Folgenden sollen exemplarisch mit Hilfe der schematischen Zeichnung einige der möglichen Aufgabenstellungen beschrieben werden, und wie diese mit dem erfindungsgemässen Verfahren gelöst werden können. Die im Folgenden in Klammern angegebenen Bezugszeichen referenzieren Elemente in der Abbildung 1.Means for Carrying Out the Invention In the following, by way of example with the aid of the schematic drawing, some of the possible tasks are described, and how these can be solved with the method according to the invention. The reference numbers given below in brackets refer to elements in FIG. 1.

[0032] In dem gewählten Beispiel zum Thema «Smart Grid» geht es um den Aufbau eines intelligenten Managements von sowohl stromverbrauchenden sowie auch stromerzeugenden Systemen. Systeme, welche Strom erzeugen, kann man entweder in einem bestimmten Rahmen steuern (BHKW, Speicherkaftwerke, Akkus, etc.) oder aber es muss deren Produktion in der näheren Zukunft vorhergesagt werden (Photovoltaik, Windkraft, Laufkraftwerke). Die Verbraucher wiederum können insoweit von extern ein- und ausgeschalten werden, solange dass deren Funktion für den Konsumenten nicht beeinträchtigt wird.The chosen example on the subject of "smart grid" is about the construction of an intelligent management of both power-consuming as well as electricity generating systems. Systems that generate electricity can either be controlled within a certain range (CHP, storage equipment, batteries, etc.) or their production must be predicted in the near future (photovoltaics, wind power, run-of-river power plants). In turn, consumers can be switched on and off externally, as long as their function for the consumer is not impaired.

[0033] Handelt es sich um Systeme aus dem Investitionsgüterbereich, so wird die Steuerung i.d.R. mit einer SPS (Speicherprogrammierbare Steuerung) realisiert. Viele dieser SPS haben wiederum ein Webinterface, über welches sich die Anlage beobachten und steuern lässt. Betrachten wir als Beispiel die Integration eines BHKW (Blockheizkraftwerk). Für die Integration in ein Smart Grid sind die folgenden Funktionen relevant: Ein- und Ausschalten, Betriebszustand (Störung), Leistung elektrisch, Heizanforderung bzw. Temperatur des Heizkreises, Sollwerte und Alarmwerte. Diese Variablen muss der Programmierer nun mit einer Anwendung in der Cloud verbinden, zusätzlich könnte es eine lokale Regelungsfunktion geben, welche in der Lage ist, die akzeptablen Verzögerungen der Einschaltzeit im Falle einer Heizanforderung (gegeben durch die thermische Trägheit) zu managen. Der Programmierer hat dazu ein Pflichtenheft, welches die gewünschten Funktionen und die benötigten Variablen beschreibt. Im erfindungsgemässen Verfahren könnte der Programmierer z.B. als erstes diese Funktionen und Variablen als Suchmuster definieren.If it concerns systems from the investment goods sector, the controller i.d.R. realized with a PLC (programmable logic controller). Many of these PLCs have a web interface, which allows the system to be monitored and controlled. Consider as an example the integration of a cogeneration unit. The following functions are relevant for integration into a Smart Grid: Switching on and off, operating state (fault), electric power, heating request or temperature of the heating circuit, setpoints and alarm values. In addition, the programmer would have to connect these variables to an application in the cloud, in addition there could be a local control function capable of managing the acceptable on-time delays in the case of a heating request (given by thermal inertia). The programmer has a functional specification that describes the desired functions and the required variables. In the method according to the invention, the programmer could e.g. First, define these functions and variables as search patterns.

[0034] Um die relevanten Variablen zu finden, importiert der Programmierer das Web-HMI (x) von der SPS (A), dieses wird von einer geeigneten Analyse-SW (z.B. auf (B), (C) oder (D)) eingelesen, alle vorhandenen Bedienerseiten werden aufbereitet und die den Bedienerelementen zugeordneten Variablen extrahiert. Dieser oben beschriebene Ablauf, von der Definition des Suchmusters über den Import der Web-HMI bis zur Analyse, wird im erfindungsgemässen Verfahren als Teil der Funktion des «Unterstützungsmodules» verstanden.To find the relevant variables, the programmer imports the Web HMI (x) from the PLC (A), this is from a suitable analysis SW (eg on (B), (C) or (D)) All existing operator pages are edited and the variables assigned to the operator elements are extracted. This process described above, from the definition of the search pattern via the import of the Web HMI to the analysis, is understood in the inventive method as part of the function of the "support module".

[0035] Als Erstes soll eine Steuerungsfunktion zum Ein- und Ausschalten des BHKW an die neue Steuerung angeschlossen werden. Für das Ein- und Ausschalten gibt es im HMI (x) zumeist eine Bedienerseite für Handbetrieb, darauf befinden sich Knöpfe, diese Knöpfe sind mit dem Text «Ein» oder «Aus» beschriftet, der Knopf wiederum ist mit der Variablen verknüpft, welche diese Funktion startet. Dieser Zusammenhang ermöglicht dem Unterstützungsmodul das automatisierte Auffinden von Funktionen kombiniert mit statistischen Wahrscheinlichkeiten, dass diese oder eine ähnliche Kombination von Element «Knopf», Beschriftung «Ein» und einer Steuervariable zum Einschalten auf dieser Maschine vorhanden ist. Dem Programmierer werden durch das Unterstützungsmodul die verschiedenen auf der Bedienerseite gefundenen Optionen angezeigt (wie sieht das Element aus, wie heisst die gefundene Variable), somit kann er aus einer vorsortierten Auswahl das geeignete Element auswählen und ggf. Testen. Im Falle des «Ein» Buttons kann dieser in der Auswahl einfach gedrückt werden; startet das Aggregat, dann ist es das richtige Element. In dem oben beschriebenen Ablauf hat das Unterstützungsmodul geholfen, eine gewünschte Funktion auf einer bestehenden Fremdsteuerung (A) zu finden und eine geeignete Steuerungsfunktion für die neu zu erstellende Programmierung auf einer mikroprozessorbasierten Steuerung (B) oder eines Programmes auf (B) oder einem Portal (D) zur Weiterverarbeitung der erfassten Daten bereitzustellen.First, a control function for switching on and off of the CHP is to be connected to the new controller. For switching on and off, the HMI (x) usually has a manual page for manual operation, on it there are buttons, these buttons are labeled with the text "On" or "Off", the button is linked to the variable that contains them Function starts. This relationship allows the support module to automatically find functions combined with statistical probabilities of having this or a similar combination of element «button», label «on» and a control variable to power on this machine. The programmer sees through the support module the various options found on the operator side (what does the element look like, what is the found variable), so it can select from a preselected selection the appropriate element and possibly test it. In the case of the "On" button, this can simply be pressed in the selection; starts the aggregate, then it is the right element. In the process described above, the support module has helped to find a desired function on an existing third-party controller (A) and provided a suitable control function for the newly created programming on a microprocessor-based controller (B) or a program on (B) or a portal ( D) for further processing of the collected data.

[0036] Um den Nutzen des erfindungsgemässen Verfahrens weiter zu verbessern, wird durch das Unterstützungsmodul jedes erfolgreich zugeordnete Element in dem aktuellen Kontext in einer Cloud-Applikation (D) gespeichert, um dadurch die Qualität der statistischen Suchmethoden kontinuierlich zu steigern. Das heisst, dass bei der Inbetriebnahme einer nächsten, ähnlichen Anlage, die erfolgreich verwendeten Elemente zuoberst angezeigt werden. Dazu können vergleichbare Verfahren eingesetzt werden, wie sie heute auch bei Internet-Suchmaschinen benutzt werden.To further enhance the utility of the inventive method, the support module stores each successfully assigned item in the current context in a cloud application (D) to thereby continuously increase the quality of the statistical search methods. This means that when commissioning a next, similar system, the successfully used elements are displayed at the top. For this purpose, comparable methods can be used as they are used today in Internet search engines.

[0037] Als nächstes Beispiel soll der Betriebszustand angeschlossen werden, sodass bei einer Anlagenstörung möglichst schnell reagiert werden kann. Neben der Zuordnung durch die jeweilige Beschriftung in einem Anzeigeelement oder einem Knopf gibt es aber noch weitere Eigenschaften, welche genutzt werden können. Auf den meisten HMI gibt es spezifische Alarmlistendarstellungen, welche mit Alarmtexten verknüpft sind. Die Alarmtexte enthalten immer eindeutige Schlüsselwörter wie «Ausfall», «Störung» usw. Dies ergibt ein sehr eindeutiges Profil, welches in diesem Fall zu den Daten führt. Die Temperatur des Heizkreises wiederum wird meistens auch auf einem Zeit-/Temperatur Diagramm angezeigt, welches sich als Element sehr einfach identifizieren lässt.As an example, the operating state should be connected so that it can be reacted as quickly as possible in case of a system failure. In addition to the assignment by the respective label in a display element or a button but there are other properties that can be used. On most HMI there are specific alarm list representations, which are linked with alarm texts. The alarm texts always contain clear keywords such as "failure", "interference" etc. This results in a very clear profile, which in this case leads to the data. In turn, the temperature of the heating circuit is usually displayed on a time / temperature diagram, which can be easily identified as an element.

[0038] Die zentrale Funktion der intelligenten Regelung besteht darin, das BHKW dann laufen zu lassen, wenn der Strompreis hoch ist. Da der Heizkreis ein relativ träges System ist, kann man bei Strombedarf die Maschine etwas länger laufen lassen, als dass es der unmittelbare Heizbedarf gerade erfordert, bzw. man kann mit dem Zuschalten des Diesels bis zu einer kritischen Minimaltemperatur zuwarten, wenn der Preis nicht interessant ist. Diese Funktion erfordert einen komplexen Algorithmus. Ein intelligentes Programmiersystem kann als ein Teil der Funktionalität des Unterstützungsmodules in der Cloud (D) über eine Bibliothek von geeigneten Funktionen verfügen, welche dem Programmierer vorgeschlagen werden. Die Auswahl dieser Vorschläge erfolgt aufgrund der Informationen, welche aus der Analyse der importierten HMI gewonnen wurden. Die Gesamtheit der über die verschiedenen Verfahren zur Analyse gewonnenen Daten können durch geeignete statistische Verfahren verknüpft und dadurch die am Besten geeigneten Verfahren gefunden werden. Diese Aufgabenstellung ist vom Konzept her vergleichbar mit der Funktion von Internet Suchmaschinen, und die in diesem Bereich gebräuchlichen Techniken können für das erfindungsgemässe Verfahren in angepasster Weise genutzt werden.The central function of the intelligent control is to let the CHP run when the price of electricity is high. Since the heating circuit is a relatively sluggish system, when power is needed, the machine can be run a little longer than the immediate need for heating, or you can wait until the diesel engine is switched on to a critical minimum temperature if the price is not interesting is. This function requires a complex algorithm. An intelligent programming system may have as a part of the functionality of the support module in the cloud (D) a library of suitable functions proposed to the programmer. The selection of these suggestions is based on the information obtained from the analysis of the imported HMI. The totality of the data obtained through the various methods of analysis can be linked by appropriate statistical methods, thereby finding the most appropriate methods. This task is conceptually similar to the function of Internet search engines, and the techniques common in this field can be used in an adapted manner for the method according to the invention.

[0039] Eine weitere wichtige Eigenschaft von Internet Suchmaschinen ist ihre Fähigkeit, sich im laufenden Betrieb automatisch und selbstlernend zu verbessern. Dies geschieht z.B. dadurch, dass das Verhalten des Benutzers (z.B. welche Auswahl aus einer Liste getroffen wird) wieder auf das System rückgekoppelt wird. In einer möglichen erfindungsgemässen Umsetzung würde das Unterstützungsmodul die auf der Steuerung (B) erzeugte Steuerungsfunktionen zusätzlich durch Code ergänzen, welcher im Betrieb kontinuierlich Daten erfasst und diese zur automatisierten Validierung, Verifikation und Verbesserung der Erzeugung der Steuerungs- oder Kommunikationsfunktion auf der Steuerung (B) beziehungsweise des Vorschlagens der Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung (A) verwenden. Um eine solche Rückkoppelung und die Selbstlerneigenschaften zu unterstützen, können weiAnother important feature of Internet search engines is their ability to improve on the fly automatically and self-learning. This happens e.g. in that the user's behavior (e.g., which selection is made from a list) is fed back to the system. In one possible implementation according to the invention, the support module would additionally supplement the control functions generated on the control (B) with code which continuously acquires data during operation and this for automated validation, verification and improvement of the generation of the control or communication function on the controller (B). or suggesting the series of suitable components or algorithms for connection to the functions of the external control (A). To support such feedback and self-learning characteristics, white can

Claims (15)

tere Informationen über den Charakter des im Rahmen des erfindungsgemäss programmierten Systemes erfasst werden. Dazu wird der gewählte Algorithmus durch das Unterstützungsmodul automatisch mit geeigneten Messpunkten versehen, welche im folgenden Regelbetrieb zur Langzeitdatenerfassung zyklisch in die Cloud geladen werden. Diese dienen der Validierung und Optimierung des gewählten Algorithmus. Wurde der richtige Algo gewählt? Welchen Wirkungsgrad erreicht er? Welche statistischen Korrelationen mit den ganzen anderen erfassten Daten können automatisch gefunden werden? Das Sammeln dieser Informationen dient der kontinuierlichen Verbesserung der automatischen Auswahl der richtigen Algorithmen oder auch zur Optimierung der bereits installierten Steuerungen. Eine unter Anspruch 11 beschriebene «kontinuierliche Datenerfassung während dem Betrieb» muss den Anspruch erfüllen, statistisch ausreichend verwertbare Daten zu erfassen, wobei der dazu notwendige Zeitraum sehr stark vom jeweiligen Prozess abhängig ist. Patentansprüchetere information about the nature of the programmed according to the invention programmed system. For this purpose, the selected algorithm is automatically provided by the support module with suitable measuring points, which are cyclically loaded into the cloud in the following regular operation for long-term data acquisition. These serve to validate and optimize the chosen algorithm. Has the right algo been chosen? What efficiency does it achieve? Which statistical correlations with the other data collected can be found automatically? Gathering this information is designed to continuously improve the automatic selection of the right algorithms or to optimize the already installed controls. A "continuous data acquisition during operation" as described in claim 11 must meet the requirement to collect statistically sufficiently usable data, the time period required for this being very heavily dependent on the respective process. claims 1. Verfahren für die Programmierung mindestens einer an ein Netzwerk angeschlossenen Fremdsteuerung (A), wobei auf der mindestens einen Fremdsteuerung (A) oder auf einem weiteren Rechner, welcher über das Netzwerk mit der Steuerung (A) verbunden ist, Funktionen in Form von mindesten einem Programm (y) und mindestens einer Bedieneroberfläche (x) zum Steuern oder Beobachten des mindestens einen Programms (y), beispielsweise über einen Webserver, implementiert sind, gekennzeichnet durch die Schritte Bereitstellen eines Unterstützungsmoduls, Verbinden des Unterstützungsmoduls mit der mindestens einen Fremdsteuerung (A) oder mit dem weiteren Rechner über das Netzwerk, und Implementieren einer mikroprozessorbasierten Steuerung (B) oder eines Programmes auf (B) oder einem Portal (D) zur Weiterverarbeitung der erfassten Daten, wobei das Unterstützungsmodul dazu ausgestaltet ist, die mindestens eine Bedieneroberfläche (x) der Fremdsteuerung (A) zu importieren, und die importierte mindestens eine Bedieneroberfläche (x) automatisiert zu analysieren, indem von für einen Bediener sichtbaren Elementen die dahinterliegenden, zum Element gehörenden Daten, Datenstrukturen und Kommunikationsprotokolle gefunden werden, die jeweiligen Bedienelemente mit bekannten Elementen verglichen werden und daraus eine Steuerungs- oder Kommunikationsfunktion auf der Steuerung (B) erzeugt wird oder eine Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung (A) vorgeschlagen wird, und wobei die Steuerung (B) dazu ausgestaltet ist, die mindestens eine Fremdsteuerung (A) mittels der erzeugten Steuerungs- oder Kommunikationsfunktion oder der vorgeschlagenen Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung (A) zu steuern, zu überwachen oder weiter zu verarbeiten.1. A method for programming at least one external control connected to a network (A), wherein on the at least one third party controller (A) or on another computer, which is connected via the network to the controller (A), functions in the form of least a program (y) and at least one user interface (x) for controlling or observing the at least one program (y), for example via a web server, characterized by the steps of providing a support module, connecting the support module to the at least one third party controller (A ) or with the further computer via the network, and implementing a microprocessor-based controller (B) or a program on (B) or a portal (D) for further processing the acquired data, wherein the support module is adapted to the at least one user interface (x ) of the third-party control (A), and import the imported mine to automatically analyze a user interface (x) by finding, for elements visible to an operator, the data, data structures and communication protocols underlying the element, comparing the respective operating elements with known elements and from this a control or communication function on the controller ( B) is generated or a number of suitable components or algorithms for connection to the functions of the external control (A) is proposed, and wherein the controller (B) is adapted to the at least one third party controller (A) by means of the generated control or communication function or the proposed set of suitable components or algorithms for connection to the functions of the third party controller (A) to control, monitor or further process. 2. Verfahren nach Anspruch 1, wobei das Unterstützungsmodul Teil der Steuerung (B) ist.2. The method of claim 1, wherein the support module is part of the controller (B). 3. Verfahren nach Anspruch 1, wobei das Unterstützungsmodul in einem sich im Netzwerk befindlichen Rechner (C) vorgesehen ist.3. The method of claim 1, wherein the support module is provided in a networked computer (C). 4. Verfahren nach Anspruch 1, wobei das Netzwerk das Internet umfasst und das Unterstützungsmodul in einer mit dem Internet verbundenen Remotekomponente vorgesehen ist.The method of claim 1, wherein the network comprises the Internet and the support module is provided in a remote component connected to the Internet. 5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Analyse der importierten mindestens einen Bedieneroberfläche (x) im Unterstützungsmodul durch Lesen eines für die Anzeige der Bedieneroberflächen (x) verwendeten Codes erfolgt.5. The method of claim 1, wherein the analysis of the imported at least one user interface in the support module is performed by reading a code used for displaying the user interfaces. 6. Verfahren nach Anspruch 5, bei dem ein Format, in welchem die mindestens eine Bedieneroberfläche (x) vorliegt, syntaktisch und semantisch bekannt ist, so dass mittels Parsen eine Rekonstruktion von in der mindestens einen Bedieneroberfläche (x) vorhandenen Informationen möglich ist.6. The method of claim 5, wherein a format in which the at least one user interface (x) is present, syntactically and semantically known, so that by parsing a reconstruction of in the at least one user interface (x) information is possible. 7. Verfahren nach Anspruch 5 oder 6, bei dem ein Format, in welchem die mindestens eine Bedieneroberfläche (x) vorliegt, syntaktisch bekannt und semantisch nicht bekannt ist, so dass der Source-Code, welcher beispielsweise in JavaScript vorliegen könnte, gemäss einem Prozess zur Erfassung von Call-Stacks, Benutzung von API Funktionen und Verwendung von Variablennamen analysiert und geeignet katalogisiert wird.7. The method of claim 5 or 6, wherein a format in which the at least one user interface (x) is present, syntactically known and semantically unknown, so that the source code, which could be present in JavaScript, for example, according to a process for the collection of call stacks, use of API functions and use of variable names is analyzed and suitably cataloged. 8. Verfahren nach einem der Ansprüche 5-7, wobei die Analyse der importierten mindestens einen Bedieneroberfläche (x) durch das Unterstützungsmodul auf einem Drittrechner (C, D) in einem simulierten Kontext durch Erstellen von fotografischen Abbildern der mindestens einen Bedieneroberfläche (x) ausgeführt wird (x\ x"), wobei den fotografischen Abbildern der mindestens einen Bedieneroberfläche (x) über einen Bilderkennungsprozess geeignete Merkmale extrahiert werden und die extrahierten Merkmale mit bekannten Mustern verglichen werden, sodass durch diesen Bilderkennungsprozess einzelne Elemente oder Elementgruppen auf der mindestens einen Bedieneroberfläche (x) erkannt werden, und durch Qualifizierung der erkannten Elemente oder Elementgruppen Rückschlüsse auf die in der Programmierung (y) dahinterliegende Funktion sowie der verwendeten Variablen gezogen werden.The method of any of claims 5-7, wherein the analysis of the imported at least one user interface (x) by the support module on a third party computer (C, D) in a simulated context is performed by taking photographic images of the at least one user interface (x) is (x \ x "), where the photographic images of the at least one user interface (x) are extracted via an image recognition process suitable features and the extracted features are compared with known patterns, so that by this image recognition process individual elements or element groups on the at least one user interface ( x), and by qualifying the recognized elements or element groups, conclusions can be drawn about the function behind the programming (y) and the variables used. 9. Verfahren nach einem der Ansprüche 1-8, wobei das Unterstützungsmodul die importierte mindestens eine Bedieneroberfläche (x) zur automatischen Analyse auf einem Rechner (C, D) in einem simulierten Kontext startet und aus führt (x', x"), um den Datenaustausch mit der Steuerung (A) aufzuzeichnen und auszuwerten und diese Informationen zur automatischen Analyse des mindestens einen Programms (y) zu verwenden.The method of any of claims 1-8, wherein the support module starts and executes (x ', x ") the imported at least one operator interface (x) for automatic analysis on a computer (C, D) in a simulated context to record and evaluate the data exchange with the controller (A) and to use this information to automatically analyze the at least one program (y). 10. Verfahren nach einem der Ansprüche 1-9, wobei das Unterstützungsmodul die importierte mindestens eine Bedieneroberfläche (x) zur automatischen Analyse auf einem Rechner (C, D) in einem simulierten Kontext startet und ausführt (x' oder x"), in den Programm-Code der importierten mindestens einen Bedieneroberfläche (x' oder x") gezielt zusätzlichen ausführbaren Code injiziert, den injizierten Code im Rahmen einer Simulation aufruft, das Verhalten des gesamten Codes an bekannten Messpunkten analysiert und dadurch die automatische Analyse auf den Rechnern (C, D) zusätzlich unterstützt.A method according to any one of claims 1-9, wherein the support module starts and executes (x 'or x ") the imported at least one operator interface (x) for automatic analysis on a computer (C, D) in a simulated context Program code injects at least one user interface (x 'or x ") targeted additional executable code, calls the injected code in a simulation, analyzes the behavior of the entire code at known measuring points and thereby the automatic analysis on the computers (C, D) additionally supported. 11. Verfahren nach einem der Ansprüche 1-10, wobei das Unterstützungsmodul die auf der Steuerung (B) erzeugte Steuerungsfunktionen zusätzlich durch Code ergänzt, welcher im Betrieb kontinuierlich Daten erfasst und diese zur automatisierten Validierung, Verifikation und Verbesserung der Erzeugung der Steuerungs- oder Kommunikationsfunktion auf der Steuerung (B) beziehungsweise des Vorschlagens der Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung (A) verwendet werden.11. The method according to any one of claims 1-10, wherein the support module additionally adds the control functions generated on the control (B) by code, which continuously collects data during operation and this for automated validation, verification and improvement of the generation of the control or communication function on the control (B) or suggesting the series of suitable components or algorithms for connection to the functions of the external control (A). 12. Verfahren nach einem der Ansprüche 3-11, bei dem einzelne oder alle Funktionen, welche auf dem oder den Rechnern (C, D) implementiert sind, auch auf der Steuerung (B) oder einem beliebigen Dritten innerhalb oder ausserhalb des Netzwerkes, durchgeführt werden.12. The method according to any one of claims 3-11, in which individual or all functions which are implemented on the computer or computers (C, D), also on the controller (B) or any third party within or outside the network performed become. 13. Verfahren nach einem der Ansprüche 1-12, bei dem das Netzwerk ein lokales Netzwerk ist.The method of any one of claims 1-12, wherein the network is a local area network. 14. Verfahren nach einem der Ansprüche 1-13, bei dem das Unterstützungsmodul dazu ausgestaltet ist, die Analyse der importierten mindestens einen Bedieneroberfläche (x) zu verwenden, um eine automatisierte Erzeugung von abstrakten funktionalen Beschreibungen in einem dazu geeigneten Standard durchzuführen.The method of any of claims 1-13, wherein the support module is configured to use the analysis of the imported at least one user interface (x) to perform automated generation of abstract functional descriptions in a standard suitable therefor. 15. Netzwerkkomponente mit einer mikroprozessorbasierten Steuerung (B), die dazu ausgestaltet ist, Bedieneroberflächen (x) einer Fremdsteuerung (A) zu importieren, und die importierten Bedieneroberflächen (x) automatisiert zu analysieren, indem von für einen Bediener sichtbaren Elementen die dahinterliegenden, zum Element gehörenden Daten, Datenstrukturen und Kommunikationsprotokolle gefunden werden, die jeweiligen Bedienelemente mit bereits bekannten Elementen verglichen werden, daraus eine Steuerungs- oder Kommunikationsfunktion auf der Steuerung (B) erzeugt wird oder eine Reihe von geeigneten Komponenten oder Algorithmen zum Anschluss an die Funktionen der Fremdsteuerung (A) vorgeschlagen wird.A network component having a microprocessor-based controller (B) configured to import user interfaces (x) from an external controller (A) and to automate the analysis of the imported operator interfaces (x) by placing items visible to an operator, e.g. Element corresponding data, data structures and communication protocols are found, the respective controls are compared with already known elements, a control or communication function on the controller (B) is generated or a number of suitable components or algorithms for connection to the functions of the third-party control ( A) is proposed.
CH00542/16A 2016-04-22 2016-04-22 Procedure for programming control functions using semantic analysis of the HMI. CH712388B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH00542/16A CH712388B1 (en) 2016-04-22 2016-04-22 Procedure for programming control functions using semantic analysis of the HMI.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH00542/16A CH712388B1 (en) 2016-04-22 2016-04-22 Procedure for programming control functions using semantic analysis of the HMI.

Publications (2)

Publication Number Publication Date
CH712388A2 true CH712388A2 (en) 2017-10-31
CH712388B1 CH712388B1 (en) 2021-01-29

Family

ID=60164502

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00542/16A CH712388B1 (en) 2016-04-22 2016-04-22 Procedure for programming control functions using semantic analysis of the HMI.

Country Status (1)

Country Link
CH (1) CH712388B1 (en)

Also Published As

Publication number Publication date
CH712388B1 (en) 2021-01-29

Similar Documents

Publication Publication Date Title
DE60119171T2 (en) METHOD AND DEVICE FOR PRODUCING AN APPLICATION FOR AN AUTOMATED CONTROL SYSTEM
DE112016004668T5 (en) Determining device system markings for commissioning parts of a separate process loop
DE102011001460A1 (en) Method and device for a data-driven interface based on relations between process control labels
DE112005001043T5 (en) A user interface system for a process plant with user-specific process graphic display layers in an integrated environment
EP1597675A1 (en) System and method for managing and exchanging the data of a technical project, technical installation and individual installation components
DE102017117038A1 (en) PLANT SYSTEM WITH INTEGRATED SIMULATION AND CONTROL SYSTEM CONFIGURATION
DE102007046962A1 (en) Simulation system for simulating operation of process plant, has model regeneration unit, which compares indication of actual value with simulated output to develop updated process model for use by simulation routine
CN101813938A (en) Use the method and apparatus of electronic description language script layoutprocedure control system
WO2010112264A1 (en) Device and method for creating a process model
EP2407842B1 (en) Method for operating machines or machines in a machine series and design system
EP1137972B1 (en) Automation system for solving a technical-process task and corresponding method
WO2004111738A1 (en) Device and method for programming and/or executing programs for industrial automation systems
EP2324399A1 (en) Automation system having framework based controller
WO2014154281A1 (en) Object-based configuration of a process and/or production installation
CH712388A2 (en) Method for programming control functions by means of semantic analysis of the HMI.
EP3007017B1 (en) Production or machine tool and method for operating such a machine
EP1515207A1 (en) Automatisation object and method for description of an automatisation object using a metalanguage
EP2787403A1 (en) Method for the automatic creation of an automation program from a technological description of an automation solution
DE102010011190A1 (en) Method and system for preparing and providing information on the operation of a technical installation
EP3717975A1 (en) Method and device for planning a specific process system
EP1795999A1 (en) Method and system for transforming elements of a control program in a ladder diagram format into a function block format
EP1095321B1 (en) Method and device for designing the control of an overall process
DE102020130022A1 (en) Checking the compatibility of a process module to be newly integrated in an automation system
WO2024068952A1 (en) Method for a computer-aided generation of a decentralized electrical topology for a machine
DE102006008726B4 (en) Method and device for updating plant software