EP4684288A1 - Industriesteuerung, system und verfahren zur analyse - Google Patents

Industriesteuerung, system und verfahren zur analyse

Info

Publication number
EP4684288A1
EP4684288A1 EP24728897.0A EP24728897A EP4684288A1 EP 4684288 A1 EP4684288 A1 EP 4684288A1 EP 24728897 A EP24728897 A EP 24728897A EP 4684288 A1 EP4684288 A1 EP 4684288A1
Authority
EP
European Patent Office
Prior art keywords
function
operating system
event
obi
main module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP24728897.0A
Other languages
English (en)
French (fr)
Inventor
Anton Hartwig
Peter Hartwig
Jörg Spindler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Siemens Corp
Original Assignee
Siemens AG
Siemens Corp
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 Siemens AG, Siemens Corp filed Critical Siemens AG
Publication of EP4684288A1 publication Critical patent/EP4684288A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3644Debugging of software by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Definitions

  • the invention relates to an industrial control system with a computing unit, an operating system and a user program which is executed in the computing unit to control an industrial process, wherein the user program has at least one main module and at least one function module and at least one function which can be called within the main module, the operating system is designed to process the main module cyclically and to execute the program code in the main module, further designed to call the at least one function module and/or the function and, after the call, to also execute their program code.
  • the invention also relates to a method for analyzing the temporal behavior of an application program.
  • the application program for controlling an industrial process is executed in the computing unit, wherein at least one main module is called in the application program and at least one function module and/or at least one function is called in the main module.
  • the operating system processes the main module and the program code in the main module cyclically.
  • the program code in the function module and/or the function is also executed after the call.
  • the invention relates to a system for analyzing a temporal behavior of a user program in an industrial control system, comprising the industrial control system, an analysis tool with a computer unit and with a screen and a communication connection.
  • industrial control is preferably understood to mean a programmable logic controller (PLC).
  • PLC programmable logic controller
  • This is an automation device that is used to control or regulate a machine or system in an industrial environment.
  • this cycle is controlled by an operating system that is permanently stored by the manufacturer.
  • the control program can contain branches and conditional calls depending on its program modules, which result in different run times.
  • S IMATIC S7- 1500 Profiling For a user of industrial controls there is currently the option of using S IMATIC S7- 1500 Profiling to analyze and evaluate the runtime behavior of an application on a S IMATIC S7- 1500 controller, see "S IMATIC S7- 1500 Profiling Entry ID: 109750245, VI . 0 . 2, 11 /2017".
  • This has the disadvantage that two additional blocks have to be introduced into the user program. The user must therefore instrumentalize his user program with this call of FBs, which on the one hand means a high level of adaptation effort for the customer, is accompanied by temporal changes in the user program and can only be carried out after problems have been identified.
  • EP 2 477 085 Bl presents a recording device. It is located in the PLC and measures the times of the blocks. This corresponds to the block call in the SIMATIC S7-1500 profiling tool.
  • the operating system is further configured with a recording means which, when the main module is executed during program execution, records the calls of the function module(s) and/or the function(s) coordinated by the operating system as event description data in an analysis memory.
  • the main module, the function module or the function is called, the operating system is configured to communicate these call events for the event description data to the recording means.
  • the recording means is configured to store a data record with at least the following data structure in the analysis memory for each call event: an event ID, an event category, an event type, a timestamp, a process ID, a thread ID. This is very useful with regard to a raw data format.
  • the data required for profiling the user program is now always recorded. The user does not have to do anything and can access the data at any time.
  • One goal of an analysis is to determine various program sections that can or must be optimized in order to increase the application speed and responsiveness and to reduce memory and resource consumption.
  • This operating system-internal solution does not burden the runtime of the user program.
  • the data can be prepared in such a way that it can be made visually visible using standard tools.
  • An example here could be a Chrome Browsers with tracing functionality (URL: chrome://tracing/) can be used.
  • a PLC is now available to which a profiler can be connected for analysis.
  • Profilers are tools for analyzing the runtime and other metrics of software. Profiling tools can be used to quickly and easily identify bottlenecks and resolve problems.
  • JSON array format A relatively simple format accepted by browsers with the tracing viewer functionality is the JSON array format. Essentially, it is an array of event objects. The events do not have to be sorted in the order of the timestamps. The event ID would then correspond to the called module and additional information could even be provided if required, namely an event name such as "FBI".
  • a further advantageous embodiment provides that the interface is designed as an application programming interface for a web server or a web browser.
  • the analysis memory is divided into a plurality of buffer memories and the operating system has a memory management means which is designed to coordinate the write accesses of the recording means to the analysis memory and to redirect them to different buffer memories in the event that a buffer memory is blocked for further write accesses in favor of data consistency.
  • the permanent data accesses to the memories must not affect existing data, should If a buffer is currently being queried, it will be frozen.
  • This information can be queried as raw data directly from the PLC using the modern WebAPI and can be called up and graphically displayed on a client system. This gives the user transparency over the execution levels and program parts, runtime optimization and error diagnosis, evaluation of the system's performance reserves and quality assurance of the application in the PLC.
  • a graphical tool is then used to create a profile view for later optimization of the runtime fluctuation, in which, for example, only the OBs (main OBs) and interrupt events can be seen; communication information (e.g. communication task by priority) may also be responsible for heavy loads and interruptions.
  • the task mentioned at the beginning is also solved by a method for analyzing the temporal behavior of a user program.
  • the user program for controlling an industrial process is executed in the computing unit, wherein in the user program program at least one main module is called and in the main module at least one function module and/or at least one function is called, the operating system processes the main module and the program code in the main module cyclically, the program code is also executed in the function module and/or in the function after the call, wherein a recording device is operated in the operating system which, when the main module is executed during program execution, records the calls of the function module(s) and/or the function(s) coordinated by the operating system as event description data in an analysis memory, for this purpose the call events are communicated by the operating system when the main module, the function module or the function is called to the recording device for entry in the event description data, furthermore the event description data is made available to an interface for an analysis tool via an output device, wherein the recording device stores
  • the method shown enables a user to retrieve raw data from the PLC for a precise analysis of the runtime behavior of a PLC project. It helps to identify time-consuming program sections, inefficient programming and enables early detection of runtime problems.
  • the user program does not need to be changed, nor does the temporal behavior of the user program change.
  • Customers who detect a problem in their user program can immediately analyze their problem using the profiling data.
  • the profiling data can be converted into any data format for other profiling tools.
  • the total and actual times of each call in the PLC project can be recorded and displayed with cycle accuracy.
  • a block ID and from this the name, e.g. "FBI”, can be derived from the event ID. This additional information is retrieved via an API call if required.
  • This provides a type-based view that allows easy comparison of different instances and calls.
  • a flow structure of the user program for one or more cycles can be displayed. Detecting hotspots in a cycle and displaying jitter behavior for individual OBs is now possible.
  • the interface is operated as an application programming interface for a web server or a web browser and the event description data can be evaluated by a user by means of a graphical display on a screen.
  • the web server or the web browser can select desired data via the application programming interface via a request channel and receive the desired data via a delivery channel.
  • the analysis memory is divided into a plurality of buffer memories and the operating system coordinates the write accesses of the recording medium to different buffer memories of the analysis memory by means of a memory management means in the event that, in the interests of data consistency, a specific buffer memory is blocked for further write accesses.
  • the system comprises the industrial control, an analysis tool with a computer unit and a communication connection with a screen
  • the industrial control comprises a computing unit, an operating system and a user program which is run in the computing unit to control an industrial process
  • the user program has at least one main module and at least one function module and at least one function which can be called within the main module
  • the operating system is designed to process the main module cyclically and to execute the program code in the main module, further designed to call the at least one function module and/or the function and, after the call, to also execute their program code
  • the operating system is further designed with a recording means which, when the main module is executed during program execution, records the calls of the function module(s) and/or the function(s) coordinated by the operating system as event description data in an analysis memory
  • the operating system is designed when the main module is called, the Function block or the function to communicate these call events for the event description data
  • FIG 1 an industrial control according to the invention
  • FIG 2 a data set with event data
  • FIG 3 the industrial control system known from FIG 1 with AB queries
  • FIG 4 a data query mask of an analysis tool
  • FIG 5a a possible screen display using a software based display means
  • an industrial control system 100 in particular a PLC, is shown with a processing unit 1, an operating system 2 and an application program AW.
  • the industrial control system 100 is designed to repeatedly execute the application program AW by means of a cyclic program execution Z.
  • a main block UB1 calls a function block FBI and the function block FBI in turn calls a function FC1.
  • the operating system 2 is designed to cyclically process the main block OBI and to execute the program code in the main block OBI.
  • the operating system is also designed to execute the program code after calling the function block FBI and/or the function FC1.
  • the operating system 2 now has a recording means 3 which is designed to execute the main block OBI during program execution, the calls of the function block coordinated by the operating system 2 FBI and the function FC1 as event description data 4 in an analysis memory 5.
  • the operating system 2 is designed to inform the recording means 3 of the corresponding call events E1, E2, E3 or corresponding end events E1', E2', E3' when the main module OBI, the function module FBI or the function FC1 is called.
  • an output means 6 is present in the industrial control system 100, which is designed to provide the event description data 4 at an interface 7 for an analysis tool 200.
  • this starts from the user program AW, this generates an OB1 call 30 which executes the main block OBI.
  • the main block OBI In the main block OBI, the main block OBI generates an FBI call 31 which calls the function block FBI. Within the function block FBI, an FCl call 32 is executed which calls the function FC1. Each of the calls mentioned generates a call event E1, E2, E3.
  • the main block OBI If the main block OBI is called, the operating system 2 records a first call event E1. If the function block FBI is called, the operating system 2 records a second call event E2. If the function FC1 is called, the operating system 2 records a third call event E3. Analogous to the call events, the end events E1', E2', E3' are also recorded by the operating system 2.
  • the analysis memory 5 has a plurality of buffer memories buf 1 , bufn and the operating system 2 has a memory management means 8 which is designed to control the write accesses of the recording means 3 to the analysis Memory 5 to coordinate and redirect to different buffers buf 1 , bufn in case a buffer bufl is locked for further write accesses in favor of data consistency.
  • the event description data 4 (or 4' or 4'') can thus be communicated to the analysis tool 200 via the interface 7.
  • the analysis tool 200 has a computer unit 201 with a screen 202 and is connected to the interface 7 via a communication connection 203.
  • the event data can be displayed on the screen 202 via a software-based graphic display means 204.
  • FIG 2 shows the event description data 4 using the example of the second call event E2.
  • the following data structure DS is stored in the data record D in the analysis memory 5.
  • An event ID E-ID, an event category EK, an event type ET, a time stamp TS, a process ID P-ID, a thread ID T-ID and an entry for a nesting depth e args level : 3.
  • the event category EK can be an OB call, an FB call, an FC call, a process image (PAE and PAA) update or a direct write to a peripheral.
  • a memory area in the system memory of the CPU is accessed. This area is referred to as the process image of the inputs (PII) and the process image of the outputs (PIO).
  • the contents of the process image (PII and PIO) do not reflect the current values of the inputs and outputs, but the values at the time the process image was updated.
  • I/O addresses outside the process image can also be assigned to the inputs and outputs of peripheral modules. These I/O addresses must be accessed via "peripheral addressing". For better understanding, this article first describes the various process image types and then "peripheral addressing".
  • the OBl process image (OBI-PA) can be used in any CPU. It is updated cyclically before the OBI is processed. The cyclic program processing takes place in the following order:
  • Processing of internal tasks of the CPU operating system Writing the states from the OBl process image of the outputs to the outputs of the modules. Reading the input states from the modules into the OBl process image of the inputs.
  • the update of the OBl process image can then be carried out in the user program with SFC 26 (UPDAT_PI) and SFC 27 (UPDAT_PO).
  • Influencing factors here are: The number of individual modules that must be read from or written to.
  • the baud rate used to communicate with the individual modules.
  • the protocols used to address the individual modules MPI, PROFIBUS, . . . ). If the OBl process image has been enlarged (not possible with all CPUs), the cycle time can also be extended if this means there are more modules in the process image.
  • TPA partial process images
  • TPA partial process images
  • the process image partitions can be updated in two different ways; in the user program via SFC 26 (UPDAT_PI) and SFC 27 (UPDAT_PO) by assigning a TPA to an OB.
  • the data read/written from the process image partitions are consistent when updated with an SFC up to a CPU-dependent data length. Information about this can be found in the S7-0nline help for the SFC.
  • the output values of the assigned process image subprocess are written to the outputs immediately after the OB has been processed.
  • the process image often does not cover the entire peripheral address range of the CPU.
  • peripheral addressing Access to the peripheral addresses takes place immediately after the addressing the address in the user program. With “peripheral addressing” it is always guaranteed that the current value is read in immediately or an output is implemented immediately. This is particularly important for analog values and process alarms.
  • Peripheral addressing means that the modules are accessed directly.
  • a command in the user program provides a "P”: in front of the area of the address to be addressed.
  • the event type ET can contain a B for start or E for end.
  • the required data could also be represented as a binary file with an array of runtime data entries (each 16 bytes long) as follows.
  • the byte order of the profiling data is little endian.
  • the format of the data entries (always 16 bytes) depends on the first byte, the entry type.
  • the events can also be a PIP (process image peripheral) for read and write.
  • a communication load can also be recorded:
  • FIG 3 the industrial control 100 from FIG 1 is essentially shown. According to FIG 3, it is illustrated here how data can be queried via the application programming interface WEBAP, via a request channel 71 and a provision channel 72.
  • a first API call 41 sends a request "Get profiling data" to the interface 7, which is designed as a web API.
  • the event description data 4 are fetched as raw data in the analysis memory 5 in the corresponding buffer memory buf 1 , bufn via the request channel 71.
  • an additional designation of a block ID for example FB52, can be obtained via the application programming interface web-api with a special api command, namely the second API call 42 "Get block name”.
  • a data query 50 as it occurs in the analysis tool 200, is shown.
  • the corresponding industrial control 100 can be selected via a target address setting 51.
  • a JSON data format for example, can be preset for query via a data format setting 52.
  • the data is queried using the API functionality via a data query button 53.
  • a JSON data format file can also look like this: ⁇ "name” : "PIP
  • JSON stands for "JavaScript Object Notation"
  • FIG 5a shows a possible screen display using a software-based display means using the example of chrome ://tracing/ .
  • the length of the bar corresponds to the runtime for the block call.
  • Call sequences in blocks can be made visible and individual unusually long functions can be quickly identified.
  • a search can be carried out for the longest and second longest blocks and these can then be examined more closely.
  • Color coding can help to distinguish the blocks. Search for the FB or FC that is called very frequently and therefore has the longest total runtime; this promises the greatest success after subsequent optimization.
  • FIG 5a shows the calls of OB253, OB31, OB92, FB9 and FB239.
  • FIG 5b shows that the 0B31 and the FB239 require the most time, which also indicates potential for optimization.
  • further modules and function calls are visible in the view in FIG 5b.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft eine Industriesteuerung (100) mit einer Recheneinheit (1), einem Betriebssystem (2) und einem Anwenderprogramm (AW), welches zum Steuern eines industriellen Prozesses in der Recheneinheit (1) zum Ablauf gebracht wird, wobei das Anwenderprogramm (AW) zumindest einen Hauptbaustein (OB1) und zumindest einen Funktionsbaustein (FB1) und zumindest eine Funktion (FC1) aufweist, welche innerhalb des Hauptbausteins (OB1) aufrufbar sind, das Betriebssystem (2) ist ausgestaltet den Hauptbaustein (OB1) zyklisch abzuarbeiten und den Programmcode in dem Hauptbaustein (OB1) auszuführen, weiterhin ausgestaltet den zumindest einen Funktionsbaustein (FB1) und/oder die Funktion (FC1) aufzurufen und nach dem Aufruf auch deren Programmcode auszuführen, wobei das Betriebssystem (2) weiterhin mit einem Aufzeichnungsmittel (3) ausgestaltet ist, welches bei Ausführung des Hauptbausteins (OB1) während der Programmausführung die vom Betriebssystem (2) koordinierten Aufrufe des/der Funktionsbaustein(e) (FB1) und/oder der Funktion(en) (FC1) als EreignisbeschreibungsDaten (4) in einem Analysespeicher (5) aufzeichnet, dabei ist das Betriebssystem (2) ausgestaltet bei Aufruf des Hauptbausteins (OB1), des Funktionsbausteins (FB1) oder der Funktion (FC1) dem Aufzeichnungsmittel (3) diese Aufrufereignisse (E1,E2,E3) für die Ereignisbeschreibungs-Daten (4) mitzuteilen, wobei weiterhin ein Ausgabemittel (6) vorhanden ist, welches die Ereignisbeschreibungs-Daten (4) an einer Schnittstelle (7) für ein Analyse-Werkzeug (200) bereitstellt.

Description

Beschreibung
Industriesteuerung, System und Verfahren zur Analyse
Die Erfindung betri f ft eine Industriesteuerung mit einer Recheneinheit , einem Betriebssystem und einem Anwenderprogramm, welches zum Steuern eines industriellen Prozesses in der Recheneinheit zum Ablauf gebracht wird, wobei das Anwenderprogramm zumindest einen Hauptbaustein und zumindest einen Funktionsbaustein und zumindest eine Funktion aufweist , welche innerhalb des Hauptbausteins aufrufbar sind, das Betriebssystem ist ausgestaltet den Hauptbaustein zyklisch abzuarbeiten und den Programmcode in dem Hauptbaustein aus zuführen, weiterhin ausgestaltet den zumindest einen Funktionsbaustein und/oder die Funktion auf zurufen und nach dem Aufruf auch deren Programmcode aus zuführen .
Auch betri f ft die Erfindung ein Verfahren zur Analyse eines zeitlichen Ablaufverhaltens eines Anwenderprogramms , dazu wird in einer Industriesteuerung mit einer Recheneinheit und einem Betriebssystem das Anwenderprogramms zum Steuern eines industriellen Prozesses in der Recheneinheit zum Ablauf gebracht , wobei in dem Anwenderprogramm zumindest ein Hauptbaustein aufgerufen wird und in dem Hauptbaustein zumindest ein Funktionsbaustein und/oder zumindest eine Funktion auf gerufen wird, das Betriebssystem arbeitet den Hauptbaustein und den Programmcode in dem Hauptbaustein zyklisch ab, ebenfalls wird der Programmcode in dem Funktionsbaustein und/oder der Funktion nach dem Aufruf auch der Programmcode ausgeführt .
Des Weiteren betri f ft die Erfindung ein System zur Analyse eines zeitlichen Ablaufverhaltens eines Anwenderprogramms in einer Industriesteuerung umfassend die Industriesteuerung, ein Analyse-Werkzeug mit einer Computereinheit und mit einem Bildschirm und einer Kommunikationsverbindung .
Im Sinne der Erfindung wird unter Industriesteuerung vorzugsweise eine speicherprogrammierbare Steuerung ( SPS ) verstan- den, dieses ist ein Automatisierungsgerät , das zur Steuerung oder Regelung einer Maschine oder einer Anlage in einem industriellen Umfeld eingesetzt wird . Bei einer zyklusorien- tierten SPS wird durch ein vom Hersteller fest eingespeichertes Betriebssystem dieser Zyklus kontrolliert . Das Steuerungsprogramm kann bedingt durch seine Programmbausteine Verzweigungen und bedingte Aufrufe beinhalten, welche unterschiedliche Lauf zeiten zur Folge hat .
Für einen Anwender von Industriesteuerungen gibt es derzeit die Möglichkeit mit S IMATIC S7- 1500 Profiling das Lauf zeitverhalten einer Applikation auf einer S IMATIC S7- 1500 Steuerung zu analysieren und zu bewerten siehe „S IMATIC S7- 1500 Profiling Beitrags- ID : 109750245 , VI . 0 . 2 , 11 /2017" . Dies hat allerdings den Nachteil , dass in das Anwenderprogramm zwei zusätzliche Bausteine eingebracht werden müssen . Der Anwender muss also sein Anwenderprogramm mit diesem Aufruf von FBs instrumentalisieren, was zum einen ein hoher Anpassungsaufwand für den Kunden ist , mit zeitlichen Veränderungen im Anwenderprogramm einhergeht und erst nach dem man Probleme festgestellt hatte , erfolgen kann .
Aus der DE 10 2005 020 507 Al ist die Einrichtung und Konditionierung von Automatisierungsgeräten bekannt , bei der in einer Analyseeinrichtung die erwarteten Abarbeitungs zeiten von Programmen, Unterprogrammen und Prozeduren bei vorgebbaren Bedingungen rechnerisch ermittelt werden .
In der EP 2 477 085 Bl wird ein Erfassungsmittel vorgestellt . Es ist in der SPS angeordnet und misst die Zeiten der Bausteine . Dies entspricht dem Bausteinaufruf in dem S IMATIC S7- 1500 Prof iling-Tool .
Es ist daher Aufgabe der vorliegenden Erfindung, dem Anwender eine verbesserte Möglichkeit zur Analyse für eine anschließende Optimierung des zeitlichen Ablaufverhaltens des Steuerungsprogramms zu geben . Die Aufgabe wird dadurch gelöst , dass das Betriebssystem weiterhin mit einem Auf zeichnungsmittel ausgestaltet ist , welches bei Aus führung des Hauptbausteins während der Programmaus führung die vom Betriebssystem koordinierten Aufrufe des/der Funktionsbaustein ( e ) und/oder der Funktion ( en) als Ereignisbeschreibungs-Daten in einem Analysespeicher aufzeichnet , dabei ist das Betriebssystem ausgestaltet bei Aufruf des Hauptbausteins , des Funktionsbausteins oder der Funktion dem Auf zeichnungsmittel diese Auf ruf ereignisse für die Ereignisbeschreibungs-Daten mitzuteilen, weiterhin ist ein Ausgabemittel vorhanden, welches die Ereignisbeschreibungs- Daten an einer Schnittstelle für ein Analyse-Werkzeug bereitstellt , dabei ist das Auf zeichnungsmittel ausgestaltet , pro Auf ruf ereignis einen Datensatz mit zumindest folgender Datenstruktur in dem Analysespeicher abzulegen : eine Ereignis- ID, eine Ereigniskategorie , einen Ereignistyp, einen Zeitstempel , eine Prozess- ID, eine Thread- ID, dies ist bezüglich eines Rohdatenformates sehr nützlich .
Die notwendigen Daten für ein Profiling des Anwenderprogrammes werden nun immer auf gezeichnet . Der Anwender muss nichts dafür tun und kann j ederzeit auf die Daten zugrei fen .
Bei einer Analyse ist es ein Ziel , verschiedene Programmabschnitte zu bestimmen, die optimiert werden können oder müssen, um die Anwendungsgeschwindigkeit und Reaktions fähigkeit zu erhöhen und den Speicher- und Ressourcenverbrauch zu senken . Mit dieser betriebssysteminternen Lösung wird die Laufzeit des Anwenderprogramms nicht belastet . Aus einem Rohdatenformat für die Ereignisbeschreibungs-Daten können die Daten so aufbereitet werden das sie mit Standardtools visuell sichtbar gemacht werden . Als Beispiel könnte hier ein Chrome Browser mit der Funktionalität Tracing (URL : chrome : / / tracing/ ) eingesetzt werden .
Erfindungsgemäß steht nun eine SPS zur Verfügung an die man einen Profiler zur Analyse anschließen kann . Profiler sind Werkzeuge , um die Lauf zeit und andere Metriken von Software zu analysieren . Mit Prof iling-Tools lassen sich schnell und einfach Flaschenhälse erkennen und Probleme beheben .
Ein relativ einfaches Format , das von den Browsern mit der Tracing-Viewer Funktionalität akzeptiert wird, ist das JSON- Arrayformat . Im Wesentlichen handelt es sich um ein Array von Ereignisobj ekten . Die Ereignisse müssen nicht in der Reihenfolge der Zeitstempel sortiert sein . Die Ereignis- ID entspräche dann dem aufgerufenen Baustein und es könnte sogar eine Zusatzinformation bei Bedarf bereitgestellt werden, nämlich ein Ereignisname wie zum Beispiel „FBI" .
Eine weitere vorteilhafte Ausgestaltung sieht vor, dass die Schnittstelle als eine Anwendungsprogrammierschnittstelle für einen Webserver oder einen Webbrowser ausgestaltet ist .
Anwender können nun über die Anwendungsprogrammierschnittstelle über einen Anforderungskanal und einen Bereitstellungs-Kanal mit dem Analysespeicher kommuni zieren .
Um Datenverluste durch Überschreiben von Daten bei der Aufzeichnung zu vermeiden ist der Analysespeicher in eine Mehrzahl von Puf ferspeichern aufgeteilt und das Betriebssystem weist ein Speicherverwaltungsmittel auf , welches ausgestaltet ist die Schreibzugri f fe des Auf zeichnungsmittel auf den Analysespeicher zu koordinieren und auf unterschiedliche Puf ferspeicher umzuleiten, für den Fall , dass zu Gunsten einer Datenkonsistenz ein Puf ferspeicher für weitere Schreibzugri f fe gesperrt wird . Die permanenten Datenzugri f fe auf die Speicher dürfen bereits bestehende Daten nicht beeinflussen, sollte ein Puf fer gerade abgefragt werden so wird derj enige eingefroren .
Die Erfinder haben erkannt , dass ein Bedarf an SPS-Geräten vorhanden ist , welche „ready to run" sind oder „out of the box" sofort funktionieren, insbesondere im Hinblick auf ein Datenprof iling, ohne an der SPS selbst Änderungen am System vornehmen zu müssen . Schnell kann sich ein Anwender folgende Fragen beantworten :
- Wie ist die aktuelle Auslastung der SPS ?
- Welche Blöcke haben die meiste Lauf zeit?
- Welcher Block erzeugt einen Flaschenhals ?
- Wo sind die Hot Spots in der Anwendung ( aufgrund inef fizienter Programmierung) ?
Die Lösung ist , dass diese Informationen als Rohdaten direkt aus der SPS mit dem modernen WebAPI abgefragt werden können und auf einem Client-System aufgerufen und grafisch dargestellt werden . Dem Anwender wird dadurch eine Transparenz über die Aus führungsebenen und Programmteile , Lauf zeit-Optimierung und Fehlerdiagnose , Bewertung der Leistungsreserve des Systems und Qualitätssicherung der Anwendung in der SPS gegeben .
Auf einem graphischen Tool wird dann für eine spätere Optimierung der Lauf zeitschwankung eine Profilansicht , in der beispielsweise nur die OBs (Haupt-OB ) und Interrupt-Ereignisse zu sehen sind, evtl , können auch Kommunikationsinformationen ( z . B . Kommunikationsaufgabe nach Priorität ) an starken Belastungen und Unterbrechungen Schuld sin .
Auch wird die eingangs genannte Aufgabe durch ein Verfahren zur Analyse eines zeitlichen Ablaufverhaltens eines Anwenderprogramms gelöst , dazu wird in einer Industriesteuerung mit einer Recheneinheit und einem Betriebssystem das Anwenderprogramm zum Steuern eines industriellen Prozesses in der Recheneinheit zum Ablauf gebracht , wobei in dem Anwenderpro- gramm zumindest ein Hauptbaustein aufgerufen wird und in dem Hauptbaustein zumindest ein Funktionsbaustein und/oder zumindest eine Funktion aufgerufen wird, das Betriebssystem arbeitet den Hauptbaustein und den Programmcode in dem Hauptbaustein zyklisch ab, ebenfalls wird der Programmcode auch in dem Funktionsbaustein und/oder in der Funktion nach dem Aufruf ausgeführt , wobei im Betriebssystem ein Auf zeichnungsmittel betrieben wird, welches bei Aus führung des Hauptbausteins während der Programmaus führung die vom Betriebssystem koordinierten Aufrufe des/der Funktionsbaustein ( e ) und/oder der Funktion ( en) als Ereignisbeschreibungs-Daten in einem Analysespeicher auf zeichnet , dazu werden die Auf ruf ereignisse vom Betriebssystem bei Aufruf des Hauptbausteins , des Funktionsbausteins oder der Funktion dem Auf zeichnungsmittel zum Eintrag in die Ereignisbeschreibungs-Daten mitgeteilt , weiterhin werden über ein Ausgabemittel die Ereignisbeschreibungs-Daten an einer Schnittstelle für ein Analyse-Werkzeug bereitgestellt , dabei legt Das Auf zeichnungsmittel pro Auf ruf ereignis einen Datensatz mit zumindest folgender Datenstruktur in dem Analysespeicher ab : eine Ereignis- ID, eine Ereigniskategorie , einen Ereignistyp (ET ) , einen Zeitstempel , eine Prozess- ID, eine Thread- ID an .
Mit dem aufgezeigten Verfahren ermöglicht man einem Anwender eine Rohdaten-Abholung aus der SPS für eine genaue Analyse des Lauf zeitverhaltens eines SPS-Pro j ektes . Es unterstützt beim Erkennen von zeitintensiven Programmteilen, inef fi zienter Programmierung und ermöglicht das frühzeitige Erkennen von Lauf zeitproblemen .
Für die notwendigen Rohdaten, nämlich die Prof iling-Daten, muss weder das Anwenderprogramm geändert werden, noch ändert sich das zeitliche Verhalten des Anwenderprogrammes . Kunden, die ein Problem in ihrem Anwenderprogramm detektieren, können umgehend über die Profiling Daten ihr Problem analysieren .
Die Prof ilingdaten können in beliebige Datenformate für andere Profiling Tools gewandelt werden . Darüber hinaus können die Gesamt- und Eigenzeiten j edes Aufrufs im SPS-Proj ekt zyklusgenau erfasst und dargestellt werden .
Aus der Ereignis- ID kann eine Block- ID und daraus der Name z . B . „FBI" abgeleitet werden . Diese Zusatzinformation wird bei Bedarf über einen API-Aufruf geholt .
Damit kann man eine typbasierte Ansicht erhalten, die einen einfachen Vergleich verschiedener Instanzen und Aufrufe untereinander ermöglicht . Eine Ablauf Struktur des Anwenderprogrammes für einen oder mehrere Zyklen kann dargestellt werden . Ein Detektieren der Hotspots in einem Zyklus und ein Anzeigen eines Jitter-Verhaltens für einzelne Obs ist j etzt möglich .
Dazu wird die Schnittstelle als eine Anwendungsprogrammierschnittstelle für einen Webserver oder einen Webbrowser betrieben und die Ereignisbeschreibungs-Daten sind mittels einer grafischen Anzeige auf einem Bildschirm für einen Anwender auswertbar .
Der Webserver oder der Webbrowser kann über die Anwendungsprogrammierschnittstelle über einen Anforderungskanal gewünschte Daten selektieren und über einen Bereitstellungs- Kanal die gewünschten Daten erhalten .
Für eine Datenkonsistenz wird der Analysespeicher in eine Mehrzahl von Puf ferspeichern aufgeteilt und das Betriebssystem koordiniert mittels eines Speicherverwaltungsmittels die Schreibzugri f fe des Auf zeichnungsmittels auf unterschiedliche Puf ferspeicher des Analysespeichers , für den Fall , dass zu Gunsten der Datenkonsistenz , einem bestimmten Puf ferspeicher dieser für weitere Schreibzugri f fe gesperrt wird .
Mit der Aufteilung in mehrere einzelnen Puf fer kann man eine Datenkonsistenz erreichen, denn Zugri f fe auf die Puf fer dürfen bereits bestehende Daten nicht beeinflussen, sollte ein Puf fer grade abgefragt werden so wird derj enige Puf fer eingefroren .
Ebenfalls wird die eingangs genannte Aufgabe durch ein System zur Analyse eines zeitlichen Ablaufverhaltens eines Anwenderprogramms in einer Industriesteuerung gelöst . Dazu umfasst das System die Industriesteuerung, ein Analyse-Werkzeug mit einer Computereinheit und mit einem Bildschirm eine Kommunikationsverbindung, die Industriesteuerung umfasst eine Recheneinheit , ein Betriebssystem und ein Anwenderprogramm, welches zum Steuern eines industriellen Prozesses in der Recheneinheit zum Ablauf gebracht wird, wobei das Anwenderprogramm zumindest einen Hauptbaustein und zumindest einen Funktionsbaustein und zumindest eine Funktion aufweist , welche innerhalb des Hauptbausteins aufrufbar sind, das Betriebssystem ist ausgestaltet den Hauptbaustein zyklisch abzuarbeiten und den Programmcode in dem Hauptbaustein aus zuführen, weiterhin ausgestaltet den zumindest einen Funktionsbaustein und/oder die Funktion auf zurufen und nach dem Aufruf auch deren Programmcode aus zuführen, das Betriebssystem ist weiterhin mit einem Auf zeichnungsmittel ausgestaltet , welches bei Aus führung des Hauptbausteins während der Programmaus führung die vom Betriebssystem koordinierten Aufrufe des/der Funktionsbaustein ( e ) und/oder der Funktion ( en) als Ereignisbeschreibungs-Daten in einem Analysespeicher auf zeichnet , dabei ist das Betriebssystem ausgestaltet bei Aufruf des Hauptbausteins , des Funktionsbausteins oder der Funktion dem Aufzeichnungsmittel diese Auf ruf ereignisse für die Ereignisbeschreibungs-Daten mitzuteilen, dass weiterhin ein Ausgabemittel vorhanden ist , welches die Ereignisbeschreibungs-Daten an einer Schnittstelle für das Analyse-Werkzeug bereitstellt , dabei ist das Analyse-Werkzeug mit einem softwarebasierten grafischen Anzeigemittel ausgestaltet um die Ereignisbeschreibungs-Daten auf dem Bildschirm für einen Anwender auswertbar darzustellen . Ein Aus führungsbeispiel der Industriesteuerung, und des Systems in dem auch das Verfahren mehr erläutert wird, ist in der Zeichnung dargestellt . Es zeigen :
FIG 1 eine erfindungsgemäße Industriesteuerung,
FIG 2 einen Datensatz mit Ereignisdaten,
FIG 3 die aus FIG 1 bekannte Industriesteuerung mit AB- Abf ragen,
FIG 4 eine Datenabfragemaske eines Analyse-Werkzeugs ,
FIG 5a eine mögliche Bildschirmdarstellung mittels eines Software basierten Anzeigenmittels und
FIG 5b eine mögliche Bildschirmdarstellung mittels eines des Software basierten Anzeigenmittels in tabellarischer Darstellung .
Gemäß FIG 1 ist eine Industriesteuerung 100 , insbesondere eine SPS , mit einer Recheneinheit 1 , ein Betriebssystem 2 und ein Anwenderprogramm AW dargestellt . Die Industriesteuerung 100 ist ausgestaltet , das Anwenderprogramm AW mittels einer zyklischen Programmaus führung Z immer wieder zum Ablauf zu bringen . In dem vorliegenden Beispiel ruft ein Hauptbaustein UB1 einen Funktionsbaustein FBI auf und der Funktionsbaustein FBI ruft wiederum eine Funktion FC1 auf . Das Betriebssystem 2 ist dazu ausgestaltet , den Hauptbaustein OBI zyklisch abzuarbeiten und den Programmcode in dem Hauptbaustein OBI aus zuführen . Ebenso ist das Betriebssystem dazu ausgestaltet , nach Aufruf des Funktionsbausteins FBI und/oder der Funktion FC1 auch deren Programmcode aus zuführen .
Erfindungsgemäß weist nun das Betriebssystem 2 ein Auf zeichnungsmittel 3 auf , welches ausgestaltet ist bei Aus führung des Hauptbausteins OBI während der Programmaus führung die vom Betriebssystem 2 koordinierten Aufrufe des Funktionsbausteins FBI und der Funktion FC1 als Ereignisbeschreibungsdaten 4 in einen Analysespeicher 5 aufzuzeichnen. Dabei ist das Betriebssystem 2 ausgestaltet bei Aufruf des Hauptbausteins OBI, des Funktionsbausteins FBI oder der Funktion FC1 dem Aufzeichnungsmittel 3 die entsprechenden Auf ruf ereignisse E1,E2,E3 bzw. entsprechende Endereignisse E1',E2',E3' mitzuteilen. Des Weiteren ist in der Industriesteuerung 100 ein Ausgabemittel 6 vorhanden, welches ausgestaltet ist die Ereignisbeschreibungsdaten 4 an einer Schnittstelle 7 für ein Analyse-Werkzeug 200 bereitzustellen.
Ausgehend von dem Anwenderprogramm AW erzeugt dieses ein OB1- Aufruf 30 wodurch der Hauptbaustein OBI ausgeführt wird. In dem Hauptbaustein OBI erzeugt der Hauptbaustein OBI einen FBI-Aufruf 31 durch welchen der Funktionsbaustein FBI aufgerufen wird. Innerhalb des Funktionsbausteins FBI wird wiederum ein FCl-Aufruf 32 ausgeführt, welcher die Funktion FC1 auf ruft. Jedes der genannten Aufrufe erzeugt ein Aufrufereig- nis E1,E2,E3. Wird der Hauptbaustein OBI aufgerufen, so zeichnet das Betriebssystem 2 ein erstes Auf ruf ereignis El auf. Wird der Funktionsbaustein FBI auf gerufen, so zeichnet das Betriebssystem 2 ein zweites Auf ruf ereignis E2 auf. Wird die Funktion FC1 aufgerufen, so zeichnet das Betriebssystem 2 ein drittes Auf ruf ereignis E3 auf. Analog zu den Aufrufereignissen werden durch das Betriebssystem 2 auch die Endereignisse E1',E2',E3' auf gezeichnet . Hat die Funktion FC1 ihre Arbeit erledigt, so teilt sie das mit dem Endereignis E3 ' mit. Hat der Funktionsbaustein FBI seine Arbeit erledigt, so teilt er dies mit dem Endereignis E2 ' mit und wurde der Hauptbaustein OBI vollständig durchlaufen, so wird das mit dem Endereignis EI' mitgeteilt. Entsprechend geben die Bausteine die Rückmeldung-OBl 35, die Rückmeldung-FBI 34 und die Rückmeldung-FCl 33 zurück.
Der Analysespeicher 5 weist eine Mehrzahl von Pufferspeichern buf 1 , bufn auf und das Betriebssystem 2 weist ein Speicherverwaltungsmittel 8 auf, welches ausgestaltet ist die Schreibzugriffe des Aufzeichnungsmittel 3 auf den Analyse- Speicher 5 zu koordinieren und auf unterschiedliche Pufferspeicher buf 1 , bufn umzuleiten, für den Fall, dass zugunsten einer Datenkonsistenz ein Pufferspeicher bufl für weitere Schreibzugriffe gesperrt wird.
Dem Analyse-Werkzeug 200 kann somit über die Schnittstelle 7 die Ereignisbeschreibungs-Daten 4 (bzw. 4' oder 4' ') mitgeteilt werden. Das Analyse-Werkzeug 200 weist eine Computereinheit 201 mit einen Bildschirm 202 auf, und ist mit einer Kommunikationsverbindung 203 mit der Schnittstelle 7 verbunden. Auf dem Bildschirm 202 kann über ein softwarebasiertes grafisches Anzeigemittel 204 eine Darstellung der Ereignisdaten erfolgen.
Die FIG 2 zeigt die Ereignisbeschreibungs-Daten 4 am Beispiel des zweiten Auf ruf ereignisses E2. In dem Datensatz D ist folgende Datenstruktur DS in dem Analysespeicher 5 abgelegt. Eine Ereignis-ID E-ID, eine Ereigniskategorie EK, ein Ereignistyp ET, ein Zeitstempel TS, eine Prozess-ID P-ID, eine Thread-ID T-ID und ein Eintrag für eine Verschachtelungstief e args = level : 3.
Eine Zeile könnte so aussehen: {"name":"FB 52", "cat":"FB", "ph" : "B", "pid" : 1, "tid": 127, "ts" : 104484883526.7440, "args": {"level": 3} },
Die Ereigniskategorie EK kann ein OB-Aufruf, ein FB-Aufruf, ein FC-Aufruf, eine Prozess-Abbild (PAE und PAA) Aktualisierung oder ein direktes Schreiben zu einer Peripherie sein.
Wird im Anwenderprogramm über die Operanden "E" oder "A" auf die Ein- und Ausgänge zugegriffen, dann erfolgt kein direkter Zugriff auf die Ein- und /Ausgabebaugruppen. In diesem Fall wird auf einen Speicherbereich im Systemspeicher der CPU zugegriffen. Dieser Bereich wird als Prozessabbild der Eingänge (PAE) und Prozessabbild der Ausgänge (PAA) bezeichnet. Die Inhalte des Prozessabbildes (PAE und PAA) spiegeln nicht die aktuellen Werte der Ein- und Ausgänge wider, sondern die Werte zum Zeitpunkt der Aktualisierung des Prozessabbildes .
Falls für einzelne Prozesse aktuellere Werte benötigt werden, besteht auch die Möglichkeit der direkten Peripherieadressierung .
Ebenso können den Ein- und Ausgängen von Peripheriebaugruppen auch E/A-Adressen außerhalb des Prozessabbildes zugeordnet werden . Auf diese E/A-Adressen muss über die " Peripherieadressierung" zugegri f fen werden . Dieser Beitrag beschreibt zum besseren Verständnis zunächst die verschiedenen Prozessabbild-Arten und danach die " Peripherieadressierung" .
OBl-Prozess abb i 1 d
Das OBl-Prozessabbild ( OBI-PA) ist in j eder CPU verwendbar . Es wird zyklisch, vor der Abarbeitung des OBI aktualisiert . Die zyklische Programmabarbeitung erfolgt dabei in der nachfolgenden Reihenfolge :
Abarbeitung von internen Aufgaben des Betriebssystems der CPU . Schreiben der Zustände aus dem OBl-Prozessabbild der Ausgänge auf die Ausgänge der Baugruppen . Einlesen der Eingangs zustände aus den Baugruppen in das OBl-Prozessabbild der Eingänge .
Die Aktualisierung des OBl-Prozessabbildes kann dann im Anwenderprogramm mit der SFC 26 (UPDAT_PI ) und der SFC 27 (UPDAT_PO) ausgeführt werden .
Allgemein gilt beim zyklischen Aktualisieren des OBl- Prozessabbildes :
Je kürzer die Zyklus zeit ist , umso häufiger wird eine Aktualisierung des OBl-Prozessabbildes durchgeführt .
Der Zeitbedarf für die Aktualisierung des Prozessabbildes hängt von der j eweiligen Anlage ab . Einfluss faktoren sind hier : Die Anzahl der einzelnen Baugruppen, aus denen gelesen bzw . in die geschrieben werden muss .
Die Baudrate , über die mit den einzelnen Baugruppen kommuniziert wird . Die verwendeten Protokolle , über die die einzelnen Baugruppen angesprochen werden (MPI , PROFIBUS , . . . ) . Wurde das OBl-Prozessabbild vergrößert (nicht bei allen CPUs möglich) , dann kann sich auch die Zyklus zeit verlängern, wenn dadurch mehr Baugruppen im Prozessabbild liegen .
Teilprozessabbilder ( TPA)
Neben dem OBl-Prozessabbild gibt es bei einigen CPU-Typen die Möglichkeit Teilprozessabbilder ( TPA) zu nutzen . Diesen Teilprozessabbildern können Sie E-/A- Adressbereiche der Baugruppen zuordnen . Jeder Adressbereich kann nur entweder dem OBl- Prozessabbild oder einem Teilprozessabbild zugeordnet werden . Eine Mehrfachzuordnung ist nicht möglich .
Die Teilprozessabbilder können auf zwei unterschiedliche Arten aktualisiert werden; im Anwenderprogramm über die SFC 26 (UPDAT_PI ) und die SFC 27 (UPDAT_PO) , durch Zuordnung eines TPA zu einem OB .
Die gelesenen/geschriebenen Daten der Teilprozessabbilder sind bei einer Aktualisierung mit einer SFC bis zu einer CPUabhängigen Datenlänge konsistent . Informationen dazu finden Sie in der S7-0nlinehil f e zum SFC .
Die Ausgangswerte des zugeordneten Teilprozessabbildes werden sofort nach der Abarbeitung des OBs in die Ausgänge geschrieben .
Die " Peripherieadressierung"
Das Prozessabbild umfasst oft nicht den gesamten Peripherieadressbereich der CPU .
Liegen E/A- Adressbereiche einer Baugruppe außerhalb des Prozessabbildes , muss auf diese Bereiche mittels " Peripherieadressierung" zugegri f fen werden . Der Zugri f f auf die Peripherieadressen erfolgt dabei unverzüglich nach dem Ansprechen der Adresse im Anwenderprogramm. Mit der "Peripherieadressierung" ist damit immer gewährleistet, dass der aktuelle Wert sofort eingelesen wird bzw. sofort eine Ausgabe umgesetzt wird. Dies ist besonders bei Analogwerten und Prozessalarmen wichtig .
"Peripherieadressierung" bedeutet also, dass auf die Baugruppen direkt zugegriffen wird. Ein Befehl im Anwenderprogramm sieht hierzu vor den Bereich der anzusprechenden Adresse ein "P" : vor .
Zusammenfassend kann gesagt werden, dass auch die Kommunikationsereignisse auf gezeichnet werden, welche dann wiederum später in einer Ansicht dargestellt werden können.
Der Ereignistyp ET kann beispielsweise ein B für Beginn enthalten oder auch E für ein Ende.
Die benötigten Daten könnten auch als eine Binärdatei mit einem Array von Laufzeitdateneinträgen (jeweils mit einer Länge von 16 Byte) wie folgt dargestellt werden. Die Bytereihenfolge der Profilerstellungsdaten erfolgt in Little Endian. Das Format der Dateneinträge (immer 16 Byte) hängt vom ersten Byte, dem Eintragstyp, ab. Die Ereignisse können auch eine PIP (Prozess-Image-Peripherie) für lesen und schreiben sein.
Das o.g. Block event würde dann wiederum so aufgeteilt werden Der Zeitstempel wird in pico Sekunden angegeben.
Der Block Type sähe dann folgendermaßen aus: Ein Beispiel:
0x01: start of a code block
0x02: block type (FC) 0x0012: block number (18)
0x0001: OB number (1)
0x01: Call hierarchy (1)
0x01: Priority (1) 0x0102030405060708: Time stamp [ps]
0x10: PIP Read
0x0001: PIP ID (1)
0x01: Priority (1)
0x0102030405060708: Time stamp [ps]
Auch eine Kommunikationslast kann auf gezeichnet werden:
Kommunikationslast in [%]
Zykluszeit :
Beispiel :
0x31: Communication load event
0x0012: Communication load (18%)
0x00010203: Last cycle time (66051us)
0x0102030405060708: Time stamp [ps]
Gemäß FIG 3 ist im Wesentlichen die Industriesteuerung 100 aus FIG 1 dargestellt. Es wird hier gemäß FIG 3 veranschaulicht, wie über die Anwendungs-Programmierschnittstelle WEBAP, über einen Anforderungskanal 71 und einen Bereitstellungs-Kanal 72 Daten abgefragt werden können. Ein erster APIaufruf 41 setzt eine Anfrage „Get profiling data" an die Schnittstelle 7, welche als web-api ausgestaltet ist, ab.
Über den Anforderungskanal 71 werden in dem Analysespeicher 5 in den entsprechenden Pufferspeicher buf 1 , bufn die Ereignisbeschreibungs-Daten 4 als Rohdaten abgeholt. Zusätzlich kann man über die Anwendungsprogrammierschnittstelle web-api mit einem speziellen api-Befehl, nämlich dem zweiten API- Aufruf 42 „Get block name" eine zusätzliche Bezeichnung einer Block-ID, beispielsweise FB52 erhalten.
Gemäß FIG 4 ist eine Datenabfrage 50, wie sie in dem Analyse- Werkzeug 200 vorkommt, dargestellt. Über eine Zieladress-Einstellung 51, kann die entsprechende Industriesteuerung 100 angewählt werden. Über eine Datenformat-Einstellung 52, kann beispielsweise ein JSON-Datenf ormat zu Abfrage voreingestellt werden. Über eine Datenabfrage-Button 53 werden die Daten mittels der API-Funktionalität abgefragt.
{"name":"FB 52", "cat":"FB", "ph" : "B", "pid" : 1, "tid": 127, "ts": 104484883526.7440, "args": {"level": 3} },
Bezogen auf die Schreibzugriffe auf die Peripherie, wie z.B. die Peripherieadressierung PIP = Process Immage Peripherie oder Direkt kann ein JSON-Datenf ormat File auch so aussehen: { "name" : "PIP
WRITE", "cat" : "PIP", "id" : "2", "ph" : "0", "pid" : 1.0, "tid" : 1, "ts" : 129789199.4574, "args": {"snapshot": {"params": {" read" : 0, "0B61cycle" : 147 } } } } ,
{ "name" : "PIP
READ", "cat" : "PIP", "id" : "1", "ph" : "0", "pid" : 1.0, "tid" : 1 , "ts":129789225.9189, "args": { "snapshot" : { "params" : { "r ead" : 0, "0B61cycle" : 147 } } } } ,
{ "name" : "DIRECT
WRITE", "cat" : "DIRECT", "id" : "5", "ph" : "0", "pid" : 16, "tid ": 1, "ts" : 129790110.6174, "args" : { "snapshot" : { "params" : {"write adress" : "Q1032.0" , "db" : 0, "type" : "byte 8 bit", "value" : "Oxff ", "OB33cycle" : 184 } } } } ,
{ "name" : "ASLOG", "cat" : "DIAG", "id" : "3", "ph" : "O", "pid" : 16, "tid" : 1, "ts" : 1297901143070, "args":{"snapshot":{"params":{"error": "0x2943", "OB33cycle":184}}}},
JSON steht für "JavaScript Object Notation"
FIG 5a zeigt eine mögliche Bildschirmdarstellung mittels eines Software basierten Anzeigenmittels am Beispiel von chrome : //tracing/ .
Man kann mit der Ansicht das Verhalten eines Bausteins untersuchen. Die Länge des Balkens entspricht der Laufzeit für den Bausteinaufruf. Es können Auf ruf reihenfolgen in Bausteinen sichtbar gemacht werden und einzelne ungewöhnlich lange Funktionen sind schnell erkennbar. Es kann eine Suche nach den e nach den Längsten und zweit längsten Bausteinen erfolgen und die können dann näher untersucht werden. Es kann nach einem OB mit kurzem Auf ruf Intervall und langer Laufzeit gesucht werden. Eine farbliche Kennzeichnung kann helfen die Bausteine zu unterscheiden. Suche nach dem FB oder FC der sehr häufig aufgerufen wird, und damit die längste Gesamtlaufzeit hat, dies verspricht den größten Erfolg nach einer anschließenden Optimierung.
Man kann sich einen generellen Überblick über die Verteilung der Gesamten Laufzeit auf die jeweiligen Bausteine verschaffen und erhält einen Einblick in die Auf ruf Struktur . Bibliotheks- , Betriebssystem-Bausteine können ausgeblendet werden. Es wird weiterhin die Möglichkeit eröffnet die Profiling Daten an einen Customer Support weiterzuleiten, um die Performance von Bibliotheksbausteinen oder der Hardware über mehrere Versionen zu überwachen.
Das Sichtbarmachen aller Ereignisse mit einer Zerlegung der Einzelereignisse am Bildschirm hilft einen Inbetriebset zer bei der Fehlersuche. Die direkten Schreibzugriffe auf die Peripherie könnten zusätzlich als kleine Kreise in Fig 5a dargestellt werden. Wenn jetzt z.B. neben dem OBI, Zyklus-OB ein Sonder-OB durch ein Interrupt aufgerufen wird und es wird in diesem Sonder-OB etwas berechnet, aber es folgt kein Schreibzugriff auf die Peripherie, so wäre in der Ansicht gemäß FIG 5a zwar der Aufruf des Sonder-Obs zu sehen, aber es würde der kleine Kreis fehlen. Die ist dann ein Indikator das hier ein Fehler ist, denn es wird etwas berechnet, aber es erfolgt keine Reaktion.
Beispielsweise fällt jetzt auf, dass in dem Bereich, welche mit der Zeitspanne 4.884 ms gekennzeichnet ist eine Kommunikations-Last „Comminication load" größer ist als in den anderen Bereichen. Hier kann dann reingezoomt werden und das Verhalten kann näher untersucht werden.
In FIG 5a sind die Aufrufe von OB253, 0B31, OB92, FB9 und FB239 zu sehen.
Die Darstellung in FIG 5b zeigt, dass der 0B31 und der FB239 die größte Zeit benötigen, welches auch einen Hinweis auf ein Optimierungspotential gibt. Erweiternd zu der Darstellung gemäß FIG 5a werden in der Ansicht von FIG 5b noch weitere Baustein und Funktionsaufrufe sichtbar.

Claims

Patentansprüche
1. Industriesteuerung (100) mit einer Recheneinheit (1) , einem Betriebssystem (2) und einem Anwenderprogramm (AW) , welches zum Steuern eines industriellen Prozesses in der Recheneinheit (1) zum Ablauf gebracht wird, wobei das Anwenderprogramm (AW) zumindest einen Hauptbaustein (OBI) und zumindest einen Funktionsbaustein (FBI) und zumindest eine Funktion (FC1) aufweist, welche innerhalb des Hauptbausteins (OBI) aufrufbar sind, das Betriebssystem (2) ist ausgestaltet den Hauptbaustein (OBI) zyklisch abzuarbeiten und den Programmcode in dem Hauptbaustein (OBI) auszuführen, weiterhin ausgestaltet den zumindest einen Funktionsbaustein (FBI) und/oder die Funktion (FC1) aufzurufen und nach dem Aufruf auch deren Programmcode auszuführen, d a d u r c h g e k e n n z e i c h n e t , dass das Betriebssystem (2) weiterhin mit einem Aufzeichnungsmittel (3) ausgestaltet ist, welches bei Ausführung des Hauptbausteins (OBI) während der Programmausführung die vom Betriebssystem (2) koordinierten Aufrufe des/der Funktionsbaustein ( e ) (FBI) und/oder der Funktion (en) (FC1) als Ereignisbeschreibungs-Daten (4) in einem Analysespeicher (5) aufzeichnet, dabei ist das Betriebssystem (2) ausgestaltet bei Aufruf des Hauptbausteins (OBI) , des Funktionsbausteins (FBI) oder der Funktion (FC1) dem Aufzeichnungsmittel (3) diese Auf ruf ereignisse (E1,E2,E3) für die Ereignisbeschreibungs-Daten (4) mitzuteilen, dass weiterhin ein Ausgabemittel (6) vorhanden ist, welches die Ereignisbeschreibungs-Daten (4) an einer Schnittstelle (7) für ein Analyse-Werkzeug (200) bereitstellt, wobei das Aufzeichnungsmittel (3) ausgestaltet ist pro Auf ruf ereignis (E1,E2,E3) einen Datensatz (D) mit zumindest folgender Datenstruktur (DS) in dem Analysespeicher (5) abzulegen: eine Ereignis-ID (B-ID) , eine Ereigniskategorie (EK) , ein Ereignistyp (ET) , einen Zeitstempel (TS) , eine Prozess-ID (P-ID) , eine Thread-ID (T-ID) .
2. Industriesteuerung (100) , nach Anspruch 1, wobei die Schnittstelle (7) als eine Anwendungsprogrammierschnittstelle (web-api) für einen Webserver oder einen Webbrowser ausgestaltet ist.
3. Industriesteuerung (100) , nach Anspruch 2, wobei die Anwendungsprogrammierschnittstelle (web-api) über einen Anforderungskanal (71) und einen Bereitstellungs-Kanal (72) mit dem Analysespeicher (5) verbunden ist.
4. Industriesteuerung (100) , nach einem der Ansprüche 1 bis 3, wobei der Analysespeicher (5) eine Mehrzahl von Pufferspeichern (buf 1 , bufn) aufweist und das Betriebssystem (2) ein Speicherverwaltungsmittel (8) aufweist, welches ausgestaltet ist die Schreibzugriffe des Aufzeichnungsmittel (3) auf den Analysespeicher (5) zu koordinieren und auf unterschiedliche Pufferspeicher (buf 1 bufn) umzuleiten, für den Fall, dass zu Gunsten einer Datenkonsistenz ein Pufferspeicher (bufl) für weitere Schreibzugriffe gesperrt wird.
5. Verfahren zur Analyse eines zeitlichen Ablaufverhaltens eines Anwenderprogramms (AW) , dazu wird in einer Industriesteuerung (100) mit einer Recheneinheit (1) und einem Betriebssystem (2) das Anwenderprogramm (AW) zum Steuern eines industriellen Prozesses in der Recheneinheit (RE) zum Ablauf gebracht, wobei in dem Anwenderprogramm (AW) zumindest ein Hauptbaustein (OBI) auf gerufen wird und in dem Hauptbaustein (OBI) zumindest ein Funktionsbaustein (FBI) und/oder zumindest eine Funktion (FC1) aufgerufen wird, das Betriebssystem (2) arbeitet den Hauptbaustein (OBI) und den Programmcode in dem Hauptbaustein (OBI) zyklisch ab, ebenfalls wird auch der Programmcode in dem Funktionsbaustein (FBI) und/oder der Funktion (FC1) nach dem Aufruf ausgeführt, d a d u r c h g e k e n n z e i c h n e t, dass im Betriebssystem (2) ein Aufzeichnungsmittel (3) betrieben wird, welches bei Ausführung des Hauptbausteins (OBI) während der Programmausführung die vom Betriebssystem (2) koordinierten Aufrufe des/der Funktionsbaustein ( e ) (FB) und/oder der Funktion (en) (FC1) als Ereignisbeschreibungs-Daten (4) in einem Analysespeicher (5) aufzeichnet, dazu werden die Auf ruf ereignisse (E1,E2,E3) vom Betriebssystem (3) bei Aufruf des Hauptbausteins (OBI) , des Funktionsbausteins (FBI) oder der Funktion (FC1) dem Aufzeichnungsmittel (3) zum Eintrag in die Ereignisbeschreibungs-Daten (4) mitgeteilt, weiterhin werden über ein Ausgabemittel (6) die Ereignisbeschreibungs-Daten (4) an einer Schnittstelle (7) für ein Analyse-Werkzeug (200) bereitstellt, wobei das Aufzeichnungsmittel (3) pro Auf ruf ereignis (E1,E2,E3) einen Datensatz (D) mit zumindest folgender Datenstruktur (DS) in dem Analysespeicher (5) ablegt: eine Ereignis-ID (B-ID) , eine Ereigniskategorie (EK) , ein Ereignistyp (ET) , einen Zeitstempel (TS) , eine Prozess-ID, (P-ID) eine Thread-ID (T-ID) .
6. Verfahren nach Anspruch 5, wobei die Schnittstelle (7) als eine Anwendungsprogrammierschnittstelle (web-api) für einen Webserver oder einen Webbrowser betrieben wird und die Ereignisbeschreibungs-Daten (4) mittels einer grafischen Anzeige auf einem Bildschirm für einen Anwender auswertbar sind.
7. Verfahren nach Anspruch 6, wobei der Webserver oder der Webbrowser über die Anwendungsprogrammierschnittstelle (web- api) über einen Anforderungskanal (71) gewünschte Daten selektieren kann und über einen Bereitstellungs-Kanal (72) die gewünschten Daten erhält.
8. Verfahren nach einem der Ansprüche 5 bis 7, wobei der Analysespeicher (5) in eine Mehrzahl von Pufferspeichern
(buf 1 , bufn) aufgeteilt wird und das Betriebssystem (2) mittels eines Speicherverwaltungsmittel (8) die Schreibzugriffe des Aufzeichnungsmittel (3) auf den Analysespeicher (5) koordiniert und auf unterschiedliche Pufferspeicher (buf 1 bufn) umleitet, für den Fall, dass zu Gunsten einer Datenkonsistenz ein Pufferspeicher (bufl) für weitere Schreibzugriffe gesperrt wird.
9. System (101) zur Analyse eines zeitlichen Ablaufverhaltens eines Anwenderprogramms (AW) in einer Industriesteuerung (100) umfassend, die Industriesteuerung (2) , ein Analyse-Werkzeug (200) mit einer Computereinheit (201) und mit einem Bildschirm (202) und eine Kommunikationsverbindung (203) die Industriesteuerung (100) umfasst eine Recheneinheit (1) , ein Betriebssystem (2) und ein Anwenderprogramm (AW) , welches zum Steuern eines industriellen Prozesses in der Recheneinheit (1) zum Ablauf gebracht wird, wobei das Anwenderprogramm (AW) zumindest einen Hauptbaustein (OBI) und zumindest einen Funktionsbaustein (FBI) und zumindest eine Funktion (FC1) aufweist, welche innerhalb des Hauptbausteins (OBI) aufrufbar sind, das Betriebssystem (2) ist ausgestaltet den Hauptbaustein (OBI) zyklisch abzuarbeiten und den Programmcode in dem Hauptbaustein (OBI) auszuführen, weiterhin ausgestaltet den zumindest einen Funktionsbaustein (FBI) und/oder die Funktion (FC1) aufzurufen und nach dem Aufruf auch deren Programmcode auszuführen, d a d u r c h g e k e n n z e i c h n e t, dass das Betriebssystem (2) weiterhin mit einem Aufzeichnungsmittel (3) ausgestaltet ist, welches bei Ausführung des Hauptbausteins (OBI) während der Programmausführung die vom Betriebssystem (2) koordinierten Aufrufe des/der Funktionsbaustein (e) (FBI) und/oder der Funktion (en) (FC1) als Ereignisbeschreibungs-Daten (4) in einem Analysespeicher (5) aufzeichnet, dabei ist das Betriebssystem (2) ausgestaltet bei Aufruf des Hauptbausteins (OBI) , des Funktionsbausteins (FBI) oder der Funktion (FC1) dem Aufzeichnungsmittel (3) diese Auf ruf ereignisse (E1,E2,E3) für die Ereignisbeschreibungs- Daten (4) mitzuteilen, dass weiterhin ein Ausgabemittel (6) vorhanden ist, welches die Ereignisbeschreibungs-Daten (4) an einer Schnittstelle (7) für das Analyse-Werkzeug (200) bereitstellt, wobei das Aufzeichnungsmittel (3) ausgestaltet ist pro Aufrufereignis (E1,E2,E3) einen Datensatz (D) mit zumindest folgender Datenstruktur (DS) in dem Analysespeicher (5) abzulegen : eine Ereignis-ID (B-ID) , eine Ereigniskategorie (EK) , ein Ereignistyp (ET) , einen Zeitstempel (TS) , eine Prozess-ID (P-ID) , eine Thread-ID (T-ID) , dabei ist das Analyse-Werkzeug (200) mit einem softwarebasierten grafischen Anzeigemittel (204) ausgestaltet um die Ereignisbeschreibungs-Daten (4) auf dem Bildschirm für einen Anwender auswertbar darzustellen.
EP24728897.0A 2023-06-26 2024-05-07 Industriesteuerung, system und verfahren zur analyse Pending EP4684288A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP23181360.1A EP4485214A1 (de) 2023-06-26 2023-06-26 Industriesteuerung, system und verfahren zur analyse
PCT/EP2024/062517 WO2025002639A1 (de) 2023-06-26 2024-05-07 Industriesteuerung, system und verfahren zur analyse

Publications (1)

Publication Number Publication Date
EP4684288A1 true EP4684288A1 (de) 2026-01-28

Family

ID=87047838

Family Applications (2)

Application Number Title Priority Date Filing Date
EP23181360.1A Withdrawn EP4485214A1 (de) 2023-06-26 2023-06-26 Industriesteuerung, system und verfahren zur analyse
EP24728897.0A Pending EP4684288A1 (de) 2023-06-26 2024-05-07 Industriesteuerung, system und verfahren zur analyse

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP23181360.1A Withdrawn EP4485214A1 (de) 2023-06-26 2023-06-26 Industriesteuerung, system und verfahren zur analyse

Country Status (3)

Country Link
EP (2) EP4485214A1 (de)
CN (1) CN121420289A (de)
WO (1) WO2025002639A1 (de)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005020507A1 (de) 2005-04-29 2006-11-02 Abb Research Ltd. System und Verfahren zum Einrichten und Konditionieren von Automatisierungsgeräten
EP2477085B1 (de) 2011-01-13 2013-07-17 Siemens Aktiengesellschaft Verfahren und System zur Analyse eines zeitlichen Ablaufverhaltens eines Steuerungsprogramms einer Industriesteuerung

Also Published As

Publication number Publication date
CN121420289A (zh) 2026-01-27
EP4485214A1 (de) 2025-01-01
WO2025002639A1 (de) 2025-01-02

Similar Documents

Publication Publication Date Title
DE10020999B4 (de) Vorrichtung für die Stapelverarbeitung bei der Ereignisentwicklungsverarbeitung und Betrachtung
DE60207155T2 (de) Objektorientiertes Internetschnittstellensystem für eine industrielle Steuereinrichtung
EP0368190B1 (de) Verfahren zur Beobachtung des zeitlichen Ablaufs eines von einem Rechnersystem ausgeführten Objektprogrammes und Beobachtungswerkzeug zur Durchführung dieses Verfahrens
DE60206336T2 (de) Industrielles Steuerungssystem und-verfaher mit einem E/A Prozessor mit Cache-speicher zur Optimierung der Übertragung von geteilten Daten
DE69032689T2 (de) Rechnersysteme mit einer Prozessdatenbank und Verfahren zur Benutzung in diesen Systemen
DE112013006971B4 (de) Programmierbare Steuerung und Programm für Zugriff auf Tabellendaten der programmierbaren Steuerung
DE2244402A1 (de) Datenverarbeitungsanlage
DE102009045386A1 (de) Verfahren zum Betreiben eines Feldbus-Interface
EP1933237A1 (de) Computerimplementiertes System zur Analyse, Verwaltung, Beherrschung, Bewirtschaftung und Überwachung einer komplexen Hardware-/Softwarearchitektur
DE112005001790B4 (de) Programmerstellungseinrichtung für eine programmierbare Steuervorrichtung, Programmerstellungsverfahren für eine programmierbare Steuervorrichtung und Aufzeichnungsmedium mit darauf aufgezeichnetem Programm
DE19831405A1 (de) Steuerungssystem mit einem Personalcomputer
DE102008019277A1 (de) Datenübertragungsvorrichtung
WO2025002639A1 (de) Industriesteuerung, system und verfahren zur analyse
EP4099114B1 (de) Verfahren zum erkennen einer eingeschränkten bedienung und beobachtung einer technischen anlage, bedien- und beobachtungssystem und prozessleitsystem
DE2632277A1 (de) Mikroprogrammierbarer computer fuer eine numerische steuervorrichtung
DE10049021A1 (de) Verfahren und Vorrichtung zum Erfassen von Betriebsdaten einer Produktionsanlage
DE102020123911A1 (de) Synchronisierung des verhaltens mehrerer instrumente mithilfe von aufträgen und zwischenzielen
DE102017001171B4 (de) Numerische Steuervorrichtung
DE69124499T2 (de) Programmierbarer Steuerungsprozessor für gleichzeitig auszuführende Mehrfachbenutzersteuerungsprogramme
EP1821165B1 (de) Nutzung von Variablen in mehreren Automatisierungssystemen
EP1870787B1 (de) Verfahren zur Überwachung eines zyklischen Steuerungsprogramms
DE102021112165A1 (de) Speichervergleichen einer speicherprogrammierbaren Steuerung
DE19637883B4 (de) Datenverarbeitungsanlage zur Ausführung großer Programmsysteme
DE2102935A1 (de) Verfahren und Vorrichtung zur Be Stimmung der Leistungsfähigkeit von Maschinenprogrammen
EP1269358A1 (de) Verfahren und system zur erfassung und speicherung von daten aus einer produktionsanlage

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20251023

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR