[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE10235504A1 - Conversion unit for generating executable code from source code so that it is suitable for running in a given execution environment on given target hardware, especially for use in automation environments - Google Patents

Conversion unit for generating executable code from source code so that it is suitable for running in a given execution environment on given target hardware, especially for use in automation environments Download PDF

Info

Publication number
DE10235504A1
DE10235504A1 DE2002135504 DE10235504A DE10235504A1 DE 10235504 A1 DE10235504 A1 DE 10235504A1 DE 2002135504 DE2002135504 DE 2002135504 DE 10235504 A DE10235504 A DE 10235504A DE 10235504 A1 DE10235504 A1 DE 10235504A1
Authority
DE
Germany
Prior art keywords
instruction
source code
code
control program
target hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE2002135504
Other languages
German (de)
Inventor
Armin Amrhein
Klaus Göbel
Ulrich Göddemeier
Bernhard Jany
Werner Kuske
Thilo Opaterny
Manfred Prechtl
Georg Rupprecht
Dietmar Schulz
Lothar Trapp
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
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE2002135504 priority Critical patent/DE10235504A1/en
Priority to PCT/DE2003/002594 priority patent/WO2004015564A2/en
Priority to EP03783948A priority patent/EP1525530A2/en
Publication of DE10235504A1 publication Critical patent/DE10235504A1/en
Priority to US11/047,661 priority patent/US20050216897A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

Conversion unit for producing executable code for a control program for running on target hardware from source code comprising a number of commands (31) has access to a database which contains conversion rules for each executable command. Commands are generated such that each command parameter (36-40) that may be affected or used by the commands can be recorded or logged. The conversion rules include information for extending the command in respect of logging the respective parameters. The invention also relates to a corresponding automation unit and a development environment.

Description

Die vorliegende Erfindung betrifft das technische Gebiet der Überwachung von Steuerungsprogrammen, insbesondere solchen Steuerungsprogrammen, wie sie zur Steuerung und/oder Überwachung technischer Prozesse eingesetzt werden. Dabei bezieht sich die Erfindung auf eine Umsetzeinrichtung, ein Automatisierungsgerät mit einer solchen Umsetzeinrichtung und eine Entwicklungsumgebung mit einem solchen Automatisierungsgerät.The present invention relates to the technical field of surveillance of control programs, especially such control programs, how to control and / or monitor technical processes are used. The invention relates to a transfer device, an automation device with a such implementation device and a development environment with one such automation device.

Zur Überwachung von Steuerungsprogrammen, z. B. zu deren Inbetriebnahme oder Wartung, sind so genannte Debugger allgemein bekannt. Mit einem Debugger ist es z. B. möglich, ein Steuerungsprogramm Schritt für Schritt, ablaufen zu lassen, so dass aus der Vielzahl von einzelnen Anweisungen, aus der ein Steuerungsprogramm zusammengestellt ist, immer eine Anweisung nach der anderen ausgeführt wird. Dabei kann die Auswirkung der Ausführung jeder einzelnen Anweisung beobachtet werden.For monitoring control programs, z. B. for their commissioning or maintenance are so-called debuggers well known. With a debugger it is e.g. B. possible Control program step by step Step to let it run out of the multitude of individual Instructions from which a control program is composed one statement at a time is always executed. Doing so can have an impact the execution every single instruction can be observed.

Die Beobachtungsmöglichkeit bezieht sich dabei nicht nur auf die evtl. von der jeweiligen Anweisung verursachten Änderungen des Bildschirminhaltes oder auf Zustandsänderungen im technischen Prozess sondern auch auf die Inhalte von Registern, wie z. B. Prozessorregistern, der jeweiligen Zielhardware, auf der das Steuerungsprogramm zum Ablauf kommt.The possibility of observation relates not only to the changes that may be caused by the respective instruction of the screen content or changes in status in the technical process but also on the content of registers, such as B. processor registers, the respective target hardware on which the control program for Expiration is coming.

Ein solcher Debugger wird üblicherweise auf der gleichen Zielhardware wie das Steuerungsprogramm selbst eingesetzt. Wenn der Debugger aufgrund begrenzter Ressourcen der Zielhardware, wie z. B. Speicherplatz, Rechenleistung, etc., nicht auf der Zielhardware ausgeführt werden kann, wird der Debugger auf einem mit der Zielhardware kommunikativ verbundenen Programmier- oder Überwachungsgerät ausgeführt. Der De bugger greift dann auf zum Zwecke der Überwachung des Steuerungsprogramms bereit gestellte Daten zu.Such a debugger is commonly used on the same target hardware as the control program itself used. If the debugger runs out of resources due to limited resources Target hardware, such as B. storage space, computing power, etc., not executed on the target hardware the debugger becomes communicative with the target hardware connected programming or monitoring device. The De bugger then takes over for the purpose of monitoring the control program provided data.

Die Leistungsfähigkeit eines Debuggers erstreckt sich von einfachen Überwachungsfunktionen, bei der z. B. nur die Auswirkungen der einzelnen Anweisungen darstellbar sind, bis hin zu komplexen Einflussmöglichkeiten, bei denen der Ablauf des Steuerungsprogramms z. B. durch Änderung einzelner Speicher- oder Registerinhalte beeinflusst werden kann. Für solche komplexen Funktionen wird zum Ausführen des Debuggers ein Computer, wie ein Personal Computer, ein Programmiergerät oder dergleichen verwendet. Für einfache Überwachungsfunktionen ist dagegen eine zum Anzeigen der jeweiligen Datenvorgesehene Überwachungseinrichtung, also ein Computer mit reduzierter Leistungsfähigkeit, z. B. ohne Speichermedien und Eingabemöglichkeiten, und mindestens einem Ausgabegerät, wie einem Bildschirm oder Drucker, ausreichend. Im Folgenden werden solche Programmier- oder Überwachungsgeräte zusammenfassend als Programmiergerät bezeichnet.The performance of a debugger extends from simple monitoring functions, at the z. B. only the effects of the individual instructions can be displayed are, up to complex possibilities of influence, in which the Sequence of the control program z. B. by changing individual memory or register contents can be influenced. For such complex functions becomes a computer to run the debugger, such as a personal computer, a programmer, or the like. For simple monitoring functions is, on the other hand, a monitoring device provided for displaying the respective data a computer with reduced performance, e.g. B. without storage media and input options, and at least one output device, such as a screen or printer, is sufficient. Below are summarizing such programming or monitoring devices as a programming device designated.

Aus der EP 0 990 964 A1 ist ein Verfahren zum Betrieb eines Automatisierungssystems mit einem Programmiergerät und einer Zielhardware in Form eines Automatisierungsgerätes bekannt. Durch das Verfahren ist die zur Steuerung und/oder Überwachung eines technischen Prozesses vorgesehene Zielhardware mittels des zum Bedienen und Beobachten des Automatisierungsgerätes vorgesehenen Programmiergerätes überwachbar. Dazu ist vorgesehen, dass am Programmiergerät eine oder mehrere Datenadressen des Steuerungsprogramms und für jede zur Überwachung ausgewählte Datenadresse eine Codeadresse ausgewählt werden. Diese Adressen werden mittels eines Anforderungstelegramms vom Programmiergerät an die Zielhardware übermittelt. Ruf der Zielhardware wird bei Erreichen der Codeadresse der Inhalt der jeweils zugeordneten Datenadresse(n) aufgezeichnet und im Rahmen eines Ergebnistelegramms an das Programmiergerät übermittelt. Bei einer solchen Überwachung eines Steuerungsprogramms spricht man auch vom so genannten „Remote-Debugging".From the EP 0 990 964 A1 a method for operating an automation system with a programming device and target hardware in the form of an automation device is known. The method enables the target hardware provided for the control and / or monitoring of a technical process to be monitored by means of the programming device provided for operating and monitoring the automation device. For this purpose, it is provided that one or more data addresses of the control program and a code address for each data address selected for monitoring are selected on the programming device. These addresses are transmitted from the programming device to the target hardware by means of a request telegram. When the target hardware is called, the content of the respectively assigned data address (es) is recorded when the code address is reached and transmitted to the programming device as part of a result telegram. Such monitoring of a control program is also referred to as "remote debugging".

Nachteilig bei bekannten Überwachungsverfahren und/oder bekannten Debuggern ist jedoch, dass zum einen nicht immer sämtliche Informationen zugänglich sind, weil z. B. der Speicherplatz eventueller Zwischenergebnisse nicht bekannt ist. Des Weiteren sind einzelne Informationen – etwa bei indirekt referenzierten Parametern – nur mit erheblichem Aufwand zugänglich, weil bei einem üblichen Additionsbefehl der Form „addiere zum Inhalt des Akkumulators den Inhalt der Speicheradresse FF03" die Anzeige des jeweiligen Speicherbereiches manuell ausgewählt werden muss. Solche Informationen sind beim Remote-Debugging gar nicht oder nur mit nochmals deutlich erhöhtem Aufwand zugänglich, weil beim Remote-Debugging der das zu überwachende Steuerungsprogramm ausführende Prozessor der Zielhardware nicht angehalten wird und damit ein "Nachschlagen" des Inhalts einzelner Speicheradressen nicht möglich ist.A disadvantage of known monitoring methods and / or known debuggers, however, is that not always all Information accessible are because z. B. the storage space of any intermediate results is not known. Furthermore, there is some information - for example at indirectly referenced parameters - only with considerable effort accessible, because with a usual Addition command of the form "add to the content of the accumulator the content of memory address FF03 " the display of the respective memory area can be selected manually got to. Such information is not at all with remote debugging or only accessible with significantly more effort, because with remote debugging the control program to be monitored executive Processor of the target hardware is not stopped and thus a "look up" the content of individual memory addresses is not possible.

Schließlich ist beim Einsatz von Steuerungsprogrammen, die zum Einsatz auf unterschiedlicher Zielhardware vorgesehen sind, die Struktur und das Leistungsvermögen der tatsächlichen Zielhardware nicht bekannt. Ein und dasselbe Steuerungsprogramm kann also auf einer Zielhardware mit einem Standardmikroprozessor mit z. B. acht Prozessorregistern oder auf einer Zielhardware mit einem speziellen ASIC anstelle des Mikroprozessors mit einer Vielzahl von Spezialregistern ausgeführt werden. Naturgemäß werden bei einer Ausführung z. B. eines Additionsbefehls des Steuerungsprogramms auf der Zielhardware mit dem Mikroprozessor andere Register beeinflusst als auf der Zielhardware mit dem ASIC. Auf Seiten des Überwachungs- oder Programmiergerätes zum Überwachen der Ausführung des Steuerungsprogrammes ist damit nicht bekannt, welche Register der Zielhardware beim Ausführen des Additionsbefehls verwendet oder beeinflusst werden. Tatsächlich ist nicht einmal bekannt, wie die jeweilige Zielhardware den Additionsbefehl überhaupt ausführt. Unterschiede können sich ergeben, wenn z. B. der Mikroprozessor maximal zur direkten Ausführung von Additionen der Inhalte von Registern mit einer Breite von zweiunddreißig Bit, der RSIC aber zur direkten Ausführung von Additionen der Inhalte von Registern mit einer Breite von vierundsechzig Bit in der Lage ist. Bei der Ausführung des Additionsbefehls muss eine Addition von Parametern entsprechender Größe in zwei Teiladditionen zerlegt werden, während der ASIC die Addition direkt ausführen kann.Finally, when using control programs that are intended to be used on different target hardware, the structure and performance of the actual target hardware is not known. One and the same control program can thus on a target hardware with a standard microprocessor with z. B. eight processor registers or on target hardware with a special ASIC instead of the microprocessor with a variety of special registers. Naturally, in an execution such. B. an addition command of the control program on the target hardware with the microprocessor affects other registers than on the target hardware with the ASIC. On the part of the monitoring or programming device for monitoring the execution of the The control program is therefore not aware of which registers of the target hardware are used or influenced when the addition command is executed. In fact, it is not even known how the respective target hardware actually executes the add instruction. Differences can arise if e.g. B. the microprocessor is capable of directly performing additions of the contents of registers with a width of thirty-two bits, but the RSIC is capable of directly performing additions of the contents of registers with a width of sixty-four bits. When executing the addition command, an addition of parameters of appropriate size must be broken down into two partial additions, while the ASIC can carry out the addition directly.

Der Erfindung liegt daher die Aufgabe zugrunde, die oben genannten Nachteile zu vermeiden und eine Möglichkeit anzugeben, mit der auch die Überwachung, der Ausführung eines Steuerungsprogramms auf einer vorher nicht bekannten Zielhardware durchführbar ist.The invention is therefore the object based on avoiding the disadvantages mentioned above and a possibility with which monitoring, the execution a control program on previously unknown target hardware feasible is.

Diese Aufgabe wird erfindungsgemäß mit einer Umsetzeinrichtung mit den Merkmalen des Anspruchs 1 gelöst. Die Umsetzeinrichtung ist zum Gewinnen eines auf einer Zielhardware ablaufenden oder ablauffähigen Steuerungsprogramms, dem ein Ursprungscode mit einer Anzahl von Anweisungen zugrunde liegt, vorgesehen. Die Umsetzeinrichtung hat zum Gewinnen des Steuerungsprogramms Zugriff auf eine Datenbasis in der für jede zulässige Anweisung des Ursprungscodes eine Transformationsvorschrift hinterlegt ist. Die Umsetzeinrichtung ergänzt jede Anweisung derart, dass der oder jeder Parameter, der von der Anweisung verwendet und/oder beeinflusst wird oder verwendbar und/oder beeinflussbar ist, protokollierbar ist. Die Transformationsvorschurift umfasst dazu Informationen zum Ergänzen der Anweisung im Hinblick auf die Protokollierung der jeweiligen Parameter und wird von der Umsetzeinrichtung entsprechend ausgewertet. Als von einer Anweisung beeinflusste Parameter werden insbesondere die einzelnen Operanden der jeweiligen Anweisung – bei einer Addition also die beiden Summanden – aber auch Register- und Speicherinhalte sowie so genannte Flags, soweit sie bei der Ausführung der Anweisung verwendet oder beeinflusst werden, verstanden.This object is achieved with a Implement with the features of claim 1 solved. The Converter is for winning one on a target hardware expiring or executable Control program, which a source code with a number of Instructions are provided. The transfer device has access to a database for gaining the control program in the for any permissible Instruction of the source code stores a transformation rule is. The transfer device supplemented any statement such that the or each parameter by the Instruction used and / or influenced or usable and / or can be influenced, can be logged. The transformation regulation includes information on how to complete the instruction with regard to on the logging of the respective parameters and is controlled by the Implementation device evaluated accordingly. As from an instruction The individual operands are particularly influenced parameters the respective instruction - at an addition so the two summands - but also register and memory contents as well so-called flags, insofar as they are used in the execution of the instruction or influenced, understood.

Die Erfindung geht von der Erkenntnis aus, dass beim Gewinnen des ausführbaren Steuerungsprogramms aus dem jeweils zugrunde liegenden Ursprungscode, einem Quellcode oder daraus gewonnenen Zwischencode, sämtliche Informationen vorliegen, die für eine spätere, vollständige Überwachung der Ausführung des Steuerungsprogramms notwendig sind.The invention is based on knowledge from that when winning the executable Control program from the underlying source code, a source code or intermediate code derived from it, all Information available for a later one, full surveillance the execution of the control program are necessary.

Wenn sich eine Addition zweier Parameter auf zwei im Speicher hinterlegte ganzzahlige Werte bezieht, lautet der Additionsbefehl "a+b" in einem Pseudocode etwa wie folgt:If there is an addition of two parameters refers to two integer values stored in the memory Addition command "a + b" in a pseudo code approximately as follows:

Lade den Inhalt der Speicherstelle an der der Parameter "a" gespeichert ist, in ein Register.Load the contents of the location where the parameter "a" is stored in a register.

Addiere zum Inhalt dieses Registers den Inhalt der Speicherstelle an der der Parameter "b" gespeichert ist.Add to the content of this register the content of the memory location at which the parameter "b" is saved is.

Nach der Ausführung dieser beiden Befehle steht die Summe der Parameter "a" und "b" in dem genannten Register. Das genannte Register ist z. B. der so genannte Akkumulator, der bei Operationen wie Additionen und dergleichen häufig verwendet wird.After executing these two commands stands the sum of the parameters "a" and "b" in the named register. The named register is z. B. the so-called accumulator, which at Operations such as additions and the like are often used.

Anhand des oben exemplarisch dargestellten Pseudocodes wird deutlich, dass z. B. der Parameter "b" nicht direkt überwachbar ist. Nach der Ausführung der ersten Zeile des Pseudocodes steht der Wert des Parameters "a" im Register. Der Inhalt des Registers könnte zu Überwachungszwecken angezeigt werden. Nach der Ausführung der zweiten Zeile des Pseudocodes steht aber bereits die Summe der beiden Parameter "a" und "b" im Register. Der Parameter "b" ist damit nicht direkt überwachbar. Ein Zugriff auf dessen Wert ist nur möglich, wenn der Inhalt der Speicherstelle, an der der Parameter "b" gespeichert ist, nachgeschlagen wird. Dies ist mit erheblichem Aufwand verbunden, wobei sich der Aufwand nochmals merklich er höht, wenn z. B. eine indirekte Adressierung der jeweiligen Speicherstellen verwendet wird.Using the example shown above Pseudocodes makes it clear that e.g. B. the parameter "b" cannot be monitored directly is. After execution the first line of the pseudo code contains the value of parameter "a" in the register. The contents of the register could be displayed for monitoring purposes become. After execution The second line of the pseudo code already contains the sum of the two Parameters "a" and "b" in the register. The parameter "b" is therefore not directly monitorable. Access to its value is only possible if the content of the The location where parameter "b" is stored was looked up becomes. This is associated with considerable effort, the Again noticeably increases effort, if e.g. B. an indirect addressing of the respective memory locations is used.

Da jedoch beim Gewinnen des Steuerungsprogramms sämtliche zu dessen späterer Überwachung benötigte Informationen vorliegen, ist vorgesehen, dass der oder jeder Parameter, der von der Anweisung verwendet und/oder beeinflusst wird oder verwendbar und/oder beeinflussbar ist, protokollierbar ist. Dazu erfolgt eine entsprechende Ergänzung der einzelnen Anweisungen des dem Steuerungsprogramm zugrundeliegenden Ursprungscodes. Dies soll für den oben verwendeten Pseudocode als Ursprungscode exemplarisch fortgeführt werden:However, since winning the control program all for later monitoring needed Information is provided, it is provided that the or each parameter, used and / or influenced by the instruction or usable and / or can be influenced, can be logged. There is a appropriate addition to the individual instructions of the basis of the control program Original code. This is meant for the pseudo code used above can be continued as an example:

Lade den Inhalt der Speicherstelle an der der Parameter "a" gespeichert ist, in ein Register und
protokolliere den Inhalt des Registers.
Load the contents of the memory location where the parameter "a" is stored in a register and
log the contents of the register.

Addiere zum Inhalt des Registers den Inhalt der Speicherstelle an der der Parameter "b" gespeichert ist und
protokolliere den Inhalt der Speicherstelle an der der Parameter "b" gespeichert ist und
protokolliere den Inhalt des Registers.
Add to the content of the register the content of the memory location where the parameter "b" is stored and
log the contents of the memory location where the parameter "b" is stored and
log the contents of the register.

Die weiter eingerückten Passagen des Pseudocodes enthalten dessen Ergänzungen im Hinblick auf die Protokollierung der verwendeten Parameter.The further indented passages of the pseudo code contain its additions with regard to the logging of the parameters used.

Aufgrund der Transformationsvorschrift zur Umsetzung der jeweiligen Anweisung des Ursprungscodes ist bekannt, wie die Daten der einzelnen von der Anweisung beeinflussten Parameter erreichbar sind. Im vorstehenden Beispiel umfasst die Transformationsvorschrift die Umsetzung des Additionsbefehls in zwei getrennte Anweisungen. Den der Transformationsvorschrift zugeordneten oder in der Transformationsvorschrift enthaltenen Informationen zur Protokollierung der jeweiligen Parameter ist z. B. entnehmbar, dass bei einer Addition der Wert des ersten Summanden, des Parameters "a", nicht erneut im Speicher nachgeschlagen werden muss, sondern dass direkt der Inhalt des Registers protokolliert werden kann, weil in das Register der Wert des Parameters "a" kopiert wurde. Hinsichtlich des eigentlichen Additionsteils ist den ergänzenden Informationen entnehmbar, dass der Wert des Parameters "b" zu keinem Zeitpunkt erreichbar in einem Register steht. Die Protokollierung bezieht sich entsprechend auf die Speicherstelle, an der der Parameter "b" gespeichert ist.Because of the transformation rule for implementing the respective instruction of the source code, it is known how the data of the individual parameters influenced by the instruction can be reached. In the example above, the transformation rule includes the implementation of the addition term failed in two separate statements. The information associated with the transformation regulation or contained in the transformation regulation for logging the respective parameters is e.g. B. can be seen that when adding the value of the first addend, the parameter "a", does not have to be looked up again in the memory, but that the content of the register can be logged directly, because the value of the parameter "a" is recorded in the register. was copied. With regard to the actual addition part, it can be seen from the supplementary information that the value of the parameter "b" is never accessible in a register. The logging accordingly relates to the storage location at which the parameter "b" is stored.

Auf einer anderen Zielhardware kann derselbe Additionsbefehl anders ausgeführt werden, wenn z. B. Operationen mit drei Operanden zugelassen sind. Für diese Zielhardware lautet der Additionsbefehl in einem Pseudocode etwa wie folgt:On another target hardware the same addition command can be executed differently if e.g. B. Operations with three operands. For this target hardware is the addition command in a pseudocode roughly as follows:

Addiere die Inhalte der Speicherstellen an der der Parameter "a" und der Parameter "b" gespeichert sind und lade das Ergebnis in ein Register.Add the contents of the storage locations where the parameter "a" and the parameter "b" are stored and load the result into a register.

Bei dieser Variante ist zu keinem Zeitpunkt einer der Parameter "a", "b" in einem Register gespeichert. Die Protokollierung bezieht sich daher in jedem Fall auf die jeweiligen Speicherstellen. Die ergänzte Anweisung lautet damit z. B. wie folgt:With this variant there is none Time of one of the parameters "a", "b" stored in a register. The logging therefore always refers to the respective Memory locations. The added Instruction is z. B. as follows:

Addiere die Inhalte der Speicherstellen an der der Parameter "a" und der Parameter "b" gespeichert sind und lade das Ergebnis in ein Register und
protokolliere den Inhalt der Speicherstellen an der die Parameter "a" und "b" gespeichert sind und
protokolliere den Inhalt des Registers.
Add the contents of the memory locations where parameter "a" and parameter "b" are stored and load the result into a register and
log the contents of the memory locations where the parameters "a" and "b" are stored and
log the contents of the register.

Damit ist ersichtlich, dass die Möglichkeit der Überwachung des Steuerungsprogramms vollkommen unabhängig davon wird, wie die jeweils beeinflussten oder beeinflussbaren Parameter verwendet werden. Um die Überwachung des Steuerungsprogramms zu ermöglichen, ist damit eine Kenntnis der Funktionalität der Zielhardware und sogar eine Kenntnis der Zielhardware selbst nicht erforderlich.This shows that the possibility of surveillance the control program is completely independent of how each influenced or influenceable parameters are used. Around The supervision of the control program to enable is thus a knowledge of the functionality of the target hardware and even knowledge of the target hardware itself is not required.

Daher eignet sich die Erfindung auch besonders für solche Anwendungsfälle, bei denen ein Quellcode zunächst in eine Zwischensprache transformiert wird. Ausgehend von dieser Zwischensprache als Ursprungscode ist dann eine Umsetzung in ein auf einer bestimmten Zielhardware ablauffähiges Steuerungsprogramm möglich. Damit wird eine Unabhängigkeit von der jeweiligen Zielhardware erreicht. Bei einem Austausch oder bei einer Aufrüstung einer ersten Zielhardware gegen oder auf eine zweite Zielhardware ist nur noch eine Umsetzung der Zwischensprache in den durch die jeweilige Zielhardware ausführbaren Maschinencode erforderlich. Diese Umsetzung kann ggf. sogar durch die jeweilige Zielhardware selbst vorgenommen werden. Nach der Erstellung der Steuerungssoftware in einer geeigneten Programmiersprache wird der damit vorliegende Quellcode in die Zwischensprache transformiert. Das Steuerungsprogramm in der Zwischensprache kann nach einer auf die jeweilige Zielhardware abgestellten Umsetzung auf dieser zur Ausführung gebracht werden.The invention is therefore also suitable especially for such use cases, where a source code first is transformed into an intermediate language. Starting from this The intermediate language as the source code is then a conversion into one Executable control program possible on a certain target hardware. In order to becomes an independence achieved by the respective target hardware. With an exchange or with an upgrade a first target hardware against or onto a second target hardware is only an implementation of the intermediate language in the by the executable target hardware Machine code required. This implementation can even be done through the respective target hardware itself. After creation the control software in a suitable programming language the existing source code is transformed into the intermediate language. The control program in the intermediate language can be based on a the respective target hardware implemented implementation on this execution to be brought.

Der Vorteil der Erfindung besteht damit einerseits in den erweiterten Überwachungsmöglichkeiten im Hinblick auf bisher nicht oder nur mit erheblichem Aufwand zugängliche Informationen wie oben beschrieben und andererseits darin, dass trotz unterschiedlichster oder im voraus nicht bekannter Zielhardware die Überwachungsmöglichkeit des auf dieser Zielhardware ablaufenden Steuerungsprogramms erhalten bleibt.The advantage of the invention is on the one hand in the expanded monitoring options in the With regard to previously not accessible or only with considerable effort Information as described above and on the other hand in that despite the most varied or previously unknown target hardware the monitoring possibility of the control program running on this target hardware remains.

Im Zusammenhang mit der Erfindung bzw. bevorzugten Ausführungsformen der Erfindung werden nachfolgende Begriffe wie folgt verwendet. Unter dem Begriff "Automatisierungsgerät" wird die zur Steuerung und/oder Überwachung des jeweiligen technischen Prozesses verwendete Hardware, die Zielhardware, zusammengefasst. Der Begriff Automatisierungsgerät kann dabei genauso ein einzelnes Gerät, wie z. B. eine speicherprogrammierbare Steuerung oder dergleichen, wie auch einen Verbund mehrerer solcher Geräte, z. B. kommunikativ miteinander und mit einem Leitrechner verbundene speicherprogrammierbare Steuerungen mit daran jeweils angeschlossenen dezentralen Peripheriegeräten, bezeichnen.In connection with the invention or preferred embodiments In the invention, the following terms are used as follows. The term "automation device" is used for control and / or monitoring Hardware used in the respective technical process, the target hardware, summarized. The term automation device can just as well be a single device, such as. B. a programmable controller or the like, such as also a combination of several such devices, for. B. communicative with each other and programmable logic controllers connected to a host computer with decentralized peripheral devices connected to each.

Mit dem Begriff "Steuerungsprogramm" wird zunächst die ausführbare – also z. B. in einem Maschinencode – vorliegende Version des Steuerungsprogramms bezeichnet. Bei einer allgemeineren Verwendung des Begriffes Steuerungsprogramms bezieht sich dieser jedoch grundsätzlich auf alle Ausprägungen des Steuerungsprogramms, namentlich das Steuerungsprogramm im Quell- oder Sourcecode, wie es von einem Programmierer in der jeweiligen Programmiersprache erstellt wird, das Steuerungsprogramm in einer Zwischensprache – Zwischencode – als Ergebnis der Transformation des Sourcecodes und das Steuerungsprogramm in der zum Ablauf auf der Zielhardware geeigneten Form als Ergebnis einer entsprechenden Umsetzung des Steuerungsprogramms in der Zwischensprache oder als Ergebnis einer direkten Umsetzung des Quellcodes.With the term "control program" will first the executable - e.g. B. in a machine code - present Version of the control program. In a more general one Use of the term control program refers to this however fundamentally on all types the control program, namely the control program in the source or source code as used by a programmer in the particular Programming language is created, the control program in one Intermediate language - intermediate code - as a result the transformation of the source code and the control program in the form suitable for execution on the target hardware as a result a corresponding implementation of the control program in the intermediate language or as a result of a direct implementation of the source code.

Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.Advantageous embodiments of the Invention are the subject of the dependent claims.

Nachfolgend wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnung näher erläutert. Einander entsprechende Gegenstände oder Elemente sind in allen Figuren mit den gleichen Bezugszeichen versehen.An embodiment of the Invention with reference to the drawing explained. each other corresponding items or elements are given the same reference numerals in all figures Mistake.

Darin zeigenShow in it

1 eine Entwicklungsumgebung mit einem Automatisierungsgerät als Zielhardware und einem Programmiergerät, 1 a development environment with an automation device as target hardware and egg a programming device,

2 schematisch die Erstellung eines Steuerungsprogramms, 2 schematically the creation of a control program,

3 einen Ausschnitt aus einem dem Steuerungsprogramm zugrunde liegenden Quellcode, 3 a section of a source code on which the control program is based,

4 einen kombinierten Additions- und Zuweisungsbefehl als Beispiel für eine Anweisung im Quellcode, 4 a combined addition and assignment command as an example of a statement in the source code,

5 eine auf dem kombinierten Additions- und Zuweisungsbefehl basierende Zwischencodeanweisung und 5 an intermediate code instruction based on the combined addition and assignment instruction and

6 eine Umsetzeinrichtung zur Umsetzung der oder jeder Zwischencodeanweisung in eine ausführbare Form und zu deren Ergänzung derart, dass der oder jeder Parameter, der von der Anweisung verwendet und/oder beeinflusst wird oder verwendbar und/oder beeinflussbar ist, protokollierbar ist. 6 a conversion device for converting the or each intermediate code instruction into an executable form and for supplementing it such that the or each parameter that is used and / or influenced by the instruction or can be used and / or influenced can be logged.

1 zeigt eine Entwicklungsumgebung 10 mit einem Automatisierungsgerät 11 als Zielhardware und einem Programmiergerät 12. Automatisierungsgerät 11 und Programmiergerät 12 sind über jeweils eigene Schnittstellen 13, 14 und eine Datenübertragungsstrecke 15 kommunikativ miteinander verbunden. Das Automatisierungsgerät 11 ist in an sich bekannter Weise zur Steuerung und/oder Überwachung eines nur schematisch dargestellten technischen Prozesses 16 vorgesehen. Die Steuerung und/oder Überwachung des technischen Prozesses 16 erfolgt gemäß einem durch das Automatisierungsgerät 11 ausgeführten Steuerungsprogramm 17. Als Datenübertragungsstrecke 15 kommt jede elektrisch leitende Verbindung zwischen Automatisierungs- und Programmiergerät 11, 12 in Betracht, also z. B. eine serielle Verbindung oder ein Bus(-segment), insbesondere ein Feldbus(-segment). Daneben kommt als Datenübertragungsstrecke 15 ebenso eine Verbindung mittels optischer oder elektromagnetischer Signale in Betracht, also z. B. ein Glasfaserkabel oder dergleichen bzw. eine (Richt-)Funkstrecke. 1 shows a development environment 10 with an automation device 11 as target hardware and a programming device 12 , automation equipment 11 and programming device 12 are each via their own interfaces 13 . 14 and a data link 15 communicatively connected. The automation device 11 is in a manner known per se for controlling and / or monitoring a technical process which is only shown schematically 16 intended. The control and / or monitoring of the technical process 16 is carried out according to one by the automation device 11 executed control program 17 , As a data transmission link 15 there is every electrically conductive connection between the automation and programming device 11 . 12 into consideration, e.g. B. a serial connection or a bus (segment), in particular a fieldbus (segment). In addition comes as a data transmission link 15 also a connection by means of optical or electromagnetic signals into consideration, e.g. B. a fiber optic cable or the like or a (directional) radio link.

Das Automatisierungsgerät 11 ist z. B. eine speicherprogrammierbare Steuerung, ein Prozessrechner oder ein sonst zur Beeinflussung des technischen Prozesses 16 geeignet ausgestalteter Standardcomputer. Das Programmiergerät 12 ist üblicherweise zum Erstellen oder Modifizieren eines dem Steuerungsprogramm 17 zugrundeliegenden Quellcodes 18 geeignet und vorgesehen. Ein separates Programmiergerät 12 ist üblicherweise deswegen vorgesehen, weil zum Erstellen oder Modifizieren des Quellcodes 18 Peripherie in Form jeweils mindestens eines Ein- und Ausgabegerätes, wie einer Tastatur oder eines Bildschirms (nicht dargestellt), erforderlich sind. Solche Peripherie ist am Automatisierungsgerät 11 üblicherweise nicht vorhanden, da sie nur zeitweise – während des Erstellens oder Modifizierens des Quellcodes 18 – benötigt wird und häufig auch nicht für den dauerhaften Verbleib in rauhen Industrieumgebungen geeignet ist. Trotzdem gibt es Automatisierungsgeräte 11, in die ein Programmiergerät 12 bereits integriert ist. Für solche Geräte gilt die nachfolgende Beschreibung entsprechend.The automation device 11 is z. B. a programmable logic controller, a process computer or any other to influence the technical process 16 suitably designed standard computer. The programming device 12 is usually used to create or modify a control program 17 underlying source codes 18 suitable and provided. A separate programming device 12 is usually provided because of creating or modifying the source code 18 Peripherals in the form of at least one input and output device, such as a keyboard or a screen (not shown), are required. Such peripherals are on the automation device 11 Usually not available, as it is only available temporarily - during the creation or modification of the source code 18 - is required and is often not suitable for permanent residence in harsh industrial environments. Nevertheless, there are automation devices 11 in which a programming device 12 is already integrated. The following description applies accordingly to such devices.

2 zeigt schematisch die Erstellung des Steuerungsprogramms 17. Aus dem Quellcode 18 wird ein Zwischencode 19 und aus diesem das Steuerungsprogramm 17 gewonnen. Die Erzeugung des Zwischencodes 19 erfolgt durch Transformation 20 des Quellcodes 18 in eine Meta- oder Zwischensprache. Die Erzeugung des Steuerungsprogramms 17 erfolgt durch Umsetzung 21 des Zwischencodes 19 in eine auf der jeweiligen Zielhardware, dem Automatisierungsgerät 11, ausführbare Form. 2 shows schematically the creation of the control program 17 , From the source code 18 becomes an intermediate code 19 and from this the control program 17 won. The generation of the intermediate code 19 is done through transformation 20 the source code 18 in a meta or intermediate language. The creation of the control program 17 is done through implementation 21 of the intermediate code 19 in one on the respective target hardware, the automation device 11 , executable form.

3 zeigt schematisch einen Ausschnitt aus dem dem Steuerungsprogramm 17 zugrunde liegenden Quellcode 18. Der Quellcode 18 weist in an sich bekannter Weise eine Anzahl aufeinander folgender Quellcodeanweisungen 22, 23, 24, 25 auf, wobei die jeweiligen Quellcodeanweisungen 22–25 selbst und deren Abfolge die Funktionalität des späteren Steuerungsprogramms 17 festlegen. Die Quellcodeanweisungen 22–25 umfassen z. B. an sich bekannte Lade- und Transferbefehle, Befehle zur Ausführung arithmetischer oder logischer Verknüpfungen, Ver gleichsbefehle, Sprungbefehle, etc. sowie daraus ggf. zusammengesetzte Befehle. 3 shows schematically a section of the control program 17 underlying source code 18 , The source code 18 has a number of successive source code instructions in a manner known per se 22 . 23 . 24 . 25 on, with the respective source code instructions 22-25 itself and its sequence the functionality of the later control program 17 establish. The source code instructions 22-25 include e.g. B. known loading and transfer commands, commands to perform arithmetic or logical operations, comparison commands, jump commands, etc. and commands composed thereof if necessary.

4 zeigt als Beispiel für eine Quellcoudeanweisung 22–25 eine Quellcodeanweisung 22 mit einem kombinierten Additions-, Multiplikations- und Zuweisungsbefehl "a = b + c × d". Die Quellcodeanweisung 22 umfasst eine Anzahl von Parametern, nämlich die Quellcodeparameter "a" 26, "b" 27, "c" 28 und "d" 29. Ein Multiplikationsteil der Quellcodeanweisung 22 bezieht sich auf die Multiplikation der Quellcodeparameter "c" 28 und "d" 29. Ein Additionsteil der Quellcodeanweisung 22 bezieht sich auf die Addition des Quellcodeparameters "b" 27 und des Zwischenergebnisses des Multiplikationsteils. Schließlich bezieht sich ein Zuweisungsteil der Quellcodeanweisung 22 auf die Zuweisung des Ergebnisses der zuvor genannten Addition an den Quellcodeparameter "a" 26. 4 shows as an example of a source cloud statement 22-25 a source code statement 22 with a combined addition, multiplication and assignment command "a = b + c × d". The source code statement 22 includes a number of parameters, namely the source code parameters "a" 26 , "b" 27 , "c" 28 and "d" 29 , A multiplication part of the source code statement 22 refers to the multiplication of the source code parameters "c" 28 and "d" 29 , An addition part of the source code instruction 22 refers to the addition of the source code parameter "b" 27 and the intermediate result of the multiplication part. Finally, an assignment part refers to the source code instruction 22 the assignment of the result of the aforementioned addition to the source code parameter "a" 26 ,

Zur eindeutigen Identifizierung und Referenzierung jeder Quellcodeanweisung 22–26 ist der Quellcodeanweisung 22 eine Quellcodereferenznummer 30 zugeordnet. Die Quellcodereferenznummer 30 entspricht im einfachsten Fall einer Numeriuerung der Quellcodeanweisungen 22–26, so dass jede Quellcodeanweisung 22–26 eine eindeutige Quellcodereferenznummer 30 erhält.For the clear identification and referencing of each source code instruction 22-26 is the source code statement 22 a source code reference number 30 assigned. The source code reference number 30 corresponds in the simplest case to a numbering of the source code instructions 22-26 so any source code statement 22-26 a unique source code reference number 30 receives.

5 zeigt als Teil des Zwischencodes 19 eine Zwischencodeanweisung 31 in der Zwischensprache. Die Zwischencodeanweisung 31 entspricht hinsichtlich der realisierten Funktionalität der Quellcodeanweisung 22 (4). Die Zwischencodeanweisung 31 zerfällt in zwei Teile 32, 33, wobei der erste Teil 32 den Additionsteil und der zweite Teil 33 den Multiplikationsteil der Quellcodeanweisung 22 abdeckt. Zur Zuordnung der Zwischencodeanweisung 31 zur korrespondierenden Quellcodeanweisung 22 umfasst auch die Zwischencodeanweisung 31 eine Zwischencodereferenznummer 34. 5 shows as part of the intermediate code 19 an intermediate code instruction 31 in the intermediate language. The intermediate code statement 31 corresponds to the functionality of the source code instruction 22 ( 4 ). The intermediate code statement 31 falls into two parts 32 . 33 , the first part 32 the addition part and the second part 33 the multiplication part of the source code instruction 22 covers. To assign the intermediate code instruction 31 to the corresponding source code instruction 22 also includes the intermediate code instruction 31 a Intermediate code reference number 34 ,

Quell- und Zwischencodereferenznummer 30, 34 müssen nicht notwendig den gleichen Zahlenwert – hier beispielhaft "117" – haben, es muss allerdings gewährleistet sein, das jeder Quellcodereferenznummer 30 genau eine Zwischencodereferenznummer 34 zugeordnet ist und umgekehrt. Dies lässt sich besonders einfach über einen jeweils gleiche Zahlenwert, ansonsten aber z. B. auch über eine so genannte Look-Up Tabelle erreichen. Bei einer mehrteiliger. Zwischencodeanweisung 31 kann darüber hinaus eine Unterreferenzierung 35 sinnvoll sein, die z. B. die Zwischencodereferenznummer 34 und den Stand eines für jeden Teil 32, 33 der Zwischencodeanweisung 31 inkrementierten Zählers umfasst. Genauso kann vorgesehen sein, dass für jeden Teil 32, 33 der Zwischencodeanweisung 31 eine eigene Zwischencodereferenznummer 34 vergeben wird und jeweils gespeichert wird, welche Zwischencodereferenznummern 34 und welche Quellcodereferenznummer 30 zusammen gehören.Source and intermediate code reference number 30 . 34 do not necessarily have to have the same numerical value - here "117" as an example, but it must be guaranteed that every source code reference number 30 exactly one intermediate code reference number 34 is assigned and vice versa. This can be done particularly easily using the same numerical value, but otherwise z. B. also achieve via a so-called look-up table. With a multi-part. Intermediate code instruction 31 can also be a sub-referencing 35 be useful, the z. B. the intermediate code reference number 34 and the status of one for each part 32 . 33 the intermediate code instruction 31 incremented counter. It can also be provided that for each part 32 . 33 the intermediate code instruction 31 a separate intermediate code reference number 34 is assigned and stored, which intermediate code reference numbers 34 and what source code reference number 30 belong together.

In der Zwischencodeanweisung 31 entspricht jeweils ein Zwischencodeparameter 36, 37, 38, 39 dem korrespondierenden Quellcodeparameter 26–28. Zur Unterscheidung von den Quellcodeparametern 26–28 werden die Zwischencodeparameter 36–39 mit Großbuchstaben – "A" 36, "B" 37, "C" 38, "D" 39 – dargestellt.In the intermediate code instruction 31 corresponds to an intermediate code parameter 36 . 37 . 38 . 39 the corresponding source code parameter 26-28 , To differentiate from the source code parameters 26-28 become the intermediate code parameters 36-39 with capital letters - "A" 36 , "B" 37 , "C" 38 , "D" 39 - shown.

Zu vollständigen Überwachung der Ausführung der exemplarisch dargestellten Zwischencodeanweisung 31 ist eine Protokollierung sämtlicher durch die Zwischencodeanweisung 31 beeinflusster Parameter erforderlich. Zur Unterscheidung werden dabei neben den Zwischencodeparametern "A" 36, "B" 37, "C" 38, "D" 39 eventuelle Zwischenergebnisse als indirekte Parameter 40 bezeichnet. Diese sind mit dem griechischen Buchstaben "α" – und als einziges Zwischenergebnis mit dem Index "1" – bezeichnet. Darüber hinaus gehören zu den indirekten Parametern 40 z. B. auch so genannte Flags (nicht dargestellt). Damit werden Zusatzinformationen, die bei der Ausführung einzelner Anweisungen erzeugt werden, gespeichert. Solche Zusatzinformationen beziehen sich z. B. auf einen Registerüberlauf, oder auf ein nicht definiertes Ergebnis – wie etwa beim Ziehen der Quadratwurzel aus einer negativen Zahl. Beide Arten von Parametern müssen für die Überwachung zugänglich sein und werden daher entsprechend protokolliert. Im Folgenden werden die Zwischencodeparameter 36–39 und evtl. indirekte Parameter 40 zusammenfassend kurz als Parameter bezeichnet.For complete monitoring of the execution of the exemplary intermediate code instruction 31 is a log of all through the intermediate code instruction 31 influenced parameters required. To distinguish between the intermediate code parameters "A" 36 , "B" 37 , "C" 38 , "D" 39 any interim results as indirect parameters 40 designated. These are identified with the Greek letter "α" - and as the only intermediate result with the index "1". In addition, the indirect parameters 40 z. B. also so-called flags (not shown). This saves additional information that is generated when individual instructions are executed. Such additional information relates e.g. B. a register overflow, or an undefined result - such as pulling the square root from a negative number. Both types of parameters must be accessible for monitoring and are therefore logged accordingly. The following are the intermediate code parameters 36-39 and possibly indirect parameters 40 collectively referred to briefly as parameters.

Wenn von der "Ausführung" einer Quellcodeanweisung 22 oder der "Ausführung" einer Zwischencodeanweisung 31 die Rede ist, ist damit selbstverständlich stets die Ausführung der entsprechenden Anweisung im Steuerungsprogramm 17 gemeint, denn nur das Steuerungsprogramm 17 umfasst tatsächlich ausführbaren Code. Da jeder ausführbaren Anweisung aber eine entsprechende Anweisung im Ursprungscode, nämlich die jeweilige Quell- oder Zwischencodeanweisung 22, 31 zugrunde liegt, wird verkürzt auch von der "Ausführung" dieser Anweisungen gesprochen.If from the "execution" of a source code statement 22 or the "execution" of an intermediate code instruction 31 is of course always the execution of the corresponding instruction in the control program 17 meant, because only the control program 17 actually includes executable code. However, since each executable instruction has a corresponding instruction in the original code, namely the respective source or intermediate code instruction 22 . 31 underlying, it is shortened to speak of the "execution" of these instructions.

Die Protokollierung der zu überwachenden Parameter ist in 5 durch zwei Protokollierungsanweisungen 41, 42 dargestellt. Jeder Teil 32, 33 der Zwischencodeanweisung 31 ist durch jeweils eine Protokollieurungsanweisung 41, 42 ergänzt. Damit ist auch die Zwischencodeanweisung 31 selbst durch die Protokollierungsanweisungen 41, 42 ergänzt. Die Protokollierungsanweisungen 41, 42 sind dabei aber nicht Teil des Zwischencodes 19 sondern bereits Teil des ausführbaren Steuerungsprogramms 17, denn die Protokollierungsanweisungen werden mit oder nach der Umsetzung der Zwischencodeanweisung 31 in eine ausführbare Form erzeugt.The logging of the parameters to be monitored is in 5 through two logging instructions 41 . 42 shown. Every part 32 . 33 the intermediate code instruction 31 is by a protocol instruction 41 . 42 added. This is also the intermediate code instruction 31 even through the logging instructions 41 . 42 added. The logging instructions 41 . 42 but are not part of the intermediate code 19 but already part of the executable control program 17 , because the logging instructions are with or after the implementation of the intermediate code instruction 31 generated in an executable form.

Die Protokollierung umfasst als Zeichenkette 43 die Zwischencodereferenznummer 34 um die Zuordnung der protokollierten Parameter zu der jeweiligen Zwischencodeanweisung 31, in der die Parameter beeinflusst wurden oder beeinflussbar waren, zu ermöglichen, sowie die verwendeter. Zwischencodeparameter 3639 und das verwendete Zwischenergebnis 40.The logging includes a character string 43 the intermediate code reference number 34 the assignment of the logged parameters to the respective intermediate code instruction 31 , in which the parameters were influenced or could be influenced, as well as the used ones. Intermediate code parameters 36 - 39 and the intermediate result used 40 ,

Die ggf. erforderliche Protokollierung von Flags ist in der vorangehenden Beschreibung nicht berücksichtigt. Deren Protokollierung erfolgt jedoch analog zur Protokollierung der jeweils verwendeten Parameter. Bei der Umsetzung einer Zwischencodeanweisung 31 ist bekannt, welche Flags bei deren Ausführung beeinflussbar sind. Bei einer Addition besteht stets die Gefahr eines Registerüberlaufes, wenn die Summe größer ist, als die Breite des Registers, in dem diese gespeichert werden soll, erlaubt. Entsprechend wird das Flag für Registerüberlauf protokolliert. Bei einer Division kommt auch ein nicht definiertes Ergebnis, nämlich bei einer Division durch Null, in Betracht. Entsprechend wird bei Divisionen das Flag für nicht definierte Ergebnisse protokolliert. Insgesamt liegt für jede in einer Zwischencodeanweisung 31 enthaltene Operation im vorhinein fest, welche Flags bei deren Ausführung ggf. beeinflusst werden. Bei der Umsetzung jeder Operation werden also entsprechend sämtliche beeinflussbaren Flags protokolliert.The possibly required logging of flags is not considered in the previous description. However, they are logged in the same way as the logging of the parameters used. When implementing an intermediate code instruction 31 it is known which flags can be influenced when they are executed. In addition, there is always a risk of register overflow if the sum is greater than the width of the register in which it is to be stored allows. The flag for register overflow is logged accordingly. In the case of a division, an undefined result, namely a division by zero, can also be considered. Accordingly, the flag for undefined results is logged for divisions. Overall, there is an intermediate code instruction for each 31 included operation in advance, which flags may be influenced when they are executed. When implementing each operation, all flags that can be influenced are logged accordingly.

6 zeigt einen Speicher 50 des die Zielhardware darstellenden Automatisierungsgerätes 11. Im Speicher 50 ist das Steuerungsprogramm 17 sowie zumindest Abschnitte des dem Steuerungsprogramm 17 zugrunde liegenden Zwischencodes 19 abgelegt. Die Umsetzung 21 ( 2) des Zwischencodes 19 zur Gewinnung des ablauffähigen Steuerungsprogramms 17 erfolgt mittels einer als Software realisierten und damit gleichfalls im Speicher 50 abgelegten Umsetzeinrichtung 51. Die Funktionalität der Umsetzeinrichtung 51 kann alternativ auch als Hardware realisiert sein, wobei dann entsprechend im Automatisierungsgerät 11 z. B. ein entsprechender ASIC (nicht dargestellt) vorgesehen ist. 6 shows a memory 50 of the automation device representing the target hardware 11 , In the storage room 50 is the control program 17 as well as at least sections of the control program 17 underlying intermediate codes 19 stored. The implementation 21 ( 2 ) of the intermediate code 19 to obtain the executable control program 17 takes place by means of a software that is also implemented in the memory 50 stored transfer device 51 , The functionality of the transfer device 51 can alternatively also be implemented as hardware, in which case the automation device accordingly 11 z. B. a corresponding ASIC (not shown) is provided.

Dem Steuerungsprogramms 17 liegt ein Ursprungscode – gemäß der exemplarischen Beschreibung der auf dem Quellcode 18 basierende Zwischencode 19 – zugrunde. Der Quellcode 18 umfasst dabei eine Anzahl von Anweisungen 22–25 (3), wobei zu jeder Anweisung 22–25 im Quellcode 18 zumindest eine Anweisung 31 (5) Zwischencode 19 gehört.The control program 17 lies a primal jump code - according to the exemplary description of the on the source code 18 based intermediate code 19 - based. The source code 18 includes a number of instructions 22-25 ( 3 ), with each statement 22-25 in the source code 18 at least one instruction 31 ( 5 ) Intermediate code 19 heard.

Damit das Steuerungsprogramm 17 in der oben beschriebenen Weise überwachbar ist, ist eine Protokollierung der jeweils verwendeten und/oder beeinflussten oder verwendbaren und/oder beeinflussbaren Parameter vorgesehen. Die Protokollierung erfolgt dabei mittels der in das Steuerungsprogramm eingefügten, bei der Umsetzung der oder jeder Zwischencodeanweisung 31 generierten Protokollierungsanweisungen 41, 42 (5).So that the control program 17 If it can be monitored in the manner described above, a log of the parameters used and / or influenced or usable and / or influenceable is provided. The logging is carried out by means of those inserted into the control program when the or each intermediate code instruction is implemented 31 generated logging instructions 41 . 42 ( 5 ).

Zur Umsetzung jeder Zwischencodeanweisung 31 in eine ausführbare Form hat die Umsetzeinrichtung 51 Zugriff auf eine Datenbasis 52. In dieser ist für jede zulässige Zwischencodeanweisung 31 eine Transformationsvorschrift 53 (nur schematisch dargestellt) hinterlegt. So umfasst die Datenbasis 52 eine Transformationsvorschrift 53 zur Transformation von Zuweisungsbefehlen, eine Transformationsvorschrift 53 zur Transformation von Additionsbefehlen, eine Transformationsvorschrift 53 zur Transformation von Multiplikationsbefehlen, etc., etc.To implement any intermediate code instruction 31 the transfer device has an executable form 51 Access to a database 52 , In this is for each permissible intermediate code instruction 31 a transformation rule 53 (only shown schematically). So the database includes 52 a transformation rule 53 for the transformation of assignment commands, a transformation rule 53 for the transformation of addition commands, a transformation rule 53 for transforming multiplication commands, etc., etc.

Ferner weist die Umsetzeinrichtung 51 Mittel 54, 55, 56 zum Ergänzen jeder Zwischencodeanweisung 31 um ein oder mehrere Protokollierungsanweisungen 41, 42 auf, so dass der oder jeder Parameter 36–40 der von der Zwischencodeanweisung 31 verwendet und/oder beeinflusst wird oder verwendbar und/oder beeinflussbar ist, protokollierbar ist.The transfer device also has 51 medium 54 . 55 . 56 to supplement any intermediate code instruction 31 around one or more logging instructions 41 . 42 on so the or each parameter 36-40 that of the intermediate code instruction 31 is used and / or influenced or can be used and / or influenced, can be logged.

Die genannten Mittel 54, 55, 56 sind als Softwarefunktionalität realisiert und entsprechend als Funktionsblöcke dargestellt, können jedoch im Einzelfall auch als Hardware – in Form eines ASICs (nicht dargestellt) – realisiert sein.The means mentioned 54 . 55 . 56 are implemented as software functionality and correspondingly represented as function blocks, but in individual cases can also be implemented as hardware - in the form of an ASIC (not shown).

Die Mittel 54, 55, 56 umfassen ein erstes Mittel 54 zum Abrufen und Analysieren jeweils einer Anweisung des Ursprungsco des, der jeweiligen Zwischencodeanweisung 31. Zum Analysieren der oder jeder Anweisung wird z. B. die Funktionalität eines so genannten Parsers genutzt. Nach dem Analysieren der jeweiligen Zwischencodeanweisung 31 steht fest, ob z. B. eine Anweisung mit einem Zuweisungsbefehl oder eine Anweisung mit einem Additionsbefehl vorliegt, so dass danach mit einem zweiten Mittel 55 die entsprechende Transformationsvorschrift 53 aus der Datenbasis 52 abgerufen und die Zwischencodeanweisung 31 transformiert wird. Dieses zweite Mittel 55 ergänzt die jeweilige Zwischencodeanweisung 31 auch derart, dass der oder jeder Parameter 36–40, der von der Zwischencodeanweisung 31 verwendet und/oder beeinflusst wird oder verwendbar und/oder beeinflussbar ist, protokollierbar ist. D. h. das zweite Mittel 55 ergänzt die jeweilige Zwischencodeanweisung 31 um die Protokollierungsanweisungen 41, 42 (5). Die Protokollierungsanweisungen 41, 42 können im Steuerungsprogramm 17 vor oder nach dem ausführbaren Pendant der jeweiligen Anweisung eingefügt werden, je nachdem, wann ein Parameter 36-40 verwendet wird. Bei Anweisungen der Form "A = A + B" ist es zudem z. B. sinnvoll, den Parameter "A" sowohl vor der Ausführung der Anweisung als auch nach der Ausführung der Anweisung zu protokollieren. Schließlich ist ein drittes Mittel 56 vorgesehen, um die transformierte – d. h. ausführbare Form – der Anweisung zusammen mit den Protokollierungsanweisungen 41, 42 in das Steuerungsprogramm 17 zu integrieren.The means 54 . 55 . 56 include a first means 54 for retrieving and analyzing an instruction of the origin code, the respective intermediate code instruction 31 , To analyze the or each statement, e.g. B. uses the functionality of a so-called parser. After analyzing the respective intermediate code instruction 31 it is clear whether z. B. there is an instruction with an assignment command or an instruction with an addition command, so that thereafter with a second means 55 the corresponding transformation rule 53 from the database 52 retrieved and the intermediate code instruction 31 is transformed. This second remedy 55 supplements the respective intermediate code instruction 31 also such that the or each parameter 36-40 by the intermediate code statement 31 is used and / or influenced or can be used and / or influenced, can be logged. I.e. the second remedy 55 supplements the respective intermediate code instruction 31 around the logging instructions 41 . 42 ( 5 ). The logging instructions 41 . 42 can in the control program 17 before or after the executable counterpart of the respective instruction, depending on when a parameter 36-40 is used. For instructions of the form "A = A + B" it is also z. For example, it makes sense to log parameter "A" both before the instruction is executed and after the instruction is executed. After all, is a third way 56 provided the transformed - ie executable - instruction along with the logging instructions 41 . 42 in the control program 17 to integrate.

Beim Ablauf des Steuerungsprogramms 17 auf dem Automatisierungsgerät 11 – der Zielhardware – werden damit vor oder nach jeweils einer Anweisung die hinzugefügten Protokollierungsanweisungen 41, 42 ausgeführt. Die auf diese Weise protokollierten Parameter 36–40 werden über die Schnittstellen 13, 14 und die Datenübertragungsstrecke 15 an das Programmiergerät 12 übertragen und können dort zu Überwachungs- und Diagnosezwecken zusammen mit dem zugrundeliegenden Quellcode 18 zur Anzeige gebracht werden. Die Zuordnung der protokollierten Parameter 36–40 zu den ursprünglichen Quellcodeanweisungen 22–25 erfolgt dabei mittels der Quellcodereferenznummer 30 und der durch jede Protokollierungsanweisung 41, 42 protokollierten Zeichenkette 43, die der Zwischencodereferenznummer 34 entspricht.When the control program runs 17 on the automation device 11 - the target hardware - the added logging instructions before or after each instruction 41 . 42 executed. The parameters logged in this way 36-40 are about the interfaces 13 . 14 and the data link 15 to the programming device 12 transmitted and can be used there for monitoring and diagnostic purposes together with the underlying source code 18 be displayed. The assignment of the logged parameters 36-40 to the original source code instructions 22-25 is done using the source code reference number 30 and that through every logging instruction 41 . 42 logged string 43 that of the intermediate code reference number 34 equivalent.

Zur Identifizierung der einzelnen protokollierten Parameter 36–40 ist entweder eine feste, bevorzugt durch die in der verwendeten Transformationsvorschrift 53 enthaltene Information festgelegte Reihenfolge der Parameter 36–40 vorgesehen. D. h. es ist im vorhinein z. B. für den Fall des ersten Teils 32 der Zwischencodeanweisung 31 bekannt, dass der erste protokollierte Wert den Wert des indirekten Parameters 40 und damit das Zwischenergebnis des Multiplikationsteils der zugrundeliegenden Quellcodeanweisung 22 darstellt. Entsprechend wäre weiter im vorhinein bekannt, dass der zweite und dritte protokollierte Wert den Wert der Zwischencodeparameter "C" 38 und "D" 39 und damit entsprechend den Wert der korrespondierenden Quellcodeparameter "c" 28 und "d" 29 darstellt, usw. Ist eine solche im vorhinein bekannte feste Reihenfolge bei der Protokollierung der Parameter 36–40 nicht vorgebbar oder nicht sinnvoll, werden die protokollierten Daten um deklarative Bezeichner, z. B. "117: α1 = 12, C = 2, D = 6", ergänzt. Es ergibt sich dann eine Zeichenfolge (string), in der "117" wieder als Zeichenkette 43 die Zwischencodereferenznummer 34 darstellt. Die Zeichen ketten) "α1", "C", und "D" ermöglichen als deklarative Bezeichner die Zuordnung der protokollierten Werte zu den zu überwachenden Parametern. Weitere spezielle Zeichen, wie ":", "=" und "," sind zur Formatierung der Zeichenfolge und damit zur erleichterten Extraktion der darin enthaltenen raten vorgesehen.To identify the individual logged parameters 36-40 is either a fixed one, preferred by the one used in the transformation rule 53 the information contained in the order of the parameters 36-40 intended. I.e. it is z. B. in the case of the first part 32 the intermediate code instruction 31 announced that the first logged value is the value of the indirect parameter 40 and thus the intermediate result of the multiplication part of the underlying source code instruction 22 represents. Accordingly, it would also be known in advance that the second and third logged values correspond to the value of the intermediate code parameters "C" 38 and "D" 39 and thus correspondingly the value of the corresponding source code parameters "c" 28 and "d" 29 represents, etc. Is such a previously known fixed order when logging the parameters 36-40 cannot be specified or does not make sense, the logged data is given declarative identifiers, e.g. B. "117: α 1 = 12, C = 2, D = 6", added. The result is a string, in which "117" again as a string 43 the intermediate code reference number 34 represents. The strings) "α 1 ", "C", and "D" as declarative identifiers allow the assignment of the logged values to the parameters to be monitored. Other special characters such as ":", "=" and "," are provided to format the character string and thus to facilitate the extraction of the rates contained therein.

