DE10238814A1 - Process for operating a computer system with a function block and function block - Google Patents
Process for operating a computer system with a function block and function blockInfo
- Publication number
- DE10238814A1 DE10238814A1 DE2002138814 DE10238814A DE10238814A1 DE 10238814 A1 DE10238814 A1 DE 10238814A1 DE 2002138814 DE2002138814 DE 2002138814 DE 10238814 A DE10238814 A DE 10238814A DE 10238814 A1 DE10238814 A1 DE 10238814A1
- Authority
- DE
- Germany
- Prior art keywords
- term
- function block
- parameter
- list
- result
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Es wird ein Verfahren zum Betrieb eines Rechnersystems (1) mit einem Prozessor (2) und einem Funktionsbaustein (8) sowie ein Funktionsbaustein (8) selbst angegeben, wobei der Funktionsbaustein (8) einen Parser (14) und einen Termeingang (15) aufweist, wobei dem Funktionsbaustein (8) am Termeingang (15) ein Term (9) zugeführt wird, wobei der Parser (14) anhand des Terms (9) eine Liste (20) mit mindestens einem Listenelement (21) erzeugt und wobei jedes Listenelement (21) in eine vom Prozessor (2) ausführbare Anweisung transformiert wird.The invention relates to a method for operating a computer system (1) with a processor (2) and a function block (8) and a function block (8) itself, the function block (8) having a parser (14) and a term input (15) , The function block (8) is supplied with a term (9) at the term input (15), the parser (14) using the term (9) to generate a list (20) with at least one list element (21) and each list element ( 21) is transformed into an instruction that can be executed by the processor (2).
Description
Die Erfindung betrifft ein Verfahren zum Betrieb eines Rechnersystems mit einem Funktionsbaustein. Sie betrifft weiter einen solchen Funktionsbaustein. The invention relates to a method for operating a Computer system with a function block. It continues to affect such a function block.
Rechnersysteme mit einem Prozessor sind allgemein bekannt. Auf dem Rechnersystem werden durch den Prozessor ein oder mehrere Steuerprogramme ausgeführt. Für unterschiedlichste Anwendungsfälle sind jeweils spezifische Steuerprogramme vorgesehen. Computer systems with a processor are generally known. On the computer system are one or several control programs executed. For the most varied Use cases are specific control programs intended.
Als Funktionsbaustein wird ein definierter Abschnitt des Steuerprogramms bezeichnet. Funktionsbausteine gliedern das Steuerprogramm in ähnlicher Weise, wie Kapitel ein Buch gliedern. Jeder Funktionsbaustein ist eine Art Steuerprogramm im Steuerprogramm. Damit entspricht ein Funktionsbaustein dem ausführbaren Pendant eines Unterprogramms, einer Prozedur, einer Routine oder einer Instanz eines Objekttyps gemäß der Terminologie geläufiger so genannter höherer Programmiersprachen wie PASCAL, C, C++ oder JAVA. A defined section of the Control program called. Function blocks structure this Control program in a similar way to chapter a book divided. Each function block is a kind of control program in the Control program. A function block thus corresponds to the executable counterpart of a subroutine, a procedure, a routine or an instance of an object type according to the Terminology of common so-called higher ones Programming languages like PASCAL, C, C ++ or JAVA.
In jeder höheren Programmiersprache ist eine spezielle Syntax vorgesehen, mittels derer Unterprogramme oder Routinen definiert werden. Die Unterprogramme oder Routinen sind erst nach einer Übersetzung in ein für den Prozessor des Rechnersystems verständliches Format durch diesen ausführbar. Die Übersetzung erfolgt durch einen so genannten Compiler oder Assembler oder durch ein Transformationsprogramm mit entsprechender Funktionalität. Ein auf diese Weise übersetztes oder transformiertes Unterprogramm bildet einen Funktionsbaustein, der - kombiniert mit ggf. weiteren Funktionsbausteinen - schließlich das Steuerprogramm bildet. In every higher programming language there is a special syntax provided by means of which subroutines or routines To be defined. The subroutines or routines are only after a translation into a for the processor of the computer system understandable format executable by this. The Translation is done by a so-called compiler or assembler or through a transformation program with the corresponding Functionality. A translated in this way or transformed subroutine forms a function block, the - combined with other function blocks if necessary - eventually forms the control program.
Es sind bereits Funktionsbausteine bekannt, die zur Durchführung von mathematischen Grundoperationen vorgesehen sind. Derartige Funktionsbausteine haben eine feste so genannte Schnittstelle mit einer Anzahl von Eingabeparametern und mindestens einem Ausgabeparameter. Ein Funktionsbaustein zur Durchführung einer Addition zweier Summanden hat z. B. eine Schnittstelle mit zwei Eingabeparametern und einem Ausgabeparameter. Ein Eingabeparameter wird auch kurz als Eingang des Funktionsbausteins und entsprechend ein Ausgabeparameter als Ausgang des Funktionsbausteins bezeichnet. Zur Durchführung einer Addition werden demnach einem entsprechenden Funktionsbaustein an seinen beiden Eingängen die Summanden zugeführt. Die resultierende Summe kann am Ausgang abgerufen werden. Function blocks are already known which are used for Basic mathematical operations are provided. Such function blocks have a fixed so-called Interface with a number of input parameters and at least one output parameter. A function block for Performing an addition of two summands z. Legs Interface with two input parameters and one Output parameters. An input parameter is also called the input of the Function block and accordingly an output parameter as Function block output designated. To carry out an addition accordingly becomes a corresponding one Function block the summands fed to its two inputs. The resulting sum can be called up at the exit.
Wie leicht einzusehen ist, ist es nicht möglich, für jede denkbare Operation einen entsprechenden Funktionsbaustein vorzusehen. Man hat sich daher darauf beschränkt, Funktionsbausteine für die Grundrechenarten sowie für gebräuchliche mathematische Funktionen und Operationen vorzuhalten. Durch eine geeignete "Verschaltung" solcher vordefinierter Funktionsbausteine zu einem Netzwerk, z. B. indem der Ausgang eines ersten Funktionsbausteins einem weiteren Funktionsbaustein an einem seiner Eingänge zugeführt wird, können auch komplexere mathematische Funktionen realisiert werden. As is easy to see, it is not possible for everyone conceivable operation a corresponding function block provided. One has therefore limited itself to Function blocks for basic arithmetic operations as well as for common ones to hold mathematical functions and operations. By a suitable "interconnection" of such predefined Function blocks for a network, e.g. B. by the output of a first function block to another function block one of its inputs can also be more complex mathematical functions can be realized.
Nachteilig ist jedoch, dass im Falle einer Änderung der zugrundeliegenden Operation häufig auch eine Änderung des Netzwerkes aus Funktionsbausteinen und untereinander bestehender Verschaltung erforderlich ist. Dies ist aufwendig und vor allem bei umfangreichen Operationen und entsprechend komplexen Netzwerken von Funktionsbausteinen unübersichtlich und damit fehleranfällig. The disadvantage, however, is that in the event of a change in the underlying surgery often involves a change in the Network of function blocks and existing ones Interconnection is required. This is expensive and before especially for extensive operations and correspondingly complex ones Networks of function blocks confusing and therefore error-prone.
Andererseits besteht die Möglichkeit, eine Operation mit den Sprachmitteln einer Programmiersprache auszudrücken. Zur Berechnung einer mathematischen Funktion oder eines logischen Ausdrucks, im folgenden mit dem Oberbegriff Term zusammengefasst, kann ein Unterprogramm mit einer Schnittstelle mit Eingangs- und Ausgangsparametern definiert werden. Wenn das Unterprogramm übersetzt ist, bildet es einen Funktionsbaustein, der speziell zur Berechnung des enthaltenen Terms geeignet ist. Eine Änderung des Terms erfordert damit eine Änderung des Unterprogramms, sodann die Generierung eines Funktionsbausteins aus dem Unterprogramm und die Integration des angepassten Funktionsbausteins in das Steuerprogramm. Dies ist in nachteilige Weise zeitaufwendig. Erschwerend kommt noch hinzu, dass zur Änderung des Terms Kenntnisse in der jeweiligen Programmiersprache sowie die Mittel (z. B. ein Compiler und ein Linker) zur Generierung eines Funktionsbausteins und zur Integration desselben in das Steuerprogramm erforderlich sind. Zudem haben heute gebräuchliche Compiler einen Umfang von mehreren Megabyte und werden deshalb auf einem Rechnersystem, auf dem ein Steuerprogramm zu Steuerung und/oder Überwachung eines technischen Prozesses abläuft, üblicherweise nicht vorgehalten. On the other hand, there is the possibility of an operation with the Express language means of a programming language. to Calculation of a mathematical function or a logical one Expression, hereinafter with the generic term term summarized, a subroutine with an interface can Input and output parameters can be defined. If that Is translated, it forms one Function block that is specifically used to calculate the term contained suitable is. A change in the term therefore requires one Change the subroutine, then the generation of a Function block from the subroutine and the integration of the adapted function block in the control program. This is disadvantageously time consuming. To make matters worse in addition, that to change the term knowledge in the respective programming language as well as the means (e.g. a Compiler and a linker) to generate a function block and to integrate it into the control program required are. In addition, compilers in use today have one Size of several megabytes and are therefore on one Computer system on which a control program for control and / or Monitoring of a technical process in progress usually not held.
Ferner sind zur Analyse eines Terms während der Laufzeit eines Steuerprogramms bereits Unterprogramme oder Routinen, so genannte Parser, bekannt, die einen Algorithmus zur automatischen Syntaxanalyse (vgl. Brinkmann: Wörterbuch der Daten- und Kommunikationstechnik; Brandstetter, 1989) enthalten. Ein solcher Parser ist geeignet, einen als Parameter übergebenen Term, z. B. eine mathematische Formel, zu analysieren. Die Analyse umfasst dabei das Erkennen der einzelnen Elemente des Terms, z. B. der Operanden und Operationsbezeichner einer mathematischen Formel. Der Parser generiert eine Datenstruktur, z. B. einen so genannten Binärbaum, in welche die erkannten Elemente eingetragen werden. Der Term ist damit in eine Datenstruktur transformiert worden. Zur Auswertung des Terms wird mittels eines speziellen Algorithmus die Datenstruktur interpretiert. Furthermore, to analyze a term during the term a control program already has subroutines or routines, so called parser, known to use an algorithm for automatic syntax analysis (cf. Brinkmann: dictionary of data and communication technology; Brandstetter, 1989) included. On such a parser is suitable, one passed as a parameter Term, e.g. B. to analyze a mathematical formula. The Analysis involves recognizing the individual elements of the Terms, e.g. B. the operands and operation identifiers one mathematical formula. The parser generates a data structure z. B. a so-called binary tree, in which the recognized Elements are entered. The term is now in one Data structure has been transformed. To evaluate the term the data structure using a special algorithm interpreted.
Der Nachteil beim Einsatz eines Parsers besteht vor allem darin, dass die Analyse des Terms und die anschließende Interpretation der erzeugten Datenstruktur zeitaufwendig ist und dass die dafür erforderliche Zeit die Laufzeit des Steuerprogramms erhöht. Dies ist vor allem dann nachteilig, wenn das Steuerprogramm zur Regelung technischer Prozesse vorgesehen ist und das Steuerprogramm mittels entsprechender, bekannter Algorithmen eine so genannte Abtastregelung durchführt. Für die Abtastregelung ist es wesentlich, dass das Einlesen von Maßwerten aus dem zu regelnden technischen Prozess zu äquidistanten Zeitpunkten erfolgt. Eine zur Laufzeit des Steuerprogramms durchgeführte Analyse einer mathematischen Funktion, z. B. einer Regelfunktion, mittels eines Parsers kann so viel Zeit beanspruchen, dass sich die Äquidistanz der Abtastung nicht gewährleisten lässt. The main disadvantage of using a parser is in that the analysis of the term and the subsequent Interpretation of the generated data structure is time consuming and that the time required for this is the term of the Control program increased. This is particularly disadvantageous if the control program for regulating technical processes is provided and the control program by means of appropriate known algorithms a so-called sampling control performs. It is essential for the scanning control that the Reading of measured values from the technical to be regulated Process takes place at equidistant times. One at runtime analysis of the control program mathematical function, e.g. B. a control function, by means of a Parsers can take so much time that the Equidistance of the scan can not be guaranteed.
Schließlich belegt sowohl das Unterprogramm mit dem Parser als auch die von diesem erzeugte Datenstruktur wertvollen Speicher. Dies kann es erforderlich machen, die Hardware, auf der das Steuerprogramm abläuft, mit einem größeren Speicher auszustatten, was die Hardware insgesamt verteuert. Finally, both the subroutine uses the parser as well as the data structure generated by it Storage. This may require the hardware to be on which runs the control program with a larger memory equip what makes the hardware more expensive overall.
Der Erfindung liegt daher die Aufgabe zugrunde, eine Möglichkeit anzugeben, mit der ein in einem Steuerprogramm enthaltener Term zur Laufzeit bei Vermeidung der oben genannten Nachteile änderbar ist. The invention is therefore based on the object Possibility to specify the one in a control program included term at runtime while avoiding the above Disadvantages are changeable.
Diese Aufgabe wird erfindungsgemäß mit den Merkmalen der Ansprüche 1 oder 13 gelöst. Gemäß Anspruch 1 ist dazu ein Verfahren zum Betrieb eines Rechnersystems mit einem Prozessor und einem Funktionsbaustein vorgesehen, wobei der Funktionsbaustein einen Parser und einen Termeingang aufweist, wobei dem Funktionsbaustein am Termeingang ein Term zugeführt wird, wobei der Parser anhand des Terms eine Liste mit mindestens einem Listenelement erzeugt, und wobei jedes Listenelement in eine vom Prozessor ausführbare Anweisung transformiert wird. This object is achieved with the features of Claims 1 or 13 solved. According to claim 1 is a Method for operating a computer system with a processor and a function block provided, the Function block has a parser and a term input, where a term is fed to the function block at the term input, whereby the parser uses the term to create a list with at least creates a list item, and each list item in an instruction executable by the processor is transformed.
Vorteilhafte Weiterbildungen des Verfahrens sind Gegenstand der Ansprüche 2 bis 12. Advantageous further developments of the method are the subject of claims 2 to 12.
Gemäß Anspruch 13 ist ein Funktionsbaustein mit einem Parser und einem Termeingang zur Verwendung in einem durch einen Prozessor gesteuerten Rechnersystem vorgesehen, wobei am Termeingang ein Term zuführbar ist, wobei der Term durch den Parser analysierbar und in eine Liste mit mindestens einem Listenelement umsetzbar ist und wobei jedes Listenelement in eine vom Prozessor ausführbare Anweisung transformierbar ist. According to claim 13 is a function block with a parser and a term input for use in one by one Processor-controlled computer system provided, where on Term entry a term can be fed, the term by the Parser analyzable and in a list with at least one List element can be implemented and each list element in an instruction executable by the processor is transformable.
Zweckmäßige Ausgestaltungen des Funktionsbausteins sind Gegenstand der Ansprüche 14 bis 18. Ein Funktionsbaustein ist dabei, wie eingangs bereits erläutert, ein definierter Abschnitt eines Steuerprogramms. Er entspricht dem ausführbaren Pendant eines Unterprogramms, einer Prozedur, einer Routine oder einer Instanz eines Objekttyps. Appropriate configurations of the function block are Subject of claims 14 to 18. A function block is thereby, as already explained at the beginning, a defined one Section of a control program. It corresponds to the executable Pendant of a subroutine, a procedure, a routine or an instance of an object type.
Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass durch eine Umwandlung des Terms in eine Liste auch eine Berechnung zur Laufzeit des Steuerprogramms veränderter Terme möglich wird. Diese Berechnung erfolgt besonders schnell, weil die generierte Liste Listenelemente in einem solchen Format oder mit einem solchen Inhalt umfasst, dass sie in vom Prozessor ausführbare Anweisungen transformierbar sind. Der Parser erzeugt mit der Liste eine Darstellung des Terms in einem Metaformat, das nach einer einfachen Transformation durch den Prozessor ausführbar ist. Man kann daher auch sagen, dass der Funktionsbaustein eine Funktionalität umfasst, die der eines Compilers entspricht, der auch aus einem im Source-Code angegebenen Term eine Folge von Anweisungen für den Prozessor generiert. The advantages achieved with the invention exist especially in that by converting the term into a Also list a calculation at runtime of the control program changed terms is possible. This calculation is done particularly quickly because the list elements generated in list elements in such a format or with such content, that they are in instructions executable by the processor are transformable. The parser creates one with the list Presentation of the term in a meta format that follows a simple Transformation is executable by the processor. One can therefore also say that the function block is a Includes functionality that corresponds to that of a compiler that also a sequence of. from a term specified in the source code Instructions generated for the processor.
Der Transformationsvorgang beim Abarbeiten der Liste wird vorteilhaft eingespart, wenn das Listenelement bereits eine vom Prozessor ausführbare Anweisung darstellt oder eine solche zumindest beinhaltet. The transformation process when processing the list is advantageously saved if the list element already has a represents an instruction executable by the processor or a such at least includes.
Wenn die Liste eine Postfixdarstellung, z. B. in Form der so genannten umgekehrten polnischen Notation - reverse polish notation (RPN) - des Terms ist, ist eine lineare Abarbeitung der Liste in der Form möglich, dass zunächst das erste Listenelement und darauf sukzessiv immer das nächst folgende Listenelement abgearbeitet wird. If the list is a postfix representation, e.g. B. in the form of so reverse polish notation notation (RPN) - the term is a linear processing the list in the form possible that first the first List element and then successively always the next one List element is processed.
Die sukzessive Ausführung/Abarbeitung einer jeden Anweisung/eines jeden Listenelements liefert nach jeder Anweisung ein Zwischenergebnis und nach der letzten Anweisung schließlich ein Ergebnis, das vorteilhaft an mindestens einem ersten Ausgang des Funktionsbausteins abgerufen werden kann. The successive execution / processing of each instruction / one each list element delivers after each statement Intermediate result and after the last instruction finally a result that is beneficial to at least one first Output of the function block can be called.
Vorteilhaft ist in Abhängigkeit vom Ergebnis zumindest ein weiterer Ausgang generierbar. Ein erster weiterer Ausgang wird z. B. generiert, wenn sich bei der Ermittlung des Ergebnisses ergibt, dass ein so genannter Registerüberlauf stattgefunden hat. Ein zweiter weiterer Ausgang wird z. B. generiert, wenn des Ergebnis oder Teilergebnisse, die in das Ergebnis einfließen, für den oder die zugeführten Parameter nicht definiert ist. Depending on the result, at least one is advantageous additional output can be generated. Another first exit z. B. generated if the Result shows that a so-called register overflow has taken place. A second further output is e.g. B. generated when the result or partial results that are in the Include the result for the parameter or parameters added is not defined.
Vorteilhaft bezieht sich jede vom Prozessor ausführbare Anweisung entweder auf eine spezielle Speicherzelle, insbesondere den so genannten Akkumulator, oder auf einen Stapelspeicher, insbesondere den so genannten Stack, wobei durch eine Ausführung einer Anweisung, die sich auf den Stapelspeicher bezieht, entweder ein Datum in dem Stapelspeicher abgelegt oder aus dem Stapelspeicher entfernt wird. Dies ermöglicht die Berechnung des Terms in sukzessiv aufeinander folgenden Schritten, wobei als Datum das Zwischenergebnis eines jeden Schrittes zur evtl. Weiterverwendung durch den nachfolgenden Schritt gespeichert wird und zwar entweder in der speziellen Speicherzelle oder in dem Stapelspeicher. Any processor executable advantageously relates Instruction either to a special memory cell, in particular the so-called accumulator, or on one Stack memory, in particular the so-called stack, with a Execution of a statement that relates to the stack relates either a date stored in the stack or removed from the stack. this makes possible the calculation of the term in successive successions Steps, with the intermediate result of each as date Step for possible further use by the following Step is saved and either in the special Memory cell or in the stack.
Wenn der Term mindestens einen Parameter umfasst und jeder Parameter bei der Auswertung des Terms durch den Parser zu einem Listenelement und dieses zu einer Anweisung führt, mit der der Wert des Parameters entweder in die spezielle Speicherzelle geschrieben wird oder mit deren Inhalt verknüpft wird, ergibt sich eine besonders einfach Konstellation hinsichtlich der Auswertung derjenigen Elemente des Terms, bei denen keine Abspeicherung von Teilergebnissen erforderlich ist. If the term includes at least one parameter and each Parameters when evaluating the term by the parser a list element and this leads to an instruction with which is the value of the parameter either in the special Memory cell is written or linked to its content is a particularly simple constellation with regard to the evaluation of those elements of the term, at which do not require saving partial results is.
Vorteilhaft ergibt sich für jeden Operator, z. B. "+", "-",
"sin", "log", etc., den der Term umfasst, eine Anweisung, mit
welcher der Wert eines dem Operator und der damit
spezifizierten Operation zugehörigen Parameters mit dem aktuellen
Inhalt der speziellen Speicherzelle verknüpft wird. Wenn die
spezielle Speicherzelle der Akkumulator, kurz Akku, ist und
der Term z. B. die Addition, Multiplikation oder Division,
kurz Operation (OP), mehrerer Parameter "a", "b", "c", "d"
und "e" vorsieht, ergibt sich eine Folge von Anweisungen der
Form:
Akku := a
Akku := Akku OP b
Akku := Akku OP c
Akku := Akku OP d
Akku := Akku OP e
It advantageously results for every operator, e.g. B. "+", "-", "sin", "log", etc., which the term comprises, an instruction with which the value of a parameter associated with the operator and the operation specified thereby with the current content of the special memory cell is linked. If the special memory cell is the accumulator, or battery for short, and the term z. B. the addition, multiplication or division, short operation (OP), several parameters "a", "b", "c", "d" and "e" provides, there follows a sequence of instructions of the form:
Battery: = a
Battery: = battery OP b
Battery: = battery OP c
Battery: = battery OP d
Battery: = battery OP e
Damit ist ersichtlich, dass unter Verwendung des Akkumulators bei geeignet erzeugten Listenelementen und damit korrespondierenden Anweisungen die Berechnung des Terms sehr gut mittels sukzessiv nacheinander ausführbarer Schritte realisierbar ist. This shows that using the accumulator with appropriately generated list elements and thus corresponding instructions the calculation of the term very well by means of steps that can be carried out successively is feasible.
Wenn zur Berechnung des Ergebnisses des Terms die Ermittlung eines Teilergebnisses erforderlich ist, wird das Teilergebnis vorteilhaft im Stapelspeicher abgelegt. Dann kann für die Berechnung solcher Abschnitte des Terms, die keine Ermittlung von Teilergebnissen erfordert, die spezielle Speicherzelle verwendet werden und der Inhalt der speziellen Speicherzelle als Teilergebnis im Stapelspeicher abgelegt und von dort bei Bedarf wieder abgerufen werden. If the determination to calculate the result of the term a partial result is required, the partial result advantageously stored in the stack. Then for that Calculation of such sections of the term that are not identified of partial results requires the special memory cell be used and the content of the special memory cell stored as a partial result in the stack and from there at Can be retrieved again.
Wenn der Funktionsbaustein neben dem Termeingang mindestens einen Parametereingang aufweist und der mindestens eine Parameter am Parametereingang zugeführt wird, ergibt sich vorteilhaft eine definierte Schnittstelle zur Versorgung des Funktionsbausteins mit dem mindestens einen Parameter des Terms. If the function module next to the term receipt at least has a parameter input and the at least one Parameters at the parameter input results advantageous a defined interface to supply the Function block with the at least one parameter of the Term.
Weiter vorteilhaft wird für jeden weiteren Parameter des Terms jeweils genau ein zusätzlicher Parametereingang generiert, so dass für jeden Parameter genau ein Eingang des Funktionsbausteins zur Verfügung steht. Und zwar der genannte Parametereingang für den ersten bzw. einzigen Parameter des Terms und für jeden weiteren Parameter jeweils genau ein weiterer Parametereingang. For each additional parameter, the Terms exactly one additional parameter input generated so that exactly one input of the Function block is available. Namely the one mentioned Parameter input for the first or only parameter of the Terms and exactly one for each additional parameter further parameter input.
Um eine unnötige mehrfache Generierung der Liste zu vermeiden, insbesondere dann, wenn die Liste bereits der Postfixdarstellung des Terms entspricht, ist vorteilhaft ein Merker vorgesehen. Dieser Merker des Funktionsbausteins wird nach vollständiger Erzeugung der Liste auf einen ersten Wert und nach Zuführung eines neuen oder geänderten Terms auf einen zweiten Wert gesetzt. Damit ist anhand des Wertes des Merkers jederzeit erkennbar, ob die aktuelle Liste zur Berechnung des Ergebnisses noch verwendbar ist, oder ob erst eine neue Liste erzeugt werden muss, weil dem Funktionsbaustein an dessen Termeingang ein neuer oder geänderter Term zugeführt wurde. To avoid unnecessary multiple generation of the list Avoid, especially if the list is already the Corresponding to postfix representation of the term is advantageously a flag intended. This flag of the function block is added complete generation of the list to a first value and after adding a new or changed term to a second value set. This is based on the value of the flag recognizable at any time whether the current list for calculating the Result is still usable, or whether only a new list must be generated because the function block on its A new or changed term was added to the incoming term.
Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand der Zeichnung näher erläutert. Darin zeigen: An embodiment of the invention is described below the drawing explained in more detail. In it show:
Fig. 1 ein Rechnersystem, Fig. 1, a computer system,
Fig. 2 einen Term, Fig. 2 is a Term,
Fig. 3 einen speziellen Funktionsbaustein, und Fig. 3 shows a special function block, and
Fig. 4 eine Liste mit Listenelementen. Fig. 4 shows a list with list elements.
Fig. 1 zeigt ein an sich bekanntes Rechnersystem 1 mit einem Prozessor 2 und einem Speicher 3. Im Speicher 3 befindet sich ein durch den Prozessor 2 ausführbares Steuerprogramm 4. Das Steuerprogramm 4 umfasst eine Anzahl von Funktionsbausteinen 5, 6, 7, 8. Jeder Funktionsbaustein 5-8 realisiert eine bestimmte Teilfunktion des Steuerprogramms 4. Fig. 1 shows a per se known computer system 1 having a processor 2 and a memory 3. A control program 4 that can be executed by processor 2 is located in memory 3 . The control program 4 comprises a number of function blocks 5 , 6 , 7 , 8 . Each function block 5-8 implements a specific subfunction of the control program 4 .
Das Steuerprogramm 4 ist insbesondere zur Steuerung und/oder Überwachung eines nicht dargestellten externen technischen Prozesses, z. B. einer Hydraulikpresse, vorgesehen. Dabei ist z. B. jeweils einer der Funktionsbausteine 5-8 zur Steuerung eines Betriebsmittels der Hydraulikpresse vorgesehen. Einer der Funktionsbausteine 5-8 ist z. B. zur Steuerung eines Hydraulikaggregates (nicht dargestellt), ein anderer zur Verarbeitung von Sicherungsdaten die z. B. von einer Lichtschranke (nicht dargestellt) oder einem Not-Aus-Taster (gleichfalls nicht dargestellt) geliefert werden, vorgesehen. The control program 4 is in particular for controlling and / or monitoring an external technical process, not shown, for. B. a hydraulic press provided. Here is z. B. one of the function blocks 5-8 is provided for controlling a resource of the hydraulic press. One of the function blocks 5-8 is e.g. B. to control a hydraulic unit (not shown), another to process backup data z. B. from a light barrier (not shown) or an emergency stop button (also not shown) are provided.
Ein spezieller Funktionsbaustein 8 ist zur Durchführung von Berechnungen vorgesehen. Der spezielle Funktionsbaustein 8 wird nachfolgend stets kurz als Funktionsbaustein 8 bezeichnet, da die weitere Beschreibung sich nur noch auf den speziellen Funktionsbaustein 8 bezieht. A special function block 8 is provided for performing calculations. The special function block 8 is always briefly referred to below as the function block 8 , since the further description only relates to the special function block 8 .
Fig. 2 zeigt einen Term 9. Als Term 9 wird z. B. eine mathematischen Funktion oder ein logischer Ausdrucks bezeichnet. Exemplarisch ist als Term 9 eine mathematische Funktion 10 gewählt. Die mathematische Funktion 10 umfasst ein Funktionsergebnis 11, mehrere Operanden (a, b, c) 12 und Operationsbezeichner (+, ×) 13, welche die Operanden 12 verknüpfen. Ein Operand 12 wird im folgenden auch als Parameter 12 und ein Operationsbezeichner 13 auch als Operator 13 bezeichnet. Wie allgemein bekannt, sind Terme 9, die Operanden 12 aufweisen, die wiederum durch Operationsbezeichner 13 miteinander verknüpft sind, auch in einer so genannten Postfixdarstellung darstellbar. Der Ausdruck "a × b + c" der Funktion 10 lautet in Postfixdarstellung "a b × c +". Auf die Verwendung der Postfixdarstellung wird weiter unten eingegangen. Fig. 2 shows a term. 9 As term 9 z. B. denotes a mathematical function or a logical expression. As an example, a mathematical function 10 is selected as term 9 . The mathematical function 10 comprises a function result 11 , a plurality of operands (a, b, c) 12 and operation identifiers (+, ×) 13 which link the operands 12 . An operand 12 is also referred to below as a parameter 12 and an operation identifier 13 also as an operator 13 . As is generally known, terms 9 which have operands 12 , which in turn are linked to one another by operation identifiers 13 , can also be represented in a so-called postfix representation. The expression "a × b + c" of the function 10 in the postfix representation is "from × c +". The use of the postfix display is discussed below.
Fig. 3 zeigt den speziellen Funktionsbaustein 8. Dieser umfasst einen Parser 14 und einen Termeingang 15. Am Termeingang 15 wird dem Funktionsbaustein 8 der Term 9 zugeführt. Exemplarisch ist in Fig. 3 als Term 9 die mathematische Funktion "x = a × b + c" angegeben. Genauso kann als Term 9 eine logische Verknüpfung o. ä. vorgesehen sein. Fig. 3 shows the special function component 8. This includes a parser 14 and a term input 15 . The function block 8 is supplied with the term 9 at the term input 15 . The mathematical function “x = a × b + c” is given as an example in FIG. 3 as term 9 . Likewise, a logical link or the like can be provided as term 9 .
Der Funktionsbaustein 8 umfasst ferner einen ersten Ausgang 16 an dem das Ergebnis 11 der Berechnung des Terms 9 abrufbar ist. Das Ergebnis 11 wird nach dessen Berechnung in einer dafür vorgesehenen Speicherzelle 11 abgespeichert und ist aus dieser über den ersten Ausgang 16 abrufbar. Neben dem Termeingang 15 ist ein erster Parametereingang 17 sowie weitere Parametereingänge 17' vorgesehen. An diesen sind dem Funktionsbaustein 8 die Werte einzelner Parameter 12 des Terms 9 übergebbar. Neben dem ersten Ausgang 16 ist zumindest ein weiterer Ausgang 18 vorgesehen. Dieser ist in Abhängigkeit vom Ergebnis 11 generierbar. Wenn z. B. bei der Ermittlung des Ergebnisses 11 ein so genannter Registerüberlauf auftritt, kann dies am weiteren Ausgang 18 signalisiert werden. Die Tatsache eines Registerüberlaufs oder eine sonstige Sonderkonstellation (ZERO, INFTY, CARRY, etc.) bei der Ermittlung des Ergebnisses 11 wird in einer dafür vorgesehenen Speicherzelle 19 kodiert. Beim Zugriff auf den weiteren Ausgang 18 wird der Inhalt dieser Speicherzelle entweder direkt oder nach einer geeigneten Transformation z. B. im Klartext zurückgeliefert. Alternativ oder optional wird z. B. ein zweiter weiterer Ausgang (nicht dargestellt) generiert, wenn das Ergebnis 11 oder auch ein Zwischenergebnis, das in das Ergebnis 11 einfließt, für den oder die zugeführten Parameter nicht definiert ist. The function block 8 further comprises a first output 16 at which the result 11 of the calculation of the term 9 can be called up. After its calculation, the result 11 is stored in a memory cell 11 provided for this purpose and can be called up from it via the first output 16 . In addition to the term input 15 , a first parameter input 17 and further parameter inputs 17 'are provided. To this function block 8, the values of individual parameters of the term 12 9 übergebbar. In addition to the first output 16 , at least one further output 18 is provided. This can be generated depending on the result 11 . If e.g. B. a so-called register overflow occurs when determining the result 11 , this can be signaled at the further output 18 . The fact of a register overflow or another special constellation (ZERO, INFTY, CARRY, etc.) when determining the result 11 is coded in a memory cell 19 provided for this purpose. When accessing the further output 18 , the content of this memory cell is either directly or after a suitable transformation z. B. returned in plain text. Alternatively or optionally, e.g. B. generates a second further output (not shown) if the result 11 or an intermediate result that flows into the result 11 is not defined for the parameter or parameters supplied.
Der Parser 14 generiert anhand des Terms 9 eine Liste 20 mit mindestens einem Listenelement 21. Das oder jedes Listenelement 21 ist in eine vom Prozessor 2 ausführbare Anweisung transformierbar. Dies erfolgt mittels einer geeigneten eindeutigen Transformationsvorschrift, z. B. einem so genannten Look-Up-Table, mittels derer anhand des jeweiligen Listenelements 21 die geeignete Prozessoranweisung ausgewählt wird. The parser 14 uses the term 9 to generate a list 20 with at least one list element 21 . The or each list element 21 can be transformed into an instruction that can be executed by the processor 2 . This is done by means of a suitable clear transformation rule, e.g. B. a so-called look-up table, by means of which the appropriate processor instruction is selected on the basis of the respective list element 21 .
Eine solche Look-Up-Table könnte folgenden Inhalt haben:
(["+", "ADD"], ["-", "SUB"], ["×", "MUL"], . . .). Wenn also
der Term 9 den Operator 13 "-" (minus) enthält, wird das
zugehörige Element der Look-Up-Table gesucht - hier ["-",
"SUB"] - und die in der Look-Up-Table dem Operator 13
zugeordnete Anweisung - hier "SUB" - ausgeführt.
Such a look-up table could have the following content:
(["+", "ADD"], ["-", "SUB"], ["×", "MUL"],...). If the term 9 contains the operator 13 "-" (minus), the corresponding element of the look-up table is searched for - here ["-", "SUB"] - and those in the look-up table for the operator 13 assigned instruction - here "SUB" - executed.
Besonders günstig ist es allerdings, wenn das Listenelement 21 die ausführbare Prozessoranweisung bereits beinhaltet oder schon selbst eine solche darstellt. Dann kann nämlich ein Transformationsvorgang wie z. B. mit einer Look-Up-Table entfallen. However, it is particularly favorable if the list element 21 already contains the executable processor instruction or already represents one. Then a transformation process such as. B. with a look-up table.
In einem Merker 22, einer weiteren speziellen Speicherzelle 22, wird erfasst, ob der am Termeingang 15 zugeführte Term 9 durch den Parser 14 bereits vollständig ausgewertet und in die Liste 20 umgesetzt wurde. Dazu wird der Merker 22 nach vollständiger Erzeugung der Liste 20 auf einen ersten Wert, z. B. "0", und nach Zuführung eines neuen oder geänderten Terms 9 auf einen vom ersten Wert verschiedenen zweiten Wert, z. B. "1", gesetzt. A flag 22 , another special memory cell 22 , detects whether the term 9 supplied at the term input 15 has already been completely evaluated by the parser 14 and converted into the list 20 . For this purpose, after the list 20 has been completely generated, the flag 22 is set to a first value, e.g. B. "0", and after adding a new or changed term 9 to a different from the first value, z. B. "1" set.
Fig. 4 zeigt die Liste 20 mit einigen Listenelementen 21. Zur Veranschaulichung des Inhalts 211, 212, 213, 214, 215 der Listenelemente 21 wird davon ausgegangen, dass diese vom Parser 14 anhand des Terms 9 "x = a × b + c" generiert wurde. Das erste Listenelement 21 dient dann dazu, eine Zwischenspeicherung des Parameters 12 "a" vorzunehmen. Der Inhalt 211 des betreffenden Listenelementes 21 könnte etwa lauten: "a SICHEREN" oder "LDA A". Damit wird der Wert des Parameters 12 "a" in eine spezielle Speicherzelle (nicht dargestellt) geschrieben. Fig. 4 shows the list 20 with some elements 21 list. To illustrate the content 211 , 212 , 213 , 214 , 215 of the list elements 21 , it is assumed that this was generated by the parser 14 using the term 9 "x = a × b + c". The first list element 21 then serves to temporarily store the parameter 12 "a". The content 211 of the relevant list element 21 could read something like: "a SAVE" or "LDA A". The value of parameter 12 "a" is thus written into a special memory cell (not shown).
Die spezielle Speicherzelle, in die der Wert des Parameters 12 "a" geschrieben wurde, zeichnet sich dadurch aus, dass ihre Adressierung durch bestimmte Prozessoranweisungen implizit erfolgt (vgl. Schneider, Werner: Taschenbuch der Informatik, Carl Hanser Verlag, 2001). Die spezielle Speicherzelle wird bei gebräuchlichen Prozessoren 2 auch als "Akkumulator" bezeichnet. Diese Benennung wird auch im folgenden verwendet. Der Akkumulator ist üblicherweise ein Register des Prozessors 2. The special memory cell, in which the value of parameter 12 "a" was written, is characterized in that its addressing is carried out implicitly by certain processor instructions (cf. Schneider, Werner: Taschenbuch der Informatik, Carl Hanser Verlag, 2001). In conventional processors 2 , the special memory cell is also referred to as an “accumulator”. This term is also used in the following. The accumulator is usually a register of processor 2 .
Aufgrund der impliziten Adressierung des Akkumulators sind
z. B. Prozessorbefehle zur Realisierung der mathematischen
Grundrechenarten als so genannte Einadressbefehle ausgeführt.
Die Multiplikation der Parameter 12 "a" und "b" erfordert
zunächst das Ablegen des Parameters 12 "a" im Akkumulator.
Daraufhin wird mit dem Parameter 12 "b" der Prozessorbefehl zur
Durchführung einer Multiplikation aufgerufen; z. B. als "MUL
[b]". Dies löst der Prozessor 2 zu einer Operation wie folgt
auf:
Akkumulator := Akkumulator MUL b,
was, wenn der Akkumulator zunächst den Wert des Parameters 12
"a" enthält, genau der Multiplikation der Werte der beiden
Parameter 12 "a" und "b" entspricht
(Akkumulator := a MUL b),
wobei das Multiplikationsergebnis im Akkumulator gespeichert
und in gleicher oder ähnlicher Weise zur Verknüpfung mit
weiteren Parametern 12 zur Verfügung steht.
Due to the implicit addressing of the accumulator z. B. processor instructions for realizing the basic mathematical calculations as so-called one-address instructions. The multiplication of parameters 12 "a" and "b" first requires storing parameter 12 "a" in the accumulator. The processor command for performing a multiplication is then called up with parameter 12 “b”; z. B. as "MUL [b]". The processor 2 resolves this to an operation as follows:
Accumulator: = accumulator MUL b,
which, if the accumulator initially contains the value of parameter 12 "a", corresponds exactly to the multiplication of the values of the two parameters 12 "a" and "b"
(Accumulator: = a MUL b),
the multiplication result being stored in the accumulator and being available in the same or similar manner for linking to further parameters 12 .
Aus dem zuvor Beschriebenen wird deutlich, dass das zweite Listenelement 21 dazu dient, die Verknüpfung des zweiten Parameters 12 "b" mit dem Inhalt Akkumulators zu bewirken. Der Inhalt 212 des betreffenden Listenelementes 21 könnte etwa lauten: "b MULTIPLIZIEREN " oder "MUL b". Damit wird der Wert des Parameters 12 "b" mit dem Inhalt des Akkumulators multipliziert und das Ergebnis wiederum in den Akkumulator geschrieben. It is clear from what has been described above that the second list element 21 serves to link the second parameter 12 "b" with the content of the accumulator. The content 212 of the relevant list element 21 could read something like: "b MULTIPLIZE" or "MUL b". The value of parameter 12 "b" is thus multiplied by the content of the accumulator and the result is again written to the accumulator.
Das dritte Listenelement 21 dient schließlich dazu, zu dem bisherigen Multiplikationsergebnis den Wert des Parameters 12 "c" zu addieren. Der Inhalt 213 des betreffenden Listenelementes 21 könnte etwa lauten: "c ADDIEREN" oder "ADD c". Damit wird der Wert des Parameters 12 "c" zum Inhalt des Akkumulators addiert und das Ergebnis wiederum in den Akkumulator geschrieben. Damit steht das Ergebnis der mathematischen Funktion 10 jetzt im Akkumulator zur Verfügung. Finally, the third list element 21 serves to add the value of the parameter 12 "c" to the previous multiplication result. The content 213 of the relevant list element 21 could read something like: "c ADD" or "ADD c". This adds the value of parameter 12 "c" to the content of the accumulator and the result is written to the accumulator. The result of the mathematical function 10 is now available in the accumulator.
Die Inhalte 211, 212, 213 der Elemente 21 der Liste 20 - hintereinander geschrieben - "a SICHERN", "b MULTIPLIZIEREN", "c ADDIEREN" korrespondieren mit der Postfixdarstellung "a b × c +" des ursprünglichen Terms 9 "a × b + c", so dass die Liste 20 eine Postfixdarstellung des Terms 9 beinhaltet und der Parser 14 bei der Generierung der Liste 20 eine geeignete Postfixdarstellung des Terms 9 generiert. The contents 211 , 212 , 213 of the elements 21 of the list 20 - written one after the other - "a SAVE", "b MULTIPLIZE", "c ADD" correspond to the postfix representation "ab × c +" of the original term 9 "a × b + c ", so that list 20 contains a postfix representation of term 9 and parser 14 generates a suitable postfix representation of term 9 when generating list 20 .
Die letzte für die exemplarisch gewählte mathematische Funktion 10 noch ausstehende Operation ist das Kopieren des Inhalts des Akkumulators in die Speicherzelle 11, die das Funktionsergebnis 11 "x" repräsentiert. Mit dem vierten Listenelement 21 wird entsprechend ein solcher Kopiervorgang initiiert. Der Inhalt 214 des betreffenden Listenelementes 21 könnte etwa lauten: "KOPIERE x", wobei natürlich die Besonderheiten der direkten oder indirekten Adressierung zu beachten sind. The last operation still outstanding for the mathematically selected function 10 is the copying of the contents of the accumulator into the memory cell 11 , which represents the function result 11 "x". Such a copying process is initiated accordingly with the fourth list element 21 . The content 214 of the relevant list element 21 could read something like: "COPY x", whereby of course the special features of direct or indirect addressing must be taken into account.
Der Inhalt 211-214 der jeweiligen Listenelemente 21 entspricht also entweder direkt einer vom Prozessor 2 ausführbaren Anweisung oder hat zumindest eine Form, die eine direkte Transformation in eine vom Prozessor 2 ausführbare Anweisung ermöglicht. Die Begriffe "Anweisung", "Listenelement" 21 oder "Listenelementinhalt" 211-214 bezeichnen damit in dieser Beschreibung letztlich gleiche "Gegenstände" in ggf. unterschiedlicher Darstellungsform. The content 211-214 of the respective list elements 21 thus either corresponds directly to an instruction that can be executed by processor 2 or at least has a form that enables a direct transformation into an instruction that can be executed by processor 2 . The terms “instruction”, “list element” 21 or “list element content” 211-214 thus ultimately refer to the same “objects” in this description in possibly different forms of representation.
Bei komplexeren Termen, speziell bei solchen Termen, bei deren Berechnung die Speicherung von Teil- oder Zwischenergebnissen erforderlich ist, ist neben dem Akkumulator zur Speicherung eines jeden Zwischenergebnisses noch jeweils mindestens eine weitere Speicherzelle erforderlich. Diese Speicherzellen sind vorteilhaft in Form eines so genannten Stapelspeichers organisiert. With more complex terms, especially with such terms, with their calculation the storage of partial or Intermediate results is required in addition to the accumulator Storage of each interim result in each case at least one additional memory cell is required. This Memory cells are advantageous in the form of a so-called Stack organized.
Eine mathematische Funktion 10, welche die
Zwischenspeicherung von Teilergebnissen erfordert ist z. B. eine Funktion 10
der Form "x = a × b + c × d". Hier muss zuerst das Produkt der
Parameter 12 "a" und "b" und danach das Produkt der Parameter
12 "c" und "d" gebildet werden. Beide Produkte stellen
Teilergebnisse der Funktion 10 dar. Das Funktionsergebnis 11
ergibt sich durch Addition der beiden Teilergebnisse. Die
Ermittlung jedes Teilergebnisses erfolgt separat unter
Verwendung des Akkumulators:
"SICHERE a"; Akkumulator := a
"MULTIPLIZIERE mit b"; Akkumulator := Akkumulator × b
A mathematical function 10 , which requires the intermediate storage of partial results is e.g. B. a function 10 of the form "x = a × b + c × d". First the product of parameters 12 "a" and "b" and then the product of parameters 12 "c" and "d" must be created. Both products represent partial results of the function 10. The functional result 11 is obtained by adding the two partial results. Each partial result is determined separately using the accumulator:
"SAFE a"; Accumulator: = a
"MULTIPLIZE with b"; Accumulator: = accumulator × b
Das erste Teilergebnis steht damit im Akkumulator zur
Verfügung, würde aber verloren gehen, wenn sofort mit der
Berechnung des zweiten Teilergebnisses begonnen würde. Daher wird
der Inhalt des Akkumulators in einem Stapelspeicher gesichert
(PUSH), so dass der Stapelspeicher zumindest ein Element
umfasst, dessen Inhalt dem ersten Teilergebnis entspricht.
Jetzt kann das zweite Teilergebnis berechnet werden.
Zweckmäßig - allerdings nicht notwendig - wird auch der sich damit
ergebende Inhalt des Akkumulators als zweites Teilergebnis in
dem Stapelspeicher gesichert (PUSH). Der Stapelspeicher hat
jetzt mindestens zwei Elemente, wobei der Inhalt des neuen,
zweiten Elements dem zweiten Teilergebnis entspricht.
"SICHERE a"; Akkumulator := a
"MULTIPLIZIERE mit b"; Akkumulator := Akkumulator × b
PUSH
"SICHERE c"; Akkumulator := c
"MULTIPLIZIERE mit d"; Akkumulator := Akkumulator × d
PUSH
The first partial result is thus available in the accumulator, but would be lost if the calculation of the second partial result were started immediately. The content of the accumulator is therefore saved in a stack (PUSH), so that the stack comprises at least one element, the content of which corresponds to the first partial result. Now the second partial result can be calculated. Appropriately - but not necessary - the resulting contents of the accumulator are saved as a second partial result in the stack (PUSH). The stack now has at least two elements, the content of the new, second element corresponding to the second partial result.
"SAFE a"; Accumulator: = a
"MULTIPLIZE with b"; Accumulator: = accumulator × b
PUSH
"SAFE c"; Accumulator: = c
"MULTIPLIZE with d"; Accumulator: = accumulator × d
PUSH
Stapelspeicher und deren Verwendung sind allgemein bekannt, so dass hier auf nähere Erläuterungen zu Aufbau, Funktion und Verwendung verzichtet werden kann. Stack memory and its use are generally known, so that here on more detailed explanations on structure, function and Use can be dispensed with.
Zur Ermittlung des Funktionsergebnisses 11 werden die Teilergebnisse aus dem Stapelspeicher wieder abgerufen und dabei jeweils der Stapelspeicher in üblicher Weise abgebaut (POP). D. h. zunächst wird das "oberste" - das zweite - Element aus dem Stapelspeicher abgerufen und in den Akkumulator geladen. Zur Vereinfachung solcher Operationen verwaltet jeder Prozessor 2 einen so genannten Stapelzeiger oder Stackpointer (SP). Der Stapelzeiger "zeigt" (adressiert) auf das jeweils oberste Element des Stapels. Wenn der Stapel abgebaut wird und dabei zunächst das oberste - das zweite - Element in den Akkumulator geladen wird, kann zu dessen Inhalt der Inhalt der Speicherzelle, auf die der Stackpointer dann zeigt (das erste Element) in der oben gezeigten Weise addiert werden. Das Funktionsergebnis 11 steht schließlich wieder im Akkumulator zur Verfügung. To determine the functional result 11 , the partial results are called up again from the stack and the stack is reduced in the usual way (POP). I.e. first the "top" - the second - element is retrieved from the stack and loaded into the accumulator. To simplify such operations, each processor 2 manages a so-called stack pointer or stack pointer (SP). The stack pointer "points" (addressed) to the topmost element of the stack. If the stack is dismantled and the uppermost - the second - element is loaded into the accumulator, the contents of the memory cell to which the stack pointer then points (the first element) can then be added in the manner shown above. The function result 11 is finally available again in the accumulator.
Damit lässt sich die Erfindung kurz wie folgt darstellen:
Es wird ein Verfahren zum Betrieb eines Rechnersystems 1 mit
einem Prozessor 2 und einem Funktionsbaustein 8 sowie ein
Funktionsbaustein 8 selbst angegeben, wobei der
Funktionsbaustein 8 einen Parser 14 und einen Termeingang 15 aufweist,
wobei dem Funktionsbaustein 8 am Termeingang 15 ein Term 9
zugeführt wird, wobei der Parser 14 anhand des Terms 9 eine
Liste 20 mit mindestens einem Listenelement 21 erzeugt und
wobei jedes Listenelement 21 in eine vom Prozessor 2
ausführbare Anweisung transformiert wird.
The invention can thus be briefly represented as follows:
It is 8 provided a method of operating a computer system 1 having a processor 2 and a function module 8 and a function module itself, with the function block 8 comprises a parser 14 and a term input 15, wherein the function block 8 is supplied to a term 9 at Term input 15, whereby the parser 14 uses the term 9 to generate a list 20 with at least one list element 21 and each list element 21 is transformed into an instruction that can be executed by the processor 2 .
Claims (18)
wobei der Funktionsbaustein (8) einen Parser (14) und einen Termeingang (15) aufweist,
wobei dem Funktionsbaustein (8) am Termeingang (15) ein Term (9) zugeführt wird,
wobei der Parser (14) anhand des Terms (9) eine Liste (20) mit mindestens einem Listenelement (21) erzeugt und
wobei jedes Listenelement (21) in eine vom Prozessor (2) ausführbare Anweisung transformiert wird. 1. Method for operating a computer system ( 1 ) with a processor ( 2 ) and a function block ( 8 ),
the function block ( 8 ) having a parser ( 14 ) and a term input ( 15 ),
wherein the function block ( 8 ) is supplied with a term ( 9 ) at the term input ( 15 ),
wherein the parser ( 14 ) uses the term ( 9 ) to generate a list ( 20 ) with at least one list element ( 21 ) and
wherein each list element ( 21 ) is transformed into an instruction that can be executed by the processor ( 2 ).
wobei der Funktionsbaustein (8) mindestens einen ersten Ausgang (16) aufweist,
wobei die sukzessive Ausführung einer jeden Anweisung ein Ergebnis (11) liefert und
wobei das Ergebnis (11) am ersten Ausgang (16) abgerufen wird. 4. The method according to claim 1, 2 or 3,
wherein the function block ( 8 ) has at least one first output ( 16 ),
the successive execution of each instruction providing a result ( 11 ) and
the result ( 11 ) being called up at the first output ( 16 ).
wobei am Termeingang (15) ein Term (9) zuführbar ist,
wobei der Term (9) durch den Parser (14) analysierbar und in eine Liste (20) mit mindestens einem Listenelement (21) umsetzbar ist und
wobei jedes Listenelement (21) in eine vom Prozessor (2) ausführbare Anweisung transformierbar ist. 13. Function block ( 8 ) with a parser ( 14 ) and a term input ( 15 ) for use in a computer system ( 1 ) controlled by a processor ( 2 ),
a term ( 9 ) being able to be fed in at the term entrance ( 15 ),
wherein the term ( 9 ) can be analyzed by the parser ( 14 ) and converted into a list ( 20 ) with at least one list element ( 21 ) and
each list element ( 21 ) being transformable into an instruction that can be executed by the processor ( 2 ).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01122129A EP1293896A1 (en) | 2001-09-14 | 2001-09-14 | Method to run a computer system with a function module and a function module |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10238814A1 true DE10238814A1 (en) | 2003-04-24 |
Family
ID=8178635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2002138814 Ceased DE10238814A1 (en) | 2001-09-14 | 2002-08-23 | Process for operating a computer system with a function block and function block |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP1293896A1 (en) |
DE (1) | DE10238814A1 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0388077A3 (en) * | 1989-03-15 | 1993-10-13 | Texas Instruments Incorporated | Method of optimizing the execution speed of an interpreted test language |
US6345387B1 (en) * | 1998-04-30 | 2002-02-05 | Cosa Technologies, Inc. | Coherent object system architecture |
-
2001
- 2001-09-14 EP EP01122129A patent/EP1293896A1/en not_active Withdrawn
-
2002
- 2002-08-23 DE DE2002138814 patent/DE10238814A1/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
EP1293896A1 (en) | 2003-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69232255T2 (en) | Method and system for controlling the execution of a user program | |
EP2452232B1 (en) | Method for optimizing petri net orchestrated processes for service-oriented automation devices in service-oriented automated systems | |
EP1176482A1 (en) | Method and computer program for generating a regulation or control system | |
EP2330469B1 (en) | Method and development environment for generating an executable total control program | |
DE69616867T2 (en) | Processor that quickly returns from subroutines and program translator that generates machine programs that quickly return from subroutines | |
DE2245284C3 (en) | Data processing system | |
EP0838054A1 (en) | Graphic control process and device for controlling operations in a network management system | |
DE3689502T2 (en) | System and method for program structuring by data table translation. | |
DE60225464T2 (en) | ROBOT SYSTEM AND METHOD AND SOFTWARE FOR THE ROBOT SYSTEM | |
DE10048478A1 (en) | Method for accessing a storage unit when searching for substrings and associated storage unit | |
DE2425380C2 (en) | Data processing system for the parallel execution of processing operations | |
EP1780637A1 (en) | method for undoing actions via a graphical user interface | |
EP1862901A1 (en) | Input of program commands in imperative programming languages | |
DE10238814A1 (en) | Process for operating a computer system with a function block and function block | |
DE3104881A1 (en) | Programmable computer | |
EP0662226B1 (en) | Method of processing an application program on a parallel-computer system | |
DE112004001955T5 (en) | User interface software design system | |
EP3779619A1 (en) | Emerging risks of a technical system | |
EP1668494B1 (en) | Method and system for configuring the language of a computer programme | |
EP2757466B1 (en) | A computer implemented method for generating computer program code | |
EP3385834A1 (en) | Hardware driver for efficient arithmetic | |
DE2419836B2 (en) | CIRCUIT ARRANGEMENT FOR EXECUTING SUB-PROGRAM JUMP COMMANDS IN DATA PROCESSING SYSTEMS | |
DE102018125849A1 (en) | Method and device for computer-aided control of a technical system | |
EP1959430A2 (en) | Method for automatically generating voiceXML speech applications from speech dialog models | |
DE102020117970A1 (en) | Method and programming device for importing a program library |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |