DE4310615C2 - Designing electrical devices with multiple design tools that are at least partially incompatible with each other - Google Patents
Designing electrical devices with multiple design tools that are at least partially incompatible with each otherInfo
- Publication number
- DE4310615C2 DE4310615C2 DE4310615A DE4310615A DE4310615C2 DE 4310615 C2 DE4310615 C2 DE 4310615C2 DE 4310615 A DE4310615 A DE 4310615A DE 4310615 A DE4310615 A DE 4310615A DE 4310615 C2 DE4310615 C2 DE 4310615C2
- Authority
- DE
- Germany
- Prior art keywords
- name
- rules
- tools
- incompatible
- tool
- 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.)
- Expired - Lifetime
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
Die Erfindung betrifft ein System zum Entwerfen elektrischer Vorrichtungen mit mehreren Entwurfswerkzeugen, von denen zumindest einige Entwurfswerkzeuge untereinander inkompatibel sind.The invention relates to a system for designing electrical Devices with several design tools, one of which at least some design tools are incompatible with each other are.
Ferner betrifft die vorliegende Erfindung ein Verfahren zum Koordinieren unterschiedlicher, zumindest teilweise untereinander inkompatibler Entwurfswerkzeuge beim Entwickeln elektrischer Vorrichtungen mit einem automatisierten System.The present invention further relates to a method for Coordinate different, at least in part mutually incompatible design tools during development electrical devices with an automated system.
In "Software Engineering", Gewald, Haake, Pfadler, R. Oldenbourg Verlag, München, Wien 1982, S. 221-232 sind allgemein Grundlagen für das Themengebiet "software engineering" beschrieben, insbesondere die Umsetzung unterschiedlicher Quellprogramme eines Computers und hierbei eingesetzte Techniken. Beispielsweise werden Vorgehensweisen wie Simulation, Emulation und Dekompilierung beschrieben. Ferner erfolgt ein Bezug auf Cross-Compiler, Assembler, Mikroprozessoren und Sprachumsetzhilfen.In "Software Engineering", Gewald, Haake, Wegler, R. Oldenbourg Verlag, Munich, Vienna 1982 , pp. 221-232, general principles for the subject area "software engineering" are described, in particular the implementation of different computer source programs and the techniques used . For example, procedures such as simulation, emulation and decompilation are described. There is also a reference to cross-compilers, assemblers, microprocessors and language conversion aids.
Heutzutage werden Computer allgemein beim Entwurf, der Produktionsvorbereitung, der Herstellung und bei der Untersuchung zahlreicher Erzeugnisse verwendet. Beispiele auf, dem Gebiet der Elektronik umfassen integrierte Schaltungen, gedruckte Schaltungsplatinen, und Erzeugnisse, welche derartige Bauteile verwenden, einschließlich Computer, elektronische Haushaltsgeräte und dergleichen. Ähnliche Vorgehensweisen werden bei Erzeugnissen, wie beispielsweise Haushaltsgeräten, Kameras, Kraftfahrzeugen und dergleichen eingesetzt. Daher kann die rechnergesteuerte Automatisierung des Designs, der Herstellung und der Untersuchung in jedem Industriezweig eingesetzt werden, in welchem mehrere Schritte bei der Schöpfung und Herstellung eines Enderzeugnisses nötig sind.Nowadays, computers are commonly used in designing the Production preparation, manufacturing and at Examination of numerous products used. Examples on the field of electronics include integrated Circuits, printed circuit boards, and Products that use such components including computers, electronic home appliances and the like. Similar approaches are used at Products, such as household appliances, Cameras, motor vehicles and the like are used. Therefore can the computer-controlled automation of the design, the making and examining in everyone Industry are used in which several Steps in creating and making one Finished product are necessary.
Typischerweise können mehrere unterschiedliche Ausrüstungsstücke dazu verwendet werden, die verschiedenen Design-Herstellungs- und Versuchsvorgänge durchzuführen, und der Benutzer kann entweder standardisierte oder speziell angepaßte Softwarepakete oder -tools haben, die er zur Durchführung der verschiedenen Funktionen verwendet. In vielen Fällen sind die Sprachen, juristischen Zeichenketten, Formate, die Syntax und andere Faktoren, die in den verschiedenen Softwaretools verwendet werden oder zur Kommunikation mit diesen eingesetzt werden, nicht vollständig kompatibel.Typically, several can be different Equipment used to do the various Carry out design manufacturing and testing processes, and the user can either standardized or have specially adapted software packages or tools that he to perform the various functions used. In many cases, the languages legal strings, formats, syntax and others Factors used in the various software tools are used or to communicate with them are not fully compatible.
Heutzutage sind die Softwaretools getrennte Prozeduren, welche zur Erfassung, zur Überprüfung und zur Analyse der Leistung eines Designs während der Designphase verwendet werden, zur Darstellung des Designs während der Herstellungsentwurfsphase, zur Durchführung der verschiedenen Herstellungsschritte während der Herstellungsstufe und zur Untersuchung der verschiedenen Komponenten des Endprodukts während der Versuchsstufe. Die getrennten Prozeduren werden sequentiell verwendet, wobei die Ausgabe von einem Tool oder Prozeß die Eingabe für den folgenden Prozeß darstellt. Die häufigste Prozedur zur Verwendung dieser sequentiellen Prozesse besteht darin, darauf zu warten, daß ein Prozeß fertig ist, und einen darauffolgenden Prozeß mit der Ausgabe von dem vorherigen Prozeß durch die Verwendung einer Befehlssequenz zu betreiben, die an einer Tastatur oder einem anderen Eingabegerät eines oder mehrerer Bauteile des Systems eingegeben wird. Auf diese Weise legt der Benutzer unter Verwendung einer Terminalanzeige und einer Tastatur oder eines anderen Eingabegeräts die Folge der Vorgänge fest und stellt in vielen Fällen die ordnungsgemäße Übertragung erforderlicher Information von einem Prozeß zum nächsten sicher.Nowadays the software tools are separate procedures, which are used to record, check and analyze the Performance of a design used during the design phase to represent the design during the Manufacturing design phase to carry out the various manufacturing steps during the Manufacturing stage and to study the various Components of the final product during the test stage. The separate procedures are used sequentially, where the output of a tool or process the input for the represents the following process. The most common procedure for Using these sequential processes is waiting for a trial to be completed and one subsequent process with the output from the previous one Process through the use of an instruction sequence operate that on a keyboard or other Input device for one or more components of the system is entered. In this way, the user submits Using a terminal display and a keyboard or another input device the sequence of operations and in many cases represents the proper transfer required information from one process to the next for sure.
Diese getrennte Verwendung einzelner Prozesse kann für den Benutzer recht mühsam werden und es sind häufig zusätzliche Programme erforderlich, Übersetzer genannt, um ordnungsgemäß Datenausgaben von einem Prozeß auf einen anderen zu übertragen, infolge verschiedener Inkompatibilitäten zwischen den Programmen. Der Benutzer muß dazu fähig sein, mit den Prozessen in einer Standardbetriebssystemsprache zu kommunizieren, und muß ein klares Verständnis davon haben, wie die Eingaben und Ausgaben der verschiedenen Prozesse gesteuert werden.This separate use of individual processes can be used for Users become quite troublesome and are common additional programs required, called translators, to properly output data from one process to one to transmit to others as a result of various Incompatibilities between the programs. The user must be able to deal with the processes in one Standard operating system language to communicate, and must have a clear understanding of how the inputs and Outputs of the various processes can be controlled.
Dies erfordert, daß sämtliche Benutzer des Systems den Betrieb des Gesamtsystems vollständig kennen sowie jedes der darin verwendeten Tools. Weiterhin erfordert dies, daß jedesmal dann, wenn in einem der Softwaretools eine Änderung erfolgt, beispielsweise um es zu aktualisieren und zu verbessern, oder in der Sprache oder den Prozeduren eine Änderung erfolgt, die von irgendeiner Komponente in dem System verwendet werden, sämtliche potentiellen Benutzer des Systems von der Änderung in Kenntnis gesetzt werden müssen, und diese verstehen müssen, um Bedienungsfehler zu verhindern und einen optimalen Betrieb des Systems sicherzustellen.This requires that all users of the system use the Know the operation of the entire system completely, as well as each of the tools used in it. Furthermore, this requires that every time one of the software tools Change is made, for example to update it and improve, or in language or procedures a change is made by any component in system, all potential System users notified of the change have to be, and have to understand this in order to Prevent operator errors and optimal operation of the system.
Zusätzlich ist bei existierenden Systemen selbst bei einem kenntnisreichen und erfahrenen Benutzer eine erhebliche Zeit dafür erforderlich, einen Task zu beenden, infolge der Anzahl getrennter, sequentieller Vorgänge, die erforderlich sind, und der Benutzer muß sorgfältig arbeiten, um sicherzustellen, daß der Task ordnungsgemäß beendet wird. Da der Benutzer wenig Führung bei der Durchführung von Betriebsabläufen haben kann, treten selbst bei dem sorgfältigsten Benutzer Fehler auf, und die Systeme stellen keinen systematischen Weg der Ermittlung von Fehlern zur Verfügung, wenn diese eingegeben werden, so daß derartige Fehler durch das System hindurchgelangen können, von einem Prozeß zum nächsten, ohne ermittelt zu werden, was zu kumulativen Fehlern führt, die - wenn sie einmal entdeckt werden - eine zeitaufwendige und teure Korrektur erfordern können.In addition, with existing systems, even one knowledgeable and experienced users a significant Time required to complete a task as a result the number of separate, sequential operations that are required and the user must be careful work to ensure that the task is working properly is ended. Because the user has little guidance in the Implementation of operational procedures may occur even with the most careful user mistakes, and the Systems are not a systematic way of determining of errors available when they are entered so that such errors get through the system can, from one process to the next, without being determined what leads to cumulative errors that - if they be discovered once - a time-consuming and expensive May require correction.
Wenn darüber hinaus ein Benutzer festlegt, daß ein bislang nicht in dem System verwendetes, neues Softwaretool eingesetzt werden soll, so gibt es keine systematische Vorgehensweise für die Zufügung eines derartigen Tools. Dies kann dazu führen, daß ein neuer Datenübersetzer entworfen, entwickelt, untersucht und bestätigt werden muß, und daß andere Prozeduren erforderlich werden können, um eine Schnittstelle für ein derartiges Tool in dem System zur Verfügung zu stellen, und sämtliche dieser Schritte erfordern eine erhebliche Erfahrung, Zeit und Kosten, bis sie erfolgreich beendet sind. In addition, if a user specifies that one is currently New software tool not used in the system should be used, there is no systematic How to add such a tool. This can result in a new data translator designed, developed, examined and confirmed and that other procedures may be required to provide an interface for such a tool in the System, and all of these Steps require considerable experience, time and effort Costs until they are successfully completed.
Insbesondere wird bei existierenden Systemen die Software im allgemeinen nur in Form eines Objektcodes zur Verfügung gestellt, und ein Benutzer kann keine Änderungen durchführen oder kann diese nur im Quellencode durchführen, der in einem getrennten Vorgang kompiliert werden muß, üblicherweise außerhalb des Systems, bevor er für das System nutzbar ist. Es wäre vorzuziehen, wenn der Benutzer das System mit einem Code steuern könnte, der in einer interpretativen Erweiterungssprache geschrieben ist, die sowohl von der Maschine als auch vom Menschen lesbar ist.In particular with existing systems the software generally only available in the form of an object code posed, and a user cannot make changes or can only do this in the source code perform that compiles in a separate operation must be, usually outside the system, before it is usable for the system. It would be preferable if the User could control the system with a code that is in is written in an interpretive extension language, which are readable both by the machine and by humans is.
Daher besteht ein Bedürfnis für ein verbessertes Verfahren und eine verbesserte Vorrichtung (manchmal gemeinsam als "System" bezeichnet) zur Verwendung mit mehreren unterschiedlichen Softwaredesign- und Produktionstools, welche die Verwendung eines derartigen Systems für den Endbenutzer wesentlich vereinfachen, und nur noch erheblich geringere Kenntnisse des Systems und der mit diesem benutzten Softwaretools vom Endbenutzer erfordern. Insbesondere sollte ein derartiges System auf einfache und systematische Weise die Schnittstelle zwischen dem Systembenutzer und den verschiedenen Tools und Vorgängen steuern, die bei dem System durchgeführt werden sollen, sollte sämtliche Kommunikationsvorgänge zwischen den verschiedenen Softwaretools in dem System steuern und sicherstellen, daß erforderliche Interpretationen und Übersetzungen durchgeführt werden, und die zeitliche Abfolge der Tasks managen, die zur Durchführung eines bestimmten Ziels durchgeführt werden, so daß der Benutzer nur durch eine geeignete Eingabe ein gewünschtes Ziel angibt, und das System damit weitermachen kann, in der richtigen Reihenfolge, die verschiedenen Tasks durchzuführen, die zur Erzielung dieses Ziels erforderlich sind. Derartige Tasks können die Übertragung erforderlicher Information von einem Softwaretool zum nächsten umfassen und Aufforderungen an den Benutzer für zusätzliche Eingaben, wenn dies erforderlich ist. Ein derartiges System sollte sämtliche erforderlichen Übersetzungen und Interpretationen zwischen nicht kompatiblen Softwaretools durchführen, und sämtliche derartige Übersetzungen sollten vorzugsweise sowohl für den Benutzer oder Bediener als auch für die verschiedenen Softwaretools, die momentan laufen, transparent oder verständlich sein. Ein derartiges System sollte darüber hinaus so flexibel sein, daß es unter Verwendung verhältnismäßig einfacher Prozeduren durch eine Systemintegrationseinrichtung konfigurierbar und erneut konfigurierbar ist, wobei derartige Zufügungen, Vergrößerungen oder andere Änderungen wiederum für den Benutzer transparent sind. Insbesondere sollten sämtliche Steuerungen für ein derartiges System in einer interpretativen Ausdehnungssprache geschrieben werden, welche eine einfache Änderung der Steuerungen durch den Benutzer zuläßt, jedoch immer noch von der Maschine lesbar ist. Daher würde der Bediener des Systems immer die jüngste, vergrößerte Version des Systems mit sämtlichen Möglichkeiten des Systems nutzen und sollte immer dann, wenn dies geeignet ist, dazu aufgefordert werden, diese Fähigkeiten zu nutzen. Soweit der Benutzer nicht mit der Funktion einer bestimmten Fähigkeit vertraut ist, könnte eine "Hilfe"-Funktion zur Verfügung gestellt werden, um ihn zu unterstützen.There is therefore a need for an improved method and an improved device (sometimes collectively as "System") for use with multiple different software design and production tools, which the use of such a system for Simplify end users significantly, and only considerably less knowledge of the system and the software tools used by the end user. In particular, such a system should be simple and systematically the interface between the System users and the various tools and operations taxes to be performed on the system should all communications between the control various software tools in the system and ensure that necessary interpretations and Translations are carried out, and the time Manage the sequence of tasks required to perform a certain goal be carried out so that the user a desired destination only by a suitable input indicates, and the system can continue to do so in the correct order, the different tasks to carry out the necessary to achieve this goal are. Such tasks can do the transfer required information from a software tool to the next include and prompts to the user for additional entries if required. A such system should be all necessary Translations and interpretations between not perform compatible software tools, and all such translations should preferably be used for both the user or operator as well for the different Software tools that are currently running, transparent or to be understandable. Such a system should be about it Be flexible enough to use it relatively simple procedures through a System integration device configurable and again is configurable, such additions, Magnifications or other changes for the Users are transparent. In particular, everyone should Controls for such a system in one interpretive extension language are written, which is a simple change of the controls by the User allows, but still readable by machine is. Therefore, the system operator would always do that latest, enlarged version of the system with all Use the possibilities of the system and should always if appropriate, be prompted to do so Skills. As far as the user is not with the Function of a particular skill is familiar a "help" function will be provided to help to support him.
Die Aufgabe der Erfindung besteht in der Schaffung eines Entwurfssystems sowie eines zugeordneten Verfahrens für den Entwurf elektrischer Vorrichtungen, bei dem auch der Einsatz mehrerer inkompatibler Entwurfswerkzeuge im Rahmen eines vollautomatisierten Entwurfsablaufs möglich ist.The object of the invention is Creation of a design system and an associated one Procedure for the design of electrical devices, at the use of several incompatible design tools possible as part of a fully automated design process is.
Diese Aufgabe wird im Rahmen der vorliegenden Erfindung durch ein System zum Entwerfen elektrischer Vorrichtungen mit den Merkmalen des Patentanspruchs 1 gelöst.This object is achieved in the context of the present invention a system for designing electrical devices with the Features of claim 1 solved.
Zudem wird die Aufgabe durch ein Verfahren zum Koordinieren unterschiedlicher, zumindest teilweise untereinander inkompatibler Entwurfswerkszeuge mit den Merkmalen des Patentanspruchs 19 gelöst.The task is also coordinated through a process different, at least partially among themselves incompatible design tools with the features of Claim 19 solved.
Somit wird im Rahmen der vorliegenden Erfindung der Betriebsablauf mehrerer unterschiedlicher Tasks und Softwaretools integriert und verwaltet. Thus, in the context of the present invention Operating sequence of several different tasks and Software tools integrated and managed.
Einige dieser Tools können mit dem System nicht kompatibel sein, auf welchem die Tools verwendet werden sollen, und/oder miteinander nicht verträglich sein können. Das System enthält eine Liste von Softwaretools, welche auf oder mit dem System laufen können, wobei die Liste eine Anzeige enthält, ob die Tools mit dem System verträglich sind oder nicht. Mehrere Regelmakros können ebenfalls gespeichert sein, wobei jedes der Makros die Leistung eines bestimmten Prozesses betrifft. Ein durchzuführender Prozeß wird in das System entweder von einem Benutzer oder von einem vorherigen Prozeß eingegeben, und das diesem Prozeß entsprechende Makro wird zurückgeholt. In Reaktion auf das Zurückholen des Makros werden Tasks, die ausgewählte Tools betreffen, in einer vorbestimmten Sequenz ausgeführt. Wird ein nicht kompatibles Tool ausgeführt, so wird es eingekapselt, was dazu führt, daß sämtliche Übertragungen von dem Tool und zu dem Tool hin überprüft und, soweit erforderlich, interpretiert werden. Mehrere der Interpretationsregeln können ebenfalls an einem vorbestimmten Ort in einem Makro gespeichert sein, welches ein Softwaretool enthält, das eingekapselt werden muß. Für jede Übertragung zum Tool und aus diesem heraus wird eine Überprüfung durchgeführt, um zu ermitteln, ob eine oder mehrere der Interpretationsregeln anwendbar sind, und die in der Regel festgelegte Interpretation wird durchgeführt, wenn festgestellt wird, daß eine Interpretationsregel einen übertragenen Gegenstand betrifft. Getrennte Regeln können für Übertragungen an ein nicht kompatibles Tool und Übertragungen von einem nicht kompatiblen Tool vorgesehen sein.Some of these tools may not be compatible with the system, on which the tools are to be used, and / or not compatible with each other. The System contains a list of software tools that are on or can run with the system, the list being a Display includes whether the tools are compatible with the system are or not. Multiple control macros can also be stored, with each of the macros performing of a particular process. A to be carried out Process is in the system either by a user or entered by a previous process, this one Macro corresponding to the process is retrieved. In reaction on the return of the macro are tasks that selected tools concern, in a predetermined Sequence executed. Becomes an incompatible tool executed, it is encapsulated, which leads to the fact that all transfers from and to the tool checked and, if necessary, interpreted. Several of the rules of interpretation may also apply stored in a predetermined location in a macro, which contains a software tool that is encapsulated got to. For every transfer to and from the tool a review is performed to determine whether one or more of the rules of interpretation applicable are, and the usually fixed interpretation will carried out when it is determined that a Interpretation rule a transferred object concerns. Separate rules can be used for transfers to a incompatible tool and transfers from one not compatible tool.
Für bestimmte Ausführungsformen wird jeder Gegenstand in einem Regelmakro in einer interpretativen Ausdehnungssprache geschrieben, die sowohl vom Menschen als auch von der Maschine verstanden wird. Dies umfaßt die Interpretationsregeln, die für die Einkapselung verwendet werden. Ein Makro kann Regeln für mehrere Softwaretools enthalten, zur Durchführung eines vorgegebenen Tasks (Aufgabe), wobei die Regeln unter anderem die Reihenfolge festlegen, in welcher die Tools ausgeführt werden sollen. Ein Makro kann ebenfalls eine Regel oder Regeln enthalten, welche das Zurückholen eines neuen Makros hervorrufen.For certain embodiments, each item is shown in a rule macro in an interpretative Extension language written by both humans is also understood by the machine. This includes the Interpretation rules used for encapsulation become. A macro can be rules for multiple software tools included to perform a given task (Task), the rules including the order determine in which the tools are to be executed. A macro can also contain a rule or rules which cause a new macro to be retrieved.
Makros können Regeln zur Steuerung der Reihenfolge von Tools enthalten, die Schnittstellen von Tools mit dem System, mit einem Benutzer und untereinander. Der Benutzer des Systems kann Regeln in existierenden Makros hinzufügen oder ändern, oder neue Makros hinzufügen, all dies in der interpretativen Ausdehnungssprache. Dies führt dazu, daß die Regeln von dem System erkannt werden und von dem System in der Ausdehnungssprache sofort ausführbar sind. Daher kann das System umkonfiguriert werden, um neue Funktionen oder neue Tools aufzunehmen, System- oder Toolausdehnungen oder andere Änderungen einzubauen, Fehler zu korrigieren oder für jeden anderen Zweck.Macros can be used to control the order of rules Tools contain the interfaces of tools with the System, with one user and with each other. The user of the system can add rules in existing macros or change, or add new macros, all of this in the interpretive language of expansion. This leads to the rules are recognized by the system and by the System in the expansion language can be executed immediately. Therefore, the system can be reconfigured to new ones Add functions or new tools, system or Install tool extensions or other changes, errors to correct or for any other purpose.
Das Format für zumindest einige der Tools kann von dem Format für andere Tools unterschiedlich sein, wobei Übertragungen in zumindest einer Richtung zwischen solchen bezüglich des Formats nicht kompatiblen Tools auftreten. Eine Regeldatei kann zur Verfügung gestellt sein, die in einer interpretativen Ausdehnungssprache geschrieben ist, welche Formatumwandlungsregelungen für Tools enthält, die nicht kompatible Formate aufweisen. Wenn eine Übertragung zwischen bezüglich des Formats nicht kompatiblen Tools durchgeführt werden soll, so werden die geeigneten Formatumwandlungsregeln aus der Regeldatei zurückgeholt und zur Steuerung der Formatumwandlung des Materials verwendet, welches zwischen derartigen Tools übertragen werden soll.The format for at least some of the tools can be from that Format may be different for other tools, though Transfers in at least one direction between such incompatible tools in terms of format. A rules file can be made available in is written in an interpretive language of expansion, which contains format conversion rules for tools that incompatible formats. If a transfer between tools incompatible with the format should be carried out, the appropriate ones Format conversion rules retrieved from the rules file and to control the format conversion of the material used, which is transferred between such tools shall be.
Es können auch Inkompatibilitäten bei gültigen Zeichenketten (also gültigen Namen) zwischen Tools existieren. Weiterhin wird eine Regeldatei zur Verfügung gestellt, die in einer interpretativen Ausdehnungssprache geschrieben ist, welche Übersetzungsregeln für Tools enthält, die eine derartige Inkompatibilität bezüglich des Namens aufweisen. Wenn eine Übertragung zwischen in bezug auf den Namen nicht kompatiblen Tools erfolgt, werden geeignete Regeln in den Regeldateien zurückgeholt und dazu verwendet, die Übersetzungen durchzuführen, die dazu erforderlich sind, die Tools kompatibel zu machen.There may also be incompatibilities with valid ones Strings (i.e. valid names) between tools exist. A rules file is also available posed in an interpretive language of expansion is written, what translation rules for tools contains such an incompatibility regarding the Show name. If there is a transfer between in the name of incompatible tools appropriate rules retrieved in the rule files and to do so used to carry out the translations necessary for this are required to make the tools compatible.
Wenn ein Name in der Originalsprache in einen Namen in der erzeugten Sprache übersetzt wird, so wird in einer Namensliste ein Eintrag für den originalen und den erzeugten Namen durchgeführt. Gibt es einen derartigen Eintrag für einen Namen, der eine Übersetzung erfordert, so wird der Eintrag zur Übersetzung des Namens verwendet. Gibt es keinen Eintrag für einen zu übersetzenden Namen, so werden die geeigneten Regeln in der Regeldatei zur Übersetzung des Namens verwendet. Wenn eine Übersetzung unter Verwendung von Regeln aus der Regeldatei durchgeführt wird, so kann nach der Übersetzung eine Überprüfung durchgeführt werden, um ungültige Zeichen zu entfernen, den übersetzten Namen auf eine geeignete Maximallänge zu begrenzen, falls erforderlich, um dem übersetzten Namen Vorsilben oder Nachsilben zuzufügen, und um den übersetzten Namen so zu ändern, daß er einzigartig ist, falls ein einzigartig übersetzter Name für jeden zu übersetzenden Namen erforderlich ist, und wenn eine derartige Änderung möglich ist. Eine Alias-Datei kann für sämtliche Einträge erzeugt und gespeichert werden, die für eine bestimmte Verwendung vorgenommen wurden, und die Alias-Datei kann zurückgeholt und verwendet werden, wenn eine darauffolgende Übertragung zwischen denselben beiden Tools erforderlich ist. Es ist ebenfalls möglich, daß derartige Alias-Dateien ursprünglich zusammen mit den Übersetzungsregeln zur Verfügung gestellt werden. Weiterhin kann eine Fähigkeit bereitgestellt werden, welche ermöglicht, daß ein Originalname aus dem erzeugten Namen erhalten wird. Wenn der übersetzte oder erzeugte Name nicht eindeutig ist, so kann für jeden erzeugten Namen eine Liste von Originalnamen zur Verfügung gestellt sein.If a name in the original language is translated into a name in the generated language is translated in a Name list an entry for the original and the generated names performed. Is there such a thing? Entry for a name that requires translation so the entry is used to translate the name. If there is no entry for a name to be translated, the appropriate rules in the rules file become Translation of the name used. If a translation using rules from the rules file is carried out after the translation Verification can be done to find invalid characters remove the translated name to an appropriate one Limit maximum length, if necessary, to the add prefixes or suffixes to translated names, and to change the translated name to make it unique is in case a uniquely translated name for everyone translating name is required and if one such change is possible. An alias file can be used for all entries are generated and saved for a specific use has been made, and the Alias file can be retrieved and used if a subsequent transfer between the same two Tools is required. It is also possible that such alias files originally along with the Translation rules are made available. Furthermore, a skill can be provided which enables an original name to be created from the Name is obtained. If the translated or generated Name is not unique, so can be generated for everyone Names provided a list of original names be.
Eines oder mehrere der Tools können auch eine geschachtelte Hierarchie von Material bezüglich Komponenten oder anderen Gegenständen mit unterschiedlichen Namen aufweisen, die für denselben Gegenstand an unterschiedlichen Niveaus in der Hierarchie verwendet werden. Eine Regeldatei ist vorgesehen, die zumindest Übersetzungseinträge für die Namen der unterschiedlichen Hierarchieniveaus aufweist, wobei diese Regeldatei dazu verwendet wird, den geeigneten Namen für einen Gegenstand auf einem vorgegebenen Hierarchieniveau zu erhalten. Die Regeln zur Benennung eines Gegenstands können auch an unterschiedlichen Hierarchieniveaus verschieden sein, und die Regeldatei kann auch Übersetzungsregeln für die Hierarchieniveaus enthalten.One or more of the tools can also be one nested hierarchy of material related Components or other objects have different names for the same Object at different levels in the hierarchy be used. A rules file is provided that at least translation entries for the names of the different hierarchy levels, these Rule file is used to give the appropriate name for an object at a given hierarchical level to obtain. The rules for naming an item can also at different hierarchy levels can be different, and the rules file can also Translation rules for the hierarchy levels included.
Eine Informationseingabe kann von einem Benutzer auch für zumindest einige Tools gefordert werden. Derartige Eingaben können Daten- oder Steuereingaben oder Eingaben bezüglich grafischer Signalformen sein. Für Daten- und Steuereingaben stellt eine Regelliste, die in einer interpretativen Ausdehnungssprache geschrieben ist, Standardeingaben für jede Stufe zur Verfügung, in welcher derartige Eingaben für jedes Tool erforderlich sind. Ist ein Tool auf einer Stufe, in welcher derartige Eingaben erforderlich sind, so werden die Standardeingaben für diese Stufe dem Benutzer angezeigt. Der Benutzer kann Änderungen der Standardeingaben vornehmen, und die Standardeingaben in der vom Benutzer modifizierten Weise werden dem System oder dem Tool mitgeteilt. Die Standardeingabeanzeige kann auch den Benutzer bezüglich Gegenständen auffordern, welche der Benutzer als Eingaben in einer gegebenen Stufe des Tools hinzufügen muß, wobei weiterhin der Betriebsablauf des Tools solange gesperrt ist, bis der Benutzer diese geforderten Eingaben vornimmt, und kann auch den Benutzer bezüglich wahlweiser Gegenstände auffordern, die der Benutzer als Eingaben an der vorgegebenen Stufe in dem Tool zufügen kann.A user can also enter information for at least some tools are required. Such Inputs can be data or control inputs or inputs regarding graphical waveforms. For data and Tax input represents a rule list that is in a interpretive language of expansion is written, Standard inputs are available for each level at which such inputs are required for each tool. Is a tool on a level in which such inputs are required, the standard entries for this level is displayed to the user. The user can Make changes to the standard inputs, and the Standard inputs in the way modified by the user are communicated to the system or tool. The Standard input display can also refer to the user Request objects which the user inputs at a given stage of the tool, where the operation of the tool continues to be blocked until the user makes these required entries, and can also provide the user with more options Request items that the user enters as inputs can add to the given level in the tool.
Für grafische Signalformen oder ähnliche Eingaben sind Tabellen vorgesehen, welche die verschiedenen Digitalzustände einzugebender Signalformen festlegen und die logische Regeln für die Behandlung oder die Wechselwirkung mit derartigen Signalformen festlegen. Vom Benutzer eingegebene, erzeugte oder Standard-Signalformanzeigen können angezeigt werden, unter Verwendung der gespeicherten Digitalzustandsinformation, und Befehle von unterschiedlichen Quellen können bezüglich der Signalform oder anderer Grafiken ausgeführt werden, unter Verwendung, soweit erforderlich, der gespeicherten, festgelegten Zustände und logischen Regeln.For graphical waveforms or similar inputs Tables provided which the different Define digital states of waveforms to be entered and the logical rules for treatment or the Interact with such waveforms. From User entered, created or Standard waveform displays can be viewed at Use of the stored digital status information, and commands from different sources can the waveform or other graphics are executed, using, if necessary, the stored, defined states and logical rules.
Die Erfindung wird nachstehend anhand zeichnerisch dargestellter Ausführungsbeispiele näher erläutert.The invention is illustrated below with reference to drawings illustrated embodiments explained in more detail.
Es zeigt: It shows:
Fig. 1 ein schematisches Blockschaltbild eines Systems, bei welchem sich die erfindungsgemäße Lehre einsetzen läßt; Fig. 1 is a schematic block diagram of a system in which the teaching of the invention can be used;
Fig. 2 ein Diagramm mit einer Darstellung verschiedener, Dateien, die gemäß einer bevorzugten Ausführungsform der Erfindung gespeichert sein können; Fig. 2 is a diagram showing a display of various files that a preferred embodiment of the invention may be stored in accordance with;
Fig. 3 ein Flußdiagramm eines beispielhaften Vorgangs, der unter Verwendung der Lehren der vorliegenden Erfindung durchgeführt werden kann; Fig. 3 is a flowchart of an exemplary process that can be carried out using the teachings of the present invention;
Fig. 3A eine Darstellung detaillierterer Schritte zur Durchführung einer der in Fig. 3 gezeigten Funktionen; FIG. 3A is a diagram showing more detailed steps for performing the functions shown in Fig. 3;
Fig. 4 ein Flußdiagramm des grundlegenden Epic-Prozesses, der zur Steuerung und Handhabung bei der Durchführung einer bevorzugten Ausführungsform der Erfindung eingesetzt werden kann; Figure 4 is a flow diagram of the basic Epic process that can be used for control and handling in practicing a preferred embodiment of the invention;
Fig. 5 ein Diagramm mit einer Erläuterung des Standardanzeigeformats für eine bevorzugte Ausführungsform der Erfindung; Fig. 5 is a diagram explaining the standard display format for a preferred embodiment of the invention;
Fig. 6A und 6B zusammen einen erläuternden Befehlssatz für die Epic-Regeldatei, einschließlich zweier erläuternder Makros, für eine bevorzugte Ausführungsform der Erfindung; 6A and 6B together an explanatory instruction set for the Epic-rule file, including two illustrative macros, for a preferred embodiment of the invention.
Fig. 7 ein Flußdiagramm für den Prozeß der Einrichtung eines "Bildschirms" ("Rahmens") zur Verwendung bei einem allgemeinen Umbenennungsvorgang gemäß einer bevorzugten Ausführungsform der Erfindung; Figure 7 is a flow diagram for the process of setting up a "screen" for use in a general renaming process in accordance with a preferred embodiment of the invention;
Fig. 8 ein Flußdiagramm von Routinen zum Hinzufügen bestimmter Information zu einem "Bildschirm" und zur Wiedergewinnung dieser Information von diesem; Figure 8 is a flow diagram of routines for adding certain information to and retrieving certain information from a "screen";
Fig. 9 ein Flußdiagramm der allgemeinen Umbenennungsroutine; Fig. 9 is a flowchart of the general renaming routine;
Fig. 10 ein Flußdiagramm eines Vorgangs zum Erhalten eines Originalnamens aus einem erzeugten Namen in den allgemeinen Umbenennungsroutinen; FIG. 10 is a flowchart of a procedure for obtaining an original name from a name generated in the general rename routines;
Fig. 11A und 11B Flußdiagramme zur Erzeugung einer Alias-Datei bzw. das Lesen einer Alias-Datei; FIG. 11A and 11B are flow charts for generating an alias file or the reading of an alias file;
Fig. 12 ein Flußdiagramm einer auf Regeln basierenden Schnittstellenroutine; FIG. 12 is a flowchart of a rule-based interface routine;
Fig. 12A ein Beispiel eines Eintrags in einer auf Regeln basierenden (rbi) Regeldatei; FIG. 12A is an example of an entry (rbi) in a rules-based policy file;
Fig. 13 ein Flußdiagramm einer Designüberprüfungs-(dv)Routine, die als Benutzerschnittstelle zum Sammeln von Informationen zur Verwendung in verschiedenen Tools dient; FIG. 13 is a flowchart of a Designüberprüfungs- (dv) routine, which serves as a user interface to collect information for use in various tools;
Fig. 13A einen beispielhaften Abschnitt einer dv-Regeldatei; FIG. 13A is an exemplary portion of a dv control file;
Fig. 14 eine erläuternde Anzeige zur Verwendung mit der dv-Routine; Fig. 14 is an explanatory display for use with the dv routine;
Fig. 15 ein Flußdiagramm einer interaktiven Grafikroutine, die als Wavedit bezeichnet wird; FIG. 15 is a flowchart of an interactive graphics routine, which is referred to as WAVEdit;
Fig. 16 ein detaillierteres Flußdiagramm des Schrittes "Lies Konfigurationsdateien" von Fig. 15; Fig. 16 is a more detailed flow diagram of the "Read Configuration Files" step of Fig. 15;
Fig. 17 ein detaillierteres Flußdiagramm des Schrittes "Führe den Befehl aus" von Fig. 15, dargestellt für einen beispielhaften Befehl; FIG. 17 is a more detailed flowchart of the "execute the command" step of FIG. 15, shown for an exemplary command;
Fig. 18 ein detaillierteres Flußdiagramm des Schrittes "Zeichne Anzeige" von Fig. 15; und Fig. 18 is a more detailed flow chart of the "Draw Display" step of Fig. 15; and
Fig. 19 ein Flußdiagramm von Vorgängen, die in der Wavedit-Routine durchgeführt werden, wenn ein "Aussteigen"-Befehl empfangen wird. Shows a flow chart of operations that are performed in the WAVEdit routine when a "Getting Off" command is received. 19th
In Fig. 1 weist ein System 20, in welchem das Verfahren und die Vorrichtung gemäß der Erfindung ausgeführt werden können, einen Prozessor 22 zum Realisieren einer Rechen-, Prüf-, bzw. Umsetzeinrichtung mit ausreichender Kapazität auf, um die verschiedenen Funktionen gemäß der vorliegenden Erfindung durchzuführen. Ein geeigneter Prozessor kann beispielsweise ein Sparc-System sein, welches von Sun Microsystems hergestellt wird. Der Prozessor weist typischerweise verschiedene Eingabegeräte auf, beispielsweise eine Tastatur 24 und/oder eine Maus 26 jeweils als Eingabeeinrichtung, die von einem Benutzer betätigt werden können. Eine Speichereinrichtung bzw. Massenspeichervorrichtung 28, die irgendeine Standardmassenspeichereinheit sein kann, ist zum Speichern verschiedener Dateien vorgesehen, die bei dem System verwendet werden, und eine Anzeigevorrichtung 30, beispielsweise eine übliche Kathodenstrahlröhrenanzeige (CRT) kann auf übliche Weise mit dem Prozessor 22 über eine Schnittstelle verbunden sein, um verschiedene Bildschirmdarstellungen zur Verfügung zu stellen, die von dem System genutzt werden. Derartige Bildschirmanzeigen können Menüs von Ikons oder andere Menüs enthalten, aus welchen unter Verwendung der Maus 26, der Tastatur 24 oder anderer Standardeingabegeräte auf bekannte Weise Auswahlen getroffen werden können, und können auch alphanumerische Anzeigen unterschiedlicher Dateien und von Daten enthalten, die von dem System verwendet werden, und verschiedene Grafikanzeigen einschließlich schematischer Diagramme.In Fig. 1 20, a system in which the method and apparatus of the invention can be made according to, a processor 22 for realizing a computing, test, and conversion means having sufficient capacity to perform the various functions of the present To implement invention. A suitable processor can be, for example, a Sparc system, which is manufactured by Sun Microsystems. The processor typically has various input devices, for example a keyboard 24 and / or a mouse 26 each as an input device, which can be operated by a user. A storage device or mass storage device 28 , which may be any standard mass storage device, is provided for storing various files used in the system, and a display device 30 , such as a conventional cathode ray tube (CRT) display, may interface with the processor 22 in a conventional manner connected to provide various screens that are used by the system. Such screen displays may include menus of icons or other menus from which selections can be made using mouse 26 , keyboard 24 or other standard input devices in a known manner, and may also include alphanumeric displays of various files and data used by the system and various graphic displays including schematic diagrams.
Die Programme und Dateien, welche einen Teil der vorliegenden Erfindung bilden, können dazu verwendet werden, die zeitliche Abfolge verschiedener Computerprogramme zu steuern und zu behandeln, die auch nachstehend als Softwaretools bezeichnet werden, und auf dem Prozessor 22 laufen, ebenso wie Software, die dazu ausgelegt ist, den Betrieb verschiedener anderer Geräte zu steuern oder mit diesen zusammenarbeiten, die in dem System verwendet werden, einschließlich - jedoch nicht hierauf beschränkt - Designgeräte 32, Entwurfsgeräte 34, Herstellungsgeräte 36 und Untersuchungsgeräte 38. Die externen Geräte können an den Prozessor 22 über einen oder mehrere Standardeingabe/Ausgabebusse 40 angeschlossen sein. Sämtliche Geräte auf dem Bus 40 können sich an einem einzigen Ort befinden, oder es können einige der Geräte an unterschiedlichen Orten angeordnet sein und mit dem Prozessor 22 über ein Netzwerksystem oder eine andere geeignete Kommunikationseinrichtung verbunden sein. The programs and files that form part of the present invention can be used to control and handle the timing of various computer programs, also referred to below as software tools, that run on processor 22 , as well as software that does so is configured to control or cooperate with the operation of various other devices used in the system, including, but not limited to, design devices 32 , design devices 34 , manufacturing devices 36, and inspection devices 38 . The external devices may be connected to processor 22 via one or more standard input / output buses 40 . All of the devices on bus 40 may be in a single location, or some of the devices may be located in different locations and connected to processor 22 via a network system or other suitable communication device.
Fig. 3 zeigt einen typischen Prozeß, der unter Verwendung des in Fig. 1 gezeigten System durchgeführt werden kann, und unter Verwendung der erfindungsgemäßen Lehren. In diesem Fall wird die Erfindung dazu eingesetzt, eine gedruckte Schaltungsplatine (PCB) zu entwerfen und herzustellen. Der Benutzer kann den Prozeß dadurch beginnen, daß er "Erzeuge Design" aus einem geeigneten Menü auswählt, welches auf der Anzeige 30 dargestellt wird (Schritt 50). Dies kann veranlassen, daß ein Makro aus dem Speicher 28 auf eine noch zu beschreibende Weise ausgewählt wird, welches bestimmte Verwaltungsfunktionen durchführt, und kann dann zum Aufrufen eines geeigneten Tools führen, nämlich "Schema aufbauen". Dies ist durch den gestrichelten Kasten 52 angedeutet. Der erste Schritt bei diesem Vorgang kann darin bestehen, ein Tool aufzurufen, welches zur Erzeugung einer Schemazeichnung führt (Schritt 54). Als Teil dieses Schrittes kann der Benutzer die Art der Schaltung angeben, die entworfen werden soll, und das System kann eine Schaltung zur Durchführung einer derartigen Funktion anzeigen. Der Benutzer kann entweder diese Schaltung benutzen und mit dem Schritt 54 fortfahren, um die gezeigte Schemazeichnung zu überarbeiten, oder kann angeben, daß er seine eigene Schemazeichnung erzeugen möchte, und in diesem Fall wird ein unterschiedliches Tool aufgerufen, welches es dem Benutzer gestattet, eine Schemazeichnung von Grund auf aufzubauen. Figure 3 shows a typical process that can be performed using the system shown in Figure 1 and using the teachings of the invention. In this case, the invention is used to design and manufacture a printed circuit board (PCB). The user can begin the process by selecting "Create Design" from an appropriate menu that is displayed on the display 30 (step 50 ). This can cause a macro to be selected from memory 28 in a manner to be described which performs certain management functions and can then result in the calling of an appropriate tool, namely "build schema". This is indicated by the dashed box 52 . The first step in this process can be to call a tool that leads to the creation of a schematic drawing (step 54 ). As part of this step, the user can specify the type of circuit to be designed and the system can display a circuit to perform such a function. The user can either use this circuit and proceed to step 54 to revise the schematic drawing shown, or can indicate that he wants to create his own schematic drawing, and in this case a different tool is called which allows the user to create one To build a schematic drawing from scratch.
Hat der Benutzer die Erzeugung einer Schemazeichnung beendet, so kann dann das System mit dem Schritt 56 fortfahren, um ein geeignetes Makro aufzurufen, welches ein geeignetes Softwaretool oder Tools aufruft, um eine Überarbeitung der Schemazeichnung zu gestatten. Sobald eine geeignete Schemazeichnung erzeugt und überarbeitet wurde, geht der Betriebsablauf mit dem Schritt 58 weiter, in welchem geeignete Makros und Tools aufgerufen werden, welche veranlassen, daß die Schemazeichnung zusammengepackt wird, und geht dann mit dem Schritt 60 weiter, um das Design zu überprüfen. Der Überprüfungsschritt kann den Aufruf geeigneter Tools umfassen, um sowohl die Logik der Schemazeichnung als auch deren Elektronikbestandteile zu überprüfen. Fig. 3A, die etwas später beschrieben wird, erläutert verschiedene Schritte, die während des Überprüfungsschrittes 60 ausgeführt werden können. Wenn während des Überprüfungsschrittes 60 festgestellt wird, daß ein Fehler bezüglich der Logik oder der Elektronikbauteile vorliegt, so kann der Betriebsablauf zum Schritt 56 zurückkehren, um eine weitere Überarbeitung der Schemazeichnung zur Überwindung eines derartigen Problems durchzuführen.If the user has finished creating a schematic drawing, the system can then proceed to step 56 to call a suitable macro which calls a suitable software tool or tools to allow the schematic drawing to be revised. Once an appropriate schematic has been created and revised, the process proceeds to step 58 where appropriate macros and tools are called which cause the schematic to be packaged together and then proceeds to step 60 to check the design . The checking step can include the call of suitable tools to check both the logic of the schematic drawing and its electronic components. Fig. 3A, the bit will be described later, illustrates various steps that can be performed during the verification step 60th If it is determined during verification step 60 that there is a logic or electronic component failure, the flow of operations may return to step 56 to further revise the schematic to overcome such a problem.
Sobald das Design überprüft wurde, kann der Benutzer entweder davon in Kenntnis gesetzt werden, daß das Design überprüft wurde, und dann zu möglichen nächsten Schritten geführt werden, oder das System kann vorzugsweise zum Schritt 62 übergehen, um die PCB aufzubauen. Der gestrichelte Kasten 64 erläutert verschiedene Schritte, die während des Vorgangs "PCB-Aufbauen" durchgeführt werden können. Für jeden dieser Schritte wird ein geeignetes Makro aufgerufen, was wiederum dazu führt, daß geeignete Tools aufgerufen werden, um die Funktion durchzuführen. Die beispielhaften Funktionen, die für die Funktion des Aufbaus der PCB gezeigt sind, umfassen eine Festigung der Platine, Schritt 66, Anordnen von Bauteilen auf der Platine, Schritt 68, Verlegen von Verdrahtungen für die Platine, Schritt 70, und Rückseitenbeschriftung, Schritt 72, wenn irgendeine Änderung vorgenommen wird. Once the design has been verified, the user can either be informed that the design has been verified and then guided to possible next steps, or the system can preferably proceed to step 62 to build the PCB. The dashed box 64 explains various steps that can be performed during the "PCB assembly" process. A suitable macro is called for each of these steps, which in turn means that suitable tools are called to carry out the function. The exemplary functions shown for the PCB assembly function include mounting the board, step 66 , placing components on the board, step 68 , routing wiring for the board, step 70 , and backing, step 72 , if any change is made.
Wenn in der Hinsicht während des Schrittes 70 ein Problem auftritt, daß es nicht möglich ist, Verdrahtungswege anzuordnen, so kann der Betriebsablauf zum Schritt 66 zurückkehren, um eine erneute Festlegung der Platine vorzunehmen, um so das Problem zu überwinden. Wenn weiterhin Probleme auftreten, so kann es entsprechend nötig werden, zum Schritt 56 zurückzukehren, um das ursprüngliche Design zu überarbeiten, so daß eine einfachere Anordnung und ein einfacherer Aufbau erreicht werden. Im Idealfall führt die Beendigung jedes der Schritte 66 bis 72 zum Aufruf der geeigneten folgenden Schritte.If a problem arises during step 70 that it is not possible to arrange wiring paths, the process flow can return to step 66 to redefine the board so as to overcome the problem. If problems continue to occur, it may be necessary to return to step 56 to revise the original design so that a simpler arrangement and structure are achieved. Ideally, completing each of steps 66 through 72 will result in the appropriate subsequent steps being called.
Sobald der Schritt 64 des Aufbaus der PCB erfolgreich abgeschlossen ist, kann der Betriebsablauf automatisch das erste Makro aufrufen, welches zur Durchführung des Schrittes 74, der Herstellung der PCB erforderlich ist. Alternativ hierzu kann die Beendigung des Schrittes 64 zum Aufbau der PCB nur zu einer geeigneten Anzeige auf der Anzeigevorrichtung 30 führen, um den Benutzer darüber zu benachrichtigen, daß das System dazu bereit ist, die Herstellung der Platine zu beginnen. Der Schritt der Herstellung der PCB kann die Schritte umfassen, die in dem gestrichelten Kasten 66 angegeben sind. Diese Schritte umfassen die Schöpfung der Platine aus der während der Schritte 64 und 78 geschaffenen Zeichnung, das Bohren erforderlicher Löcher in die Platine, Schritt 80, und das Hineinfügen oder Einstopfen der Bauteile in die Platine, Schritt 82. Die Makros zur Durchführung der verschiedenen Schritte 78, 80 und 82 können an geeigneten Punkten veranlassen, daß verschiedene Herstellungsgeräte 36 eingesetzt werden, einschließlich der Bereitstellung erforderlicher Steuereingaben und Dateneingaben für diese Geräte, so daß die Ausrüstung ordnungsgemäß arbeitet. Once step 64 of building the PCB is successfully completed, the operational flow can automatically invoke the first macro required to complete step 74 of manufacturing the PCB. Alternatively, completing step 64 of building the PCB can only result in an appropriate display on display 30 to notify the user that the system is ready to begin manufacturing the board. The step of manufacturing the PCB may include the steps indicated in dashed box 66 . These steps include creating the board from the drawing created during steps 64 and 78 , drilling required holes in the board, step 80 , and inserting or plugging the components into the board, step 82 . The macros for performing steps 78 , 80 and 82 may, at appropriate points, cause various manufacturing devices 36 to be used, including providing necessary control and data inputs for those devices so that the equipment operates properly.
Hierbei kann auch eine Steuerung der Geräte für den automatischen Transport der Platine zwischen verschiedenen Bearbeitungsgeräten je nach Erfordernis vorgesehen werden.Control of the devices for the automatic transport of the board between different Processing equipment can be provided as required.
Wenn während des Schrittes 76 Prototyp-Platinen hergestellt wurden, müssen die Platinen geprüft werden. Dies wird während des Schrittes 84 durchgeführt und kann abhängig von den verwendeten Geräten entweder mit denselben Geräten durchgeführt werden, auf welchen die Platine hergestellt wird, wobei dann die auf dem Prozessor 22 laufenden Makros das System dazu veranlassen können, automatisch eine Prüfung der Platinen durchzuführen, wenn die Herstellung der Platinen beendet ist, jedoch können die Platinen auch auf getrennten Geräten geprüft werden. Im letztgenannten Fall müssen die Platinen entweder automatisch zu derartigen anderen Geräten transportiert werden, in Reaktion auf geeignete Makros, die auf dem Prozessor 22 laufen, oder der Prozessor muß in einen Haltezustand versetzt werden, den Benutzer auffordern, die Platine zu Prüfgeräten zu bewegen, und damit weitergehen, daß er geeignete Makros zum Steuern der Prüfvorgänge erst dann aufruft, wenn der Benutzer angibt, daß sich die Platine in einer geeigneten Prüfstation befindet. Wenn die Platinen einen Versuch nicht erfolgreich durchlaufen, so kann abhängig von dem festgestellten Problem der Prozeß zum Schritt 56, zum Schritt 66, zum Schritt 78 oder zu irgendeinem anderen der Zwischenschritte zurückgehen, in welchem die Prüfung ergeben hat, daß eine Schwierigkeit existiert, die behoben werden muß. Das System würde dann das Problem korrigieren, entweder unter Verwendung von in dem System bereitgestellten Regeln, oder dadurch, daß es den Benutzer auffordert Eingaben einzugeben. Sobald die Platine erfolgreich geprüft wurde, kann das System dann die Versendung der Platine im Schritt 86 steuern, falls dies gewünscht ist. If 76 prototype boards were made during step, the boards must be checked. This is carried out during step 84 and, depending on the devices used, can either be carried out with the same devices on which the board is produced, in which case the macros running on the processor 22 can then cause the system to automatically check the boards, when the manufacture of the boards is finished, however, the boards can also be checked on separate devices. In the latter case, the boards must either be automatically transported to such other devices in response to suitable macros running on the processor 22 , or the processor must be put on hold, prompting the user to move the board to test devices, and continue to call appropriate macros to control the test operations only when the user indicates that the board is in an appropriate test station. If the boards fail an attempt, depending on the problem identified, the process may go back to step 56 , step 66 , step 78, or any of the intermediate steps in which the test has determined that there is a difficulty that exists must be remedied. The system would then correct the problem, either using rules provided in the system or by prompting the user for input. Once the board has been successfully checked, the system can then control the shipping of the board in step 86 , if so desired.
Hieraus wird deutlich, daß zumindest theoretisch durch Betätigung einer einzigen Steuerung mit geeigneten Makros das System veranlassen kann, die gesamte Sequenz von in Fig. 3 gezeigten Vorgängen durchzuführen, und den Benutzer je nach Erfordernis zur Eingabe bestimmter Eingaben auffordern kann, oder bestimmte Tätigkeiten vorzunehmen, soweit erforderlich. Daher könnte das System von einer Bedienungsperson benutzt werden, welche geringe Kenntnis des Systems oder der verschiedenen, hierauf laufenden Tools aufweist, die jedoch gute Kenntnisse im Design und der Konstruktion von PC-Platinen hat. Selbst diese Kenntnisse müssen nicht erschöpfend sein, da das System Standardeingaben in den meisten Fällen zur Verfügung stellen kann, in welchen Eingaben erforderlich sind, so daß die von dem Benutzer geforderten Eingaben recht begrenzt sein können.From this it becomes clear that, at least theoretically, by actuating a single control with suitable macros, the system can cause the entire sequence of processes shown in FIG. 3 to be carried out and, depending on the requirements, the user can be given certain inputs or can carry out certain activities, where necessary. Therefore, the system could be used by an operator who has little knowledge of the system or the various tools running on it, but who has good knowledge of the design and construction of PC boards. Even this knowledge need not be exhaustive, since in most cases the system can provide standard inputs in which inputs are required, so the inputs required by the user can be quite limited.
Viele der Softwaretools, die zur Durchführung der verschiedenen, in Fig. 3 gezeigten Funktionen erforderlich sind, stammen von unterschiedlichen Verkäufern und können bezüglich der Sprache, der Namen, des Formats und anderer Faktoren inkompatibel sein. Diese Programme können auch mit den grundlegenden Steuerprogrammen inkompatibel sein, die auf dem Prozessor 22 ablaufen. Zur Überwindung dieses Problems weist das System die Fähigkeit auf, automatisch Interpretationen und Übersetzungen durchzuführen, wie dies für Informationsübertragungen zwischen verschiedenen inkompatiblen Softwaretools erforderlich ist, und auch zur Durchführung der erforderlichen Interpretationen und Übersetzungen für Datenübertragungen zwischen der Systemsoftware, die auf dem Prozessor 22 läuft, und verschiedenen Softwaretools, die hiermit inkompatibel sind. Alle diese Datenübertragungen werden auf eine Weise durchgeführt, die nachstehend beschrieben wird, und die sowohl für den Benutzer des Systems als auch für die verschiedenen Softwaretools durchsichtig ist.Many of the software tools required to perform the various functions shown in Figure 3 come from different vendors and may be incompatible in terms of language, name, format, and other factors. These programs may also be incompatible with the basic control programs running on processor 22 . To overcome this problem, the system has the ability to automatically perform interpretations and translations as required for information transfers between various incompatible software tools, and also to perform the required interpretations and translations for data transfers between the system software running on processor 22 . and various software tools that are incompatible with this. All of these data transfers are performed in a manner which is described below and which is transparent to both the user of the system and the various software tools.
Das System weist darüber hinaus, wie nachstehend noch genauer erläutert, die Fähigkeit auf, den Benutzer zu Eingaben aufzufordern, wenn Eingaben für ein Softwaretool erforderlich sind, welches ausgeführt wird. Es ist möglich, in vielen Fällen Standardeingaben zur Verfügung zu stellen, die von dem System benutzt werden, wenn der Benutzer diese Eingaben nicht ändert, wodurch der Dateneingabevorgang für den Benutzer wesentlich vereinfacht wird.The system also points as below explained in more detail the ability to the user Prompt for input when input for a software tool required, which one is executed. It is possible, in many cases standard inputs are available to be used by the system when the User does not change these entries, which causes the Data entry process essential for the user is simplified.
Fig. 3A erläutert eine detailliertere Betriebsablaufsequenz, die durchgeführt werden kann, wenn der Überprüfungsschritt 60 von Fig. 3 durchgeführt wird. In Fig. 3A besteht der erste derartige Schritt darin, eine "Designregelüberprüfung" bezüglich der elektronischen Schemazeichnung durchzuführen, die während der Schritte 54, 56 und 58 erzeugt wurde. "Designregelüberprüfung" ist ein Softwaretool, welches für das System verfügbar ist, um die Logik oder die Elektronik der Schemazeichnung zu überprüfen. Das Makro, welches im Zusammenhang mit dem Ablauf der Designregelüberprüfung aufgerufen wird, würde auch die Erlangung oder das Bereitstellen erforderlicher Eingaben für dieses Softwaretool steuern, in dem Ausmaß, in welchem derartige Eingaben erforderlich sind, und würde auch irgendwelche Übersetzungen steuern, die zur Information erforderlich sind, oder Befehle, welche diesem Softwaretool zur Verfügung gestellt werden. FIG. 3A illustrates a more detailed operational sequence that can be performed when review step 60 of FIG. 3 is performed. In Fig. 3A, the first such step is to perform a "design rule check" on the electronic schematic drawing generated during steps 54 , 56, and 58 . "Design Rule Check" is a software tool available to the system to check the logic or electronics of the schematic drawing. The macro that is called in connection with the design rule checking process would also control the acquisition or provision of required input for this software tool, to the extent that such input is required, and would also control any translations required for information or commands that are made available to this software tool.
Wenn der Vorgang der Designregelüberprüfung fertig ist, so führt das System eine Überprüfung durch, um festzustellen, ob die Designüberprüfung erfolgreich beendet wurde. Wird festgestellt, daß die Designüberprüfung erfolgreich festgestellt wurde, dann ruft das System das Softwaretool mit dem Titel "Signalnetzlistenextraktor für einen digitalen Simulator" auf. Wiederum werden je nach Erfordernis Eingaben bereitgestellt und Übersetzungen durchgeführt. Wenn der Extraktor korrekt extrahiert, dann ruft das System ein Softwaretool mit dem Namen "digitaler Simulator" auf. Das "Simulator"-Tool wird unter Verwendung eines Verhaltenssteuermakros ablaufen gelassen, welches eines der Makros des Steuersystems sein kann, die auf dem Prozessor 22 laufen oder ein getrenntes Softwaretool sein kann. Die Ergebnisse des Simulators werden angezeigt unter Verwendung eines getrennten Softwaretools mit dem Namen "Elektronischer Signalwelleneditor". Alle Fehler, die in der geprüften Entwurfsdatei für die elektronische Schemazeichnung gefunden werden, werden hervorgehoben. Dies kann unter Verwendung eines Makros in dem Basissystem erfolgen, oder es kann für diesen Zweck ein getrenntes Softwaretool aufgerufen werden. Die Hervorhebung, die beispielsweise dadurch vorgenommen werden kann, daß die Leitung, das Bauteil oder ein anderes Schaltungselement, in welchem ein Problem ermittelt wurde, blinkend dargestellt wird, benachrichtigt den Benutzer von diesem potentiellen Problem.When the design rule review process is complete, the system checks to see if the design review was successfully completed. If it is determined that the design check has been successfully determined, the system calls the software tool with the title "Signal network list extractor for a digital simulator". Again, inputs are provided and translations are carried out as required. If the extractor extracts correctly, the system calls a software tool called "digital simulator". The "simulator" tool is run using a behavior control macro, which may be one of the control system macros running on processor 22 or a separate software tool. The results of the simulator are displayed using a separate software tool called "Electronic Signal Wave Editor". Any errors found in the verified electronic schematic drawing design file are highlighted. This can be done using a macro in the base system, or a separate software tool can be called up for this purpose. The highlighting, which can be done, for example, by the line, the component or another circuit element in which a problem has been identified flashing, notifies the user of this potential problem.
Der Benutzer kann dann Schritte unternehmen, um das Problem zu korrigieren, oder das System selbst kann unter Verwendung von in einem Makro bereitgestellten Regeln entweder dem Benutzer mögliche Lösungen für das Problem vorschlagen oder unter Verfolgung bereitgestellter Regeln eine geeignete Korrektur in der Schemazeichnung vornehmen, um das Problem zu korrigieren. The user can then take steps to do this Correct problem, or the system itself can be under Use rules provided in a macro either the user has possible solutions to the problem propose or follow provided rules make a suitable correction in the schematic drawing, to correct the problem.
Falls der Extraktor nicht korrekt extrahiert hat, dann wird der Benutzer auf geeignete Weise über den Signalnetzlistenextraktorfehler informiert. Wie bei dem Simulator, kann das System auch hier mögliche Korrekturen für den Fehler vorschlagen oder es unternehmen, den Fehler selbst zu korrigieren. Entsprechend wird, wenn die Designüberprüfung nicht erfolgreich beendet wurde, der Benutzer über Verletzungen der Regel für das elektronische Design informiert, und das System kann wiederum eine Anzeige möglicher Korrekturen zur Verfügung stellen oder unter Verwendung von Regeln versuchen, das Problem selbst zu korrigieren. Wenn der Überprüfungsvorgang beendet ist, so kehrt das System zum schematischen Editor zurück, geht mit dem Schritt 62 zum Aufbau der PCB weiter oder nimmt eine andere geeignete Austrittsaktion vor.If the extractor has not extracted correctly, then the user is appropriately informed of the signal network list extractor error. As with the simulator, the system can suggest possible corrections for the error or undertake to correct the error itself. Accordingly, if the design verification has not been successfully completed, the user is informed of violations of the electronic design rule and the system can again provide an indication of possible corrections or try to correct the problem itself using rules. When the verification process is complete, the system returns to the schematic editor, proceeds to step 62 to build the PCB, or takes another suitable exit action.
Entsprechend den erfindungsgemäßen Lehren werden die verschiedenen Funktionen unter Steuerung eines auf Regeln beruhenden Verwaltungs- und Steuersystems oder Programms durchgeführt, welches nachstehend manchmal als "Epic" bezeichnet wird. Wie nachstehend mit weiteren Einzelheiten erläutert wird, verwendet dieses Programm eine Regeldatei, die für jeden Prozeß Makros enthält. Die Makros steuern das Aufrufen geeigneter Softwaretools in der geeigneten Reihenfolge und steuern auch das Sammeln und die Übertragung von Informationen zwischen verschiedenen Tools sowie zwischen dem System und verschiedenen Tools. Weiterhin steuern die Makros die Leistung erforderlicher Interpretationen/Übersetzungen für Übertragungen zwischen Tools und für Übertragungen zwischen Tools und der Systemsteuersoftware. Insbesondere weist Epic die Fähigkeit auf, inkompatible Softwaretools einzukapseln, so daß alle Datenübertragungen von dem Tool an Epic überprüft und geeignete Interpretationsregeln angewendet werden, bevor das Material, welches übertragen wird, von Epic benutzt wird, und so, daß sämtliche Ausgaben von Epic an das Tool ebenfalls überprüft und erforderliche Interpretationen vorgenommen werden, bevor Material an das Tool zurückgegeben wird. Die Einkapselung ist sowohl für das Softwaretool als auch für den Benutzer vollständig transparent.According to the teachings of the invention various functions under control of one on rules based management and tax system or program performed, which is sometimes referred to below as "Epic" referred to as. As below with more details explained, this program uses a rules file, which contains macros for each process. Control the macros the call of suitable software tools in the appropriate one Order and also control the collecting and the Transfer of information between different tools as well as between the system and various tools. Furthermore, the macros control the performance more necessary Interpretations / translations for transfers between Tools and for transfers between tools and the System control software. In particular, Epic has the Ability to encapsulate incompatible software tools, so that all data transfers from the tool to Epic are checked and appropriate rules of interpretation are applied, before Epic is used, and so that all editions of Epic the tool also checked and required Interpretations are made before material is sent to the Tool is returned. The encapsulation is for both the software tool as well as for the user completely transparent.
Epic verwendet verschiedene Zusatzprogramme, die ihm dabei helfen, die Interpretation und die Datenzusammenstellungsfunktionen durchzuführen. Diese Programme umfassen ein Programm, welches als "GRM" bezeichnet wird, was eine Abkürzung für "General Renaming Module" (allgemeines Umbenennungsmodul) darstellt. Dieses Programm weist unterschiedliche Dateien auf, wobei im allgemeinen zumindest eine Datei für jedes Paar inkompatibler Programme oder Softwaretools vorgesehen ist. Jede GRM-Datei umfaßt mehrere Regeln, die zur Durchführung von Übersetzungen für Namen von der Ursprungssprache zu einer erzeugten Sprache verwendet werden können. Eine Datei kann auch eine Auflistung von Übersetzungen von Namen in der Originalsprache in Namen in der erzeugten Sprache aufweisen. Beispielsweise kann hierdurch angezeigt werden, daß bei einer Eingabe "A" die Ausgabe "a" sein sollte. Derartige Übersetzungslisten könnten in der Datei enthalten sein, welche die ursprünglich bereitgestellten Regeln enthält, oder könnte unter Verwendung der Regeln erzeugt werden, während Übersetzungen durchgeführt werden, und als Alias-Dateien für die zukünftige Benutzung gespeichert werden. GRM kann auch dazu eingesetzt werden, Übersetzungen zwischen unterschiedlichen Hierarchiepegeln eines Designs von demselben oder unterschiedlichen Tools durchzuführen, wenn die auf diesen unterschiedlichen Niveaus verwendeten Namen inkompatibel sind. Epic uses various additional programs to help him do this help the interpretation and the Perform data compilation functions. This Programs include a program called "GRM" is what is an abbreviation for "General Renaming Module "(general renaming module). This Program has different files generally at least one file for each pair incompatible programs or software tools is provided. Each GRM file includes several rules that are used to implement it of translations for names from the original language too a generated language can be used. A File can also be a listing of translations of Names in the original language in names in the generated Have language. For example, this may indicate will be that with an input "A" the output will be "a" should. Such translation lists could be in the file be included, which the originally provided Contains rules, or could be using the rules generated while translations are in progress, and as alias files for future use get saved. GRM can also be used Translations between different hierarchical levels a design from the same or different tools perform when the on these different Names used in the levels are incompatible.
Übersetzungsdateien wären dann für jede derartige Hierarchieumwandlung vorgesehen.Translation files would then be such for each Hierarchy transformation provided.
Ein zweites Programm, welches mit Epic verwendet werden kann, wird manchmal als "RBI" bezeichnet, was eine Abkürzung für "Rools Based Interface" (auf Regeln basierende Schnittstelle) darstellt. Dieses Programm wird dazu eingesetzt, Formatübersetzungen durchzuführen, wenn Programmtools keine kompatiblen Formate aufweisen. Dies kann beispielsweise dann auftreten, wenn ein Softwaretool Information in schematischer Form zur Verfügung stellt, während das andere Softwaretool Information in Netzlistenform verwendet (eine Liste der Bauteile in der Schaltung und der Knoten oder anderer Bauteile, an welches jedes dieser Bauteile angeschlossen ist). Ein Satz von RBI-Regeldateien ist zur Durchführung dieser Funktion vorgesehen.A second program that can be used with Epic , is sometimes referred to as "RBI", which is a Abbreviation for "Rools Based Interface" (on rules based interface). This program will used to perform format translations when Program tools do not have compatible formats. This can occur, for example, when a software tool Provides information in a schematic form, while the other software tool information in Netlist form used (a list of components in the Circuit and the node or other components to which each of these components is connected). A set of RBI rules files is used to perform this function intended.
Ein drittes Programm, welches mit Epic verwendet werden kann, ist die dv-Routine ("Design Verification": Designüberprüfung), die dazu eingesetzt wird, beim Zusammenstellen erforderlicher Information von dem Benutzer oder anderen Quellen für die unterschiedlichen Softwaretools zu helfen, die auf dem System ablaufen. Bestimmte Regeldateien sind auch für dv vorgesehen, und ihre Funktionen werden später erläutert.A third program that can be used with Epic can, is the dv routine ("Design Verification": Design review), which is used at the Gathering required information from that Users or other sources for the different To help software tools that run on the system. Certain rule files are also provided for dv, and their functions will be explained later.
Ein viertes Programm, welches mit Epic verwendet werden kann, ist die Wavedit-Routine, die zur Hilfe beim Zusammenstellen, Erzeugen und Bearbeiten grafischer Eingaben im allgemeinen und insbesondere von Signalformdaten verwendet wird. Zur Verwendung mit dieser Routine sind verschiedene Digitalzustandsdefinitionen und Logikregeln vorgesehen. A fourth program to be used with Epic is the wavedit routine that can help with Compile, create and edit graphic Entries in general and in particular from Waveform data is used. For Use With This Various digital state definitions and are routine Logic rules provided.
Die verschiedenen Regelmakros und Regeldateien, die voranstehend beschrieben wurden, sind ursprünglich beispielsweise auf einer Harddisk oder einer Softdisk gespeichert, die in den Speicher 28 eingeführt werden kann oder ein Teil dieses Speichers ist. Standardregeldateien werden typischerweise von dem Bereitsteller des Systems zur Verfügung gestellt. Die Makros und die Regeldateien sind in einer interpretativen Ausdehnungssprache geschrieben, die sowohl von Menschen als auch von der Maschine lesbar sind. Die Makros und Rulen können in einer existierenden Ausdehnungssprache geschrieben sein, beispielsweise LISP, sind jedoch vorzugsweise in einer speziellen Sprache geschrieben, die speziell für diesen Einsatzzweck angepaßt ist. Die Makros und die Regeln können sämtlich in derselben Sprache geschrieben sein, oder es können unterschiedliche interpretative Ausdehnungssprachen für unterschiedliche einzelne oder mehrere Dateien verwendet werden, so daß in jedem Fall die optimale Sprache verwendet wird. Zwar werden Beispiele für eine geeignete interpretative Ausdehnungssprache bei einigen der folgenden Beispiele erläutert, jedoch stellt die bestimmte, verwendete Sprache keinen Teil der Erfindung dar.The various control macros and control files described above are originally stored, for example, on a hard disk or a soft disk that can be inserted into or part of the memory 28 . Standard rule files are typically provided by the system provider. The macros and the rule files are written in an interpretive extension language that can be read by both humans and the machine. The macros and rules can be written in an existing expansion language, for example LISP, but are preferably written in a special language that is specially adapted for this purpose. The macros and the rules can all be written in the same language, or different interpretive extension languages can be used for different single or multiple files, so that the optimal language is used in each case. While examples of a suitable interpretive extension language are illustrated in some of the following examples, the particular language used does not form part of the invention.
Allerdings ist es wesentlich, daß die verschiedenen Regeln und Makros in einer interpretativen Ausdehnungssprache geschrieben sind, so daß eine Person, die als ein "Toolintegrator" bezeichnet wird, die für den Benutzer arbeitet, die Standardregeln und Dateien überprüfen kann, die von dem System bereitgestellt werden, und Makros und Regeldateien modifizieren, hinzufügen oder subtrahieren kann, wie dies erforderlich ist, um das System an die Anforderungen des Benutzers anzupassen. Derartige Änderungen können vorgenommen werden, wenn das System zuerst empfangen wird, und können von Zeit zu Zeit daraufhin unternommen werden, um Aktualisierungen oder Vergrößerungen des Systems widerzuspiegeln, die zur Korrektur von Fehlern vorgenommen werden, die sich beim Betrieb des Systems ergeben haben, oder um neue Softwaretools in das System zu integrieren. Wichtig ist hierbei, daß nur der Toolintegrator die Änderungen bemerken muß. Sobald er derartige Änderungen in die Regelmakros eingebaut hat, werden derartige Änderungen automatisch von dem System durchgeführt, ohne daß der Systemoperator die Änderungen wahrnehmen muß, oder die Tatsache, daß sie eingegeben wurden. Insoweit derartige Änderungen Eingaben von dem Benutzer erfordern, können Aufforderungen für den Benutzer vorgesehen werden, um sicherzustellen, daß er erforderliche Eingaben zur Verfügung stellt. Falls die Bedienungsperson eine Aufforderung nicht versteht, so kann ein Menü oder, gemäß einer weiteren Zielrichtung des Systemablaufs, eine "Hilfe"-Funktion verfügbar sein, um den Benutzer mit erforderlicher Information zu versorgen.However, it is essential that the different rules and macros in an interpretive language of expansion are written so that a person who acts as a "Tool Integrator" is referred to that for the user works that can check standard rules and files provided by the system, and macros and Modify, add or subtract rule files can as required to connect the system to the Customize user requirements. Such Changes can be made if the system is received first, and may from time to time thereupon be taken to updates or System magnifications reflecting the Correction of errors made in the Operation of the system have resulted, or new ones Integrate software tools into the system. Important is here that only the tool integrator made the changes must notice. Once he made such changes in the Such built-in changes are implemented in control macros automatically performed by the system without the System operator must notice the changes, or the Fact that they were entered. To that extent Changes may require input from the user Prompts are provided to the user ensure that he has required inputs to Provides. If the operator has one Does not understand the prompt, so a menu or, according to a further goal of the system flow, a "Help" function will be available to the user with to provide necessary information.
Auf diese Weise sind derartige Änderungen für den Benutzer vollständig transparent, und alles, was er wissen muß, ist der Prozeß, der er durchführen möchte. Durch Bereitstellung der Makros und der Regel in der interpretativen Ausdehnungssprache können einfach Änderungen einer Datei durchgeführt werden, die dann von dem Toolintegrator oder einer anderen Person, welche die Änderungen vornimmt, überprüft werden können, und können sofort auf dem System ablaufen, ohne daß es erforderlich ist, daß das Programm einem Compiler zugeschickt wird, um kompiliert zu werden, bevor es dem System eingegeben wird, damit es ablaufen kann. Dies vereinfacht wesentlich die Erzeugung und Überprüfung der Regelmakros und Dateien und verringert die Zeit, die dafür erforderlich ist, Umkonfigurierungen in das System einzugeben. Ein System, welches einfach konfigurierbar und umkonfigurierbar durch den Benutzer/Kunden ist, wird auf diese Weise zur Verfügung gestellt.In this way, such changes are for the user completely transparent, and all he needs to know is the process he wants to perform. By Provision of the macros and usually in the interpretive extension language can be simple Changes to a file are made by the tool integrator or another person who Makes changes, can be reviewed, and can immediately run on the system without it being necessary is that the program is sent to a compiler to to be compiled before it is entered into the system so that it can expire. This significantly simplifies the Creation and review of control macros and files and reduces the time it takes To enter configurations into the system. A system, which is easily configurable and reconfigurable by is the user / customer in this way Provided.
Fig. 2 erläutert ein Format, in welchem die verschiedenen Regelmakros und andere voranstehend beschriebene Dateien auf einer Disk oder einem anderen Speichermedium gespeichert werden können, welches dem Benutzer für dieses System zur Verfügung steht. Die exakte Reihenfolge, in welcher die Regeln gespeichert werden, ist nicht kritisch, solange geeignete Adressen oder andere Einrichtungen vorgesehen sind, um ein bestimmtes Makro oder eine bestimmte Datei zurückzuholen, wenn dies erforderlich ist. Figure 2 illustrates a format in which the various control macros and other files described above can be stored on a disc or other storage medium available to the user for this system. The exact order in which the rules are stored is not critical as long as suitable addresses or other means are provided to retrieve a particular macro or file when necessary.
Aus den Fig. 6A und 6B wird zusammengenommen deutlich, daß zu Erläuterungszwecken der erste in der Disk gespeicherte Gegenstand ein Regelmakroabschnitt 90 ist, wobei dieser Abschnitt zusammen mit dem Haupt-Epic-Programm verwendet wird. Dieser Abschnitt beginnt mit einer Vorlaufmarke, welche diesen Abschnitt so bezeichnet, daß er Epic-Regeln enthält. Dann gibt es eine Anzahl an Kommentaren einschließlich bestimmter juristischer Information, beispielsweise Urheberrechtshinweise, und Kommentare an die Benutzer. Ein bestimmter Kommentar könnte den Toolintegrator des Benutzers darüber informieren, daß jedes Softwaretool, welches auf dem System ablaufen soll, in dem Definitionsabschnitt der Epic-Regel-Datei aufgelistet werden muß, oder sonst nicht lauffähig wäre.From FIGS. 6A and 6B taken together clear that for illustrative purposes the first stored in the disc object of a control macro section 90 is, this portion is used together with the main Epic program. This section begins with a leader, which designates this section as containing Epic rules. Then there are a number of comments including certain legal information, such as copyright notices, and comments to users. A specific comment could inform the user's tool integrator that any software tool that is to run on the system must be listed in the definition section of the epic rule file or would otherwise not be executable.
Den Kommentaren folgt ein Definitionsabschnitt für die Softwaretools. In diesem Abschnitt ist jedes Softwaretool, welches auf dem System ablaufen soll, aufgelistet, und verschiedene Information, dieses Tool betreffend, wird bereitgestellt. Windows beispielsweise gibt an, ob das Softwaretool seine eigenen Anzeigen erzeugt, oder ob es Hilfe von dem Betriebssystem erfordert, in diesem Fall dem Epic-System, um Anzeigen zu erzeugen. Der Standardzustand ist der, daß keine Hilfe erforderlich ist, wobei "Window" angezeigt wird, wenn Hilfe erforderlich ist. Der wichtigste Gegenstand bezüglich der vorliegenden Erfindung ist die Anzeige von "Keine Verpackung". Ein Programm, welches "Keine Verpackung" enthält, ist ein Programm, welches mit Epic-Programm kompatibel ist und daher nicht eingekapselt werden muß (es sind keine Interpretationen für Übertragungen zwischen dem Softwaretool und Epic erforderlich). Der Standardzustand ist "Verpackung", was bedeutet, daß jedes Softwaretool, welches nicht die Anzeige "Keine Verpackung" in dem Definitionsabschnitt aufweist, eingekapselt wird. Die anderen Informationen, die in dem Definitionsabschnitt vorgesehen sind, sind Standardbefehlszeilenoptionen für das Tool.The comments are followed by a definition section for the Software tools. In this section, every software tool which should run on the system, listed, and various information regarding this tool provided. Windows, for example, indicates whether that Software tool generates its own ads, or whether it Help from the operating system is required, in this case the Epic system to generate ads. The default state is that no help is needed, with "Window" appears when help is needed. Of the most important subject regarding the present invention is the display of "no packaging". A program, which contains "no packaging" is a program which is compatible with the Epic program and therefore not must be encapsulated (they are not interpretations for transfers between the software tool and Epic required). The default state is "packaging" what means that any software tool that is not the "No packaging" display in the definition section encapsulated. The other information which are provided in the definition section Standard command line options for the tool.
Die nächsten beiden Abschnitte sind die "Anfangssätze" und stellen im wesentlichen die Standardausführung dar, wenn nichts anderes angezeigt wird, was ausgeführt werden soll. In diesem Fall ist die Standardausführung "Epic View", nämlich das Programm, das zur Steuerung von Anzeigen für Epic verwendet wird. "Epic View" veranlaßt, daß eine Anzeige, wie beispielsweise die, die in Fig. 5 gezeigt ist, auf dem Bildschirm in der Standardsituation erscheint.The next two sections are the "Beginning Sentences" and are essentially the standard version unless otherwise indicated what should be done. In this case, the standard version is "Epic View", namely the program that is used to control displays for Epic. "Epic View" causes a display such as that shown in Fig. 5 to appear on the screen in the standard situation.
Den Schluß der Epic-Regeln stellt der Makroabschnitt dar, der mehrere Makros enthält, im allgemeinen eines für jede Funktion, die auf dem System durchgeführt werden soll. Jedes Makro enthält eine Ursprungsbeschreibung in Englisch der Funktion, die von dem Makro durchgeführt wird, hauptsächlich für den Toolintegrator des Benutzers, und einen Satz von Regeln oder Befehlen, die in einer vorbestimmten Reihenfolge ausgeführt werden sollen, um die Funktion des Makros auszuführen. Wie voranstehend erläutert, sind diese in einer interpretativen Ausdehnungssprache beschrieben, die sowohl für den Menschen als auch die Maschine lesbar ist. Das bestimmte Makro, welches in Fig. 6A gezeigt ist, ist für ein Tool mit der Bezeichnung "cadat" bestimmt und führt eine Anzahl von Funktionen unter Verwendung von Routinen durch, die später erläutert werden. Die ersten zwei Holbefehle stellen vorher festgelegte Variablen für den ersten und zweiten Parameter ein, die jeweils in das Makro eingegeben werden. Der nächste Befehl gibt an, daß dann, wenn die Variable "schedit-up" "YES" (Ja) eingestellt ist (als Ergebnis eines vorherigen Vorgangs), eines von zwei Dingen passieren kann. Wurde die Variable "hi-type" vorher auf einen Wert "sim" eingestellt, dann wird eine erste Nachricht unter Beteiligung der Routine dv an das Tool "schedit" geschickt, während dann, wenn "hi-type" nicht auf "sim" eingestellt ist, eine andere Nachricht unter Beteilung der Routine "Wavedit" geschickt wird. Ist "schedit-up" nicht auf "YES" eingestellt, so wird die angezeigte Nachricht an den aufrufenden Prozeß des Makros zurückgeschickt.The end of the Epic rules is the macro section, which contains several macros, generally one for each function to be performed on the system. Each macro contains an original description in English of the function performed by the macro, primarily for the tool integrator of the user, and a set of rules or commands to be executed in a predetermined order to perform the function of the macro. As explained above, these are described in an interpretive language of extension that is readable by both humans and machines. The particular macro shown in Figure 6A is for a tool called "cadat" and performs a number of functions using routines that will be explained later. The first two fetch commands set predefined variables for the first and second parameters, which are each entered in the macro. The next command specifies that if the "schedit - up" variable is set to "YES" (as a result of a previous operation), one of two things can happen. If the "hi - type" variable was previously set to a "sim" value, a first message is sent to the "schedit" tool with the involvement of the dv routine, while if "hi - type" is not set to "sim" is, another message is sent with the involvement of the "Wavedit" routine. If "schedit - up" is not set to "YES", the displayed message is sent back to the macro calling process.
Das in Fig. 6B gezeigte Makro ist ein Makro für die
Routine Packager (pkgr), und zwar würde, obwohl eine
Beschreibung in normalem Englisch der Funktion der Routine
nicht in Fig. 6B vorgesehen ist, das Makro tatsächlich
normalerweise eine derartige Beschreibung zur Verwendung
durch den Programmintegrator enthalten. Packager stellt
ein externes Tool dar, welches zumindest hinsichtlich
einiger Einzelheiten mit Epic inkompatibel ist und daher
eingekapselt werden muß. Wie nachstehend erläutert wird,
wird auf derartige Tools in den "Whilexec"-Tools des
Systems Bezug genommen. Die ersten drei Befehle in diesem
Makro, ebenso wie die für das vorherige Makro, betreffen
die Einstellung bestimmter vorher definierter Variablen
auf angegebene Werte. Der vierte Befehl gibt an, daß dann,
wenn die Variable mit dem Namen "pkgr-file" leer ist, eine
der Variablen, die ursprünglich eingestellt war, eine
Fehlernachricht zurück an den aufrufenden Prozeß geschickt
werden sollte. Anderenfalls wird eine Nachricht an den
aufrufenden Prozeß geschickt, daß das Tool pkgr beginnt.
Die Whilexec-Anzeige sagt, daß dieses Tool eingekapselt
werden soll und daß insbesondere bei der Ausführung dieses
Tools sämtliche Ausgaben von pkgr durch die folgenden
Regeln interpretiert werden:
The macro shown in FIG. 6B is a macro for the Packager (pkgr) routine, and although a description of the routine operation is not provided in FIG. 6B in normal English, the macro would actually normally have such a description for use by included the program integrator. Packager is an external tool that is at least in some details incompatible with Epic and therefore has to be encapsulated. As discussed below, such tools are referenced in the system's "Whilexec" tools. The first three commands in this macro, like those for the previous macro, concern setting certain previously defined variables to specified values. The fourth command indicates that if the variable named "pkgr - file" is empty, one of the variables that was originally set should send an error message back to the calling process. Otherwise a message is sent to the calling process that the tool pkgr starts. The Whilexec display says that this tool should be encapsulated and that, especially when this tool is running, all output from pkgr is interpreted by the following rules:
- 1. Wenn die Textzeile, die von "pkgr" zurückgegeben wird, das Wort "error" (Fehler) enthält, dann wird eine Variable mit dem Namen "pkgr-status" auf "errors" gesetzt.1. If the line of text that is returned by "pkgr" contains the word "error", a variable with the name "pkgr - status" is set to "errors".
- 2. Wenn bei Beendigung des Prozesses "pkgr" der Prozeß mit einem Fehlerstatus verlassen wird, dann schicke eine Nachricht an den aufrufenden Prozeß mit einem Fehler.2. If at the end of the process "pkgr" the process with an error status, then send one Message to the calling process with an error.
- 3. Ist der pkgr-status o. k., dann schließe das Fenster, in welchem Packager gelaufen ist, und schicke eine Nachricht an den aufrufenden Prozeß, daß alles gut abgelaufen ist.3. If the pkgr - status is ok, close the window in which Packager ran and send a message to the calling process that everything went well.
- 4. Anderenfalls lasse das Fenster offen und schicke eine Nachricht, welche einen Fehler angibt.4. Otherwise, leave the window open and send a message indicating an error.
Wie voranstehend erläutert, ist die exakte, in den Makros verwendete Sprache nicht kritisch, und die Beispiele wurden hauptsächlich zu dem Zweck gebracht, um zu erläutern, wie Makros die Abfolge des Betriebs und die Einkapselung eines inkompatiblen Tools steuern können. Als Anlage A ist ein Handbuch mit dem Titel "Schematic Design Tools - Administrative Guide - Theda Revision 1.0" beigefügt, welches insbesondere im Abschnitt 3 eine bestimmte Sprache beschreibt, die für die Makros in der bevorzugten Ausführungsform verwendet wird und weitere Einzelheiten des Betriebs bei der bevorzugten Ausführungsform zur Verfügung stellt. Dieses Dokument sollte nicht gedruckt werden.As discussed above, the exact language used in the macros is not critical, and the examples have been provided primarily to explain how macros can control the sequence of operation and the encapsulation of an incompatible tool. Attached to Appendix A is a manual entitled "Schematic Design Tools - Administrative Guide - Theda Revision 1.0", which describes in section 3 in particular a specific language which is used for the macros in the preferred embodiment and further details of the operation at preferred embodiment. This document should not be printed.
Zwar sind in Fig. 6A und 6B nur zwei Makros gezeigt, jedoch wären normalerweise hunderte oder sogar tausende von Makros in einem bestimmten System vorhanden, wobei die Anzahl der Makros von der Anzahl an Prozessen abhängt, welche das System durchführen können soll.While only two macros are shown in Figures 6A and 6B, there would normally be hundreds or even thousands of macros in a particular system, the number of macros depending on the number of processes that the system should be able to perform.
Abschnitt 92 des Speichers enthält GRM-Dateien für jede Übersetzung, die das System durchführen muß. Eine getrennte GRM-Datei ist für eine Übersetzung vom Tool A zum Tool B und für eine Übersetzung vom Tool B zum Tool A erforderlich. Es gibt daher zwei GRM-Dateien für jeweils zwei bezüglich der Sprache inkompatible Tools, die in dem System verwendet werden. Jede GRM-Datei enthält eine Sequenz von Regeln, die zur Durchführung von Übersetzungen von Namen zwischen den beiden inkompatiblen Tools verwendet werden können. Weiterhin kann eine Auflistung zumindest ausgewählter Namen in dem Ursprungsprogramm zusammen mit den entsprechenden Namen in dem Ausgabeprogramm zur Verfügung gestellt sein.Section 92 of the memory contains GRM files for each translation that the system must perform. A separate GRM file is required for a translation from Tool A to Tool B and for a translation from Tool B to Tool A. There are therefore two GRM files for two language-incompatible tools that are used in the system. Each GRM file contains a sequence of rules that can be used to perform name translations between the two incompatible tools. Furthermore, a list of at least selected names in the original program can be provided together with the corresponding names in the output program.
Abschnitt 94 des Speichers enthält die dv-Regeldateien, welche Regeldateien für die Eingabe von Eingaben oder die Übersetzung von Eingaben für das System darstellen. Diese Dateien enthalten neben anderen Dingen Standardeingaben für jede Stufe in jedem Softwaretool, in welcher Eingaben erforderlich sind. Die Standardanzeige, die durch diese Regeln hervorgerufen wird, kann - falls erforderlich - eine Anzeige enthalten, daß bestimmte Information von dem Benutzer zur Verfügung gestellt werden muß und kann auch eine Anzeige zusätzlicher wahlweiser Information zur Verfügung stellen, die der Benutzer zur Verfügung stellen kann.Section 94 of the memory contains the dv control files, which are control files for the input of input or the translation of input for the system. These files contain, among other things, standard inputs for each level in every software tool, in which inputs are required. The standard display caused by these rules may include, if necessary, an indication that certain information must be provided by the user, and may also provide a display of additional optional information that the user can provide.
Abschnitt 96 enthält Regeldateien für das RBI-Programm, welches von Epic benutzt wird. Diese stellen im wesentlichen Formatübersetzungsregeln für verschiedene Softwaretools dar, die bezüglich des Formats inkompatibel sind. Typischerweise gibt es einen Satz an RBI-Regeln, oder - mit anderen Worten - eine RBI-Regeldatei für jedes Paar von Softwaretools, die bezüglich des Formats inkompatibel sind.Section 96 contains rules files for the RBI program used by Epic. These essentially represent format translation rules for various software tools that are incompatible with regard to the format. Typically, there is a set of RBI rules, or - in other words - an RBI rules file for each pair of software tools that are incompatible with the format.
Abschnitt 98 enthält Dateien zur Verwendung in der Wavedit-Routine. Diese Dateien umfassen Zustandsdefinitionen, Logikregeln, Menüdateien und Befehlsquellendateien zur Verwendung durch die Wavedit-Routine. Der Inhalt und die Funktion jeder dieser Dateien wird später im Zusammenhang mit der Wavedit-Routine erläutert.Section 98 contains files for use in the Wavedit routine. These files include state definitions, logic rules, menu files, and command source files for use by the Wavedit routine. The content and function of each of these files will be explained later in connection with the Wavedit routine.
Wie voranstehend erwähnt, sind sämtliche in Fig. 2 gezeigten Dateien in einer interpretativen Ausdehnungssprache geschrieben, obwohl es nicht erforderlich ist, daß sie alle in derselben interpretativen Ausdehnungssprache geschrieben sind. As mentioned above, all of the files shown in Fig. 2 are written in an interpretive extension language, although it is not necessary that they are all written in the same interpretive extension language.
Fig. 4 ist ein Flußdiagramm der Epic-Hauptroutine, die zur Verwaltung und zur Steuerung des Betriebs des Systems verwendet wird. Wenn der Benutzer die Epic-Routine durch eine geeignete Eingabe in den Prozessor 22 aufruft, so besteht der Schritt 100, der erste Schritt, darin, die Regelmakros zu lesen, einschließlich der Definitionen und anderer Informationen, aus dem Bereich 90 des Speichers 28, und zwar in einen Arbeitsspeicher-RAM (Speicher mit wahlfreiem Zugriff) in dem Prozessor (Schritt 102). Dies ergibt eine Prozeßliste, die für jeden definierten Prozeß gebildet wird, wobei die Liste das Makro für einen derartigen Task enthält und weiterhin einen Raum enthält, in welchem eine Whilexec-Taskliste und eine suspendierte Taskliste für den gegebenen Task oder die gegebene Funktion gespeichert werden können. Die Gründe für die Whilexec- und die suspendierte Taskliste, die Art und Weise ihrer Erzeugung sowie ihre Funktion werden nachstehend erläutert. Während des Schrittes 106 wird eine Taskliste erzeugt, welche die Makros enthält, die vorher in das System eingelesen wurden. Während des Schrittes 108 wird eine Variablenliste erzeugt. Diese Liste bildet die Datenbasis für sämtliche Variablen, beispielsweise die zahlreichen Variablen, die im Zusammenhang mit den Fig. 6A und 6B beschrieben wurden, die von Epic verwendet und gespeichert werden. Daher geben die Schritte 104, 106 und 108 die Ausbildung der verschiedenen Listen an. Entweder während des Schrittes 102, 104, 106 oder 108, oder während des Schrittes 110, währenddessen andere Startfunktionen durchgeführt werden, können verschiedene Syntaxüberprüfungen oder andere Überprüfungen bei den Regeldateien vorgenommen werden, die in das System eingelesen werden, um sicherzustellen, daß sie keine Fehler enthalten. Während die Dateien, insbesondere die vom Hersteller zur Verfügung gestellten, normalerweise in Ordnung sein werden, gibt es auf in dem Stand der Technik bekannte Weise mehrere Arten, auf welche Fehler eingeführt werden können. Es ist daher anzuraten, und dies stellt in der Industrie die normale Praxis dar, Fehlerüberprüfungen durchzuführen, bevor man ein Programm ablaufen läßt. Figure 4 is a flow diagram of the main Epic routine used to manage and control the operation of the system. When the user calls the Epic routine by an appropriate input to processor 22 , step 100 , the first step, is to read the rule macros, including definitions and other information, from area 90 of memory 28 , and to a random access memory (RAM) in the processor (step 102 ). This results in a process list that is formed for each defined process, the list containing the macro for such a task and further containing a space in which a Whilexec task list and a suspended task list for the given task or function can be stored . The reasons for the Whilexec and the suspended task list, the way in which they were created and their function are explained below. During step 106 , a task list is created that contains the macros that were previously read into the system. A variable list is generated during step 108 . This list forms the database for all variables, for example the numerous variables described in connection with FIGS. 6A and 6B that are used and stored by Epic. Steps 104 , 106 and 108 therefore indicate the formation of the various lists. Either during step 102 , 104 , 106 or 108 , or during step 110 , during which other start functions are performed, various syntax checks or other checks can be made on the rule files that are read into the system to ensure that they are not errors contain. While the files, particularly those provided by the manufacturer, will normally be fine, there are several ways known in the art to introduce errors. It is therefore advisable, and this is the normal practice in the industry to do error checking before running a program.
Der Startschritt 110 kann auch einen Aufruf des Standard-Epic-View-Programms umfassen, welches eine Anzeige, beispielsweise die in Fig. 5 gezeigte Anzeige, einschließlich eines Menüs 112 von Ikons, von denen ein beispielhafter Satz auf der rechten Seite des Bildschirms in Fig. 5 gezeigt ist, zur Anzeige auf dem Bildschirm der Anzeige 30 veranlaßt. Der Benutzer nimmt Auswahlen aus dem Menü 112 vor, beispielsweise durch Bewegung eines Cursors (Zeigers) auf ein ausgewähltes Ikon, unter Verwendung einer Maus 26. Jedes Ikon zeigt eine bestimmte Funktion an, zu deren Ausführung das System ausgebildet ist. Die Auswahl eines gegebenen Ikons kann dazu führen, daß zusätzliche Ikons angezeigt werden, oder daß eine andere Art eines Menüs angezeigt wird, aus welchem der Benutzer eine detailliertere Auswahl vornehmen kann, bezüglich der durchzuführenden Funktion. Allerdings nimmt bei der bevorzugten Ausführungsform der Benutzer eine Auswahl von Tasks auf einem relativ hohen Niveau vor, und das System führt Entscheidungen aus, welche bestimmte Tasks betreffen, die durchgeführt werden sollen, um eine derartige Funktion zu erreichen.The start step 110 may also include a call to the standard Epic View program, which includes a display, such as the display shown in FIG. 5, including a menu 112 of icons, an exemplary set of which is on the right side of the screen in FIG . shown, is caused to display on the screen of the display 30. 5 The user makes selections from menu 112 , for example, by moving a cursor (pointer) onto a selected icon using a mouse 26 . Each icon indicates a specific function that the system is designed to perform. The selection of a given icon may result in additional icons being displayed, or another type of menu being displayed from which the user can make a more detailed selection regarding the function to be performed. However, in the preferred embodiment, the user selects tasks at a relatively high level, and the system makes decisions regarding certain tasks to be performed to achieve such a function.
Sobald die Startfunktionen, die im Zusammenhang mit Epic erforderlich sind, fertig sind, geht der Betriebsablauf zum Schritt 114 über und wartet auf eine Eingabe. Solange keine Eingabe empfangen wird, verbleibt das System in einem Haltestatus und wartet auf eine Eingabe. Wird eine Eingabe empfangen, so geht der Betriebsablauf zum Schritt 116 über, um zu ermitteln, aus welchem Softwaretool oder aus welcher anderen Quelle die Eingabe empfangen wurde. Wenn beispielsweise die Eingabe durch Auswahl eines Ikons aus dem Menü 112 der in Fig. 5 gezeigten Anzeige empfangen wurde, so wäre die Eingabe durch Epic View hindurchgekommen. Die Quelle, von welcher eine Eingabe empfangen wird, ist wesentlich, da dies es dem Epic-Programm gestattet, den Definitionsabschnitt seiner Regeldatei (siehe Fig. 6A) zu überprüfen, um festzulegen, welche Aktionen (falls überhaupt) in bezug auf Eingaben von dieser Quelle erforderlich sind. Insbesondere gestattet dies dem System zu ermitteln, ob Eingaben von dieser Quelle eingekapselt werden müssen.As soon as the start functions required in connection with Epic are finished, the operational flow moves to step 114 and waits for an input. As long as no input is received, the system remains in a hold status and waits for an input. If an input is received, the operational flow moves to step 116 to determine from which software tool or from which other source the input was received. For example, if the input was received by selecting an icon from menu 112 of the display shown in FIG. 5, the input would have passed through Epic View. The source from which input is received is essential as this allows the Epic program to check the definition section of its rules file (see Figure 6A) to determine what actions (if any) are taken on inputs from it Source are required. In particular, this allows the system to determine whether inputs from that source need to be encapsulated.
Vom Schritt 116 aus geht der Betrieb mit dem Schritt 118 weiter, um zu ermitteln, ob der Prozeß ein Beendigungsprozeß ist. Wie nachstehend erläutert wird, können einige Prozesse einen beträchtlichen Zeitraum bis zu ihrer Beendigung in Anspruch nehmen, manchmal bis zu mehreren Stunden, und es ist vorzuziehen, daß nicht das gesamte System besetzt ist, während derartige Prozesse ablaufen. Derartige Prozesse können beispielsweise auf einem anderen Gerät als dem Prozessor 22 ablaufen. Wenn daher derartige Prozesse ablaufen, hat das System die Option, die verbleibende Warteschlange der Funktionen zu speichern, die im Zusammenhang mit diesem Prozeß durchgeführt werden müssen, bis der Prozeß beendet ist. Die übrigen Tasks, die durchgeführt werden sollen, werden in dem Abschnitt der suspendierten Taskliste der Prozeßliste für den bestimmten Prozeß gespeichert.From step 116 , operation continues to step 118 to determine if the process is a termination process. As discussed below, some processes can take a significant amount of time to complete, sometimes up to several hours, and it is preferable that the entire system not be busy while such processes are in progress. Such processes can, for example, run on a device other than the processor 22 . Therefore, when such processes are in progress, the system has the option to save the remaining queue of functions that must be performed in connection with that process until the process is complete. The remaining tasks to be performed are stored in the suspended task list section of the process list for the particular process.
Ist der Prozeß beendet, so stellt das die Funktion ablaufenlassende Softwaretool eine Eingabe an Epic zur Verfügung, die während des Schrittes 118 erkannt wird. When the process is finished, the software tool that runs the function provides an input to Epic that is recognized during step 118 .
Dies veranlaßt den Betrieb, zum Schritt 120 überzugehen, während dem eine Ermittlung durchgeführt wird, ob für diesen bestimmten Prozeß irgendetwas anderes in der suspendierten Taskliste gespeichert war. War nichts gespeichert, dann muß bezüglich dieses Prozesses nichts weiteres erfolgen, und der Betrieb geht zum Schritt 114 zurück und wartet auf die nächste Eingabe. Ist für diesen Prozeß irgendetwas in der suspendierten Taskliste gespeichert, so geht der Betrieb zum Schritt 122 über, um Material in der momentanen Ausführungswarteschleife zu sparen. Die momentane Ausführungswarteschleife wird an einem vorbestimmten Ort in dem RAM des Prozessors gespeichert. Während dem Schritt 124, dem nächsten Schritt in dem Befehlsablauf, wird die Ausführungswarteschlange aus der suspendierten Taskliste für den Prozeß geladen, und dann geht der Betrieb zum Schritt 126 über, um sich den Inhalt der Ausführungswarteschlange anzusehen.This causes the operation to proceed to step 120 , during which a determination is made as to whether anything else was stored in the suspended task list for that particular process. If nothing was saved, nothing else needs to be done about this process and operation returns to step 114 and waits for the next entry. If there is anything in the suspended task list for this process, operation proceeds to step 122 to save material in the current execution queue. The current execution queue is stored in a predetermined location in the processor's RAM. During step 124 , the next step in the instruction flow, the execution queue is loaded from the suspended task list for the process and then operation proceeds to step 126 to view the contents of the execution queue.
Wenn während des Schrittes 118 festgestellt wird, daß die Eingabe nicht von einem Beendigungsprozeß erfolgte, so geht der Betrieb zum Schritt 128 über, um die Eingabe zu lesen. Es erfolgt eine Ermittlung, entweder oder nach dem Schritt 128, ob die Eingabe von einem Whilexec-Prozeß stammt (Schritt 130). Wie voranstehend erläutert, ist ein Whilexec-Prozeß ein Prozeß, der ein Softwaretool betrifft, das bezüglich der Sprache nicht mit Epic kompatibel ist, und bei dem es daher erforderlich ist, daß sowohl Eingaben als auch Ausgaben interpretiert werden, bevor sie an das Tool ausgegeben werden. Die Interpretation kann eine Übersetzung umfassen und auch die Durchführung anderer Operationen umfassen, die dafür erforderlich sind, damit Übertragungen an das inkompatible Tool und von diesem zurück gültig sind. Die Definitionenliste der Epic-Regeln (Fig. 6) bezeichnet ein derartiges Softwaretool als eines, welches "verpackt" werden muß, wobei dies bei der bevorzugten Ausführungsform dadurch angezeigt wird, daß nicht das Wort "No Wrapper" neben dem Programmnamen in dem Definitionsabschnitt steht. Falls festgestellt wird, daß das Programm ein Whilexec-Programm oder -Prozeß ist, so wird die momentane Ausführungswarteschlange während des Schrittes 132 gerettet, und während des Schrittes 134 wird eine Ausführungswarteschlange, die vorher gespeichert wurde, auf eine nachstehend erläuterte Weise, in dem Whilexec-Tasklistenabschnitt der Prozeßliste für den bestimmten Prozeß in die Hauptausführungswarteschlange geladen. Diese Ausführungswarteschlange enthält Interpretationsregeln für den Empfang von Material von dem inkompatiblen Tool. Dann geht der Betrieb damit weiter, daß während des Schrittes 126 die Hauptausführungswarteschlange angesehen wird.If it is determined during step 118 that the input was not from a termination process, the operation proceeds to step 128 to read the input. A determination is made, either or after step 128 , whether the input comes from a Whilexec process (step 130 ). As explained above, a Whilexec process is a process involving a software tool that is not language-compatible with Epic and therefore requires that both inputs and outputs be interpreted before they are output to the tool will. The interpretation may include translation, and may include performing other operations necessary for transfers to and from the incompatible tool to be valid. The definition list of the Epic rules ( Fig. 6) designates such a software tool as one that must be "packaged", which is indicated in the preferred embodiment by the fact that the word "No Wrapper" is not next to the program name in the definition section . If it is determined that the program is a Whilexec program or process, the current execution queue is saved during step 132 and during step 134 an execution queue that was previously saved is stored in the Whilexec in a manner discussed below -Tasklist section of the process list for the particular process loaded into the main execution queue. This execution queue contains interpretation rules for receiving material from the incompatible tool. Then operation continues with viewing the main execution queue during step 126 .
Wenn während des Schrittes 130 festgelegt wird, daß die Eingabe nicht von einem Whilexec-Prozeß stammt, so wird die Eingabe, einschließlich sämtlicher Schritte, die für die Durchführung des bestimmten eingegebenen Prozesses nötig sind, während des Schrittes 126 in die Hauptausführungswarteschlange geladen. Während dieses Schrittes wird auch die Warteschlange betrachtet. Alle Schritte, die während des Epic-Betriebs durchgeführt werden sollen, werden in die Hauptausführungswarteschlange geladen und werden von dieser Warteschlange aus nach dem Prinzip "Zuerst herein, zuerst heraus" (FIFO) ausgeführt. Wenn daher diese Warteschlange leer ist, so bedeutet dies, daß von Epic nichts weiteres durchgeführt werden muß. Daher führt der Prozeß während des Schrittes 136 eine Ermittlung durch, ob die Warteschlange leer ist. Ist die Warteschlange leer, so geht der Betrieb mit dem Schritt 137 weiter, um festzustellen, ob die Ausführungswarteschlangen gerettet wurden. Wenn daher eine Ausführungswarteschlange während beispielsweise dem Schritt 122 oder dem Schritt 132 gerettet wurde, wird während des Schrittes 137 eine Ausgabe "YES" erhalten, welche den Betriebsablauf dazu veranlaßt, zum Schritt 139 überzugehen, um die gerettete Ausführungswarteschlange in die Hauptausführungswarteschlange zu laden. Dann kehrt der Betrieb zum Schritt 126 zurück, um die Hauptausführungswarteschlange zu überprüfen. Wenn während des Schrittes 137 festgestellt wird, daß keine Warteschlange gerettet wurde, so geht der Betrieb zum Schritt 114 zurück, um auf die nächste Eingabe zu warten.If it is determined during step 130 that the input is not from a Whilexec process, the input, including all steps necessary to perform the particular input process, is loaded into the main execution queue during step 126 . The queue is also considered during this step. All steps that are to be performed during the Epic operation are loaded into the main execution queue and are carried out from this queue according to the "first in, first out" (FIFO) principle. Therefore, if this queue is empty, it means that Epic does nothing else. Therefore, the process makes a determination during step 136 whether the queue is empty. If the queue is empty, operation continues to step 137 to determine if the execution queues have been saved. Therefore, if an execution queue was saved during, for example, step 122 or step 132 , an output "YES" is obtained during step 137 , which causes the flow of operations to proceed to step 139 to load the saved execution queue into the main execution queue. Then operation returns to step 126 to check the main execution queue. If it is determined during step 137 that no queue has been saved, operation returns to step 114 to wait for the next entry.
Ist die Warteschlange nicht leer, so geht der Betrieb zum Schritt 138 über, um festzustellen, ob diese Eingabe zum Aufruf eines Makros führt. Wenn während des Schrittes 138 festgestellt wird, daß diese Eingabe ein Task oder ein Prozeß ist, der zum Aufrufen eines Makros führt, dann geht der Betrieb zum Schritt 140 über, um den momentanen Inhalt der Hauptausführungswarteschlange zu retten und um das Makro für den gegebenen Task oder die gegebene Funktion während des Schrittes 142 aus der richtigen Taskliste in die Hauptausführungswarteschlange zu laden. Dann geht der Betrieb damit weiter, daß die Hauptausführungswarteschlange betrachtet wird. Da ein Makro in die Warteschlange geladen wurde, wäre diese nicht leer und würde keine weitere Tasklisteneingabe enthalten. Daher würde der Betrieb zum Schritt 144 übergehen, in welchem eine Ermittlung erfolgt, ob der nächste Gegenstand von der Hauptausführungswarteschlange ein interner Befehl ist. Ist er kein interner Befehl, dann gibt der Betriebsablauf eine entsprechende Fehleranzeige an das System und/oder den Benutzer während dem Schritt 145 aus und kehrt zum Schritt 126 zurück, um den nächsten Gegenstand in der Warteschlange zu betrachten. If the queue is not empty, operation proceeds to step 138 to determine if this entry results in a macro being called. If it is determined during step 138 that this input is a task or process that results in a macro being called, then operation proceeds to step 140 to save the current contents of the main execution queue and the macro for the given task or load the given function from the correct task list into the main execution queue during step 142 . Then the operation continues by looking at the main execution queue. Since a macro was loaded into the queue, it would not be empty and would not contain any further task list entries. Therefore, operation would proceed to step 144 , in which a determination is made as to whether the next item from the main execution queue is an internal command. If it is not an internal command, the operational flow issues a corresponding error message to the system and / or user during step 145 and returns to step 126 to view the next item in the queue.
Wenn während des Schrittes 144 festgestellt wird, daß der momentan betrachtete Gegenstand aus der Hauptausführungswarteschlange ein interner Befehl ist, so geht der Betrieb zum Schritt 146 über, um den Befehl auszuführen. Die Durchführung eines Befehls während des Schrittes 146 kann zum Aufruf eines weiteren Softwaretools führen, welches auf dem Prozessor 22 ablaufen soll, oder in einem anderen Gerät des Systems ablaufen soll. Es kann dazu führen, daß nur eine einzige Operation durchgeführt wird, oder zur Durchführung mehrerer Operationen. Insoweit während des Schrittes 146 festgestellt wird, daß eine Eingabe an ein inkompatibles Tool (also ein Whilexec-Tool) erforderlich ist, erscheinen Epic-Interpretationsregeln zur Durchführung einer derartigen Übertragung in dem Makro an dem Punkt, an welchem die Übertragung durchgeführt wird, oder durch eine geeignete Bezugnahme. Diese Interpretationsregeln werden auf jeden übertragenen Gegenstand von Epic an das Tool ausgeübt, so daß sämtliche Eingaben an das Tool auf eine Art und Weise behandelt werden, die sowohl für das Tool als auch für den Benutzer bzw. Operator transparent ist.If it is determined during step 144 that the currently viewed item from the main execution queue is an internal command, operation proceeds to step 146 to execute the command. The execution of a command during step 146 can lead to the call of a further software tool which is to run on the processor 22 or should run in another device of the system. It can result in only one operation being performed, or in multiple operations. Insofar as it is determined during step 146 that an input to an incompatible tool (i.e. a Whilexec tool) is required, Epic interpretation rules for performing such a transfer appear in the macro at the point at which the transfer is carried out or through an appropriate reference. These rules of interpretation are applied to every item transferred from Epic to the tool, so that all inputs to the tool are handled in a manner that is transparent to both the tool and the user or operator.
Wie voranstehend erwähnt, kann in einigen Fällen die Funktion, welche während des Schrittes 146 ausgeführt wird, bis zu ihrer Beendigung einige Stunden benötigen. Während der Schritt 146 durchgeführt wird, geht daher der Betrieb auch zum Schritt 148 über, um festzustellen, ob das System auf eine Prozeßausgabe warten möchte. Dies würde dann auftreten, wenn ein Whilexec-Tool abläuft, wobei es dann erforderlich ist, eine Ausgabe von dem Tool zu empfangen, wenn die Ausführung fertig ist, und eine Interpretation einer derartigen Ausgabe erforderlich ist, bevor sie als gültige Eingabe für Epic arbeiten kann. Gibt es während des Schrittes 148 eine Ausgabe "YES", so geht der Betrieb zum Schritt 150 über, um die Ausführungswarteschlange zur Prozeß-Whilexec-Taskliste in der Prozeßliste für den Prozeß zu bewegen, und kehrt dann zur Hauptausführungswarteschlange zurück, um andere Funktionen auszuführen, während auf eine Ausgabe von dem Whilexec-Tool gewartet wird. Ist eine Ausgabe von dem Whilexec-Tool fertig, so stellt sie eine Eingabe an das System dar und kommt durch den Schritt 114 herein. Dies wird während des Schrittes 130 erkannt und veranlaßt eine erneute Ladung der geretteten Ausführungswarteschlange während des Schrittes 134. Wie voranstehend erläutert, enthält diese gerettete Ausführungswarteschlange die Interpretationsregeln, die von der Einkapselung des Tools gefordert werden, um zu veranlassen, daß Ausgaben von dem Tool gültige Eingaben an Epic sind.As mentioned above, in some cases the function performed during step 146 may take a few hours to complete. Therefore, while step 146 is being performed, operation continues to step 148 to determine if the system wants to wait for a process output. This would occur when a Whilexec tool expires, requiring it to receive output from the tool when execution is complete, and interpreting such output before it can work as valid input for Epic . If there is an "YES" output at step 148 , operation transfers to step 150 to move the execution queue to the process whilexec task list in the process list for the process, and then returns to the main execution queue to perform other functions while waiting for output from the Whilexec tool. When output from the Whilexec tool is complete, it represents input to the system and comes in through step 114 . This is recognized during step 130 and causes the saved execution queue to be reloaded during step 134 . As explained above, this saved execution queue contains the interpretation rules required by the tool's encapsulation to cause outputs from the tool to be valid inputs to Epic.
Zur selben Zeit wird auch während des Schrittes 152 eine Überprüfung durchgeführt, um festzustellen, ob darauf gewartet werden soll, daß der durchgeführte Prozeß endet. Wenn gewartet werden soll, dann wird die Ausführungswarteschlange zur suspendierten Taskliste in den Fortschrittsdateien für den durchgeführten Prozeß bewegt, und der Betrieb kehrt zur Hauptausführungswarteschlange zurück. Da die Hauptausführungswarteschlange während des Schrittes 154 geleert wurde, stellt sich während des Schrittes 136 heraus, daß die Warteschlange leer ist, und der Betrieb kehrt zum Schritt 114 zurück, um auf eine neue Eingabe zu warten. Wenn der durchgeführte Prozeß schließlich endet, so wird von Epic eine Eingabe empfangen, die während des Schrittes 118 festgestellt wird und dazu führt, daß die gespeicherte suspendierte Taskliste während des Schrittes 124 erneut in die Hauptausführungswarteschlange geladen wird. At the same time, a check is also made during step 152 to determine whether to wait for the process being performed to end. If there is to be a wait, the execution queue is moved to the suspended task list in the progress files for the process being performed and operation returns to the main execution queue. Since the main execution queue was cleared during step 154 , the queue is found to be empty during step 136 and operation returns to step 114 to wait for a new input. When the process performed finally ends, an input is received from Epic which is detected during step 118 and results in the saved suspended task list being reloaded into the main execution queue during step 124 .
Wenn während des Schrittes 152 festgestellt wird, daß das System nicht darauf warten will, daß der Prozeß endet, so kehrt das System zur Hauptausführungswarteschlange zurück, um den nächsten Schritt in der Warteschlange zu betrachten und, falls möglich, den Schritt auszuführen. Wenn zu diesem Zeitpunkt die Warteschlange leer ist, so geht der Betrieb zum Schritt 114 zurück, um auf die nächste Eingabe zu warten.If it is determined during step 152 that the system does not want to wait for the process to end, the system returns to the main execution queue to look at the next step in the queue and, if possible, to execute the step. At this time, if the queue is empty, operation returns to step 114 to wait for the next entry.
Auf diese Weise wird ein auf Regeln basierendes Steuersystem zur Verfügung gestellt, welches die Verwaltung durchzuführender Tasks gestattet und die zeitliche Abfolge der Tasks steuert. Weiterhin steuert das System sowohl Eingaben von bezüglich der Sprache inkompatiblen Softwaretools und Ausgaben von diesen durch Einkapseln derartiger Tools und Durchführung der erforderlichen Übersetzungen bei Eingaben und Ausgaben auf eine Weise, die für den Benutzer und die Softwaretools transparent sind. Epic ist auch dazu fähig, die anderen, nachstehend beschriebenen Softwaretools aufzurufen, soweit dies erforderlich ist, um verschiedene Übersetzungsfunktionen und Datensammelfunktionen, je nach Erfordernis, durchzuführen.In this way it becomes a rule based Tax system provided which the Management of tasks to be carried out and the controls the chronological sequence of the tasks. It also controls System both inputs from regarding the language incompatible software tools and expenses from them Encapsulation of such tools and implementation of the required translations for input and output a way that is for the user and software tools are transparent. Epic is also capable of software tools described below, if available this is required to be different Translation functions and data collection functions, depending on Need to perform.
Ein Modul, welches zusammen mit Epic verwendet werden kann und welches je nach Erfordernis von unterschiedlichen Tools oder Routinen aufgerufen wird, ist das allgemeine Umbenennungsmodul (GRM), welches die Hauptübersetzungsroutinen enthält, die von dem System für Übertragungen zwischen Tools benutzt werden, welche unterschiedliche Zeichenketten (also Namen) für einen bestimmten Gegenstand oder andere Bedeutungen benutzen (also bezüglich des Namens inkompatible Tools). GRM kann auch dann verwendet werden, wenn Information auf mehreren unterschiedlichen Hierarchieniveaus in einem vorgegebenen Tool verwendet wird, oder Tools mit unterschiedlichen Namen für denselben oder einen entsprechenden Gegenstand an den unterschiedlichen Niveaus verwendet werden. Der Begriff "Bezüglich des Namens inkompatible Tools" bezeichnet manchmal auch diesen Zustand. GRM umfaßt verschiedene unterschiedliche Routinen, die durch verschiedene Anwendungsprogramme oder durch Epic je nach Erfordernis aufgerufen werden können, wenn Namensübersetzungen erforderlich sind, oder für andere Zwecke, die nachstehend erläutert werden.A module that can be used with Epic and which depending on the requirements of different Tools or routines called is general Renaming module (GRM), which the Main translation routines included by the system for Transfers between tools are used which different strings (i.e. names) for one use certain object or other meanings (i.e. incompatible tools in terms of name). GRM can can also be used when information on multiple different hierarchy levels in a given Tool is used, or tools with different Names for the same or a corresponding item be used at different levels. Of the Term "Tools incompatible with the name" sometimes also denotes this state. GRM includes different different routines through different application programs or by Epic depending on Requirement can be called when Name translations are required, or for others Purposes explained below.
Wie voranstehend erwähnt, werden GRM-Dateien im Bereich 92 gespeichert, welcher einen Regelsatz zur Durchführung von Übersetzungen zwischen jeweils zwei bezüglich des Namens inkompatiblen Softwaretools enthält, die in dem System verwendet werden können. Wenn eine Anwendung läuft, welche eine Übersetzung zwischen einem Originalnamen in einem Softwaretool, beispielsweise einem anderen Programm, welches Daten an das bestimmte Anwendungsprogramm schickt, und einem erzeugten Namen in einem zweiten Programm erfordert, welches derartige Daten empfängt, beispielsweise dem Anwendungsprogramm selbst, so fordert das Anwendungsprogramm die Erzeugung eines "Bildschirms" an, welcher die geeigneten Regeln empfängt und speichert, und auch einen Raum zur Verfügung stellt, in welchem Namensübersetzungen, die unter Verwendung der Regeln in dem Bildschirm erzeugt werden, für zukünftige Fälle gespeichert werden.As mentioned above, GRM files are stored in area 92 , which contains a set of rules for performing translations between two software tools that are incompatible by name and that can be used in the system. When an application is running that requires translation between an original name in a software tool, such as another program that sends data to the particular application program, and a generated name in a second program that receives such data, such as the application program itself the application program creates a "screen" that receives and stores the appropriate rules, and also provides a space in which name translations generated using the rules on the screen are stored for future use.
Fig. 7 ist ein Flußdiagramm der Schritte, die bei der Erzeugung eines Bildschirms zur Verwendung in einer bestimmten Übersetzung beteiligt sind. Der Prozeß beginnt mit dem Schritt 170, in welchem eine Anforderung nach einem Bildschirm von einem Anwendungssoftwaretool oder von einem der anderen Tools oder einer der anderen Routinen empfangen wird, die einen Teil der vorliegenden Erfindung bilden, beispielsweise RBI. Wird eine Anforderung empfangen, so wird eine Überprüfung durchgeführt, um zu ermitteln, ob die Benutzerregeldatei neu ist, oder - in anderen Worten - ob diese Regeln vorher verwendet wurden, um einen Bildschirm zu erzeugen (Schritt 172). Wurden die Regeln schon vorher zur Erzeugung eines Bildschirms verwendet, dann müssen bestimmte Vorlaufvorgänge nicht ausgeführt werden, und der Betrieb geht zum Schritt 174 über, um sich die Regeln zu holen, und dann zum Schritt 176, um einen Bildschirm zu erzeugen und die Regeln in dem Bildschirm zu speichern. Dann wird der Bildschirm an einem ausgewählten Ort in dem RAM des Prozessors 22 gespeichert, und dem Anwendungsprogramm wird die Adresse mitgeteilt, in welcher der Bildschirm gespeichert ist (Schritt 178). Figure 7 is a flow diagram of the steps involved in creating a screen for use in a particular translation. The process begins at step 170 , in which a request for a screen is received by an application software tool or by one of the other tools or routines that form part of the present invention, for example RBI. If a request is received, a check is made to determine whether the user rule file is new or, in other words, whether these rules were previously used to create a screen (step 172 ). If the rules have previously been used to create a screen, then certain pre-operations need not be performed and operation proceeds to step 174 to get the rules and then to step 176 to create a screen and the rules in save the screen. The screen is then stored in a selected location in the RAM of the processor 22 and the application program is informed of the address in which the screen is stored (step 178 ).
Wenn, wie gewöhnlich, die Regeln nicht vorher in einem Bildschirm gespeichert wurden, so geht der Betrieb vom Schritt 172 zum Schritt 180 über, um verschiedene Verwaltungsfunktionen durchzuführen, die zum Öffnen des neuen Bildschirms erforderlich sind. Dann geht der Betrieb zum Schritt 182 über, in welchem die Regeln von der Datei gelesen werden, und, soweit erforderlich, in eine Form umgewandelt werden, die von GRM oder dem Anwendungsprogramm genutzt werden kann. Wenn beispielsweise der die Regeln enthaltende Bildschirm von einem Anwendungsprogramm benutzt werden soll, so kann eine gewisse Interpretation der Regeln erforderlich sein, so daß sie mit einem derartigen Programm kompatibel sind. Die modifizierten Regeln werden dann während des Schrittes 184 gespeichert und in den Bildschirm gebracht, der in dem Schritt 176 eingerichtet wurde. Dann geht der Betrieb zum Schritt 178 über, um den Bildschirm zu speichern und Information bezüglich der Adresse zur Verfügung zu stellen, in welcher der Bildschirm gespeichert ist, für geeignete Softwaretools.If, as usual, the rules have not been previously stored on a screen, operation proceeds from step 172 to step 180 to perform various management functions required to open the new screen. Operation then proceeds to step 182 , where the rules are read from the file and, if necessary, converted to a form that can be used by GRM or the application program. For example, if the screen containing the rules is to be used by an application program, some interpretation of the rules may be required to be compatible with such a program. The modified rules are then saved during step 184 and displayed on the screen that was set up in step 176 . Then operation proceeds to step 178 to save the screen and provide information regarding the address where the screen is stored for appropriate software tools.
Fig. 8 ist ein Flußdiagramm eines Prozesses, der dazu verwendet werden kann, für den Benutzer spezifische Daten einem Bildschirm zuzufügen oder derartige Daten aus einem Bildschirm zurückzuholen. Die Umgebung, in welcher der Prozeß von Fig. 8 eingesetzt werden kann, ist beispielsweise eine solche Umgebung, daß eine bestimmte Art von Information in dem Ursprungsprogramm durch das Programm hindurch zerstreut ist, während derartige Daten als ein Block in dem Empfangsprogramm aufrechterhalten werden. Es wäre wünschenswert, wenn derartige Daten als ein Block übertragen werden könnten, und der Bildschirm stellt eine Einrichtung zur Erreichung dieses Ziels zur Verfügung. Insbesondere kann der Systemhersteller eines Anwendungstools für das System oder möglicherweise der Toolintegrator des Benutzers feststellen, daß beim Aufruf eines bestimmten Namens, oder wenn ein bestimmter Bildschirm aufgerufen wird, ausgewählte Daten an das empfangende Tool mit dem gegebenen Namen oder durch den Bildschirm übertragen werden sollten. Figure 8 is a flow diagram of a process that can be used to add or retrieve user-specific data from a screen. The environment in which the process of Fig. 8 can be used is, for example, such an environment that a certain type of information in the source program is scattered throughout the program while such data is maintained as a block in the receiving program. It would be desirable if such data could be transmitted as a block, and the screen provides a means to accomplish this. In particular, the system manufacturer of an application tool for the system, or possibly the user's tool integrator, can determine that when calling up a certain name or when a certain screen is called up, selected data should be transmitted to the receiving tool with the given name or through the screen.
In Fig. 8 gibt während des Schrittes 190 die Partei, welche die Daten hinzufügt, an, daß sie benutzerspezifische Daten einem gegebenen Namen oder Bildschirm für ein gegebenes Anwendungstool hinzufügen möchte. Während des Schrittes 192 erfolgt eine Überprüfung, um festzustellen, ob der Bildschirm in dem System existiert. Existiert der Bildschirm nicht, so stellt dies einen Fehlerzustand dar, und die Partei, welche Daten hinzufügt, wird hierüber während des Schrittes 194 informiert. Typischerweise würde diese Information durch eine geeignete Benachrichtigung auf einer Anzeige, wie Beispiel der Anzeige 30, zur Verfügung gestellt.In Fig. 8, during step 190, the party adding the data indicates that it wants to add custom data to a given name or screen for a given application tool. A check is made during step 192 to determine if the screen exists in the system. If the screen does not exist, this is an error condition and the party adding data is informed of this during step 194 . Typically, this information would be provided by appropriate notification on a display, such as display 30 .
Existiert der Bildschirm, so geht der Betrieb zum Schritt 196 über, um zu ermitteln, ob das hinzuzufügende Material einem bestimmten Namen zugeordnet ist. Wenn das hinzugefügte Material einem bestimmten Namen zugeordnet werden soll, so wird es dem erzeugten Namen hinzugefügt, der innerhalb des Namens in dem Bildschirm gespeichert ist. Wenngleich dies nicht in Fig. 8 gezeigt ist, kann es auch einen Fehler darstellen, wenn die Daten mit einem gegebenen Namen gespeichert werden sollen und dieser Name nicht existiert. Wenn während des Schrittes 196 festgestellt wird, daß die hinzugefügten Daten nicht mit einem bestimmten Namen gespeichert werden müssen, sondern mit dem Bildschirm gespeichert werden sollen und an das empfangene Tool übertragen werden sollen, immer dann, wenn auf den Bildschirm zugegriffen wird, dann geht der Betrieb zum Schritt 200 über, um Daten dem Bildschirm zuzufügen. Unter einigen Umständen kann der Schritt 200 auch in dem Fall ausgeführt werden, in welchem der Name, mit welchem die Daten gespeichert werden sollen, nicht in dem Bildschirm existiert.If the screen exists, operation proceeds to step 196 to determine if the material to be added is associated with a particular name. If the added material is to be assigned a specific name, it is added to the generated name that is stored within the name on the screen. Although not shown in Figure 8, it can also be an error if the data is to be saved with a given name and that name does not exist. If it is determined during step 196 that the added data does not have to be saved with a specific name, but should be saved with the screen and transmitted to the received tool, whenever the screen is accessed, then it goes Operation to step 200 to add data to the screen. In some circumstances, step 200 can also be performed in the case where the name with which the data is to be saved does not exist on the screen.
Wenn ein Anwendungsprogramm (Tool) einen bestimmten Namen oder Bildschirm anfordert, Schritt 202, führt das System eine Überprüfung durch, um festzustellen, ob der Bildschirm existiert, Schritt 204, und erzeugt ein Fehlersignal, Schritt 194, wenn der Bildschirm nicht existiert. Existiert der Bildschirm, so geht der Betrieb zum Schritt 206 über, um festzustellen, ob die Anforderung bezüglich eines Namens erfolgt. Betrifft die Anforderung einen bestimmten Namen, so werden die vorher mit diesem Namen gespeicherten Daten zurückgeholt und unter Steuerung des Anwendungsprogramms an einen geeigneten Speicherort für das Anwendungsprogramm übertragen, zusammen mit jedem erzeugten Namen für den Originalnamen, während des Schrittes 208. Ist die Anforderung bezüglich des Bildschirms und nicht bezüglich des bestimmten Namens, so werden während des Schrittes 210 die im Schritt 200 gespeicherten Daten zurückgeholt, und unter Steuerung des Anwendungsprogramms an dieses Programm übertragen.If an application program (tool) requests a particular name or screen, step 202 , the system checks to see if the screen exists, step 204 , and generates an error signal, step 194 , if the screen does not exist. If the screen exists, operation proceeds to step 206 to determine if the name request is being made. If the request relates to a specific name, the data previously stored with this name are retrieved and transferred under control of the application program to a suitable storage location for the application program, together with any name generated for the original name, during step 208 . If the request is for the screen and not for the specific name, the data stored in step 200 are retrieved during step 210 and transferred to this program under the control of the application program.
Fig. 9 erläutert den Vorgang, der sich anschließt, wenn ein eine Übersetzung erfordernder Name zwischen zwei Softwaretools übertragen wird. Der Vorgang beginnt mit Schritt 220, der anzeigt, daß eine Namensübersetzung erforderlich ist. Vom Schritt 220 aus geht der Betriebsablauf zum Schritt 222 über, um festzustellen, ob der Bildschirm existiert. Existiert der Bildschirm nicht, so geht der Betrieb zu der Routine "Hole einen Bildschirm" zurück, die in Fig. 7 gezeigt ist, um einen Bildschirm zu erzeugen (Schritt 224). Figure 9 illustrates the process that follows when a name requiring translation is transferred between two software tools. The process begins at step 220 , which indicates that a name translation is required. From step 220 , the flow of operations proceeds to step 222 to determine if the screen exists. If the screen does not exist, operation returns to the "Get a Screen" routine shown in FIG. 7 to create a screen (step 224 ).
Entweder vom Schritt 222, falls eine Ausgabe "JA" erhalten wird, oder vom Schritt 224 geht der Betrieb zum Schritt 226 über, um festzustellen, ob sich der Name in dem Bildschirm befindet. Dies bedeutet normalerweise, daß der Name vorher erzeugt wurde und daß der ursprüngliche und der erzeugte Name in dem Bildschirm für eine zukünftige Bezugnahme gespeichert wurden. Allerdings kann, wie voranstehend erwähnt, eine derartige Namensübersetzungsliste mit den Regeln zur Verfügung gestellt werden und ursprünglich in dem Bildschirm gespeichert sein. Befindet sich der Name in dem Bildschirm, so geht der Betrieb zum Schritt 228 über, um den vorher erzeugten Namen zurückzubringen, im allgemeinen zum anfordernden Anwendungsprogramm. Ist der Name nicht in dem Bildschirm, so geht der Betrieb zum Schritt 230 über, in welchem der ursprüngliche Name in den Bildschirm gebracht und ursprünglich als "einzigartig" markiert wird. Vom Schritt 230 geht der Betrieb zum Schritt 232 über, in welchem jede der Regeln in der Datei aufeinanderfolgend überprüft wird, bis alle Regeln betrachtet wurden. Für jede Regel geht der Betrieb zum Schritt 234 über, um festzustellen, ob die Regel den bestimmten Namen betrifft. Eine Regel könnte beispielsweise anzeigen, daß alle Großbuchstaben in die entsprechenden Kleinbuchstaben umgewandelt werden sollen. Wenn daher der Name in Großbuchstaben vorliegt, würde die Regel anwendbar sein, zu einer Ausgabe "JA" des Schrittes 234 führen und dazu führen, daß der Schritt 236 durchgeführt wird. Während des Schrittes 236 wird die Regel angewendet, um eine Umwandlung des Namens durchzuführen. Entweder vom Schritt 234, wenn eine Ausgabe "NEIN" erhalten wird, oder vom Schritt 236 aus geht der Betrieb zum Schritt 238 über, in welchem die nächste Regel zurückgeholt wird.Either from step 222 if an "YES" output is obtained, or from step 224 , operation proceeds to step 226 to determine if the name is on the screen. This usually means that the name was previously created and that the original and generated names were stored on the screen for future reference. However, as mentioned above, such a name translation list with the rules can be provided and originally stored on the screen. If the name is on the screen, operation proceeds to step 228 to return the previously created name, generally to the requesting application program. If the name is not on the screen, the operation proceeds to step 230 , in which the original name is brought on the screen and is originally marked as "unique". From step 230 , operation proceeds to step 232 , in which each of the rules in the file is checked sequentially until all rules have been viewed. For each rule, operation proceeds to step 234 to determine if the rule relates to the particular name. For example, a rule could indicate that all uppercase letters should be converted to the corresponding lowercase letters. Therefore, if the name is in uppercase, the rule would apply, would output "YES" at step 234 , and would result in step 236 being performed. During step 236 , the rule is applied to perform a name conversion. Either from step 234 if an "NO" output is obtained, or from step 236 , operation proceeds to step 238 where the next rule is retrieved.
Die Regeln 232, 234, 236 und 238 werden aufeinanderfolgend für jede Regel durchgeführt, die in dem Bildschirm gespeichert ist, bis während des Schrittes 232 festgestellt wird, daß alle Regeln in dem Bildschirm durchgeführt wurden. Zu diesem Zeitpunkt wurde die Übersetzung des Namens beendet, abgesehen von verschiedenen Verwaltungsfunktionen, die während der folgenden Schritte durchgeführt werden.Rules 232 , 234 , 236 and 238 are performed sequentially for each rule stored on the screen until it is determined during step 232 that all rules have been performed on the screen. At this point, the translation of the name was completed, except for various administrative functions that will be performed during the following steps.
Insbesondere geht, wenn alle Regeln eingesetzt wurden, der Betrieb vom Schritt 232 zum Schritt 240 über, in welchem der erzeugte Namen überprüft wird, um festzustellen, ob er irgendwelche Zeichen enthält, die in dem aufnehmenden Tool ungültig sind. Soweit derartige Zeichen gefunden werden, werden sie entfernt. Der Betrieb geht dann zum Schritt 242 über, um zu ermitteln, ob die Länge des erzeugten Namens eine Maximallänge überschreitet, die durch den Benutzer für Namen in dem empfangenden Programm festgelegt ist. Überschreitet die Länge des erzeugten Namens das Maximum, so wird der Name unter Einsatz geeigneter Abschneideregeln gekürzt. Normalerweise wird dies dadurch erreicht, daß einfach die überschüssige Anzahl an Zeichen vom Ende des Namens entfernt wird. Allerdings können kompliziertere Abschneideregeln eingesetzt werden, beispielsweise das Entfernen von Vokalen in einem ersten Abschneideschritt. Schließlich können während des Schrittes 244 irgendwelche erforderlichen Vorsilben oder Nachsilben, die vom Benutzer definiert werden, dem Namen hinzugefügt werden. Wird der Schritt 244 durchgeführt, so kann während des Schrittes 242 eine Wurzel gekürzt werden, so daß der endgültige Name nicht die Maximallänge überschreitet.In particular, when all the rules are in place, operation proceeds from step 232 to step 240 where the generated name is checked to determine if it contains any characters that are invalid in the receiving tool. If such characters are found, they will be removed. Operation then proceeds to step 242 to determine if the length of the generated name exceeds a maximum length set by the user for names in the receiving program. If the length of the generated name exceeds the maximum, the name will be shortened using suitable cutting rules. Usually this is done by simply removing the excess number of characters from the end of the name. However, more complicated cut-off rules can be used, for example the removal of vowels in a first cut-off step. Finally, during step 244, any required prefixes or suffixes defined by the user can be added to the name. If step 244 is carried out, a root can be shortened during step 242 so that the final name does not exceed the maximum length.
Während des Schrittes 246 erfolgt eine Ermittlung, ob eine Eins-zu-Eins-Abbildung zwischen Originalnamen und erzeugten Namen vorliegen soll. Ist eine Eins-zu-Eins-Abbildung nicht erforderlich, dann wird die Bezeichnung des Namens, die während des Schrittes 230 zur Verfügung gestellt wurde, von "Einzigartig" auf "Nicht einzigartig" während des Schrittes 248 geändert. Wogegen der erzeugte Name tatsächlich einzigartig sein kann, wird der Name als nicht einzigartig während des Schrittes 248 markiert, so daß dann, falls der erzeugte Name später auftaucht, und die spätere Erzeugung es auch zuläßt, daß sie nicht einzigartig ist, das System eine derartige Verwendung zulassen wird. Falls das System annimmt, daß die ursprüngliche Erzeugung einzigartig ist, so würde es keine spätere Erzeugung desselben erzeugten Namens zulassen.During step 246 , a determination is made as to whether there should be a one-to-one mapping between the original name and the generated name. If a one-to-one mapping is not required, the name of the name provided during step 230 is changed from "unique" to "non-unique" during step 248 . While the generated name may actually be unique, the name is marked as non-unique during step 248 , so if the generated name appears later and the subsequent creation also does not allow it to be unique, the system does so Allow use. If the system assumes that the original creation is unique, it would not allow the same generated name to be created later.
Die voranstehenden Ausführungen werden durch den Schritt 249 erläutert, nämlich den nächsten Schritt im Betriebsablauf. Während des Schrittes 249 erfolgt eine Ermittlung, ob der erzeugte Name mit einem einzigartigen Namen kollidiert, der vorher erzeugt wurde und in der Namensliste enthalten ist. Kollidiert der Name nicht mit einem einzigartigen Namen, so geht der Betrieb zum Schritt 250 über, in welchem der erzeugte Name mit dem ursprünglichen Namen in dem Bildschirm gespeichert wird. Der neu erzeugte Name wird dann an das Anwendungsprogramm zurückgeschickt, welches ursprünglich die Anforderung ausgab, im Schritt 252. Wird während des Schrittes 249 festgestellt, daß der Name mit einem einzigartigen Namen kollidiert, so geht der Betrieb zum Schritt 256 über, um festzustellen, ob der Name so modifiziert werden kann, daß er einzigartig ist. Die Vorgänge, die während des Schrittes 256 und danach durchgeführt werden, sind in den folgenden Absätzen beschrieben.The above explanations are explained by step 249 , namely the next step in the operational sequence. During step 249 , a determination is made as to whether the generated name collides with a unique name that was previously generated and is contained in the name list. If the name does not conflict with a unique name, the operation proceeds to step 250 , in which the generated name with the original name is stored on the screen. The newly created name is then sent back to the application program that originally issued the request in step 252 . If it is determined during step 249 that the name collides with a unique name, operation proceeds to step 256 to determine if the name can be modified to be unique. The operations performed during step 256 and after are described in the following paragraphs.
Wird während des Schrittes 246 festgestellt, daß eine Eins-zu-Eins-Abbildung erforderlich ist, dann erfolgt im Schritt 254 eine Ermittlung, ob der erzeugte Name einzigartig ist. Ist der erzeugte Name einzigartig, dann wird der Name während des Schrittes 250 erinnert und im Schritt 252 zurückgebracht.If it is determined during step 246 that a one-to-one mapping is required, then a determination is made in step 254 as to whether the generated name is unique. If the generated name is unique, the name is remembered during step 250 and returned in step 252 .
Ist der erzeugte Name nicht einzigartig, dann geht der Betrieb zum Schritt 256 über, um zu ermitteln, ob der Name auf eine durch den Benutzer definierte Weise geändert werd 57724 00070 552 001000280000000200012000285915761300040 0002004310615 00004 57605en kann, insbesondere durch Regeln, die vom Toolintegrator des Benutzers erzeugt werden, oder durch Regeln, die vom Hersteller des Systems zur Verfügung gestellt werden, so daß der Name einzigartig ist. Eine derartige Änderung kann die Hinzufügung vorbestimmter zusätzlicher Zeichen zum Anfang oder Ende, vorzugsweise zum Ende, des Namens umfassen, um ihn so einzigartig zu machen. Beispielsweise können die Zahlen 0 bis 9 aufeinanderfolgend am Ende nicht einzigartiger Namen hinzugefügt werden, um derartige Namen einzigartig zu machen. Falls es nicht möglich ist, den Namen einzigartig zu machen, dann ist eine Übersetzung dieses Namens nicht möglich. Dies ist ein Fehlerzustand, Schritt 258, und dem Benutzer wird eine geeignete Anzeige dieses Fehlers gegeben, normalerweise auf der Anzeigevorrichtung 30.If the generated name is not unique, then operation proceeds to step 256 to determine if the name can be changed in a manner defined by the user 57724 00070 552 001000280000000200012000285915761300040 0002004310615 00004 57605en, particularly by rules implemented by the user's tool integrator generated or by rules provided by the manufacturer of the system so that the name is unique. Such a change may include adding predetermined additional characters to the beginning or end, preferably the end, of the name to make it unique. For example, the numbers 0 through 9 can be added sequentially at the end of non-unique names to make such names unique. If it is not possible to make the name unique, then a translation of this name is not possible. This is an error condition, step 258 , and the user is given an appropriate display of this error, typically on display device 30 .
Falls es möglich ist, den Namen so zu modifizieren, daß er einzigartig ist, so erfolgt eine derartige Modifikation während des Schrittes 260, um einen Namen zur Verfügung zu stellen, der einzigartig und auch in dem empfangenden Tool gültig ist. Vom Schritt 260 geht der Betrieb zum Schritt 250 über, um den erzeugten Namen zu erinnern und den erzeugten Namen an das anfordernde Tool zurückzugeben. Auf diese Weise wird ein auf verallgemeinerten Regeln basierender Übersetzungsmechanismus zur Verfügung gestellt, der sehr flexibel ist und einfach modifiziert werden kann, um irgendwelchen Änderungen in dem System gerecht zu werden.If it is possible to modify the name to be unique, such modification is done during step 260 to provide a name that is unique and also valid in the receiving tool. From step 260 , operation proceeds to step 250 to remember the generated name and return the generated name to the requesting tool. In this way, a translation mechanism based on generalized rules is provided that is very flexible and can be easily modified to accommodate any changes in the system.
Es gibt Situationen, in welchen ein Tool, welches einen erzeugten Namen benutzt, zu ermitteln wünscht, wie der Ursprungsname eines derartigen erzeugten Namens war, oder in welchen ein System-Operator eine derartige Information wünscht. Fig. 10 ist ein Flußdiagramm einer Routine zur Bereitstellung einer derartigen Möglichkeit. There are situations in which a tool that uses a generated name desires to determine what the original name of such a generated name was, or in which a system operator desires such information. Figure 10 is a flow diagram of a routine for providing such a facility.
Wenn in Fig. 10 eine Anforderung eines Ursprungsnamens erzeugt wird, Schritt 270, so geht der Betrieb zum Schritt 272 über, um festzustellen, ob sich der erzeugte Name in dem geeigneten Bildschirm befindet. Befindet sich der erzeugte Name nicht in dem geeigneten Bildschirm, was beispielsweise bedeuten kann, daß keine Übersetzungsanforderung erfolgte, die zu dem erzeugten Namen führte, dann kann die Anforderung nicht erfüllt werden, und es wird dem anfordernden Tool eine Fehleranzeige zur Verfügung gestellt, die auch dem Benutzer zur Verfügung gestellt werden kann, im Schritt 274.In Fig. 10, if a source name request is generated, step 270 , operation proceeds to step 272 to determine if the generated name is on the appropriate screen. If the generated name is not on the appropriate screen, which can mean, for example, that there was no translation request that led to the generated name, then the request cannot be met and an error message is made available to the requesting tool, which also can be made available to the user in step 274 .
Befindet sich der erzeugte Name im Bildschirm, so findet die Routine den Ursprungsnamen eines derartigen erzeugten Namens während des Schrittes 276. Im Schritt 278 erfolgt eine Ermittlung, ob der Ursprungsname für den erzeugten Namen einzigartig ist (also ob der vorgegebene erzeugte Name ein erzeugter Name für mehr als einen ursprünglichen Namen ist). Ist der ursprüngliche Name einzigartig, so wird während des Schrittes 280 der ursprüngliche Name an die anfordernde Quelle zurückgegeben. Ist der ursprüngliche Name nicht einzigartig, dann wird während des Schrittes 282 eine Liste aller ursprünglichen Namen zurückgegeben, die auf den erzeugten Namen zeigt.If the generated name is on the screen, the routine finds the original name of such a generated name during step 276 . In step 278 , a determination is made as to whether the original name is unique to the generated name (that is, whether the predetermined generated name is a generated name for more than one original name). If the original name is unique, the original name is returned to the requesting source during step 280 . If the original name is not unique, then a list of all original names pointing to the generated name is returned during step 282 .
Da dieselben zwei Programme in zahlreichen Fällen miteinander kommunizieren können, ist es wünschenswert, daß dann, sobald eine Liste ursprünglicher und erzeugter Namen für einen vorgegebenen Bildschirm erzeugt wurde, diese Liste aufgehoben wird, so daß sie zur Verwendung in einem darauffolgenden Bildschirm für dieselben zwei Tools verfügbar ist. Fig. 11A ist ein Flußdiagramm einer Routine zum Retten der Namensliste, die für einen vorgegebenen Bildschirm als eine Namensdatei erzeugt wurde, und Fig. 11B ist ein Flußdiagramm einer Routine zum Einlesen einer derartigen gespeicherten Namensdatei in einen neuen Bildschirm, der für Übertragungen zwischen denselben Softwaretools vorhanden ist. In Fig. 11A fordert die Routine, daß für jeden Namen in dem Originalbildschirm, Schritt 290, eine Ausgabe erzeugt wird, die auf eine durch den Benutzer festgelegte Weise formatiert wird, oder in einem Standardformat, welches durch den Hersteller des Systems festgelegt wird, und daß diese Ausgabe in eine ausgewählte Datei zum Abspeichern eingeschrieben wird (Schritt 292). Wurden sämtliche Namen in dem Bildschirm ausgegeben, so geht der Betrieb vom Schritt 290 zum Schritt 294 über, um zum vorherigen Programm zurückzukehren, welches lief. Die als Ergebnis von Fig. 11A erzeugte Datei wird manchmal als eine Alias-Datei bezeichnet.Since the same two programs can communicate with each other in numerous cases, it is desirable that once a list of original and generated names has been created for a given screen, that list is cleared so that it can be used in a subsequent screen for the same two tools is available. Fig. 11A is a flowchart of a name list rescue routine created for a given screen as a name file, and Fig. 11B is a flowchart of a routine for reading such a stored name file into a new screen, for transfers between the same software tools is available. In Fig. 11A, the routine requires that for each name in the original screen, step 290 , output is generated that is formatted in a user-specified manner or in a standard format specified by the system manufacturer, and that this output be written to a selected file for storage (step 292 ). When all the names have been output on the screen, the operation proceeds from step 290 to step 294 to return to the previous program that was running. The file created as a result of Fig. 11A is sometimes referred to as an alias file.
Wenn in Fig. 11B eine Anforderung erfolgt, eine vorher gespeicherte Alias-Datei zu lesen, so ist der erste Schritt der Schritt 300, in welchem jeder Eintrag (also jeder Name) in der Datei zurückgeholt wird. Der zurückgeholte Eintrag wird in Stücke vorbestimmter Größe aufgebrochen oder auf andere Weise in einer durch den Benutzer oder das System festgelegten Art behandelt, während des Schrittes 302. Im Schritt 304 wird der behandelte Name dann dem neuen Bildschirm hinzugefügt. Die Schritte 300, 302 und 304 werden wiederholt, bis sämtliche Einträge in der Alias-Datei in dem Bildschirm gespeichert wurden, und dann verzweigt der Betrieb vom Schritt 300 zum Schritt 306 und veranlaßt den Betrieb dazu, zu dem ursprünglichen Tool zurückzukehren. If a request is made in FIG. 11B to read a previously stored alias file, the first step is step 300 , in which every entry (ie every name) in the file is retrieved. The retrieved entry is broken up into pieces of predetermined size or otherwise treated in a manner determined by the user or system during step 302 . At step 304 , the treated name is then added to the new screen. Steps 300 , 302 and 304 are repeated until all entries in the alias file have been saved on the screen and then the operation branches from step 300 to step 306 and causes the operation to return to the original tool.
Zusätzlich zur Anforderung, inkonsistente Namen zwischen Softwaretools zu übersetzen, gibt es darüber hinaus Situationen, in welchen das Format zwischen zwei Programmen nicht kompatibel ist, und modifiziert werden muß, um kompatibel zu sein. Beispielsweise kann ein Tool Information in einem schematischen Grafikdiagramm präsentieren, wie beispielsweise in Fig. 14 gezeigt. Ein anderes Programm kann wünschen, dieselben Daten in einer Netzlistenform zu verwenden, in welcher Bestandteile und Knoten definiert werden, und in welcher für jeden Bestandteil eine Anzeige bezüglich der Knoten und/oder anderer Komponenten zur Verfügung gestellt wird, zwischen die er geschaltet ist. Das erfindungsgemäße System stellt eine Routine zur Verfügung, die als Regelbasisschnittstellenroutine (RBI) bezeichnet wird, welche derartige Transformationen durchführt, und auch zur Durchführung von Standardtransformationen eingesetzt werden kann, soweit dies nötig ist, beispielsweise zwischen inkompatiblen Befehlen zur Durchführung derselben Funktion in den beiden Sprachen. Fig. 1 ist ein Flußdiagramm der RBI-Routine.In addition to the requirement to translate inconsistent names between software tools, there are also situations where the format is incompatible between two programs and must be modified to be compatible. For example, a tool can present information in a schematic graphic diagram, such as shown in FIG. 14. Another program may wish to use the same data in a netlist form, in which components and nodes are defined, and in which for each component an indication of the nodes and / or other components between which it is connected is provided. The system according to the invention provides a routine, which is referred to as a rule base interface routine (RBI), which carries out such transformations, and can also be used to carry out standard transformations, insofar as this is necessary, for example between incompatible commands for performing the same function in the two languages . Figure 1 is a flow diagram of the RBI routine.
In Fig. 12 wird der Betrieb durch die RBI-Routine gestartet, die durch Epic oder ein anderes Programm aufgerufen wird, welches auf dem System läuft, oder als Ergebnis einer Benutzereingabe. Dies wird als der Startschritt 310 in Fig. 12 bezeichnet.In Fig. 12, operation is started by the RBI routine called by Epic or another program running on the system or as a result of user input. This is referred to as the start step 310 in FIG. 12.
Der erste Schritt im Betrieb, Schritt 312, besteht darin, daß verschiedene Optionen gelesen und an einem geeigneten Ort in dem RAM gespeichert werden, welches zum Speichern von Information für die RBI-Routine verwendet wird. Optionen, Schemata, Signalformen und dergleichen werden manchmal nachstehend als "Objekte" bezeichnet, wobei Objekte Elemente sind, die entweder vom Hersteller des Systems oder Benutzer (Optionen) oder von einem anderen Programm (schematische Komponenten, Signalformen usw.) zur Verfügung gestellt werden, bei welchem die durch RBI bereitgestellten Umwandlungsregeln eingesetzt werden.The first step in operation, step 312 , is to read various options and store them in an appropriate location in RAM, which is used to store information for the RBI routine. Options, schemes, waveforms and the like are sometimes referred to below as "objects", where objects are elements that are provided either by the system manufacturer or user (options) or by another program (schematic components, waveforms, etc.), where the conversion rules provided by RBI are used.
Während des Schrittes 314, dem nächsten Schritt im Betrieb, wird die geeignete RBI-Regeldatei oder Dateien, die im Bereich 96 des Speichers 28 gespeichert ist, in einen geeigneten Abschnitt des Prozessorspeichers eingelesen. Während des Schrittes 316 erfolgt eine Überprüfung der Regeln, um sicherzustellen, daß sie korrekte Zeichen an korrekten Orten verwenden, und im Zusammenhang der RBI-Routine gültig sind. Die Regeln sollten gültig sein, jedoch ist es immer möglich, daß sich aus verschiedenen Gründen ein Fehler entwickelt, und es ist daher anzuraten, eine semantische Überprüfung durchzuführen, bevor die Regeln verwendet werden.During step 314 , the next step in operation, the appropriate RBI rules file or files stored in area 96 of memory 28 are read into a suitable portion of processor memory. During step 316 , the rules are checked to ensure that they use correct characters in the correct locations and are valid in the context of the RBI routine. The rules should be valid, but it is always possible that an error will develop for a number of reasons, and it is therefore advisable to do a semantic check before using the rules.
Während des Schrittes 318, dem nächsten Schritt im Betrieb, wird die angeforderte Datenbasis, die umgewandelt werden soll, in das System eingelesen und ebenfalls jede externe erforderliche Information, die zur Umwandlung nötig ist. Beispielsweise kann ein GRM-Bildschirm, der auf die voranstehend erläuterte Weise erzeugt wurde, zur Verwendung durch das RBI-Programm zur Verfügung gestellt werden.During step 318 , the next step in operation, the requested database to be converted is read into the system and also any external information required for the conversion. For example, a GRM screen created in the manner discussed above can be provided for use by the RBI program.
Sobald diese einleitenden Betriebsschritte durchgeführt wurden, geht das Programm zum Schritt 320 über, in welchem es mit der Bearbeitung von Regeln beginnt, beginnend mit dem ersten oder obersten Datenbasisobjekt und der ersten Regel. Wie voranstehend erläutert, stellen die Datenbasisobjekte die schematischen Zeichen, Signalformen, Netzlisteneinträge oder Optionen dar, die von dem Benutzer oder anderen eingegeben wurden, und deren Umwandlung erforderlich ist. Vom Schritt 320 aus geht der Betrieb zum Schritt 322 über, in welchem die nächste Regel, in diesem Fall die erste Regel, in ein Register "momentane Regel" übertragen wird. Während des Schrittes 324 erfolgt eine Überprüfung, ob das momentane Regelregister leer ist. Ist das momentane Regelregister leer, so bedeutet dies, daß sämtliche Regeln betrachtet wurden und der Vorgang beendet ist. Dies veranlaßt den Betrieb dazu, zum Schritt 326 zu verzweigen, um das Ergebnis des RBI-Vorgangs oder eines Teils davon auszudrucken, oder anderes Material, welches die Routine ausdrucken soll. Alternativ hierzu kann dieses Material auch nur gespeichert werden, beispielsweise an einem geeigneten Ort im Speicher 28, ohne ausgedruckt zu werden. Sobald der Schritt 326 beendet ist, so verläßt das System die RBI-Routine durch den Schritt 328 und informiert Epic oder ein anderes Programm, welches den Ablauf von RBI gefordert hatte, und/oder den Benutzer, daß dieser Vorgang beendet ist.As soon as these preliminary operational steps have been carried out, the program proceeds to step 320 , in which it begins with the processing of rules, starting with the first or top database object and the first rule. As discussed above, the database objects represent the schematic characters, waveforms, netlist entries, or options that have been entered by the user or others and the conversion of which is required. From step 320 , operation proceeds to step 322 , in which the next rule, in this case the first rule, is transferred to a "current rule" register. During step 324 , a check is made as to whether the current control register is empty. If the current rule register is empty, this means that all rules have been viewed and the process has ended. This causes the operation to branch to step 326 to print out the result of the RBI operation, or a portion thereof, or other material to be printed out by the routine. Alternatively, this material can also only be stored, for example at a suitable location in the memory 28 , without being printed out. Once step 326 is completed, the system exits the RBI routine through step 328 and notifies Epic or another program that requested RBI to run and / or the user that the process has ended.
Wenn während des Schrittes 324 festgestellt wird, daß das momentane Regelregister nicht leer ist, etwa in einem Fall, wenn in dieses die erste Regel geladen wurde, so geht der Betrieb vom Schritt 324 zum Schritt 330 über, um zu ermitteln, ob dies eine "Bildschirm"-Regel ist. Es gibt im wesentlichen zwei Arten von Regeln in der RBI-Routine, die als "Bildschirmregeln" und "Beendigungsregeln" bezeichnet werden. Eine Beendigungsregel betrifft im allgemeinen einen einzigen Befehl, der sofort ausgeführt werden kann. Im Gegensatz hierzu betrifft eine Bildschirmregel im allgemeinen zwei oder mehr Befehle und kann auch eine Verzweigung oder andere Faktoren umfassen. Jede Regel, die keine "Bildschirmregel" ist, ist eine "Beendigungsregel". Falls daher während des Schrittes 330 festgestellt wird, daß die Regel keine Bildschirmregel ist, dann geht der Betrieb zum Schritt 332 über, um den einzigen Befehl der Beendigungsregel auszuführen, und kehrt dann zum Schritt 322 zurück, um die nächste Regel in die Warteschlange in dem momentanen Regelregister zu laden.If it is determined during step 324 that the current rule register is not empty, such as in a case where the first rule has been loaded into it, the operation proceeds from step 324 to step 330 to determine if this is a " Screen rule is. There are essentially two types of rules in the RBI routine called "screen rules" and "termination rules". A termination rule generally involves a single command that can be executed immediately. In contrast, a screen rule generally affects two or more instructions and can also include a branch or other factors. Any rule that is not a "screen rule" is a "termination rule". Therefore, if it is determined during step 330 that the rule is not a screen rule, then operation proceeds to step 332 to execute the termination rule's only command and then returns to step 322 to queue the next rule in the load the current control register.
Wenn im Schritt 330 festgestellt wird, daß die Regel in dem momentanen Regelregister eine "Bildschirm"-Regel ist, dann geht der Betrieb zu einem von verschiedenen Schritten über, abhängig von der Art der Bildschirmregel, die empfangen wurde. Es gibt grundsätzlich fünf Arten von Bildschirmregeln, die empfangen werden können. Zwei der Arten an Bildschirmregeln betreffen den Anfang bzw. das Ende einer Vierersequenz. Diese sind in Fig. 12A durch den Befehl oder die Regel "for all (nets)" und für die Regel "for all (symbols)" angegeben, die dieser folgt. Später gibt es auch eine Regel "for-bar all (ports)". Diese Regeln geben an, daß für sämtliche in den Klammern angegebenen Objekte die folgenden Regeln angewendet werden sollen, und eine alles beendende Regel wird durch den Ports-Befehl "thin-for-all bracket" und durch den ähnlichen Beendigungsbefehl für (Symbole) und (Netze) in Fig. 12A angezeigt. Dies sind die Regeln, welche eine Sequenz "for-all" beenden.If it is determined in step 330 that the rule in the current rule register is a "screen" rule, then operation proceeds to one of several steps, depending on the type of screen rule that has been received. There are basically five types of screen rules that can be received. Two of the types of screen rules relate to the beginning and end of a sequence of four. These are indicated in Figure 12A by the command or rule "for all (nets)" and for the rule "for all (symbols)" which follows it. Later there is also a rule "for - bar all (ports)". These rules specify that the following rules should apply to all objects in parentheses, and an all-ending rule is indicated by the ports command "thin - for - all bracket" and the similar exit command for (symbols) and ( Networks) is shown in Fig. 12A. These are the rules that end a sequence "for - all".
Zwei andere Arten von Befehlen entstehen aus einer "if"-Sequenz, von denen zwei in Fig. 12A gezeigt sind. Jede "if"-Sequenz beginnt mit dem Wort "if" ("wenn"), gefolgt von dem Objekt, auf welches "if" ausgeübt werden soll und welches in Klammern angegeben ist. Dann folgen eine oder mehrere Regeln und die "if"-Sequenz wird beendet durch die Regel "fin-if", die ebenfalls das Objekt umfaßt. Two other types of instructions arise from an "if" sequence, two of which are shown in Figure 12A. Each "if" sequence begins with the word "if", followed by the object to which "if" is to be applied and which is given in parentheses. Then one or more rules follow and the "if" sequence is ended by the rule "fin - if", which also includes the object.
Die endgültige Art einer Regel ist eine Bildschirmbruchregel. Dies ist eine Regel, welche untersucht, ob eine bestimmte Bedingung erfüllt ist, und die dann, falls die Bedingung erfüllt wurde, die übrigen Befehle des Bildschirms umgeht; oder, in anderen Worten, verhindert, daß der Rest der Regel durchgeführt wird. Eine Bruchregel ist nicht besonders in Fig. 12A angegeben.The final type of rule is a screen break rule. This is a rule that examines whether a certain condition is met and, if the condition is met, bypasses the remaining commands on the screen; or, in other words, prevents the rest of the rule from being carried out. A break rule is not particularly indicated in Fig. 12A.
Falls in Fig. 12 im Schritt 330 ermittelt wurde, daß die Bildschirmregel ein Anfang einer Bildschirmregel ist, so geht der Betrieb zum Schritt 334 über, um das nächste Objekt der Art zu holen, die in der "for"-Regel angegeben wird. Beispielsweise mit dem Befehl "for-all-nets" wird während des Schrittes 334 das nächste "Netz" im Schritt 334 zurückgeholt. Vom Schritt 334 geht der Betrieb zum Schritt 336 über, um festzustellen, ob sämtliche Objekte der angegebenen Art angesehen wurden. Wurden nicht sämtliche Objekte angesehen, so wird die nächste Regel innerhalb des "for"-Bildschirms während des Schrittes 338 erhalten, und diese Regel wird in die momentanen Regeln geladen, wenn der Betrieb zum Schritt 322 zurückkehrt. Während des nächsten Zyklus wird das Objekt durch diese Regel betrachtet und durch die Regel bearbeitet. Wird im Schritt 338 für ein gegebenes Objekt "fin-for-all" erreicht, so wird diese Regel während des Schrittes 340 erkannt und veranlaßt, daß das nächste Objekt der in der letzten "for"-Regel festgelegten Art zurückgeholt wird. Dann erfolgt eine Ermittlung, ob das Objekt leer ist, und die "for"-Bildschirmregeln werden auf das neue Objekt ausgeübt, wenn es nicht leer ist, durch einen Kreislauf durch die geeigneten Schritte, und eine Beendigung durch die Beendigungs- und Bildschirmregel. Sobald vom Schritt 340 aus der Schritt 336 erreicht ist und festgestellt wird, daß das Objekt leer ist, so geht der Betrieb zum Schritt 342 über, um zum Ende der "for"-Bildschirmregel überzugehen und so diese Regel zu verlassen.In Fig. 12, if it was determined in step 330 that the screen rule is a start of a screen rule, the operation proceeds to step 334 to fetch the next object of the type specified in the "for" rule. For example, the command "for - all - nets" next "network" is retrieved in step 334 during step 334th From step 334 , operation proceeds to step 336 to determine if all of the objects of the specified type have been viewed. If all objects have not been viewed, the next rule within the "for" screen is obtained during step 338 , and that rule is loaded into the current rules when operation returns to step 322 . During the next cycle, the object is viewed by this rule and processed by the rule. If "fin - for - all" is reached in step 338 for a given object, this rule is recognized during step 340 and is caused to bring the next object of the type defined in the last "for" rule back. A determination is then made as to whether the object is empty, and the "for" screen rules are applied to the new object if it is not empty by cycling through the appropriate steps and ending by the termination and screen rule. Once at the step 340 from step 336 and it is determined that the object is empty, the operation proceeds to step 342 to exit the end of the "for" -Bildschirmregel move and so this rule.
Entsprechend geht, wenn die ankommende Bildschirmregel während des Schrittes 330 als eine beginnende "if"-Bildschirmregel erkannt wird, der Betrieb zum Schritt 344 über, um festzustellen, ob die "if"-Bedingung wahr ist. Ist die "if"-Bedingung nicht wahr, so geht der Betrieb zum Schritt 346 über, welcher den Betrieb dazu veranlaßt, die erste Regel auszuführen, die dem Ende des "if"-Bildschirms folgt, und der Betrieb kehrt zum Schritt 322 zurück, um diese Regel als die nächste Regel in dem momentanen Regelregister anzuordnen.Likewise, if the incoming screen rule is recognized as a starting "if" screen rule during step 330 , operation proceeds to step 344 to determine if the "if" condition is true. If the "if" condition is not true, the operation proceeds to step 346 which causes the operation to execute the first rule following the end of the "if" screen and the operation returns to step 322 , to place this rule as the next rule in the current rule register.
Ist die "if"-Bedingung wahr, so geht der Betrieb zum Schritt 348 über, um die Regel innerhalb des "if"-Bildschirms zu erhalten, und diese Regel als die nächste Regel in dem momentanen Regelregister anzuordnen. Dann kehrt der Betrieb zum Schritt 322 zurück, um zu veranlassen, daß diese Regel ausgeführt wird. Ist die Regel innerhalb des "if"-Bildschirms die Regel zur Beendigung des "if-Bildschirms", so geht der Betrieb vom Schritt 330 zum Schritt 350 über, um die nächste Regel außerhalb des "if"-Bildschirms zu holen, und diese Regel als die nächste Regel in das momentane Regelregister zu bringen, und dann kehrt der Betrieb zum Schritt 322 zurück, um die Ausführung dieser Regel zu veranlassen.If the "if" condition is true, operation proceeds to step 348 to get the rule within the "if" screen and place that rule as the next rule in the current rule register. Then operation returns to step 322 to cause this rule to be executed. If the rule within the "if" screen is the rule for ending the "if screen", then operation proceeds from step 330 to step 350 to get the next rule outside the "if" screen, and this rule as the next rule in the current rule register, and then operation returns to step 322 to cause this rule to be executed.
Wenn schließlich im Schritt 330 festgestellt wird, daß die Regel eine Bildschirmbruchregel ist, so geht der Betrieb zum Schritt 352 über, um zu ermitteln, ob die Bruchbedingung wahr ist. Ist die Bruchbedingung wahr, dann geht der Betrieb zum Ende des Bildschirms über, oder holt sich, mit anderen Worten, die erste Regel außerhalb des Bildschirms, während des Schrittes 354, und diese Regel wird die nächste Regel in dem momentanen Regelregister. Dann kehrt der Betrieb zum Schritt 322 zurück. Entsprechend wird, wenn im Schritt 352 keine Ausgabe erfolgt, die nächste Regel während des Schrittes 356 zurückgeholt, als die nächste Regel in das momentane Regelregister geladen, und dann kehrt der Betrieb zum Schritt 322 zurück, um diese Regel auszuführen.Finally, if it is determined in step 330 that the rule is a screen break rule, operation proceeds to step 352 to determine if the break condition is true. If the break condition is true, then operation goes to the end of the screen or, in other words, fetches the first off-screen rule during step 354 and that rule becomes the next rule in the current rule register. Then the operation returns to step 322 . Similarly, if there is no output in step 352 , the next rule is retrieved during step 356 as the next rule is loaded into the current rule register, and then operation returns to step 322 to execute this rule.
Wie voranstehend erläutert, steuern die RBI-Regeln Formatumwandlungen zwischen den beiden betrachteten Programmen, so daß Objekte in einem der Tools in das geeignete Forma für das andere Tool umgewandelt werden. Die Regeln können auch bei Objekten angewandt werden, die Standardbefehle oder andere Gegenstände in einem der Tools sind, die so umgewandelt werden müssen, daß sie bei dem anderen Tool arbeiten.As explained above, the RBI rules control Format conversions between the two considered Programs so that objects in one of the tools in that appropriate forma to be converted for the other tool. The rules can also be applied to objects that Standard commands or other items in one of the tools are that have to be converted in such a way that they other tool work.
Eine weitere Anforderung an ein System, welches den Betrieb einer großen Anzahl an Softwaretools steuern soll, ist die Fähigkeit, interaktiv Information zu sammeln, die von diesen Tools in jeder Stufe ihres Betriebs gefordert werden. Derartige Information kann vom Benutzer des Systems, vom Bediener oder von anderen Tools in dem System erlangt werden. Wird die Information von dem Bediener erlangt, so ist es vorzuziehen, daß der Bediener so wenig Information wie möglich zur Verfügung stellt, wobei Standardeingaben für die meisten der geforderten Eingaben verfügbar sind, und daß der Benutzer dazu aufgefordert wird, alle geforderten Eingaben zur Verfügung zu stellen. Dem Benutzer können auch sämtliche wahlweisen Eingaben angezeigt werden, die in dieser Stufe verfügbar sind. Vorzugsweise geht das System nicht mit dem angezeigten Vorgang weiter, bis der Benutzer sämtliche geforderten Eingaben zur Verfügung gestellt hat und diese Eingaben gültig sind.Another requirement for a system that the Control the operation of a large number of software tools, is the ability to collect information interactively required by these tools at every stage of their operations become. Such information can by the user of the Systems, by the operator or by other tools in the system can be obtained. The information is provided by the operator obtained, it is preferable that the operator do so little Provides information as possible, where Standard inputs for most of the required inputs are available and that the user is prompted to do so will provide all required inputs. The user can also make all optional entries that are available at this level. Preferably the system does not go with the one displayed Process continues until the user has requested all Has provided inputs and these inputs are valid.
Die Routine, die die voranstehend beschriebenen Funktionen zur Steuerung, andere nicht-grafische Eingaben und möglicherweise für bestimmte Arten grafischer Eingaben zur Verfügung stellt, wird als die Designüberprüfungs- oder dv-Routine bezeichnet. Fig. 13 ist ein Flußdiagramm dieser Routine, und Fig. 14 ist eine erläuternde Anzeige, die unter Verwendung dieser Routine erhalten wird.The routine that provides the functions described above for control, other non-graphical inputs and possibly for certain types of graphical inputs is referred to as the design check or dv routine. Fig. 13 is a flowchart of this routine, and Fig. 14 is an explanatory display obtained using this routine.
In Fig. 13 geht das Programm mit dem Startschritt 360 von Epic oder einem anderen geeigneten Softwaretool los, welches auf dem System läuft. dv kann immer dann aufgerufen werden, wenn es erforderlich ist, interaktiv Daten oder anderes geeignetes Material in das System einzugeben.In FIG. 13, the program starts with the start step 360 from Epic or another suitable software tool that runs on the system. dv can be called up whenever it is necessary to enter interactive data or other suitable material into the system.
Der nächste Schritt im Betriebsablauf, Schritt 362, ist das Einlesen von Grafik- und Menüinformation für dv, die an einem geeigneten Ort im Bereich 95 des Speichers 28 gespeichert ist, und die Anzeige der grundlegenden dv-Ikonanzeige. Die dv-Ikons sind im Bereich 364 in Fig. 14 gezeigt, und dieser Abschnitt der in Fig. 14 gezeigten Anzeige ist das, was ursprünglich auf dem Bildschirm der Anzeigevorrichtung 30 erscheinen würde.The next step in the operational flow, step 362 , is to read in graphic and menu information for dv stored in a suitable location in area 95 of memory 28 and display the basic dv icon display. The dv icons are shown in area 364 in FIG. 14, and this portion of the display shown in FIG. 14 is what would originally appear on the screen of display device 30 .
Das System liest dann die Epic-Regeln, die für diesen Task geeignet sind, vom Bereich 90 des Speichers 28 ein und speichert diese Regeln als eine verstandene Task-Liste, deren Funktion später beschrieben wird (Schritt 366). Während des Schrittes 368, dem nächsten Schritt im Betrieb, liest das System die dv-Regeln aus dem Bereich 94 des Speichers 28, oder zumindest den Anteil dieser Regeln, die für das momentan laufende Softwaretool oder die momentan laufenden Softwaretools relevant sind, und speichert diese Regeln als eine Task-Befehlsliste. Diese Regeln definieren spezielle Befehle für das betreffende Tool und enthalten u. a. Standardeingaben für unterschiedliche Stufen in dem Tool. Ein beispielhafter Abschnitt einer dv-Regeldatei ist in Fig. 13A gezeigt.The system then reads the epic rules suitable for this task from the area 90 of the memory 28 and stores these rules as an understood task list, the function of which will be described later (step 366 ). During step 368 , the next step in operation, the system reads the dv rules from area 94 of memory 28 , or at least the portion of these rules that are relevant to the software tool or software tools currently running, and stores them Rules as a task command list. These rules define special commands for the tool in question and contain, among other things, standard inputs for different levels in the tool. An exemplary portion of a dv rules file is shown in FIG. 13A.
Dann liest das System die schematischen Designdateien während des Schrittes 370. Dies sind Dateien, die Information betreffend das betrachtete Schema enthalten, einschließlich beispielsweise einer Erläuterung der Bedeutung jedes Kastens in einem Schema. Die schematischen Designdateien werden ebenfalls an einem geeigneten Ort in dem RAM des Prozessors 22 gespeichert.The system then reads the schematic design files during step 370 . These are files that contain information regarding the scheme under consideration, including, for example, an explanation of the meaning of each box in a scheme. The schematic design files are also stored in a suitable location in the RAM of the processor 22 .
Soweit ein ähnlicher Task vorher durchgeführt wurde und irgendwelche Information, die bei einem derartigen vorherigen Lauf erzeugt wurde, für zukünftige Bezugnahme gespeichert wurde, wird derartige Information ebenfalls zurückgeholt und im Schritt 372 in das RAM des Prozessors eingeschrieben. Wenn daher die Schritte 362 bis 372 beendet sind, hat das System eine erhebliche Menge an Informationen und Regeln angesammelt, die erforderlich sein können, um die dv-Funktion durchzuführen. Es wird darauf hingewiesen, daß zwar die Information in einer bestimmten Reihenfolge in Fig. 13 zurückgeholt und gespeichert wurde, daß diese Reihenfolge allerdings nur zum Zwecke der Erläuterung angegeben ist, und daß die Information in jeder gewünschten Reihenfolge zurückgeholt und gespeichert werden kann.Insofar as a similar task has been previously performed and any information generated in such a previous run has been saved for future reference, such information is also retrieved and written to the processor RAM in step 372 . Therefore, when steps 362 through 372 are completed, the system has accumulated a significant amount of information and rules that may be required to perform the dv function. It should be noted that although the information has been retrieved and stored in a particular order in Fig. 13, this order has been given for purposes of illustration only and that the information can be retrieved and stored in any order desired.
Der nächste Schritt im Betrieb ist der Schritt 374, in welchem ein Kanal geöffnet wird, um mit Epic zu kommunizieren. Dies ist ein bidirektionaler Kanal. Falls dieser Kanal nicht geöffnet werden kann, wird das Programm abgebrochen.The next step in operation is step 374 , in which a channel is opened to communicate with Epic. This is a bidirectional channel. If this channel cannot be opened, the program is canceled.
Sobald die voranstehend beschriebenen, einleitenden Funktionen beendet sind, geht der Betrieb mit dem Schritt 376 weiter und wartet auf eine Eingabe. Nichts weiteres passiert, bis eine Ausgabe "JA" im Schritt 376 erhalten wird, die anzeigt, daß eine Eingabe empfangen wurde. Wenn eine Eingabe empfangen wird, geht der Betrieb zum Schritt 378 weiter, um zu ermitteln, ob die Eingabe eine Eingabe in bezug auf "Aussteigen" ist. Ist die Eingabe eine Ausstiegseingabe, die anzeigt, daß dv aufgerufen werden soll, so geht der Betrieb zum Schritt 380 über, um zu ermitteln, ob der Benutzer die Umgebung speichern möchte. Der Schritt 380 stellt die Fähigkeit zur Verfügung, entweder ausgewählte Tasks oder Regeln zu speichern, die von dem Benutzer modifiziert wurden, oder jedes andere Material zu speichern, welches von dem Systemintegrator in den Regeln oder Makros festgelegt wurde, und zwar durch den System-Operator oder den Hersteller des Systems in dem mit dem System bereitgestellten Material. Wenn Information gespeichert werden soll, so geht der Betrieb zum Schritt 382 über, um die angegebene Information zu speichern. Vom Schritt 380, falls eine Ausgabe "NEIN" erhalten wird, oder vom Schritt 382 geht der Betrieb zum Schritt 384 über, um aus der dv-Routine auszusteigen oder diese zu verlassen. Das Umgebungsmaterial, welches während des Schrittes 382 gespeichert wurde, ist dann das Material, welches während des Schrittes 372 gespeichert wird, wenn das Tool das nächste Mal abläuft.Once the introductory functions described above are complete, operation continues to step 376 and waits for input. Nothing else happens until an "YES" output is obtained in step 376 indicating that an input has been received. If an input is received, operation proceeds to step 378 to determine if the input is an "exit" input. If the input is an exit input indicating that dv is to be called, operation proceeds to step 380 to determine if the user wants to save the environment. Step 380 provides the ability to either save selected tasks or rules that have been modified by the user or to save any other material that has been set in the rules or macros by the system integrator by the system operator or the manufacturer of the system in the material provided with the system. If information is to be stored, the operation proceeds to step 382 to store the specified information. From step 380 if an "NO" output is obtained, or from step 382 , operation proceeds to step 384 to exit or exit the dv routine. The surrounding material that was saved during step 382 is the material that is saved during step 372 the next time the tool runs.
Wird im Schritt 378 eine Ausgabe "NEIN" erhalten, wie dies normalerweise der Fall ist, so geht der Betrieb zum Schritt 386 über, um zu ermitteln, ob die Eingabe eine solche Eingabe ist, die durch Epic (also das in Fig. 4 gezeigte Programm) durchgeführt werden soll, anstatt durch dv. Dies wird unter Verwendung der Epic-Regeln ermittelt, die während des Schrittes 366 gespeichert wurden. Ist das Programm ein Programm, welches von Epic durchgeführt werden soll, so wird der Task an Epic (Schritt 388) durch den Kanal geschickt, der während des Schrittes 374 eingerichtet wurde. Vom Schritt 388 kehrt das System zum Schritt 376 zurück, um auf eine neue Eingabe zu warten.If an "NO" output is received in step 378 , as is normally the case, operation proceeds to step 386 to determine if the input is such an input as that shown by Epic (i.e., that shown in FIG. 4) Program) should be carried out instead of by dv. This is determined using the Epic rules that were saved during step 366 . If the program is a program that is to be carried out by Epic, the task is sent to Epic (step 388 ) through the channel that was set up during step 374 . From step 388 , the system returns to step 376 to wait for a new entry.
Falls der Task nicht durch Epic durchgeführt werden soll, geht der Betrieb zum Schritt 390 über, um festzustellen, ob der Task ein dv-Befehl ist. Ist der Task weder ein dv- oder ein Epic-Befehl, dann liegt ein Fehler vor, der dem System und/oder dem Benutzer während des Schrittes 392 auf geeignete Weise angezeigt wird. Vom Schritt 392 geht der Betrieb zum Schritt 376 zurück, um auf eine neue Eingabe zu warten. Die neue Eingabe kann beispielsweise eine Eingabe von dem Benutzer sein, welche den Fehler korrigiert.If the task is not to be performed by Epic, operation proceeds to step 390 to determine if the task is a dv command. If the task is neither a dv or an epic command, then there is an error that is displayed to the system and / or the user in a suitable manner during step 392 . From step 392 , operation returns to step 376 to wait for a new entry. The new input can be, for example, an input from the user that corrects the error.
Ist der Befehl ein dv-Befehl, so geht der Betrieb zum Schritt 394 über, um die Art des dv-Befehls zu ermitteln, der empfangen wurde. Es gibt drei grundlegende Arten an dv-Befehlen, die allgemein bezeichnet sind als "Informationssammlung", "Übersetzung" und "Design-Lesen". Es wird anfänglich angenommen, daß während des Schrittes 394 ermittelt wird, daß der Befehl der Design-Lesebefehl ist. Unter dieser Bedingung geht der Betrieb zum Schritt 396 über, um das spezifische schematische Diagramm zu lesen und zu speichern, welches an diesem Punkt des Betriebs des Tools erzeugt wurde, beispielsweise das auf dem Bildschirm in Fig. 14 gezeigte schematische Diagramm, und auch die GRM-Alias-Information zu lesen und zu speichern für ein derartiges Tool, und für ein Tool, an welches das Schema übertragen werden soll, oder die GRM-Alias-Information zwischen dem Schema an seinem Hierarchieniveau und einem höheren oder niedrigeren Hierarchieniveau, auf welches das Schema übertragen werden soll. Die während des Schrittes 396 gespeicherte Information wird durch spätere Befehle genutzt, um die gewünschte Wandlung durchzuführen. Vom Schritt 396 kehrt der Betrieb zum Schritt 376 zurück, um auf eine neue Eingabe zu warten.If the command is a dv command, operation proceeds to step 394 to determine the type of dv command that was received. There are three basic types of dv commands, commonly referred to as "information gathering", "translation" and "design reading". It is initially assumed that it is determined during step 394 that the command is the design read command. Under this condition, operation proceeds to step 396 to read and save the specific schematic diagram generated at that point in the tool's operation, such as the schematic diagram shown on the screen in FIG. 14, and also the GRM Read and store alias information for such a tool, and for a tool to which the schema is to be transferred, or the GRM alias information between the schema at its hierarchical level and a higher or lower hierarchical level to which the Scheme to be transferred. The information stored during step 396 is used by later commands to perform the desired conversion. From step 396 , operation returns to step 376 to wait for a new entry.
Falls festgestellt wird, daß die Eingabe ein Übersetzungsbefehl ist, so bedeutet dies, daß eine Übersetzung für ein bestimmtes schematisches Element oder Bestandteil oder auf einem anderen Element oder Bestandteil ausgeübt werden soll, welches dem Benutzer angezeigt wird. Während des Schrittes 398 wird der Benutzer dazu aufgefordert, den Bestandteil oder das andere Element anzugeben, auf welchem die Operation durchgeführt werden soll. Sobald der Benutzer diesen Vorgang beendet, greift während des Schrittes 400 in Reaktion auf die Benutzereingabe dv auf die Datenbasis zu, die während des Schrittes 396 oder 370 gespeichert wurde, um den angegebenen Gegenstand zu übersetzen. Während des Schrittes 402 wird der übersetzte Gegenstand an Epic geschickt, falls dies geeignet ist, und zwar über den während des Schrittes 374 erzeugten Kanal. Einige übersetzte Gegenstände werden nur in dv gespeichert oder können so auf andere Weise umgeleitet werden, wie das durch dv-Regeln angezeigt ist, oder woanders hin. Sobald der Schritt 402 beendet ist, kehrt der Betrieb zum Schritt 376 zurück, um auf eine neue Eingabe zu warten. If it is determined that the input is a translation command, it means that a translation is to be carried out for a particular schematic element or component or on another element or component which is displayed to the user. During step 398 , the user is prompted to specify the component or other element on which the operation is to be performed. Once the user completes this process, in step 400, in response to user input dv, accesses the database that was saved during step 396 or 370 to translate the specified item. During step 402 , the translated item is sent to Epic, if appropriate, via the channel created during step 374 . Some translated items are only stored in dv or can be redirected in other ways, as indicated by dv rules, or elsewhere. Once step 402 is complete, operation returns to step 376 to wait for a new entry.
Falls festgestellt wird, daß der dv-Befehl ein
Informationssammelbefehl ist, so geht der Betrieb vom
Schritt 394 zum Schritt 404 über, in welchem dem Benutzer
auf dem Bildschirm des Anzeigegerätes 30 eine
Standardtaskbefehlseinstellung gezeigt wird, welche die
folgenden drei Elemente enthalten kann:
If it is determined that the dv command is an information gathering command, operation proceeds from step 394 to step 404 where the user is shown a standard task command setting on the screen of display device 30 which may include the following three elements:
- 1. Eine Liste von Standardangaben, die für die gegebene Stufe im Betrieb des Softwaretools geeignet ist. Diese werden durch den Systemintegrator des Benutzers oder durch den Hersteller des Systems zur Verfügung gestellt.1. A list of standard information required for the given level in the operation of the software tool is suitable. These are done by the system integrator of the user or provided by the manufacturer of the system.
- 2. Eine Anzeige von Eingaben, bei denen es erforderlich ist, daß sie vom Benutzer zur Verfügung gestellt werden. Dies können beispielsweise bestimmte Werte für Bauteile sein, beispielsweise Widerstands- oder Kapazitätswerte.2. A display of entries where it is required that it is available from the user be put. For example, this can be certain Values for components, for example resistance or Capacity values.
- 3. Wahlweise Eingaben, die von dem Benutzer in dieser Stufe des Betriebs des Softwaretools zur Verfügung gestellt werden können, wobei das System jedoch auch ohne diese Eingaben weitermachen kann. Dies kann beispielsweise eine Anzeige eines Herstellers für ein Bauteil oder eine Farbkodierung von Drähten sein, die an diesem Punkt in das Design eingeführt werden könnten, die jedoch nicht erforderlich sind.3. Optional inputs by the user in this Level of operation of the software tool available can be put, but the system also without can continue these inputs. For example an advertisement from a manufacturer for a component or Color coding of wires that are at that point in the Design could be introduced, but not required are.
Der Benutzer kann eine oder sämtliche Standardeingabe akzeptieren oder diese ändern, muß erforderliche Eingaben für den Fortgang des Betriebs hinzufügen und kann irgendeine der wahlweisen Eingaben hinzufügen. Während des Schrittes 406 erfolgt eine Festlegung, ob der Benutzer irgendwelche Änderungen vorgenommen hat. Hat der Benutzer Änderungen vorgenommen, so geht der Betrieb zum Schritt 408 über, um die Änderungen in die interne Umgebung zu übernehmen, nämlich die Änderungen an dem geeigneten Ort im Speicher aufzuzeichnen. Vom Schritt 406 aus, falls eine Ausgabe "Keine Änderungen" vorliegt, oder vom Schritt 408 aus, geht der Betrieb mit dem Schritt 410 weiter, um zu ermitteln, ob sämtliche erforderlichen Änderungen durchgeführt wurden. Wurden nicht alle erforderlichen Änderungen durchgeführt, so geht der Betrieb zum Schritt 412 über, in welchem der Benutzer dazu aufgefordert wird, erforderliche Änderungen vorzunehmen. Dies umfaßt die Eingabe erforderlicher Eingaben an den angegebenen Orten. Die Aufforderung kann durch irgendeine geeignete Weise durchgeführt werden, beispielsweise durch Blinken oder eine andere Hervorhebung einer erforderlichen Änderung oder Eingabe, die noch nicht gemacht wurde. Vom Schritt 412 geht der Betrieb zum Schritt 406 über, um festzustellen, ob der Benutzer Änderungen durchgeführt hat, und über die Schritte 408 und 410 zu ermitteln, ob nunmehr alle erforderlichen Änderungen durchgeführt wurden.The user can accept or change any or all of the standard input, add required input to continue the operation, and add any of the optional input. A determination is made at step 406 as to whether the user has made any changes. If the user has made changes, operation proceeds to step 408 to apply the changes to the internal environment, namely to record the changes in the appropriate location in memory. From step 406 if there is no "no changes" output, or from step 408 , operation proceeds to step 410 to determine if all of the required changes have been made. If all of the required changes have not been made, operation transfers to step 412 where the user is prompted to make necessary changes. This includes entering required information at the specified locations. The request can be made by any suitable means, such as flashing or otherwise highlighting a required change or entry that has not yet been made. From step 412 , operation proceeds to step 406 to determine if the user has made changes and to determine via steps 408 and 410 whether all of the necessary changes have now been made.
Wurden alle erforderlichen Änderungen durchgeführt, so geht der Betrieb zum Schritt 414 über, um den geeigneten Epic-Task zu ermitteln, beispielsweise den vom Benutzer ausgewählten Task. Dieser Epic-Task wird dann im Schritt 402 an Epic geschickt, falls dies geeignet ist, zusammen mit Information, die mittels dv über den Kanal gesammelt wurde, der während des Schrittes 374 eingerichtet wurde, und dann kehrt der Betrieb zum Schritt 376 zurück, um auf die nächste Eingabe zu warten.Once all of the necessary changes have been made, operation proceeds to step 414 to determine the appropriate Epic task, such as the task selected by the user. This Epic task is then sent to Epic in step 402 , if appropriate, along with information gathered by dv over the channel established during step 374 , and then operation returns to step 376 to wait for the next input.
Das voranstehend beschriebene dv-Programm ist dazu ausgebildet, alphanumerische und andere Steuerinformation von einem Benutzer zu sammeln. Allerdings ist es beim Entwurf elektronischer Schaltungen und insbesondere bei der Durchführung von Simulationsprogrammen im Zusammenhang mit derartigen Entwürfen häufig erforderlich, ausgewählte Grafikdaten und insbesondere bestimmte analoge oder digitale Signalformen in das System einzugeben. Bezüglich dv ist es wünschenswert, daß der Benutzer dazu aufgefordert wird, solche Grafikdaten, soweit erforderlich, zur Verfügung zu stellen, daß für den Benutzer in den meisten Situationen Standardeingaben verfügbar sind, und daß der Gesamtbetrieb für den Operator so einfach und narrensicher wie möglich ist. Es ist ebenfalls wesentlich, daß die Routine dazu ausgebildet ist, mit Softwaretools von verschiedenen unterschiedlichen Quellen zu arbeiten, welche Signalformen in verschiedenen Sprachen zur Verfügung stellen können, unterschiedliche Namen benutzen und/oder unterschiedliche Formate einsetzen, und daß Übersetzungen oder Interpretationen durch das System auf eine Weise zur Verfügung gestellt werden, die sowohl für den Benutzer als auch für den Simulator oder ein anderes Softwaretool transparent ist, für welches Information gesammelt wird. Der Bediener (Operator) sollte die Wahl haben, entweder bereits existierende Signalformen auszuwählen oder andere Grafiken oder seine eigene Signalform auf dem Bildschirm der Anzeigevorrichtung 30 zu zeichnen, beispielsweise unter Benutzung der Maus 26.The dv program described above is designed to collect alphanumeric and other control information from a user. However, when designing electronic circuits and in particular when carrying out simulation programs in connection with such designs, it is often necessary to enter selected graphic data and in particular certain analog or digital signal forms into the system. With regard to dv, it is desirable that the user be prompted to provide such graphics data as necessary, that standard inputs are available to the user in most situations, and that the overall operation be as simple and foolproof as possible for the operator . It is also essential that the routine be designed to work with software tools from different different sources, which can provide waveforms in different languages, use different names and / or use different formats, and that translations or interpretations are made by the system provide a way that is transparent to both the user and the simulator or other software tool for which information is collected. The operator should have the choice of either selecting existing waveforms or drawing other graphics or his own waveform on the screen of display 30 , for example using mouse 26 .
Die erfindungsgemäße Routine, welche die verschiedenen, voranstehend angegebenen Fähigkeiten zur Verfügung stellt, wird als "Wavedit" bezeichnet. Zwar erfolgt die Erläuterung in bezug auf "Wavedit" in bezug auf Signalformeingaben, jedoch ist es offensichtlich, daß die beschriebenen Vorgehensweisen auch für andere Arten grafischer Eingaben verwendet werden könnten. Ein Flußdiagramm der Wavedit-Routine ist in Fig. 15 gezeigt, und Flußdiagramme unterschiedlicher Unterprogramme dieser Routine sind in den Fig. 16 bis 19 gezeigt.The routine according to the invention, which provides the various abilities specified above, is referred to as "Wavedit". While the explanation of "Wavedit" is for waveform inputs, it is obvious that the procedures described could be used for other types of graphical inputs. A flow chart of the Wavedit routine is shown in FIG. 15, and flow charts of various subroutines of this routine are shown in FIGS . 16 to 19.
Wie zuerst aus Fig. 15 hervorgeht, gelangt man in die Routine durch den Schritt 420. Der Eingang in die Routine kann in Reaktion auf eine Eingabe von Epic erfolgen, von einer der anderen Routinen oder einem der anderen Softwaretools, die auf dem System laufen, beispielsweise ein Simulator, der grafische Eingaben erfordert, oder in Reaktion auf eine geeignete Eingabe von dem Operator. Typischerweise gelangt man in Wavedit in Reaktion auf einen Befehl von einem Makro der Epic-Routine, die zur Durchführung einer Simulationsfunktion läuft.As is apparent first from Fig. 15, leads to the routine through the step 420. The routine may be entered in response to an input from Epic, from one of the other routines or software tools running on the system, such as a simulator that requires graphical input, or in response to an appropriate input from that Operator. Typically, Wavedit comes in response to a command from a macro of the epic routine that is running to perform a simulation function.
Nach dem Eingang in Wavedit besteht der erste Schritt, Schritt 422, darin, interne Daten zu initialisieren. Dies erfolgt automatisch in Reaktion auf Befehle, welche einen Teil der Wavedit-Routine bilden, und führt zum Einlesen erforderlicher Daten in das System aus den Wavedit-Dateien 98, um die Erzeugung einer Standardanfangsanzeige hervorzurufen, einschließlich einer Standardsignalform oder von Standardsignalformen und eines Standardmenüs. Die Standardanzeige kann übersteuert werden, wie nachstehend erläutert wird, nämlich durch Benutzereingaben.After entering Wavedit, the first step, step 422 , is to initialize internal data. This is done automatically in response to commands that form part of the Wavedit routine and results in the necessary data being read into the system from Wavedit files 98 to cause the generation of a standard initial display, including a standard waveform or waveforms and menu. The standard display can be overridden, as explained below, namely by user input.
Während des Schrittes 424, dem nächsten Schritt im Betriebsablauf, werden verschiedene Konfigurationsdateien in das System eingelesen. Fig. 16 stellt ein detaillierteres Flußdiagramm der Operationen dar, die im Zusammenhang mit dem Schritt 424 durchgeführt werden. In Fig. 16 ist der erste Schritt 426 das Öffnen einer Zustandsdefinitionsdatei. Die Zustandsdefinitionsdatei stellt Werte zur Verfügung, die für jeden digitalen Zustand angezeigt werden sollen, der in einer zu erzeugenden digitalen Signalform auftauchen kann. Als Minimum werden zwei digitale Zustände, 0 und 1, definiert. Jedoch können verschiedene Anstiegs- und Abfallzustände, ebenso wie andere digital definierte Zustände, die im Stand der Technik bekannt sind, in dem System verwendet werden. Jeder Zustand, der zusammen mit einem speziellen Ablauf der Wavedit-Routine verwendet werden soll, muß während des Schrittes 424 definiert werden. Typischerweise gibt es Standarddefinitionen für zumindest die binären Zustände 0 und 1. Zusätzliche Standarddefinitionen können zur Verfügung gestellt werden. Diese sind verfügbar, wenn im Schritt 426 eine Zustandsdefinitionsdatei geöffnet wird, und werden während der Schritte 428 und 430 in das System eingelesen. Jede Definition in der Zustandsdefinitionsdatei gibt an, wie der Zustand beim Zeichnen aussieht, wie das System den Zustand identifiziert, und wie das System den Zustand betreffende Information weitergeben soll. Der Benutzer kann entweder die Standarddefinitionen akzeptieren oder eigene Definitionen auf geeignete Weise eingeben. Während des Schrittes 428 erfolgt eine Ermittlung, ob sämtliche Definitionen für den speziellen Ablauf der Wavedit-Routine eingegeben wurden, und im Schritt 430 wird eine zusätzliche Definition in die Tabelle eingelesen, falls noch nicht alle Definitionen gelesen wurden. Die Schritte 428 und 430 werden wiederholt, bis alle Definitionen eingegeben wurden, die für den speziellen Ablauf der Routine erforderlich sind.During step 424 , the next step in the operational flow, various configuration files are read into the system. Fig. 16 illustrates a more detailed flow chart of the operations performed in connection with step 424. In Fig. 16, the first step 426 is the opening of a state definition file. The state definition file provides values that are to be displayed for each digital state that can appear in a digital signal form to be generated. At least two digital states, 0 and 1, are defined. However, various rise and fall states, as well as other digitally defined states known in the art, can be used in the system. Each state that is to be used in conjunction with a particular flow of the Wavedit routine must be defined during step 424 . Typically there are standard definitions for at least binary states 0 and 1. Additional standard definitions can be provided. These are available when a state definition file is opened in step 426 and are read into the system during steps 428 and 430 . Each definition in the state definition file specifies what the state looks like when drawing, how the system identifies the state, and how the system should pass on information relating to the state. The user can either accept the standard definitions or enter their own definitions in a suitable manner. During step 428 , a determination is made as to whether all definitions for the specific sequence of the Wavedit routine have been entered, and an additional definition is read into the table in step 430 if all definitions have not yet been read. Steps 428 and 430 are repeated until all definitions have been entered that are required for the particular flow of the routine.
Wurden alle Zustandsdefinitionen eingegeben, so geht der Betrieb zum Schritt 432 über. Während des Schrittes 432 erfolgt eine Ermittlung, ob sämtliche Zustandslogikregeln aus dem Bereich 98 des Speichers in den RAM des Prozessors 22 eingelesen wurden. Zustandslogikregeln sind beispielsweise Regeln zur Durchführung Bool'scher Algebra, oder andere Regeln, welche potentielle Wechselwirkungen zwischen Signalformen definieren. Falls während des Schritts 432 festgestellt wird, daß noch nicht sämtliche Zustandslogikregeln gelesen wurden, so geht der Betrieb zum Schritt 434 über, um zusätzliche Logikregeln in eine interne Logikregeltabelle in einem geeigneten Wavedit-Bereich eines RAM des Prozessors 22 einzulesen. Die Schritte 432 und 434 werden wiederholt, bis ermittelt wird, daß sämtliche Logikzustandsregeln eingelesen wurden, und zu diesem Zeitpunkt geht der Betrieb zum Schritt 436 über, um die Definitionsdateien zu schließen.Once all of the state definitions have been entered, operation proceeds to step 432 . During step 432 , a determination is made as to whether all state logic rules have been read from the area 98 of the memory into the RAM of the processor 22 . State logic rules are, for example, rules for performing Boolean algebra, or other rules that define potential interactions between signal forms. If it is determined during step 432 that all of the state logic rules have not yet been read, operation proceeds to step 434 to read additional logic rules into an internal logic rules table in a suitable wavedit area of a processor 22 RAM. Steps 432 and 434 are repeated until it is determined that all of the logic state rules have been read in, and at that point operation transfers to step 436 to close the definition files.
Dann geht der Betrieb zum Schritt 438 über, um eine Filterlistendatei zu öffnen. Die Filterlistendatei enthält Informationen, welche es Wavedit gestatten, Eingaben von oder Übertragungen an ihre Ausgänge zu Softwaretools, im allgemeinen Simulatortools zu empfangen, welche bezüglich der Sprache oder des Formats mit Wavedit nicht kompatibel sind. Insbesondere gibt die Filterlistendatei ein Softwaretool an, welches dazu verwendet werden kann, geeignete Übersetzungen zwischen Wavedit und den externen Tool durchzuführen. Eine derartige Übersetzungsroutine kann RBI sein, oder ein anderes Übersetzungstool, welches in dem System verfügbar ist. Sobald eine Filterliste in einem geeigneten Bereich im RAM des Prozessors 22 geöffnet wurde, führt der Betriebsablauf die Schritte 440 und 442 durch, um zu ermitteln, ob es weitere Filterspezifikationen gibt, die aus dem Bereich 98 ausgelesen werden sollten, oder aus einem anderen geeigneten Ort, und zwar in die Filterlistendatei, und um die Filterspezifikationen in die interne Filterlistendatei einzulesen, bis sämtliche Filterspezifikationen in diese Datei eingelesen wurden. Falls dies auftritt, wird während des Schrittes 444 die Filterdatei geschlossen. Then operation proceeds to step 438 to open a filter list file. The filter list file contains information which allows Wavedit to receive inputs from or transmissions to its outputs to software tools, generally simulator tools, which are incompatible with Wavedit in terms of language or format. In particular, the filter list file specifies a software tool that can be used to carry out suitable translations between Wavedit and the external tool. Such a translation routine can be RBI or any other translation tool available in the system. Once a filter list has been opened in a suitable area in the RAM of processor 22 , the operational flow performs steps 440 and 442 to determine if there are other filter specifications that should be read from area 98 or from another suitable location , namely in the filter list file, and to read the filter specifications into the internal filter list file until all filter specifications have been read into this file. If this occurs, the filter file is closed during step 444 .
Vom Schritt 444 geht der Betrieb zum Schritt 446 über, um Menüdateien in einen geeigneten Bereich in dem RAM des Prozessors für Wavedit einzulesen. Hier handelt es sich um verschiedene Menüs, die auf dem Bildschirm der Anzeigevorrichtung 30 während des Ablaufs der Wavedit-Routine erscheinen können. Die Menüs sind typischerweise Menüs aus Ikons. Der Lesemenüdateischritt umfaßt typischerweise auch eine Öffnung der Datei, eine Ermittlung, ob es mehr zu lesende Menüs gibt, ein Ablesen der Menüs und Schließen der Datei ebenso wie bei den vorherigen zwei Dateien, jedoch wurde zum Zwecke der Vereinfachung des Diagramms dieser Betrieb nur als ein einziger Schritt in Fig. 16 gezeigt.From step 444 , operation proceeds to step 446 to read menu files into an appropriate area in the processor RAM for Wavedit. These are various menus that may appear on the display of the display device 30 while the Wavedit routine is running. The menus are typically menus made up of icons. The read menu file step typically also includes opening the file, determining if there are more menus to read, reading the menus, and closing the file as in the previous two files, but this operation has been considered only as one for the purpose of simplifying the diagram only step shown in FIG. 16.
Entsprechend wurde der Lesebefehlsquellendateischritt 484 auch nur als ein einziger Schritt gezeigt, obwohl er auch vier getrennte Schritte umfassen würde. Die Befehlsquellendatei definiert Makros zur Verwendung beim Ablauf von Wavedit. Diese Makros, wie diejenigen für Epic, enthalten eine Schrittsequenz zur Durchführung einer bestimmten Funktion und sind in einer interpretativen Ausdehnungssprache beschrieben.Accordingly, the read command source file step 484 was also shown as a single step, although it would include four separate steps. The command source file defines macros for use when Wavedit runs. These macros, like those for Epic, contain a sequence of steps to perform a specific function and are described in an interpretive extension language.
Nach Beendigung des Schrittes 448 ist der Lesekonfigurationsdateischritt beendet, und der Betrieb geht zum Schritt 450 (Fig. 15) über, um zu ermitteln, ob es irgendwelche zu lesenden Datendateien gibt. Dieser Schritt legt im allgemeinen fest, ob der Benutzer eine Signalformdefinition zur Verfügung gestellt hat, welche er angezeigt haben möchte. Hat der Benutzer keine Anzeige definiert, dann geht der Betrieb zum Schritt 452 über, um das System dazu in Bereitschaft zu setzen, eine Editierung ohne eine Datei durchzuführen. Dies bedeutet, daß dann, wenn eine Anzeige unter diesen Bedingungen erzeugt wird, die Anzeige eine Anzeige der Standardsignalformen und -menüs darstellen wird, die während des Schrittes 422 eingegeben wurden.After step 448 is completed, the read configuration file step is complete and operation proceeds to step 450 ( FIG. 15) to determine if there are any data files to be read. This step generally determines whether the user has provided a waveform definition that he wants to display. If the user has not defined a display, operation proceeds to step 452 to set the system ready to edit without a file. This means that if a display is generated under these conditions, the display will be a display of the standard waveforms and menus that were entered during step 422 .
Hat der Benutzer Eingaben zur Verfügung gestellt, so geht der Betrieb vom Schritt 450 zum Schritt 454 über, um festzustellen, ob die von dem Benutzer eingegebene Datei ein Filtern erfordert. Filtern ist dann erforderlich, wenn die Eingabe von dem Programm einer dritten Partei empfangen wurde, statt beispielsweise von einer vorher existierenden Wavedit-Datei und bezüglich des Namens und des Formats mit Wavedit inkompatibel ist. Ist eine Filterung erforderlich, so geht der Betrieb zum Schritt 456 über, um das geeignete Filter oder Interpretations/Übersetzungs-Tool aufzurufen, wie es von der Filterlistendatei angegeben wird, die während der Schritte 438 bis 444 gespeichert wurde, um mit der Eingabe eine erforderliche Übersetzung oder andere Interpretationen durchzuführen.If the user has provided input, operation proceeds from step 450 to step 454 to determine if the file entered by the user requires filtering. Filtering is required when the input has been received by a third party program instead of, for example, a pre-existing Wavedit file and is incompatible with Wavedit in terms of name and format. Is a filtering is necessary, the operation proceeds to step 456 to select the appropriate filtering or interpretation / translation tool, as indicated by the filter list file that was stored during the steps 438 to 444, a required with the input Perform translation or other interpretations.
Entweder vom Schritt 454, wenn eine NEIN-Ausgabe erhalten wird, oder vom Schritt 456 aus geht der Betrieb zum Schritt 458 über, um festzustellen, ob eine Wavedit-Datei existiert. Dieser Schritt besteht im wesentlichen darin, durch Nachsehen zu ermitteln, ob tatsächlich während der Interpretation, die im Schritt 456 durchgeführt wurde, eine Datei erzeugt wurde, oder aus der empfangenen Eingabe. Wurde eine Datei erzeugt, so wird die Datei gelesen und im Schritt 460 gespeichert. Wurde keine Datei erzeugt, so wird im Schritt 462 eine leere Datei erzeugt. Diese Datei kann später hinzugefügt werden, wenn Eingaben empfangen werden. Either from step 454 if NO output is obtained or from step 456 , operation proceeds to step 458 to determine if a wavedit file exists. This step essentially consists of looking up to determine whether a file was actually created during the interpretation performed in step 456 or from the input received. If a file was created, the file is read and saved in step 460 . If no file was created, an empty file is generated in step 462 . This file can be added later when input is received.
Vom Schritt 460 oder vom Schritt 462 geht der Betrieb zum Schritt 464 über, um festzustellen, ob es weitere zu lesende Dateien gibt. Sind weitere Dateien zu lesen, so kehrt der Betrieb zum Schritt 454 zurück, um zu ermitteln, ob diese Dateien eine Filterung erfordern.From step 460 or step 462 , operation proceeds to step 464 to determine if there are more files to read. If there are more files to read, operation returns to step 454 to determine if these files require filtering.
Gibt es im Schritt 464 keine weiteren Dateien zu lesen, oder wird der Schritt 452 durchgeführt, so geht der Betrieb zum Schritt 466 über. Schritt 466 veranlaßt die Durchführung bestimmter Operationen zum Initialisieren des Systems zur Anzeige von Signalformen. Der Betrieb geht dann zum Schritt 468 über, um die Signalformen zu zeichnen. Fig. 18 ist ein detaillierteres Flußdiagramm der Schritte, die beim Anzeigeschritt 468 des Zeichnens ablaufen.If there are no more files to read in step 464 , or if step 452 is performed, the operation proceeds to step 466 . Step 466 causes certain operations to initialize the waveform display system to be performed. Operation then proceeds to step 468 to draw the waveforms. Fig. 18 is a more detailed flow chart of the steps that take place when the drawing display step 468.
In Fig. 18 besteht Schritt 470, der erste Schritt in dieser Operation, darin zu ermitteln, ob es bei einer Ansicht weitere zu zeichnende Signalformen gibt. Zu diesem Zeitpunkt sollte erwähnt werden, daß eine Wavedit-Darstellung eine Hierarchie von Darstellungen enthält. Auf dem höchsten Niveau der Hierarchie befindet sich der Grafikbildschirm, auf welchem alles gezeichnet wird. Auf dem einzigen Grafikbildschirm kann eine oder mehrere Ansichten vorgesehen sein, wobei jede Ansicht eine Achse aufweist und eine oder mehrere Signalformen oder Spuren enthält. Daher führt der Schritt 470 ursprünglich eine Abfrage durch, ob in der ursprünglichen Ansicht Signalformen gezeichnet werden sollen. FIG. 18 is step 470, the first step in this operation to determine is whether there are more in one view to drawing waveforms. At this point it should be mentioned that a Wavedit representation contains a hierarchy of representations. At the highest level of the hierarchy is the graphics screen on which everything is drawn. One or more views can be provided on the single graphics screen, each view having an axis and containing one or more waveforms or tracks. Therefore, step 470 originally queries whether waveforms should be drawn in the original view.
Gibt es in einer anfänglichen Zeichnung zu zeichnende Signalformen, so geht der Betrieb zum Schritt 472 über, um die erforderlichen Operationen zum Zeichnen der erforderlichen Achse für die Ansicht und der Signalform durchzuführen, und erforderliche Etiketten auf der Ansicht durch die Signalform anzubringen.If there are waveforms to be drawn in an initial drawing, operation proceeds to step 472 to perform the required operations to draw the required axis for the view and waveform, and to attach required labels to the view through the waveform.
Sobald Schritt 472 beendet ist, geht der Betrieb zum Schritt 474 über, um festzustellen, ob die Signalform digital ist. Ist die Signalform nicht digital, so geht der Betrieb zum Schritt 476 über, um die analoge Signalform zu zeichnen, unter Verwendung einer geeigneten Signalformerzeugungsroutine, welche keinen Teil der vorliegenden Erfindung bildet, unter Verwendung der X-Y-Zahlinformation, die für die analoge Signalform zur Verfügung gestellt ist.Once step 472 is completed, operation transfers to step 474 to determine if the waveform is digital. If the waveform is not digital, operation proceeds to step 476 to draw the analog waveform using an appropriate waveform generation routine, which does not form part of the present invention, using the XY number information available for the analog waveform is posed.
Wird festgestellt, daß die Signalform eine digitale Signalform ist, so geht der Betrieb zum Schritt 478 über, um zu ermitteln, ob es weitere Zustände in der Signalform gibt, welche angezeigt werden sollen. Gibt es weitere Zustände in der Signalform, welche angezeigt werden sollen, so geht der Betrieb zum Schritt 480 über, um den betreffenden Digitalzustand zu zeichnen, unter Verwendung der geeigneten Zustandsdefinition von der Zustandsdefinitionstabelle, die während der Schritte 426 bis 430 erzeugt wurde. Dann kehrt der Betrieb zum Schritt 478 zurück, um zu ermitteln, ob es weitere zu zeichnende Zustände gibt, und durchläuft die Schleifen der Schritte 478 und 480, um die gewünschte Signalform zu erzeugen, bis im Schritt 478 festgestellt wird, daß sämtliche Zustände der Signalform gezeichnet wurden.If it is determined that the waveform is a digital waveform, operation proceeds to step 478 to determine if there are other states in the waveform that are to be displayed. If there are other states in the waveform to be displayed, operation proceeds to step 480 to draw the digital state in question using the appropriate state definition from the state definition table generated during steps 426-430 . Operation then returns to step 478 to determine if there are any more states to be drawn and loops through steps 478 and 480 to generate the desired waveform until it is determined in step 478 that all states of the waveform were drawn.
Wenn das Zeichnen einer bestimmten Signalform beendet ist, so kehrt der Betrieb zum Schritt 470 zurück, um festzustellen, ob es in dieser bestimmten Ansicht weitere zu zeichnende Signalformen gibt. Gibt es weitere Signalformen, die in der Ansicht gezeichnet werden sollen, so geht der Betrieb zum Schritt 472 über, um der Ansicht für die neue Signalform eine Achse und/oder Etiketten hinzuzufügen, falls dies erforderlich ist, und geht dann zu den Schritten 474 bis 480 über, um die Signalform zu zeichnen. Wird während des Schrittes 470 festgestellt, daß es für diese bestimmte Ansicht keine weiteren, zu zeichnenden Signalformen gibt, so verzweigt der Betrieb zum Schritt 482, um festzustellen, ob es mehrere Ansichten gibt, die auf diesem Grafikbildschirm erscheinen sollen. Sollen weitere Ansichten auf dem Grafikbildschirm erscheinen, so kehrt der Betrieb zum Schritt 470 zurück, um festzustellen, ob es Signalformen für die neue Ansicht gibt, und, falls dies der Fall ist, geht es mit den Schritten 472 bis 480 weiter, um Etiketten und eine Achse für eine derartige Signalform zu zeichnen, und die Signalform zu zeichnen. Diese Operationssequenz dauert an, bis sämtliche Signalformen für eine zusätzliche Ansicht gezeichnet wurden, und dann kehrt der Betrieb zum Schritt 482 zurück, um zu ermitteln, ob es weitere zu zeichnende Ansichten gibt. Wurden sämtliche Ansichten gezeichnet, so wird im Schritt 482 eine NEIN-Ausgabe erhalten, was dazu führt, daß der Betrieb den Anzeigeschritt 468 für das Zeichnen verläßt.When drawing of a particular waveform is complete, operation returns to step 470 to determine if there are any more waveforms to be drawn in that particular view. If there are other waveforms to be drawn in the view, operation proceeds to step 472 to add an axis and / or labels to the view for the new waveform, if necessary, and then moves to steps 474 through 480 over to plot the waveform. If it is determined during step 470 that there are no more waveforms to be drawn for that particular view, operation branches to step 482 to determine if there are multiple views to appear on this graphics screen. If additional views appear on the graphics screen, the operation returns to step 470 to determine if there are waveforms for the new view, and, if this is the case, it goes with the steps 472-480 continue to labels and draw an axis for such a waveform and draw the waveform. This sequence of operations continues until all waveforms have been drawn for an additional view, and then operation returns to step 482 to determine if there are more views to be drawn. If all views have been drawn, a NO output is obtained in step 482 , causing the operation to exit display step 468 for drawing.
Verläßt der Betrieb den Anzeigeschritt 468 für das Zeichnen, so geht er dann zum Schritt 486 über, um auf eine Eingabe zu warten. Wird im Schritt 486 eine Eingabe empfangen, so geht der Betrieb zum Schritt 488 über, um zu ermitteln, ob die Eingabe von der Tastatur empfangen wurde (eine Benutzereingabe) oder von Epic (Buchse). Wurde die Eingabe als eine Tasteneingabe von dem Benutzer oder von Epic empfangen, so geht der Betrieb zum Schritt 490 über, um den Befehl zu suchen, der von der Eingabe angefordert wurde. Ein Befehl kann entweder in den Makros gefunden werden, die während des Schrittes 448 eingegeben wurden, oder in internen Befehlen, die als Teil der Wavedit-Routine gespeichert wurden, wobei zunächst in einem Makro nach Befehlen gesucht wird, und dann in den internen Befehlen. Wird im Schritt 492 ein Befehl gefunden, so geht der Betrieb zum Schritt 494 aus, um den Befehl auszuführen.If the operation exits the drawing display step 468 , it then proceeds to step 486 to wait for input. If an input is received in step 486 , operation proceeds to step 488 to determine whether the input was received from the keyboard (a user input) or from Epic (socket). If the input was received as a key input from the user or from Epic, operation proceeds to step 490 to find the command that was requested from the input. A command can be found either in the macros that were entered during step 448 or in internal commands that were stored as part of the Wavedit routine, first searching for commands in a macro, and then in the internal commands. If a command is found in step 492 , operation proceeds to step 494 to execute the command.
Fig. 17 ist ein detaillierteres Flußdiagramm des Befehlsausführungsschrittes 494 für einen beispielhaften Befehl, in diesem Fall einen Bewertungsbefehl. Der Bewertungsbefehl kann beispielsweise zur Ausbildung einer dritten Signalform aus einer Kombination zweier anderer Signalformen führen. Wenn während des Schrittes 496 ermittelt wird, daß für bestimmte Signalformen ein Bewertungsbefehl empfangen wurde, so geht der Betrieb zum Schritt 498 über, um festzustellen, ob die Signalformen digital sind. Sind die Signalformen nicht digital, so geht der Betrieb zum Schritt 500 über, um die Signalformen unter Verwendung mathematischer Standardfunktionen zu kombinieren, beispielsweise Varianz oder Covarianz, und unter Verwendung existierender Softwaretools, die nicht spezifisch einen Teil der vorliegenden Erfindung bilden. Fig. 17 is a more detailed flow diagram of instruction execution step 494 for an example instruction, in this case an evaluation instruction. The evaluation command can, for example, lead to the formation of a third signal form from a combination of two other signal forms. If it is determined during step 496 that an evaluation command has been received for certain waveforms, operation proceeds to step 498 to determine if the waveforms are digital. If the waveforms are not digital, operation proceeds to step 500 to combine the waveforms using standard mathematical functions such as variance or covariance, and using existing software tools that are not specifically part of the present invention.
Falls die Signalformen als digital festgestellt werden, so geht der Betrieb zum Schritt 502 über, um festzustellen, ob sämtliche digitalen Zustände der Signalformen, die kombiniert werden sollen, kombiniert wurden. Gibt es weitere, zu kombinierende digitale Zustände, so geht der Betrieb zum Schritt 504 über, um die entsprechenden Zustände der beiden Signalformen zu kombinieren, unter Verwendung der geeigneten Logikregeln aus der Logikregeltabelle, die während der Schritte 432 und 434 gespeichert wurde (Fig. 16). Eine derartige Kombination kann einen einzigen Schritt oder mehrere Schritte umfassen, abhängig von der Komplexität der Kombinationslogik. Vom Schritt 504 aus kehrt der Betrieb zum Schritt 502 zurück, um festzustellen, ob es weitere, zu kombinierende digitale Zustände gibt, und der Betrieb durchläuft die Schleifen der Zustände 502 und 504, bis sämtliche digitale Zustände der beiden, zu kombinierenden Signalformen tatsächlich kombiniert wurden. Wurde die Kombination der beiden Signalformen beendet, entweder als Ergebnis einer analogen Kombination unter Verwendung von Schritt 500, oder als das Ergebnis einer digitalen Kombination durch die Schritte 502 und 504, so geht der Betrieb zum Schritt 506 über, um eine neue Signalform aus dem Ausgang der kombinierten Signalformen zu erzeugen, und zum Schritt 508, in welchem die neue Signalform der Anzeige zugefügt wird. Die Signalform sollte unter Verwendung derselben Schritte zum ursprünglichen Hinzufügen einer Signalform zur Anzeige gemäß Fig. 18 hinzugefügt werden, wobei geeignete Eingaben bezüglich der Ansicht empfangen werden, in welcher die Signalform erscheinen soll.If the waveforms are determined to be digital, operation proceeds to step 502 to determine if all of the digital states of the waveforms to be combined have been combined. If there are other digital states to be combined, operation proceeds to step 504 to combine the corresponding states of the two waveforms using the appropriate logic rules from the logic rules table stored during steps 432 and 434 ( Fig. 16 ). Such a combination can include a single step or multiple steps, depending on the complexity of the combination logic. From step 504 , operation returns to step 502 to determine if there are other digital states to be combined, and the operation loops through states 502 and 504 until all digital states of the two waveforms to be combined have actually been combined . If the combination of the two waveforms has ended, either as the result of an analog combination using step 500 , or as the result of a digital combination through steps 502 and 504 , operation proceeds to step 506 to output a new waveform of the combined waveforms and to step 508 where the new waveform is added to the display. The waveform should be added using the same steps to initially add a waveform for display as shown in FIG. 18, with appropriate input being received regarding the view in which the waveform is to appear.
Sobald Schritt 508 beendet ist, ist der Befehl fertig, und der Betrieb kehrt zum Schritt 510 zurück, um festzustellen, ob der Befehl korrekt ausgeführt wurde. Wurde während des Schrittes 492 kein Befehl gefunden, so wird eine Fehlernachricht im Schritt 512 ausgedruckt, und der Betrieb geht darüber hinaus zum Schritt 510 über, um festzustellen, ob der Befehl ordnungsgemäß ausgeführt wurde. Wird der Befehl nicht ordnungsgemäß ausgeführt, wie dies geschehen würde, falls man zu diesem Schritt über den Schritt 512 gelangt, so sucht der Betrieb nicht nach irgendwelchen weiteren Tastatur- oder Epic-Einträgen, sondern geht zum Schritt 514 über, um festzustellen, ob es eine Mauseingabe gibt. Once step 508 is complete, the command is finished and operation returns to step 510 to determine if the command was executed correctly. If no command was found during step 492 , an error message is printed out in step 512 and operation continues to step 510 to determine if the command has been properly executed. If the command is not properly executed, as would be the case if one came to this step via step 512 , the operation does not look for any other keyboard or epic entries, but proceeds to step 514 to determine if it is gives a mouse input.
Wird während des Schrittes 514 festgestellt, daß eine Mauseingabe vorhanden ist, so geht der Betrieb zum Schritt 518 über, um den Bereich auf der Anzeigevorrichtung zu finden, in welcher sich die Maus befindet. In dieser Situation liegt typischerweise die Maus in einem Bereich einer Signalform, die auf dem Bildschirm angezeigt wird. Die Maus kann mit mehreren Tasten versehen sein, beispielsweise drei Tasten, wobei jede Taste einen unterschiedlichen Befehl repräsentiert, der für den Bereich ausgeführt werden kann, über welchem sich die Maus befindet. Während des Schrittes 520, dem nächsten Schritt im Betrieb, wird der Befehl ermittelt, der als Ergebnis der auf der Maus betätigten Taste ausgeführt werden soll, und der Befehl wird ausgeführt. Ein derartiger Befehl könnte beispielsweise darin bestehen, einen Punkt auf der Signalform anzubringen, um eine Durchführung von Messungen an dem Punkt und ihre Aufzeichnung zu gestatten. Messungen können auch in Reaktion auf einen Befehl zwischen dem angezeigten Punkt und einem vorher angezeigten Punkt durchgeführt werden.If it is determined during step 514 that there is mouse input, the operation proceeds to step 518 to find the area on the display in which the mouse is located. In this situation, the mouse is typically in an area of a waveform that is displayed on the screen. The mouse can be provided with several buttons, for example three buttons, each button representing a different command that can be executed for the area over which the mouse is located. During step 520 , the next step in operation, the command to be executed as a result of the mouse button operation is determined and the command is executed. For example, such an instruction could be to place a point on the waveform to allow measurements to be made at the point and recorded. Measurements can also be taken in response to a command between the displayed point and a previously displayed point.
Gibt es im Schritt 514 keine Mauseingabe oder ist der Schritt 520 beendet, so geht der Betrieb zum Schritt 522 über, um festzustellen, ob es eine Menübefehlseingabe gibt. Eine Menübefehlseingabe wird dann erhalten, wenn sich beispielsweise die Maus über einem Ikon auf einem Menü befindet, welches dargestellt wird, und eine geeignete Taste betätigt wird. Ist eine Menübefehlseingabe vorhanden, so geht der Betrieb zum Schritt 524 über, um den Befehl zu finden, entweder in den gespeicherten Makros oder in dem internen Befehlssatz von Wavedit, und geht dann zum Schritt 526 über, um den Befehl auszuführen. Der Befehl wird im wesentlichen auf die gleiche Weise ausgeführt wie der Befehl im Schritt 494, wie für einen beispielhaften Befehl in Fig. 17 dargestellt ist. If there is no mouse input in step 514 or step 520 is ended, operation proceeds to step 522 to determine if there is a menu command input. A menu command input is obtained when, for example, the mouse is over an icon on a menu that is being displayed and an appropriate key is pressed. If there is menu command input, operation proceeds to step 524 to find the command, either in the stored macros or in Wavedit's internal command set, and then proceeds to step 526 to execute the command. The command is executed in essentially the same manner as the command in step 494 , as shown for an exemplary command in FIG. 17.
Wenn im Schritt 522 keine Menüeingabe gefunden wird, oder wenn die Ausführung eines Befehls im Schritt 526 beendet ist, so kehrt der Betrieb zum Schritt 486 zurück, um auf eine zusätzliche Eingabe zu warten. Die beschriebenen Operationen werden für zusätzliche Eingaben wiederholt, bis ein Ausstiegsbefehl festgestellt wird, als Ergebnis entweder einer Tastatur- oder Epic-Eingabe oder einer Menüeingabe.If no menu entry is found in step 522 , or if the execution of a command in step 526 has ended, operation returns to step 486 to wait for additional entry. The operations described are repeated for additional entries until an exit command is detected as a result of either a keyboard or epic entry or a menu entry.
Fig. 19 erläutert die Operationssequenz, die dann auftritt, wenn dieser Befehl festgestellt wird. Wenn in Fig. 19 ein Ausstiegsbefehl während des Schrittes 530 ermittelt wird, so geht der Betrieb zum Schritt 532 über, um festzustellen, ob alle geänderten Daten gerettet wurden. Wurden nicht alle geretteten Daten geändert, dann geht der Betrieb zum Schritt 534 über, um den Benutzer darüber zu informieren, daß benutzte, geänderte Daten nicht gerettet wurden, und den Benutzer dazu aufzufordern zu bestätigen, daß es zulässig ist, die Wavedit-Routine zu verlassen, was nämlich zum Verlust derartiger geänderter Daten führen würde. Gibt der Benutzer an, daß es nicht akzeptierbar ist auszusteigen, wobei sämtliche geänderten Daten nicht gerettet werden, dann verzweigt der Betrieb zum Schritt 536, um den Ausstiegsbefehl zu verlassen, und geht zu Wavedit zurück, um das Retten der geänderten Daten zu gestatten. Wird eine Ausgabe "JA" entweder während des Schrittes 532 oder des Schrittes 534 erhalten, so geht der Betrieb damit weiter, daß die Wavedit-Routine verlassen wird, wodurch die Operation beendet ist. Fig. 19 explains the sequence of operations that occurs when this command is detected. In Fig. 19, if an exit command is determined during step 530 , operation proceeds to step 532 to determine if all of the changed data has been saved. If all of the saved data has not been changed, then operation proceeds to step 534 to inform the user that used, changed data has not been saved and to prompt the user to confirm that the Wavedit routine is allowed to be closed leave, which would lead to the loss of such changed data. If the user indicates that it is unacceptable to exit, and all changed data is not saved, the operation branches to step 536 to exit the exit command and returns to Wavedit to allow the changed data to be saved. If an "YES" output is received either during step 532 or step 534 , operation continues by exiting the Wavedit routine, thereby completing the operation.
Es wurde daher ein System zur Verfügung gestellt, welches die Verwendung automatisierter Designsysteme und automatisierter Herstellungssysteme wesentlich vereinfacht, während es ein hohes Niveau an Konfigurierbarkeit zur Verfügung stellt, um spezielle Anforderungen eines gegebenen Benutzers zu erfüllen und mit Änderungen derartiger Anforderungen fertig zu werden, sobald sie auftreten. Das System gestattet die Verwendung von Tools, die bezüglich der Sprache, des Namens und/oder des Formats inkompatibel sind, auf eine Weise, die sowohl für den Benutzer als auch die Softwaretools vollständig transparent ist, und zwar all dies durch Verwendung eines einzigen integrierten Systems.A system was therefore made available which the use of automated design systems and automated manufacturing systems essential simplified while maintaining a high level Configurability provides to special Meet requirements of a given user and cope with changes in such requirements, as soon as they occur. The system allows use of tools related to language, name and / or of the format are incompatible, in a way that both for the user as well as the software tools completely is transparent, all of this using a single integrated system.
Zwar wurde die Erfindung voranstehend unter Bezug auf eine bevorzugte Ausführungsform dargestellt und beschrieben, jedoch wird darauf hingewiesen, daß die Ausführungsform nur zum Zwecke der Erläuterung dient, und daß sich zahlreiche Änderungen der verschiedenen angegebenen Schritte und der Reihenfolge dieser Schritte durchführen lassen, und daß auch andere Änderungen bezüglich der Form und Einzelheiten durch einen Fachmann vorgenommen werden könnten, wobei man immer noch innerhalb des Wesens und Umfangs der Erfindung bleibt.While the invention has been described above with reference to a preferred embodiment shown and described, however, it is noted that the embodiment only for the purpose of explanation, and that numerous changes to the various specified Perform steps and the order of these steps leave, and that other changes in shape and details are made by a person skilled in the art could, while still within the essence and The scope of the invention remains.
Claims (23)
- a) eine Eingabeeinrichtung (24, 26) zum Spezifizieren der durch das System zu entwerfenden elektrischen Vorrichtung,
- b) eine Speichereinrichtung (28) zum Speichern von Regelmakros, die sich jeweils auf einen bestimmten Entwurfsprozeß (52, 64, 76) beziehen und die Eigenschaften zugeordneter Entwurfwerkzeuge (54-60, 66-72, 78-82) angeben, und
- c) eine Recheneinrichtung (22) zum automatischen
Ausführen der in einem Regelmakro angegeben
Entwurfswerkzeuge (54-60, 66-72, 78-82) in der
vorgegebenen Reihenfolge, mit
- 1. einer Prüfeinrichtung (22) zum Überprüfen der Systemkompatibilität jedes Entwurfwerkzeugs (54-60, 66-72, 78-82) sowie
- 2. einer Umsetzeinrichtung (22) zum Einkapseln inkompatibler Entwurfswerkzeuge derart, daß sämtliche Übertragungen von und zu dem inkompatiblen Entwurfswerkzeug überprüft und umgesetzt werden.
- a) an input device ( 24 , 26 ) for specifying the electrical device to be designed by the system,
- b) a memory device ( 28 ) for storing control macros, each relating to a specific design process ( 52 , 64 , 76 ) and indicating the properties of associated design tools ( 54-60 , 66-72 , 78-82 ), and
- c) a computing device ( 22 ) for automatically executing the design tools ( 54-60 , 66-72 , 78-82 ) specified in a control macro in the specified order, with
- 1. a test device ( 22 ) for checking the system compatibility of each design tool ( 54-60 , 66-72 , 78-82 ) and
- 2. a conversion device ( 22 ) for encapsulating incompatible design tools in such a way that all transfers from and to the incompatible design tool are checked and implemented.
- a) in einer Speichereinrichtung (28) Regelmakros gespeichert werden, die sich jeweils auf einen bestimmten Entwurfsprozeß (52, 64, 76) beziehen und die Eigenschaften zugeordneter Entwurfwerkzeuge (54-60, 66-72, 78-82) angeben,
- b) Regelmakros aus der Speichervorrichtung (28) in Abhängigkeit von den zu entwickelnden elektrischen Vorrichtungen und dem zugrundeliegenden Entwurfsprozeß (52, 64, 76) ausgelesen werden, und
- c) eine Recheneinrichtung (22) automatisch die in dem Regelmakro angegeben Entwurfswerkzeuge (54-60, 66- 72, 78-82) in der vorgegebenen Reihenfolge aktiviert unter Einkapselung inkompatibler Entwurfswerkzeuge derart, daß sämtliche Übertragungen von und zu dem inkompatiblen Entwurfswerkzeug bei aktivierten Entwurfswerkzeug überprüft und umgesetzt werden.
- a) control macros are stored in a memory device ( 28 ), each relating to a specific design process ( 52 , 64 , 76 ) and specifying the properties of assigned design tools ( 54-60 , 66-72 , 78-82 ),
- b) control macros are read out from the memory device ( 28 ) as a function of the electrical devices to be developed and the underlying design process ( 52 , 64 , 76 ), and
- c) a computing device ( 22 ) automatically activates the design tools ( 54-60 , 66- 72 , 78-82 ) specified in the control macro in the predetermined order, encapsulating incompatible design tools such that all transfers from and to the incompatible design tool when the design tool is activated be checked and implemented.
- a) Überprüfung mehrerer in dem Regelmakro enthaltener Interpretationsregeln dahingehend, ob ein Entwicklungswerkzeug eine Einkapselung erfordert,
- b) Anwenden der Interpretationsregeln in Ansprechen auf die Übertragung eines Objekts an ein inkompatibles Entwicklungswerkzeug.
- a) checking several interpretation rules contained in the rule macro to determine whether a development tool requires encapsulation,
- b) Applying the interpretation rules in response to the transfer of an object to an incompatible development tool.
- a) Feststellung, wann eine Übertragung eines Namens, der eine Umsetzung erfordert, zwischen den bezüglich des Namens inkompatiblen Entwicklungswerkzeugen erfolgt,
- b) Prüfen, ob ein Eintrag für diesen Namen in einer in der Speichervorrichtung (28) Namensliste vorhanden ist, und, falls ein Eintrag für den Namen vorhanden ist, Verwendung des Eintrags für die Umsetzung des Namens, und,
- c) Verwendung der geeigneten Regeln zur Übersetzung des Namens wenn kein Eintrag für den Namen vorhanden ist.
- a) determining when a name that requires conversion is transferred between the development tools that are incompatible with the name,
- b) checking whether there is an entry for this name in a name list in the storage device ( 28 ) and, if there is an entry for the name, using the entry for converting the name, and,
- c) Use the appropriate rules for translating the name if there is no entry for the name.
- a) digitale Grafikinformation für die Darstellung von Signalformen zum Simulieren des zu entwerfenden elektrischen Systems verwendet wird, und
- b) gespeicherte Zustandsdefinitionen verwendet werden, um die Anzeige für jeden aufeinanderfolgenden Zustand einer darzustellen Signalform zu steuern.
- a) digital graphic information is used to represent waveforms to simulate the electrical system to be designed, and
- b) Stored state definitions are used to control the display for each successive state of a waveform being displayed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4310615A DE4310615C2 (en) | 1993-03-31 | 1993-03-31 | Designing electrical devices with multiple design tools that are at least partially incompatible with each other |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4310615A DE4310615C2 (en) | 1993-03-31 | 1993-03-31 | Designing electrical devices with multiple design tools that are at least partially incompatible with each other |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4310615A1 DE4310615A1 (en) | 1994-10-06 |
DE4310615C2 true DE4310615C2 (en) | 1999-03-18 |
Family
ID=6484419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4310615A Expired - Lifetime DE4310615C2 (en) | 1993-03-31 | 1993-03-31 | Designing electrical devices with multiple design tools that are at least partially incompatible with each other |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4310615C2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761625A (en) * | 1995-06-07 | 1998-06-02 | Alliedsignal Inc. | Reconfigurable algorithmic networks for aircraft data management |
WO1998059478A1 (en) * | 1997-06-25 | 1998-12-30 | Samsung Electronics Co., Ltd. | Programming tool for home networks |
US6696930B1 (en) | 2000-04-10 | 2004-02-24 | Teledyne Technologies Incorporated | System and method for specification of trigger logic conditions |
AU2002351577A1 (en) * | 2001-06-29 | 2003-03-03 | Convergys Cmg Utah Inc. | Method for creating application programming interfaces for internal applications |
US6915189B2 (en) | 2002-10-17 | 2005-07-05 | Teledyne Technologies Incorporated | Aircraft avionics maintenance diagnostics data download transmission system |
-
1993
- 1993-03-31 DE DE4310615A patent/DE4310615C2/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
DE Buch "Software Engineering" Gewald, Haake, Pfadler, R. Oldenbourg Verlag München Wien, 1982, S. 221-232 * |
Also Published As
Publication number | Publication date |
---|---|
DE4310615A1 (en) | 1994-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60207155T2 (en) | Object-oriented Internet interface system for an industrial control device | |
DE69516891T2 (en) | METHOD FOR TRANSLATING SOURCE CODE FROM ONE COMPUTER HIGH LANGUAGE TO ANOTHER | |
DE60003457T2 (en) | METHOD AND SYSTEM FOR CONFIGURING COMPONENTS, OUTPUTABLE IN A NETWORK | |
DE3785990T2 (en) | ADMINISTRATION AND SIMULATION OF A USER INTERFACE FOR A PROGRAM-CONTROLLED DEVICE. | |
DE69715494T2 (en) | Internet-enabled portfolio management system, process and program product | |
DE69600794T2 (en) | GRAPHIC DEVELOPMENT AND ADMINISTRATIVE ENVIRONMENT FOR APPLICATION PROGRAMS | |
US5423023A (en) | Method and apparatus for providing a user configurable system which integrates and manages a plurality of different task and software tools | |
DE60223593T2 (en) | GRAPHIC CONFIGURATION OF PROGRAMMAGE VISION RELATIONS | |
DE69429247T2 (en) | METHOD FOR PRESENTING KNOWLEDGE IN A COMPUTER | |
DE60126016T2 (en) | Server-side control objects for processing customer-side user interface elements | |
WO2015185328A1 (en) | Computer-implemented method and signal sequence for a program for reusing software configurations that can be executed for software systems, and computer system, and a computer program with program code for carrying out the method | |
DE10051645A1 (en) | Method and device for controlling versions and producing logs and lists in a process control system incorporates a computer-readable medium and a processor for communicating with that medium. | |
DE10137574B4 (en) | Method, computer program and data processing system for processing network topologies | |
DE3900750A1 (en) | KNOWLEDGE BASIS - PROCESS - DEVICE FOR DESIGNING INTEGRATED CIRCUITS BY FUNCTIONAL SPECIFICATIONS | |
EP1597675A1 (en) | System and method for managing and exchanging the data of a technical project, technical installation and individual installation components | |
DE102011001460A1 (en) | Method and device for a data-driven interface based on relations between process control labels | |
DE102004043788A1 (en) | Personal computing device executes program based on individual programming code to provide predefined code and to define direct relation between input and output of data by user and attribute of classes in input model | |
DE69907714T2 (en) | COMPONENT-BASED SOURCE CODE GENERATOR METHOD | |
EP1005215B1 (en) | Method and system for editing configuration data in telecommunications systems | |
DE69121113T2 (en) | METHOD FOR DETERMINING USER INTERFACES AND PROGRAMMING SYSTEM FOR A COMPUTER WITH MULTIPLE USER INTERFACES | |
DE60032403T2 (en) | Specially adapted reproduction and presentation of database information | |
DE4310615C2 (en) | Designing electrical devices with multiple design tools that are at least partially incompatible with each other | |
DE19615683A1 (en) | Method and control device for a graphical control of processes in a network management system | |
EP1233318A1 (en) | Software coumpounds for a distributed control system | |
DE69400873T2 (en) | DYNAMIC QUICK EVALUATION SYSTEM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right |