Die protokollierten Parameter 3b–40 werden an die Schnittstelle 14 des Automatisierungsgerätes 11 übermittelt und gelangen von dort zum Programmiergerät 12. Wenn mit dem Automatisierungsgerät 11 kein Programmiergerät 12 verbunden ist, unterbleibt die Übermittlung der protokollierten Parameter 36–40. Diese werden dann gleichsam "ins Leere" protokolliert.The logged parameters 3b-40 become to the interface 14 of the automation device 11 transmitted and from there to the programming device 12 , If with the automation device 11 no programming device 12 is connected, the transmission of the logged parameters is omitted 36-40 , These are then logged, as it were, "into the void".

Um bei angeschlossenem Programmiergerät das über die Datenübertragungsstrecke 15 zu übermittelnde Datenvolumen zu regulieren oder zu begrenzen, ist bevorzugt vorgesehen, dass die Übermittlung der protokollieren Parameter 36–40 ab Erreichen einer vorgebbaren Quell- oder Zwischencodereferenznummer 30, 34 beginnt und mit Erreichen einer weiteren vorgebbaren Quell- oder Zwischencodereferenznummer 30, 34 endet. Auf diese Weise lassen sich auswählbare Abschnitte des Steuerungsprogramms 17 gezielt untersuchen. Dazu sind nicht dargestellte Mittel vorgesehen, die z. B. Bestandteil der Schnittstelle 14 oder der zugehörigen Schnittstellenanschaltung sind und eine Filterung der protokollierten Parameter 36–40 derart bewirken, dass nur solche Parameter 36–40 über die Schnittstelle 14 an das Programmiergerät 12 übermittelt werden, die zu solchen Anweisungen protokolliert wurden, die im Bereich der vorgegebenen Quell- oder Zwischencodereferenznummern 30, 34 liegen.To do this with the programming device connected via the data transmission link 15 Regulating or limiting the volume of data to be transmitted is preferably provided for the transmission of the logged parameters 36-40 from reaching a predefinable source or intermediate code reference number 30 . 34 begins and when another predefinable source or intermediate code reference number is reached 30 . 34 ends. In this way, selectable sections of the control program can be created 17 examine specifically. For this purpose, means are not shown, which, for. B. Part of the interface 14 or the associated interface connection and filtering the logged parameters 36-40 cause such parameters only 36-40 about the interface 14 to the programming device 12 are transmitted, which were logged for such instructions, in the range of the specified source or intermediate code reference numbers 30 . 34 lie.

