CH712388B1 - Procedure for programming control functions using semantic analysis of the HMI. - Google Patents

Procedure for programming control functions using semantic analysis of the HMI. Download PDF

Info

Publication number
CH712388B1
CH712388B1 CH00542/16A CH5422016A CH712388B1 CH 712388 B1 CH712388 B1 CH 712388B1 CH 00542/16 A CH00542/16 A CH 00542/16A CH 5422016 A CH5422016 A CH 5422016A CH 712388 B1 CH712388 B1 CH 712388B1
Authority
CH
Switzerland
Prior art keywords
user interface
support module
controller
network
control
Prior art date
Application number
CH00542/16A
Other languages
German (de)
Other versions
CH712388A2 (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

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. Aufgrund dieser automatisierten Analyse der HMI können viele Aufgaben, die der Programmierer beim Anschluss an bestehende Steuerungen und Funktionen erledigen muss, vereinfacht oder gar automatisiert werden. 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. Dies führt zu einer erheblichen Vereinfachung der Programmierarbeit.The present invention describes a method for supporting a programmer in the integration and programming of an industrial control in an existing, networked environment of further control components (external controls). The basis for this is provided by existing user interfaces (HMI, Human Machine Interface) on the existing third-party controls, which can often be accessed via embedded web servers. In the method according to the invention, these HMIs are to be imported and automatically analyzed using various methods in order to obtain information about the variable names, the communication protocols used and, in particular, the control functions behind them. Due to this automated analysis of the HMI, many tasks that the programmer has to perform when connecting to existing controls and functions can be simplified or even automated. The operating elements on the HMI of the third-party controls explain the control functions behind them. By means of a comparison with already known HMI elements, the semantic meaning of the assigned data can be recorded in the method according to the invention and suitable interfaces, communication and control functions can be proposed to the programmer. This leads to a considerable simplification of the programming work.

Description

Technisches GebietTechnical area

[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. [0001] 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 TechnikState of the art

[0002] Industrielle Steuerungen sind mikroprozessorbasierte Steuerungen wie weiter unten unter (A) und (B) beschrieben und werden heute überall eingesetzt, wo Steuerungs- und Ueberwachungsaufgaben automatisiert werden sollen (z.B. industrielle Automation, Gebäudeautomation, Heimautomation, usw.). Solche Steuerungen bestehen aus einem Microprozessorsystem, 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. Industrial controls are microprocessor-based controls as described below under (A) and (B) and are used today wherever control and monitoring tasks are to be automated (e.g. industrial automation, building automation, home automation, etc.). Such controls consist of a microprocessor system that is able to read sensors and electrical inputs and write them to actuators or outputs. Such controls are known in technical terms as e.g. SPS or PLC (Programmable Logic Controller), regulator, room controller, DDC (Direct Digital Control), etc. The controls are either permanently programmed and, if necessary, configured for their task in the field via parameterization, or they are more or less freely programmable using a large number of coding languages. It often happens that different systems from different manufacturers and integrators are used for the various tasks 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. In recent times, these controls are also often connected to one another via a TCP / IP network and they have an integrated web server via which the user can communicate and operate the control via a browser-enabled user interface (HMI). For example, the controllers can exchange data with each other via this TCP / IP network using 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 you want to let the various controls 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 control must be expanded and the controls must be connected to one another.

[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. To this end, the user must first select the appropriate communication protocol that both of the controllers concerned can handle. Then he has to deal with the programming of the controller to be connected in order to find out which variables he needs for his new functions to be written. These variables may still have to be made available for the selected communication. On the side of the new controller, these variables must now be imported and the desired controller application written in the desired programming language. Then the new function is put into operation and tested. This procedure describes the current state of technology and requires sufficient technical knowledge of the components used as well as general programming knowledge. It is also necessary that the program code of the controller A or at least some information from it is available.

[0006] Im Rahmen von zukünftigen Entwicklungen wie z.B. des 'Internet of Things' (IoT) ist davon auszugehen, dass sich die Anzahl von programmierbaren, vernetzten Steuerungskomponenten ('Smart Devices') vervielfachen wird. 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. In the context of future developments such as the 'Internet of Things' (IoT), it can be assumed that the number of programmable, networked control components ('Smart Devices') will multiply. The number of available technicians who are able to create programs within the framework of the above-described process, however, will hardly be able to keep up to the same extent.

[0007] Es ist also notwendig, dass Verfahren gefunden werden, welche die Integration von bestehenden Steuerungen und die Programmierung von neuen Funktionen signifikant vereinfachen. It is therefore necessary that methods are found which significantly simplify the integration of existing controls and the programming of new functions.

[0008] 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? The big challenges of the future will be: How can you program so many 'smart devices'? How can you manage the complexity? How can you verify that everything is working properly?

[0009] 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 herstellerü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. In order to master these challenges, various efforts are underway today to create technical standards that not only ensure binary compatibility, but also include a standardized description of the semantic meaning of data. The Building Automation and Control Networks (BACnet) standard, which prescribes a well-defined number of objects for the typical functions of building automation, shows an early approach in this direction. The benefit for the user / programmer is that on the one hand a manufacturer-independent combination of automation components is possible, especially but that a network can be specifically searched for functions for a desired task.

[0010] Ein weiteres Beispiel für eine solche Standardisierung zeigt uns das Open Platform Communications Unified Architecture (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 a standardization is shown by the Open Platform Communications Unified Architecture (OPC UA) committee, in which, in addition to the standardization of the known binary compatibility, work is being carried out on abstract descriptions for many industries (in an Extensible Markup Language (XML ) Format) of archetypal functions (information model). These descriptions are then stored on the control components and can be found, browsed and imported by a programmer. This can make programming much easier in the future.

[0011] 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 the standardization and the necessary descriptions will require a relatively long time until enough such control components are available in the field, so that there is a real benefit for the programmer.

[0012] Aufgabe der Erfindung ist es also, ein Verfahren vorzuschlagen, das es ermöglicht, die Integration von bestehenden Steuerungen und die Programmierung von neuen Funktionen zu vereinfachen. The object of the invention is therefore to propose a method that makes it possible to simplify the integration of existing controls and the programming of new functions.

Darstellung der ErfindungPresentation of the invention

[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. The method according to the invention described below brings the programmer a comparable benefit, but can already be used with many systems in the field today.

[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 Zukunft verwendet werden, können andere Aufgaben erfüllen und werden vielerlei neue Funktionen im Bereich des 'Internet of Things' (IoT) 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 the controls and applications that are available today in order to explain the concept to specific tasks. The controls that will be used in the future can perform other tasks and will cover many new functions in the area of the 'Internet of Things' (IoT), for example in the areas of home automation, security, logistics, entertainment, services, etc. Methods can also be used in an analogous manner in 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 mindestem 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 eines Programms auf einer, mikroprozessorbasierten Steuerung (B) oder auf einem Rechner im Netzwerk oder 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 consists in the following: For the programming of at least one third-party controller connected to a network, with at least one third-party controller or on a further computer which is connected to the controller via the network, functions in the form of at least a program and at least one user interface for controlling or monitoring the at least one program, for example via a web server, are implemented, a method comprises the steps of: providing a support module; Connecting the support module to the at least one external controller or to the further computer via the network; and implementing a program on a microprocessor-based controller (B) or on a computer in the network or on a portal (D) for further processing of the recorded data. The support module is designed to import the at least one user interface of the external control and to automatically analyze the imported at least one user interface by finding the underlying data, data structures and communication protocols belonging to the element from elements visible to an operator, along with the respective control elements known elements are compared and a control or communication function is generated on the controller or a number of suitable components or algorithms for connection to the functions of the external controller is proposed. The controller is designed to control, monitor or further process the at least one external controller by means of the generated control or communication function or the proposed series of suitable components or algorithms for connection to the functions of the external controller. The method according to the invention can thereby offer some important advantages. For example, the programmer does not have to analyze and understand the programming available on the external controller as before, and he does not have to rely on the programs available on the external controller being documented and available in the source code. Instead, the software described in the context of the support module could import and classify the data that could be important for connecting an external control or application. The programmer works much more effectively and could only make a selection from the possible components suggested by the support module. If, for example, no documentation of the external control is available, a connection to the external control would not be possible without the function of the support module, because the relevant information is missing. However, the user interface for operating the system will usually be available and can thus 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 the entire 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 is therefore not confronted with the problem that he does not have the right programming software or the right program with him 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 preferred, for example, if the controller does not have enough resources for the integration of a support module for reasons of cost. In this case, the support module could be integrated on the programmer's computer, e.g. if it is a laptop. In another variant, it could be another computer. The programmer then accesses this computer, which contains the support module, e.g. with a tablet. This computer could be used for the integration of several controls and could remain on the system, or it could be taken away 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, for example, a 'cloud' as a platform for the support module. The advantage of this embodiment is, for example, that a large amount of computing power, a large amount of data and a large number of algorithms can be accessed directly in the cloud. This is how effective and complex search methods may become possible. These methods could compare the data imported by the support module with data from countless other systems, and store the data from the external control and the control 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. [0019] The imported at least one user interface is preferably analyzed in the support module by reading a code used to display the user interfaces. Most web interfaces are completely or at least partially structured in an ASCII format, be it 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üftung/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ändis der dahinterliegenden Funktionen und Daten ermöglicht. A format in which the at least one user interface is present is preferably known syntactically and semantically, so that information present in the at least one user interface can be reconstructed by means of parsing. This preferred embodiment of the method according to the invention would, for example, be based on reverse engineering of existing development tools for creating user interfaces. For example, there are some common tools for designing web interfaces in the automation environment. These common tools could be completely understood in reverse engineering and thus a specific parser could be implemented, which produces a very high semantic information density, since every HMI element with all its properties can be extracted completely. Often these tools are used to build entire libraries with macro functions for industry-specific solutions, e.g. for system components such as a heat exchanger in the heating / ventilation / cooling area, there are prefabricated controller functions for the control system and matching HMI macros for visualization. The manufacturers of the control systems often offer such libraries free of charge, which is why they are widely used. Such branch and application-specific macro libraries or the individual macros could be recognized, which enables 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. In this case, a format in which the at least one user interface is available is syntactically known and semantically not known, so that the source code, which could be in JavaScript, for example, according to a process for capturing call stacks, can be used by API functions and use of variable names are analyzed and appropriately cataloged. This preferred embodiment of the method according to the invention would be used, for example, if the tool used for the HMI (e.g. an HMI editor) is not known or the HMI has been implemented as source code (programmed 'by hand'). In this case, the programming language would have to be recognized, i.e. the syntax is known, but it is not conclusively known which functions were implemented in the present code, i.e. the semantics cannot be completely mapped a priori as in the first method. The procedure according to the invention could, for example, proceed as follows: A call stack is created by analyzing the calls to functions. A first function, which is called e.g. by a button, calls another, this in turn another, etc., until this action path is finally ended. The functions involved in this way may in turn use so-called API (Application Programming Interface) functions, which are e.g. made available by programming language libraries. Such an API function could e.g. be used to send an HTTP read command to a web server or to draw a line on the screen. These API functions are normally not available in the source code, but are documented and their functionality and effect would be assumed to be known in the analysis, as far as relevant. These methods for reverse engineering of source code, as they can be used as an aid by this preferred embodiment of the method according to the invention, can be established technologies, for example in tools for reverse engineering, decompilers, RAD, debuggers and many others. 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. The analysis of the imported at least one user interface is preferably carried out by the support module on a third-party computer in a simulated context by creating photographic images of the at least one user interface, the photographic images of the at least one user interface being extracted and suitable features using an image recognition process the extracted features are compared with known patterns so that individual elements or element groups are recognized on the at least one user interface through this image recognition process, and conclusions can be drawn about the function behind the programming and the variables used by qualifying the recognized elements or element groups.

[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 Verabeitung 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. [0023] Graphics and pictures are often used in HMIs for illustration. These images could be in raster graphic formats such as BMP, PNG, GIF, JPG or as vector graphics such as SVG. Sometimes such symbols are also built up with basic functions for drawing lines, rectangles etc. from the programming language or an HMI tool. System parts can often be seen in these pictures as photos, symbols or even as DIN symbols. The HMI could be started as x 'or x' 'in a simulated operation to process these symbols. The aim of this simulation would be for the HMI code to also bring its graphic representation on a virtual screen, so that the desired sections could be copied from this virtual screen as a photographic image and subsequently qualified with common image recognition algorithms. By making comparisons with known functions or images, conclusions can be drawn about the function of the system part shown.

[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's 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 Bedienroberflä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 in order to record and evaluate the data exchange with the controller and to use this information for automatic analysis of the at least one program. In this process, the imported user interface could be analyzed separately from the process on the system. Possible advantages result from the fact that the interfaces of the code of the user interface can be recorded and analyzed in this simulated context using 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 communicate with simulated responses and to observe the behavior of the user interface. Another advantage could be that the communication between the user interface and the external control could also assume states which would interfere or damage during 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 Ueberwachung 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 additional executable code into the program code of the imported at least one user interface, 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 simulated operation in a so-called 'sandbox' (as x 'or x' ') and events specifically generated by the simulator could be fed into this modified HMI. The following behavior could now be analyzed by triggering these injected trigger functions under laboratory conditions. So you can imagine that a tag displayed in an edit field in the HMI and the protocol used for communication are to be found. We assume that, for example, an edit field uses an API function known to us (e.g. from Java Script or HTML) and that therefore code can be injected into the write method ('OnUpdate'), which has the same effect on the HMI as if a user had manually inserted the appropriate value. The reaction of the HMI code to this simulated event could now be analyzed, e.g. by monitoring the network communication, and thereby the name of the variable and the communication protocol used could be identified. In this process, parsing the source code would not understand the complete function, but relevant entry and exit points would be identified and these would be manipulated in a targeted manner in order 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 supplements the control functions generated on the controller with code which continuously records data during operation and uses this for automated validation, verification and improvement of the generation of the control or communication function on the controller or the suggestion of a series of suitable components or algorithms for connection to the functions of the external control are used. This preferred embodiment of the method according to the invention would, for example, improve the quality of the proposed solutions over a longer period of time, for example by using statistical methods or, for example, algorithms called 'machine learning' to feed back the measured results.

[0027] Vorzugsweise werden einzelne oder alle Funktionen, welche auf dem oder den Rechnern implementiert sind, auch auf der Steuerung oder einem beliebigen Dritten innnerhalb 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 Netwerk verbundene Systeme handelt, auf verschiedenen sich im Netwzerk 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 or computers are also carried out 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 be implemented at different locations in the network if they are systems connected to a network. A direct link between a certain function and a specific device is therefore not absolutely necessary.

[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 partially use functions or components which are implemented in the Internet, e.g. in a cloud. All of 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 concern the use of the method according to the invention 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. The support module is preferably designed to use the analysis of the imported at least one user interface in order to carry out an automated generation of abstract functional descriptions in a standard suitable for this. 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 to make third-party applications available. Data modeling in OPC UA can be used as a possible example of such a standard.

[0030] Ein anderer Aspekt 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 relates to a network component with a microprocessor-based controller. The control is designed to import user interfaces of an external control and to analyze the imported user interfaces automatically by finding the underlying data, data structures and communication protocols belonging to the element from elements visible to an operator, and comparing the respective control elements with already known elements , from this a control or communication function is generated on the controller or a number of suitable components or algorithms are proposed for connection to the functions of the external controller.

Wege zur Ausführung der ErfindungWays of Carrying Out the Invention

[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. In the following, some of the possible tasks will be described by way of example with the aid of the schematic drawing, and how these can be achieved with the method according to the invention. The reference symbols given below in brackets refer to elements in Figure 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 example chosen on the subject of 'Smart Grid' is about building an intelligent management system for both power-consuming and power-generating systems. Systems that generate electricity can either be controlled within a certain framework (CHP, storage power plants, batteries, etc.) or their production must be predicted in the near future (photovoltaics, wind power, run-of-river power plants). The consumers, in turn, 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 the system is from the capital goods sector, the control is usually implemented with a PLC (programmable logic controller). Many of these PLCs in turn have a web interface via which the system can be monitored and controlled. Let us consider the integration of a CHP (combined heat and power unit) as an example. The following functions are relevant for integration in a smart grid: switching on and off, operating status (fault), electrical power, heating requirement or temperature of the heating circuit, setpoints and alarm values. The programmer now has to connect these variables to an application in the cloud; there could also be a local control function that is able to manage the acceptable delays in the switch-on time in the event of a heating requirement (given by the thermal inertia). For this purpose, the programmer has a specification which describes the desired functions and the required variables. In the method according to the invention, the programmer could, for example, 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. In order to find the relevant variables, the programmer imports the web HMI (x) from the PLC (A), this is carried out by a suitable analysis software (e.g. on (B), (C) or (D)) read in, all existing operator pages are prepared and the variables assigned to the operator elements are extracted. This sequence described above, from the definition of the search pattern via the import of the web HMI to the analysis, is understood in the method according to the invention 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 of all, a control function for switching the CHP on and off should be connected to the new controller. For switching on and off there is usually an operator page for manual operation in the HMI (x), on which there are buttons, these buttons are labeled with the text 'On' or 'Off', the button in turn is linked to the variable which these Function starts. This relationship enables the support module to automatically find functions combined with statistical probabilities that this or a similar combination of the element 'button', the inscription 'On' and a control variable for switching on is present on this machine. The support module shows the programmer the various options found on the operator side (what does the element look like, what is the name of the variable found), so he can select the suitable element from a presorted selection and test it if necessary. In the case of the 'On' button, this can simply be pressed in the selection; if the unit starts, then it is the right element. In the process described above, the support module helped to find a desired function on an existing third-party control (A) and a suitable control function for the new programming to be created on a microprocessor-based control (B) or a program on (B) or a portal ( D) to provide 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 koninuierlich 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. In order to further improve the usefulness of the method according to the invention, each successfully assigned element is stored in the current context in a cloud application (D) by the support module in order to thereby continuously increase the quality of the statistical search methods. This means that when a next, similar system is commissioned, the elements that have been successfully used are displayed at the top. For this purpose, comparable methods can be used as they are also 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 entalten 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. The next example is to connect the operating state so that it is possible to react as quickly as possible in the event of a system malfunction. In addition to the assignment through the respective labeling in a display element or a button, there are other properties that can be used. Most HMIs have specific alarm list displays that are linked to alarm texts. The alarm texts always contain clear keywords such as 'failure', 'fault' etc. This results in a very clear profile, which in this case leads to the data. The temperature of the heating circuit, in turn, is usually displayed on a time / temperature diagram, which can be easily identified as an element.

[0038] Die zenrale 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 electricity price is high. Since the heating circuit is a relatively sluggish system, if there is a need for electricity, the machine can run a little longer than the immediate heating requirement requires, or you can wait until a critical minimum temperature is reached before switching on the diesel if the price is not interesting is. This function requires a complex algorithm. As part of the functionality of the support module in the cloud (D), an intelligent programming system can have a library of suitable functions that are suggested to the programmer. These suggestions are selected based on the information obtained from the analysis of the imported HMI. The totality of the data obtained via the various methods for analysis can be linked by suitable statistical methods and the most suitable methods can be found. The concept of this task is comparable with the function of Internet search engines, and the techniques customary in this area 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 weitere 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. Another important property of Internet search engines is their ability to improve automatically and in a self-learning manner during operation. This happens, for example, that the behavior of the user (e.g. which selection is made from a list) is fed back to the system. In a possible implementation according to the invention, the support module would also supplement the control functions generated on the controller (B) with code which continuously records data during operation and uses them for automated validation, verification and improvement of the generation of the control or communication function on the controller (B) or suggesting a series of suitable components or algorithms for connection to the functions of the external control (A). In order to support such feedback and the self-learning properties, further information about the character of the system programmed according to the invention can be recorded. For this purpose, the selected algorithm is automatically provided with suitable measuring points by the support module, which are cyclically loaded into the cloud in the subsequent regular operation for long-term data acquisition. These are used to validate and optimize the selected algorithm. Has the right algo been chosen? What efficiency does it achieve? Which statistical correlations with all the other recorded data can be found automatically? The collection of this information is used to continuously improve the automatic selection of the correct algorithms or to optimize the controls already installed. A “continuous data acquisition during operation” as described in claim 11 must meet the requirement of acquiring sufficiently usable data from a statistical point of view, the time period required for this being very dependent on the respective process.

Claims (14)

1. Verfahren für die Analyse mindestens einer an ein Netzwerk angeschlossenen, mikroprozessorbasierten Fremdsteuerung (A) zur Programmierung einer Steuerung (B), wobei auf der mindestens einen Fremdsteuerung (A) oder auf einem weiteren Rechner, welcher über das Netzwerk mit der Fremdsteuerung (A) verbunden ist, Funktionen in Form von mindestens 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 Bereitsstellen eines Unterstützungsmoduls, Verbinden des Unterstützungsmoduls mit der mindestens einen Fremdsteuerung (A) oder mit dem weiteren Rechner über das Netzwerk, 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, und Implementieren eines Programmes auf der mikroprozessorbasierten Steuerung (B) oder auf einem Rechner im Netzwerk oder auf einem Cloud-Portal (D) zur Weiterverarbeitung von durch das Unterstützungsmodul erfassten Daten, wobei die Steuerung (B) dazu ausgestaltet wird, die mindestens eine Fremdsteuerung (A) mittels der erzeugten Steuerungs- oder Kommunikationsfunktion zu steuern, zu überwachen oder weiter zu verarbeiten.1. Method for the analysis of at least one microprocessor-based third-party controller (A) connected to a network for programming a controller (B), with the at least one third-party controller (A) or another computer connected to the third-party controller (A ) is connected, functions in the form of at least one program (y) and at least one user interface (x) for controlling or monitoring the at least one program (y), for example via a web server, are implemented, characterized by the steps Providing a support module, connecting the support module to the at least one external controller (A) or to the other computer via the network, wherein the support module is configured to import the at least one user interface (x) of the external control (A), and to automatically analyze the imported at least one user interface (x) by finding the underlying data, data structures and communication protocols belonging to the element from elements visible to an operator, comparing the respective operating elements with known elements and using them to create a control or communication function on the Control (B) is generated, and Implementation of a program on the microprocessor-based control (B) or on a computer in the network or on a cloud portal (D) for further processing of data recorded by the support module, wherein the controller (B) is configured to control, monitor or further process the at least one external controller (A) by means of the control or communication function generated. 2. Verfahren nach Anspruch 1, wobei das Unterstützungsmodul Teil der Steuerung (B) ist.2. The method according to 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 according to claim 1, wherein the support module is provided in a computer (C) located in the network. 4. Verfahren nach Anspruch 1, wobei das Netzwerk das Internet umfasst und das Unterstützungsmodul in einer mit dem Internet verbundenen Remotekomponente, z.B. einem Cloud-Portal, vorgesehen ist.4. 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, e.g. a cloud portal. 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 according to any one of claims 1 to 4, wherein the imported at least one user interface (x) is analyzed in the support module by reading a code used to display the user interfaces (x). 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 as claimed in claim 5, in which a format in which the at least one user interface (x) is present is syntactically and semantically known, so that information present in the at least one user interface (x) can be reconstructed by means of parsing. 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 according to claim 5 or 6, in which a format in which the at least one user interface (x) is present is syntactically known and semantically unknown, so that the source code, which could be in JavaScript, for example, according to a process for the acquisition of call stacks, the use of API functions and the 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 sich im Netzwerk befindlichen Rechner (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.8. The method according to any one of claims 5-7, wherein the analysis of the imported at least one user interface (x) by the support module on a computer (C, D) located in the network in a simulated context by creating photographic images of the at least one user interface (x) is carried out (x ', x' '), the photographic images of the at least one user interface (x) being extracted using an image recognition process suitable features and the extracted features being compared with known patterns, so that individual elements or element groups are compared with this image recognition process are recognized 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 it in 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 sich im Netzwerk befindlichen Rechner (C, D) in einem simulierten Kontext startet und ausführt (x', x''), um den Datenaustausch mit der Fremdsteuerung (A) aufzuzeichnen und auszuwerten und diese Informationen zur automatischen Analyse des mindestens einen Programms (y) zu verwenden.9. The method according to any one of claims 1-8, wherein the support module starts and executes the imported at least one user interface (x) for automatic analysis on a computer (C, D) located in the network in a simulated context (x ', x' ') in order to record and evaluate the data exchange with the external control (A) and to use this information for the automatic analysis of 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 sich im Netzwerk befindlichen 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.10. The method according to any one of claims 1-9, wherein the support module starts and executes the imported at least one user interface (x) for automatic analysis on a computer (C, D) located in the network in a simulated context (x 'or x' '), additional executable code is injected into the program code of the imported at least one user interface (x' or x ''), the injected code is called as part of a simulation, the behavior of the entire code is analyzed at known measuring points, and thereby the automatic analysis additionally supported on the computers (C, D). 11. Verfahren nach einem der Ansprüche 1-10, wobei das Unterstützungsmodul die auf der Steuerung (B) erzeugten 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) verwendet werden.11. The method according to any one of claims 1-10, wherein the support module supplements the control functions generated on the controller (B) additionally with code which continuously records data during operation and this for automated validation, verification and improvement of the generation of the control or communication function on the controller (B). 12. Verfahren nach einem der Ansprüche 3-11, bei dem einzelne oder alle Funktionen, welche auf dem oder den sich im Netzwerk befindlichen Rechnern (C, D) implementiert sind, auch auf der Steuerung (B) oder einem beliebigen Dritten innnerhalb oder ausserhalb des Netzwerkes, durchgeführt werden.12. The method according to any one of claims 3-11, in which individual or all functions that are implemented on the computer or computers (C, D) located in the network, also on the controller (B) or any third party inside or outside of the network. 13. Verfahren nach einem der Ansprüche 1-12, bei dem das Netzwerk ein lokales Netzwerk ist.13. The method according to 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.14. The method according to any one of claims 1-13, wherein the support module is configured to use the analysis of the imported at least one user interface (x) in order to carry out an automated generation of abstract functional descriptions in a standard suitable for this.
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 CH712388A2 (en) 2017-10-31
CH712388B1 true 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
CH712388A2 (en) 2017-10-31

Similar Documents

Publication Publication Date Title
DE60119171T2 (en) METHOD AND DEVICE FOR PRODUCING AN APPLICATION FOR AN AUTOMATED CONTROL SYSTEM
EP2399174B1 (en) Method and apparatus for creating an application program for a safety controller
DE102009019089A1 (en) Method and device for creating a user program for a safety control
WO2004077305A1 (en) System and method for managing and exchanging the data of a technical project, technical installation and individual installation components
EP1137972B1 (en) Automation system for solving a technical-process task and corresponding method
EP2407842B1 (en) Method for operating machines or machines in a machine series and design system
EP1634130B1 (en) Device and method for programming and/or executing programs for industrial automation systems
WO2014140253A1 (en) Development of a higher-level model
WO2010028760A1 (en) Automation system having framework based controller
EP1048993B1 (en) Method for knowledge-based planning of a complex technical system
WO2014154281A1 (en) Object-based configuration of a process and/or production installation
CH712388B1 (en) Procedure for programming control functions using semantic analysis of the HMI.
EP2971769A1 (en) P&i diagram input
DE102020130022A1 (en) Checking the compatibility of a process module to be newly integrated in an automation system
DE19841194B4 (en) Digital data processing system for safety-related automation tasks for execution as function and sequence diagrams of displayed programs
EP1515207A1 (en) Automatisation object and method for description of an automatisation object using a metalanguage
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
DE102013002085A1 (en) PLC function blocks for power management functionalities
EP1095321B1 (en) Method and device for designing the control of an overall process
EP1795982A1 (en) Method and system for transforming elements of a control program in function block format into a ladder diagram format
DE102010011190A1 (en) Method and system for preparing and providing information on the operation of a technical installation
WO2022233571A1 (en) Method for computer-assisted configuration of a terminal, terminal, and operating method for said terminal
EP1693725A2 (en) Development system for process control systems and corresponding method and computer program product
WO2014146716A1 (en) Engineering system of a process plant and/or production plant