Damit lässt sich die Erfindung kurz wie folgt darstellen:The invention can thus be brief represent as follows:

Zum Überwachen der Ausführung eines Steuerungsprogramms 17 auf einer Zielhardware ist vorgesehen, dass beim Erzeugen des Steuerungsprogramms aus einem Ursprungscode – einem Quellcode oder einem auf dem Quellcode basierenden Zwischencode – jede Anweisung des Ursprungscodes um Protokollierungsanweisungen 41, 42 ergänzt wird. Die Protokollierungsanweisungen 41, 42 bewirken die Protokollierung sämtlicher Parameter 36-40 die von der jeweiligen Anweisung verwendbar und/oder beeinflussbar sind. Die Protokollierungsanweisungen 41, 42 werden dabei anhand von Informationen, die Bestandteil einer Transformationsvorschrift 53 zur Transformation der jeweiligen Anweisung in eine ausführbare Form sind, ergänzt. Bei der Transformation der jeweiligen Anweisung in eine Ausführbare Form ist bekannt, welche Parameter – und ggf. Register, Flags und Speicherinhalte – 36–40 die Anweisung beeinflusst. Diese Parameter 36–40 und die notwendigen Informationen zum Zugriff darauf sind Bestandteil der Protokollierungsanweisungen 41, 42. Damit wird eine Überwachung des Ablaufs eines Steuerungsprogramms 17 anhand der protokollierten Parameter 36–40 unabhängig von der jeweiligen Zielhardware möglich, da jederzeit der jeweilige Wert der Parameter 36–40 protokolliert wird und kein Zugriff etwa mittels eines Programmiergerätes 12 auf Registerinhalte der Zielhardware erforderlich ist.To monitor the execution of a control program 17 A target hardware provides that when the control program is generated from an original code - a source code or an intermediate code based on the source code - each instruction of the original code is accompanied by logging instructions 41 . 42 is added. The logging instructions 41 . 42 effect the logging of all parameters 36-40 that can be used and / or influenced by the respective instruction. The logging instructions 41 . 42 are based on information that is part of a transformation regulation 53 to transform the respective instruction into an executable form. When transforming the respective instruction into an executable form, it is known which parameters - and possibly registers, flags and memory contents - 36-40 affects the instruction. These parameters 36-40 and the necessary information to access it are part of the logging instructions 41 . 42 , This is used to monitor the execution of a control program 17 based on the logged parameters 36-40 possible regardless of the target hardware, since the respective value of the parameters at all times 36-40 is logged and no access, for example, using a programming device 12 on register contents of the target hardware is required.

Claims (9)

Zum Gewinnen eines auf einer Zielhardware ablaufenden oder ablauffähigen Steuerungsprogramms (17), dem ein Ursprungscode mit einer Anzahl von Anweisungen (22, 31) zugrunde liegt, vorgesehene Umsetzeinrichtung (51) mit einem Zugriff auf eine Datenbasis (52) in der für jede Anweisung (22, 31) eine Transformationsvorschrift (53) hinterlegt ist, gekennzeichnet durch Mittel (54, 55, 56) zum Ergänzen jeder Anweisung (22, 31) derart, dass der oder jeder Parameter (36–40), der von der Anweisung (22, 31) verwendet und/oder beeinflusst wird oder verwendbar und/oder beeinflussbar ist, protokollierbar ist, wobei die Transformationsvorschrift (53) Informationen zum Ergänzen der Anweisung (22, 31) im Hinblick auf die Protokollierung der jeweiligen Parameter (36–40) umfasst.To obtain a control program that runs or is executable on a target hardware ( 17 ) which has an original code with a number of instructions ( 22 . 31 ) is based on the proposed transfer device ( 51 ) with access to a database ( 52 ) in the for each instruction ( 22 . 31 ) a transformation rule ( 53 ) is deposited, marked by Medium ( 54 . 55 . 56 ) to complete every instruction ( 22 . 31 ) such that the or each parameter ( 36-40 ) from the instruction ( 22 . 31 ) is used and / or influenced or can be used and / or influenced, can be logged, the transformation rule ( 53 ) Information to complete the instruction ( 22 . 31 ) with regard to the logging of the respective parameters ( 36-40 ) includes. Umsetzeinrichtung nach Anspruch 1, wobei der oder jeder Parameter (36–40) vor und/oder nach der Ausführung der Anweisung (22, 31) protokollierbar ist.A conversion device according to claim 1, wherein the or each parameter ( 36-40 ) before and / or after the execution of the instruction ( 22 . 31 ) can be logged. Umsetzeinrichtung nach Anspruch 1 oder 2, wobei der Ursprungscode ein dem Steuerungsprogramm (17) zugrunde liegender Quellcode (18) mit einer Anzahl von Quellcodeanweisungen (22–25) ist und wobei die ergänzte oder zu ergänzende Anweisung die oder jede Quellcodeanweisung (22–25) ist.A conversion device according to claim 1 or 2, wherein the source code is assigned to the control program ( 17 ) underlying source code ( 18 ) with a number of source code instructions ( 22-25 ) and the supplemented or supplemented instruction is the or each source code instruction ( 22-25 ) is. Umsetzeinrichtung nach Anspruch 1 oder 2, wobei dem Steuerungsprogramm (17) ein auf einem Quellcode (18) mit einer Anzahl von Quellcodeanweisungen (22–25) basierender Zwischencode (19) mit korrespondierenden Zwischencodeanweisungen (31) zugrunde liegt und wobei der Ursprungscode der Zwischencode (19) und die ergänzte oder zu ergänzende Anweisung die oder jede Zwischencodeanweisung (31) ist.Implement according to claim 1 or 2, wherein the control program ( 17 ) one on a source code ( 18 ) with a number of source code instructions ( 22-25 ) intermediate code ( 19 ) with corresponding intermediate code instructions ( 31 ) is based and where the source code is the intermediate code ( 19 ) and the supplemented or supplemented instruction the or each intermediate code instruction ( 31 ) is. Umsetzeinrichtung nach einem der obigen Ansprüche, wobei neben dem oder jedem Parameter (36–40) eine der jeweiligen Anweisung eindeutig zugeordnete Referenz protokollierbar ist.Conversion device according to one of the above claims, wherein in addition to the or each parameter ( 36-40 ) a reference clearly assigned to the respective instruction can be logged. Automatisierungsgerät mit einer Umsetzeinrichtung (51) nach einem oder mehreren der vorangehenden Ansprüche.Automation device with a transfer device ( 51 ) according to one or more of the preceding claims. Automatisierungsgerät nach Anspruch 6 mit Mitteln zum Aktivieren und Deaktivieren der Protokollierung.automation equipment according to claim 6 with means for activating and deactivating the Logging. Entwicklungsumgebung mit einem Automatisierungsgerät (11) nach Anspruch 6 oder 7 und einem Programmier- oder Überwachungsgerät (12) mit jeweils einer Schnittstelle (13, 14) und einer sich dazwischen erstreckenden Datenübertragungsstrecke (15), über welche die protokollierten Parameter (36–40) an das Programmier- oder Überwachungsgerät (12) zu deren Darstellung übermittelbar sind.Development environment with an automation device ( 11 ) according to claim 6 or 7 and a programming or monitoring device ( 12 ) with one interface each ( 13 . 14 ) and a data transmission path extending between them ( 15 ), via which the logged parameters ( 36-40 ) to the programming or monitoring device ( 12 ) can be transmitted to display them. Entwicklungsumgebung nach Anspruch 8, wobei die Mittel zum Aktivieren und Deaktivieren der Protokollierung durch das Programmier- oder Überwachungsgerät (12) ansteuerbar sind.Development environment according to claim 8, wherein the means for activating and deactivating the logging by the programming or monitoring device ( 12 ) can be controlled.
DE2002135504 2002-08-02 2002-08-02 Conversion unit for generating executable code from source code so that it is suitable for running in a given execution environment on given target hardware, especially for use in automation environments Withdrawn DE10235504A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE2002135504 DE10235504A1 (en) 2002-08-02 2002-08-02 Conversion unit for generating executable code from source code so that it is suitable for running in a given execution environment on given target hardware, especially for use in automation environments
PCT/DE2003/002594 WO2004015564A2 (en) 2002-08-02 2003-08-01 Converter, automation device with a converter and a development environment comprising an automation device with converter
EP03783948A EP1525530A2 (en) 2002-08-02 2003-08-01 Converter, automation device with a converter and a development environment comprising an automation device with converter
US11/047,661 US20050216897A1 (en) 2002-08-02 2005-02-02 Converter, automation device with a converter, and a development environment having an automation device with converter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002135504 DE10235504A1 (en) 2002-08-02 2002-08-02 Conversion unit for generating executable code from source code so that it is suitable for running in a given execution environment on given target hardware, especially for use in automation environments

Publications (1)

Publication Number Publication Date
DE10235504A1 true DE10235504A1 (en) 2004-02-12

Family

ID=30128686

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002135504 Withdrawn DE10235504A1 (en) 2002-08-02 2002-08-02 Conversion unit for generating executable code from source code so that it is suitable for running in a given execution environment on given target hardware, especially for use in automation environments

Country Status (3)

Country Link
EP (1) EP1525530A2 (en)
DE (1) DE10235504A1 (en)
WO (1) WO2004015564A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2602678A1 (en) * 2011-12-07 2013-06-12 Siemens Aktiengesellschaft Method for translating a control program in an automated language to an intermediate language

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE502006006706D1 (en) 2006-06-20 2010-05-27 Siemens Ag Method for monitoring a cyclic control program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812850A (en) * 1995-11-13 1998-09-22 Object Technology Licensing Corp. Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution
US6826749B2 (en) * 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US6553565B2 (en) * 1999-04-23 2003-04-22 Sun Microsystems, Inc Method and apparatus for debugging optimized code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2602678A1 (en) * 2011-12-07 2013-06-12 Siemens Aktiengesellschaft Method for translating a control program in an automated language to an intermediate language

Also Published As

Publication number Publication date
WO2004015564A2 (en) 2004-02-19
EP1525530A2 (en) 2005-04-27
WO2004015564A3 (en) 2004-07-15

Similar Documents

Publication Publication Date Title
DE19781804B4 (en) Device for simulating a real-time process control
DE112016003949T5 (en) WEB-BASED PROGRAMMING ENVIRONMENT FOR EMBEDDED EQUIPMENT
DE102005028943A1 (en) Numerical control that can call a program written in a written language
DE102011008941A1 (en) System for visualization of status information of field devices
EP2330469B1 (en) Method and development environment for generating an executable total control program
DE102010025954A1 (en) Method for complete or partial simulation and/or replication of actual automation and/or communication system, involves replacing actual automation apparatus by copied simulated automation apparatus
DE69121113T2 (en) METHOD FOR DETERMINING USER INTERFACES AND PROGRAMMING SYSTEM FOR A COMPUTER WITH MULTIPLE USER INTERFACES
DE102014219711A1 (en) Method for power plant simulation
DE10235504A1 (en) Conversion unit for generating executable code from source code so that it is suitable for running in a given execution environment on given target hardware, especially for use in automation environments
DE10057575A1 (en) Method for automatic software regeneration applies an abstract model to the properties of an application made possible by software converting these into software mechanically.
DE68905848T2 (en) STORAGE PROGRAMMABLE CONTROL WITH STRUCTURED PROGRAMMING LANGUAGE.
EP3438774B1 (en) Method for providing functions within an industrial automation system and automation system
EP4123396A1 (en) Technique for implementing visualization for an automation system with a programmable controller
EP1506474A2 (en) Method for generating an automation program
DE10242916A1 (en) Automated control software writing system for loading device-independent functionality for automation devices uses properties and functions of different automation systems and a runtime framework
WO2010034548A1 (en) Test module and method for testing an o/r imaging middleware
DE10138533A1 (en) Protection of control programs transmitted over the Internet from a developer to a customer using asymmetric encryption of the program code, which is decrypted by the end user after parameter editing
EP2998805A1 (en) Method and device for generation of a function block for the monitoring of an industrial automation assembly
DE10033812A1 (en) Method for generating information models includes an information-processing system and a software product for executing this method.
AT522186B1 (en) Computer-implemented method for the computer-aided generation of an executable control program for controlling and / or regulating a technical process
WO1995002863A1 (en) Process for testing an object-oriented programme
EP1621945B1 (en) Ensuring data consistency in an automation system
EP4086754A1 (en) Method for computer-assisted configuration of a terminal, terminal and method of operating the terminal
DE102016121542A1 (en) Sequence control of program modules
WO2023156060A1 (en) Method for automatically verifying request specifications of a technical process

Legal Events

Date Code Title Description
8141 Disposal/no request for examination