-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung bezieht sich auf eine Programmanalysenunterstützungsvorrichtung. Im Spezielleren bezieht sich die vorliegende Erfindung auf verschiedene industrielle Steuerungen wie etwa eine speicherprogrammierbare Steuerung (die im Folgenden als „SPS” bezeichnet werden soll), eine Bewegungssteuerung (die im Folgenden als „MC” bezeichnet werden soll), eine Steuerung für eine numerische Steuervorrichtung (die im Folgenden als „NC” bezeichnet werden soll), eine Prüfvorrichtungssteuerung oder eine Anzeige (die im Folgenden als „GOT” bezeichnet werden soll), oder auf eine Vorrichtung zur Verbesserung eines Wirkungsgrads eines Vorgangs zum Analysieren eines Messsteuerungsprogramms zur Entwicklung eines neuen Messsteuerungsprogramms oder eines Vorgangs zum Aufbereiten/Ändern eines Messsteuerungsprogramms, wenn das Produkt mit Bezug auf ein in einem Mikrocomputer ausgeführtes Messsteuerungsprogramm entwickelt oder ausgetestet wird.
-
STAND DER TECHNIK
-
Um in der Vergangenheit eine Messsteuerung von Produktionsanlagen durchzuführen, wurde eine industrielle Steuerung mit einer speicherprogrammierbaren Steuerung (die im Folgenden als „SPS” bezeichnet werden soll) verwendet. Als Messsteuerungsprogramm, das in einer industriellen Steuerung ausgeführt wird, gibt es eine Sprache, die der Norm IEC61131-3 entspricht, die sich durch eine Ladder-Programmiersprache (KOP- oder Kontaktplan-Programmiersprache) oder eine Steuerungsspezialsprache auszeichnet. Anstelle der industriellen Steuerung gibt es als Messsteuerungsprogrammiersprache, die sich eines Mikrocomputers bedient, die C-Sprache oder die Assemblerprogrammiersprache. Die folgende Beschreibung erfolgt unter Nutzung einer SPS als Beispiel.
-
Eine SPS führt ein Ladder-Programm aus, das als Messsteuerungsprogramm dient, um einen Zustand eines Messsteuerungsgegenstands zu erkennen oder einen Messsteuerungsgegenstand zu benennen, der in Betrieb sein soll. Bei der Erstellung eines Ladder-Programms wird eine vorbestimmte Messsteuerungsprogrammerstellungsunterstützungsvorrichtung (Ladder-Erstellurgsunterstützungsvorrichtung) verwendet. Die Messsteuerungsprogrammerstellungsunterstützungsvorrichtung wird im Allgemeinen als Software-Tool, also Programmentwicklungssystem bereitgestellt, das in einem Personalcomputer abläuft und eine Unterstützungsfunktion zum Aufbereiten eines Ladder hat, der als Programm verwendet wird, wenn eine SPS einen Messsteuerungsgegenstand misst oder steuert. Zusätzlich hat die Messsteuerungsprogrammerstellungsunterstützungsvorrichtung eine Funktion, einen Personalcomputer mit einer SPS zu verbinden, um das aufbereitete Ladder-Programm an die SPS zu übertragen, und eine Funktion, einen Zustand eines Werts einer Variable (die im Folgenden als „Vorrichtung” bezeichnet werden soll) zu überwachen, die sich in Abhängigkeit von einem Zustand des Messsteuerungsobjekts oder einer Ausführung des Ladder-Programms ändert. Die Programmaufbereitungsfunktion und die Überwachungsfunktion, die durch die Messsteuerungsprogrammerstellungsunterstützungsvorrichtung bereitgestellt werden, sind auch auf einer Anzeige installiert (die im Folgenden als „GOT” bezeichnet werden soll). Auf der GOT, die immer mit der SPS verbunden ist, kann auch eine Aufbereitung des Messsteuerungsprogramms oder eine Überwachung des Zustands des Werts der Vorrichtung durchgeführt werden.
-
Wenn der Maßstab der Produktionsanlage sehr klein ist, wird das Messsteuerungsprogramm durch ein einziges Ladder-Programm ausreichend aufgebaut. Im Allgemeinen wird jedoch ein Programm zur Messsteuerung einer Produktionsanlage durch mehrere Programmmodule aufgebaut (die im Folgenden als „POU” (Programmorganisationseinheit) bezeichnet werden sollen). Wenn es sich bei einer Programmiersprache des Messsteuerungsprogramms um eine Ladder-Sprache handelt, entspricht die POU einem Unterprogramm oder einem FB (Funktionsbaustein). Wenn es sich bei der Programmiersprache um einen ST (strukturierten Text) oder um C-Sprache handelt, entspricht die POU einem Unterprogramm oder einer Funktion.
-
In diesem Fall ist eine große Anzahl von Vorrichtungen vorhanden, die gemeinsam zwischen verschiedenen POUs gemessen und gesteuert werden. Deshalb muss bei der Analyse eines Bereichs, der durch eine Veränderung oder ein Upgrade eines Programms oder einer Analyse o. dgl. einer Ursache eines nachteiligen Funktionsablaufs beeinflusst wird, eine POU, in der eine bestimmte Vorrichtung verwendet wird, und eine Position, an der die bestimmte Vorrichtung verwendet wird (Position, an der das Lesen erfolgt/Position, an der das Schreiben erfolgt), bekannt sein. Um den Wirkungsgrad des Funktionsablaufs zu verbessern, besteht die Notwendigkeit, eine Verwendungsstelle einer Vorrichtung in dem Programm (in der POU) schnell auszumachen. Deshalb ist als eine Pragrammanalysenunterstützungsvorrichtung zum Ausmachen der Stelle eine Querverweiserstellungsvorrichtung bekannt. Bei der Querverweiserstellungsvorrichtung handelt es sich um eine Vorrichtung, die mehrere POUs als Analysenergebnisse, um eine Liste von Positionen zu bilden, und POUs ausliest, in denen eine bestimmte Vorrichtung verwendet wird, um eine Liste aller Vorrichtungen herzustellen, die in einer bestimmten POU verwendet werden. Die Erstellung eines solchen Querverweises kann als eine Funktion einer Messsteuerungsprogrammerstellungsunterstützungsvorrichtung realisiert sein.
-
In einer Lehre im Schriftstück 1, bei dem es sich um kein Patent handelt, sind zwei herkömmliche Verfahren offenbart. Die herkömmlichen Verfahren werden nachstehend beschrieben.
-
Im ersten herkömmlichen Verfahren wird eine Querverweisfunktion verwendet, die eine Liste von POUs, in denen eine bestimmte Vorrichtung verwendet wird, und von Positionen der POUs herstellt, in denen die bestimmte Vorrichtung verwendet wird, und die als eine Funktion einer Messsteuerungsprogrammerstellungsunterstütrungsvorrichtung realisiert ist. Wenn die Querverweisfunktion aus einem Menü der Messsteuerungsprogrammerstellungsunterstützungsvorrichtung ausgewählt wird, wird ein Dialog, der als Querverweisbildfläche dient, auf einem Bildschirm angezeigt. Zuerst gibt eine Bedienperson eine Vorrichtung in eine Vorrichtungsspalte des Dialogs ein. Dann benennt die Bedienperson einen Suchbereich in einer Suchbereichspalte des Dialogs. Dabei kann die Bedienperson alle POUs oder nur eine spezifische POU als Suchbereich benennen. Wenn die Bedienperson danach eine Ausführungstaste am Dialog anklickt, wird eine Liste von POUs, in denen die Vorrichtung verwendet wird, und von Positionen, an denen die Vorrichtung verwendet wird, am Dialog angezeigt. In einer Programmnamenspalte am Dialog wird der Name einer POU angezeigt, und in einer Folgeschrittspalte wird eine Schrittnummer angezeigt, in der die Vorrichtung in der POU verwendet wird. Darüber hinaus wird in einer Anweisungsspalte am Dialog eine Art einer Anweisung des Schritts angezeigt, in dem die Vorrichtung verwendet wird. Wenn das Programm (POU) zum Beispiel in einer Ladder-Sprache abgefasst ist, wird ein Kontakt, eine Spule o. dgl. in der Anweisungsspalte angezeigt.
-
Im zweiten herkömmlichen Verfahren wird eine Liste (Vorrichtungsverwendungsliste) von Vorrichtungen, die in einer bestimmten POU verwendet werden, auf einer Bildfläche hergestellt. Die Listenherstellungsfunktion im zweiten herkömmlichen Verfahren ist als eine Funktion einer Messsteuerungsprogrammerstellungsunterstützungsvorrichtung realisiert. Wenn eine Bedienperson eine Druckfunktion aus einem Menü der Messsteuerungsprogrammerstellungsunterstützungsvorrichtung auswählt, wird ein Dialog zur Anzeige einer Vorrichtungsverwendungsliste auf einem Bildschirm angezeigt. Zuerst wählt die Bedienperson ein Programm. Das heißt, die Bedienperson gibt den Namen einer POU ein, die in einer am Dialog angezeigten Programmauswahlspalte auszuwählen ist. Die Bedienperson benennt eine am Dialog angezeigte Druckbedingung. Dabei gibt die Bedienperson, wenn nur eine im Programm verwendete Vorrichtung als Liste ausgedruckt wird, eine Benennung für eine Prüfung in die Spalte ein. Wenn die Benennung für eine Prüfung nicht eingegeben wird, werden alle Vorrichtungen als Liste ausgedruckt. Wenn die Bedienperson in diesem Stadium eine am Dialog angezeigte Drucktaste anklickt, wird eine Liste von in der POU verwendeten Vorrichtungen ausgedruckt. Der Name der ausgewählten POU wird in der Pragrammnamenspalte ausgedruckt. Unter dem Namen werden die in der POU verwendeten Vorrichtungen nacheinander ausgedruckt. In einer Verwendungs-/Nichtverwendungsspalte wird eine Art einer Anweisung ausgedruckt, in der die Vorrichtung verwendet wird.
-
Wenn das Programm in einer Ladder-Sprache abgefasst ist, wird ein Kontakt, eine Spule o. dgl. ausgedruckt. Wenn die Vorrichtung in der POU als Kontakt und als Spule verwendet wird, werden sowohl der Kontakt als auch die Spule ausgedruckt.
-
SCHRIFTEN AUS DEM STAND DER TECHNIK
-
Patentschriften
-
- Patentschrift 1: japanische Patentanmeldung mit der Veröffentlichungsnummer 2006-294011
- Patentschrift 2: japanische Patentanmeldung mit der Veröffentlichungsnummer 2006-294013
Schriften, bei denen es sich um keine Patente handelt
- Schriftstück 1: GX Developer Version 8, Operating Manual, Mitsubishi Electric Corporation, Dezember 2008
- Schriftstück 2: "Program slicing technique and application" von Shimomura Takao, KYORITSU SHUPPAN CO., LTD, ISBN4-320-02743-4
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
PROBLEM, DAS DURCH DIE ERFINDUNG GELÖST WERDEN SOLL
-
Wie vorstehend beschrieben, kann das erste oder zweite herkömmliche Verfahren, das im Schriftstück 1 beschrieben ist, bei dem es sich um keine Patentschrift handelt, nur auf Grundlage der beschriebenen Funktion, die vorab in einer Programmerstellungsunterstützungsvorrichtung oder einer Programmanalysenunterstützungsvorrichtung installiert wird, einen Querverweis oder eine Vorrichtungsverwendungsliste herstellen, die eine POU, in der einer bestimmte Vorrichtung verwendet wird, und eine Position darstellt, an der eine bestimmte Vorrichtung in der POU verwendet wird.
-
Aus diesem Grund kann als ein Beispiel für das Problem in dem ersten und zweiten herkömmlichen Verfahren im Hinblick auf eine Vorrichtung, die in einer bestimmten spezifischen POU und in einer anderen spezifischen POU verwendet wird, keine Liste von Referenzabschnitten in den POUs hergestellt werden. Im Ergebnis hat, nachdem ein Vorgang des visuellen Prüfens einer Liste (Vorrichtungsverwendungsliste) von Vorrichtungen, die in einer bestimmten spezifischen POU verwendet werden, und einer Liste (Vorrichtungsverwendungsliste) von Vorrichtungen, die in der spezifischen POU und einer anderen spezifischen POU verwendet werden, durch eine Bedienperson höchstpersönlich nacheinander durchgeführt wurde, die Bedienperson nur eine mögliche Vorgehensweise zum Herstellen eines Querverweises der extrahierten Vorrichtungen. Bei einer Änderung von Programmen eines nachteiligen Funktionsablaufs o. dgl. wird eine lange Zeit benötigt, um eine aufzubereitende bzw. editierende Stelle auszumachen.
-
Als Beispiel für ein anderes Problem können das erste und zweite herkömmliche Verfahren keinen Querverweis einer bestimmten Vorrichtung in einer spezifischen POU und einer POU herstellen, die von der spezifischen POU als Unterprogramm aufgerufen wird. Aus diesem Grund hat die Bedienperson nur eine mögliche Vorgehensweise, einen Vorgang zum Extrahieren einer Liste von POUs, die von der spezifischen POU zuerst als Unterprogramm aufgerufen wurden, manuell auszuführen, einen Querverweis der Vorrichtung im Hinblick auf die extrahierten POUs herzustellen, und das Ergebnis zusammenzufassen. Im Ergebnis wird bei einer Änderung von Programmen, einer Analyse eines nachteiligen Funktionsablaufs o. dgl. nachteilhafter Weise eine lange Zeit benötigt, um eine aufzubereitende bzw. editierende Stelle auszumachen.
-
Deshalb ist in der Patentschrift 1 und dem Schriftstück 2, bei dem es sich um keine Patentschrift handelt, ein herkömmliches Verfahren zur Lösung des ersten Problems offenbart.
-
Jedoch ist jedes der in den Patentschriften 1 und 2 offenbarten Verfahren etwas mehr als ein Verfahren, bei dem eine Funktion (diese Funktion wird zeitweise als „programmübergreifende Überlappungsverwendungsstatusliste” bezeichnet) des Herstellens einer Liste von Vorrichtungen, die in einer bestimmten spezifischen POU und auch in einer anderen spezifischen POU verwendet werden, in einer Programmerstellungsunterstützungsvorrichtung oder einer Programmanalysenunterstützungsvorrichtung installiert ist. Eine Verarbeitung einer programmübergreifenden Überlappungsverwendungsstatuslistenfunktion lässt sich durchführen, indem eine Verarbeitung einer bestehenden Querverweisfunktion verwendet wird, oder eine Verarbeitung einer programmübergreifenden Überlappungsverwendungsstatuslistenfunktion lässt sich unabhängig von einer Verarbeitung einer bestehenden Querverweisfunktion durchführen. Auf jeden Fall können die herkömmlichen Verfahren nur die Herstellung einer programmübergreifenden Überlappungsverwendungsstatusliste innerhalb eines Bedingungsbezeichnungsbereichs der wie vorstehend beschrieben installierten Funktion durchführen.
-
Aus diesem Grunde bergen die herkömmlichen Verfahren insofern ein Problem in sich, als sowohl eine Herstellung eines durch freies Kombinieren von Bedingungen erzielten Querverweises als auch eine Extraktion eines durch freies Kombinieren der Bedingungen erzielten Programmanalysenergebnisses nicht bewerkstelligt werden kann.
-
Als Beispiel für ein herkömmliches Verfahren, das eine gewünschte Liste durch freies Kombinieren von Suchbedingungen herstellen kann, ist PATOLIS (eingetragener Markenname) bekannt, bei dem es sich um eines der Patentschriftsuchprogramme aus dem Stand der Technik handelt. Bei der Suche nach einer Patentschrift durch PATOLIS (eingetragener Markenname), grenzt eine Bedienperson einen Suchbereich durch Patentklassifizierung ein, oder grenzt einen Suchbereich je nachdem, ob ein spezifisches Schlüsselwort in einem Bereich wie etwa einer Zusammenfassung oder einem Umfang von Ansprüchen enthalten ist, ein. In diesem Fall ist ein Gesamtbestand, der als Suchobjekt dient, die Gesamtheit von früheren Patentschriften. Eine Liste von Trefferergebnissen ist eine Liste früherer Patentschriften. Wenn die Bedienperson einen Suchbereich für das Trefferergebnis unter einer anderen Bedingung eingrenzen möchte, durchsucht sie deshalb zuerst die gesamten früheren Patentschriften unter einer anderen Bedingung und lässt einen Computer eine UND-Verarbeitung zwischen der Liste früherer Patentschriften, die als Trefferergebnis dienen, und einem vorherigen Trefferergebnis durchführen, um es möglich zu machen, einen Umfang der früheren Patentschriften weiter einzugrenzen.
-
Im Gegensatz dazu ändert sich ein Analysenergebnis eines Messsteuerungsprogramms je nach den Analysebedingungen. Zum Beispiel ist in einer Liste von in einer spezifischen POU verwendeten Vorrichtungen das Ergebnis eine Liste von Vorrichtungen. In einer Liste von POUs jedoch, die von einer spezifischen POU als Unterprogramme aufgerufen werden, ist das Ergebnis eine Liste von POUs. Deshalb kann im Hinblick auf die Listen mit unterschiedlichen Ergebnissen eine durch eine UND-Verarbeitung zwischen den Ergebnissen durchgeführte Eingrenzung nicht unmittelbar durchgeführt werden.
-
Bei einer Programmanalyse in einem herkömmlichen Verfahren, das in den Patentschriften 1 und 2 und dem Schriftstück 1 vorgeschlagen ist, bei dem es sich um keine Patentschrift handelt, ist ein als Analysengegenstand dienender Bestand ein Programm, aber ein Analysenergebnis eines Messsteuerungsprogramm ändert sich je nach den Analysenbedingungen. Aus diesem Grunde muss, wenn eine andere Analysenbedingung angesetzt wird, ein als Analysenergebnis dienender Bestand ein Programm aber auch ein Analysenergebnis sein. Konkreter ausgedrückt kann je nach den Kombinationen der herkömmlichen Verfahren eine Programmanalysenunterstützungsvorrichtung, die Programmanalysenbedingungen frei kombinieren kann, nicht so einfach realisiert werden.
-
Die vorliegende Erfindung wurde unter Berücksichtigung der technischen Umstände auf den Weg gebracht, und ihre Hauptaufgabe ist es, eine Programmanalysenunterstützungsvorrichtung zu realisieren, die Analysenbedingungen frei kombinieren kann.
-
Mittel zur Lösung des Problems
-
Eine Programmanalysenunterstützungsvorrichtung gemäß einem Gegenstand der Erfindung umfasst im Hinblick auf ein durch ein Programmmodul aufgebautes Programm einen Analysenbedingungseinstellabschnitt, der eine durch einen Benutzer benannte Programmanalysenbedingung eingibt und speichert, einen Analysenbedingungsausführungsabschnitt, der eine Analysenverarbeitung des Programms auf Grundlage der Programmanalysenbedingung ausführt, und einen Analysenergebnisanzeigeabschnitt, der Anzeigedaten generiert und ausgibt, um ein durch den Analysenbedingungsausführungsabschnitt verarbeitetes Analysenergebnis anzuzeigen. Der Analysenbedingungsausführungsabschnitt umfasst einen Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt, der ein Signal ausgibt, das gerichtete Abhängigkeitsgraphen von Variablen wiedergibt, die im Programmmodul beschrieben sind, und umfasst darüber hinaus einen POU-Listenextraktionsverarbeitungsausführungsabschnitt, der ein Signal ausgibt, das eine Zusammenstellung der Programmmodule wiedergibt, der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt gibt das Signal aus, das die gerichteten Abhängigkeitsgraphen der Variablen unter Verwendung der Zusammenstellung der Programmmodule als Analysengegenstandsbereich wiedergibt, und der POU-Listenextraktionsverarbeitungsausführungsabschnitt extrahiert ein Signal, das eine Zusammenstellung von Programmmodulen wiedergibt, die in den gerichteten Abhängigkeitsgraphen der Variablen vorhanden sind.
-
WIRKUNG DER ERFINDUNG
-
Gemäß dem Gegenstand der vorliegenden Erfindung kann eine Programmanalyse durchgeführt werden, die durch freies Kombinieren von Programmanalysenbedingungen erzielt wird, und auf Grundlage des Analysenergebnisses kann eine aufzubereitende bzw. editierende Stelle schnell ausgemacht werden. Aus diesem Grund kann ein Benutzer den Wirkungsgrad eines Vorgangs zum Ausmachen einer aufzubereitenden bzw. zu editierenden Stelle bei einer Änderung von Programmen, der Analyse eines nachteiligen Funktionsablaufs o. dgl. verbessern und die für den Vorgang erforderliche Zeit verkürzen.
-
Verschiedene Ausführungsformen der vorliegenden Erfindung werden nachstehend im Einzelnen mit Bezug auf die beigefügten Zeichnungen zusammen mit Wirkungen und Vorteilen der vorliegenden Erfindung beschrieben. Aufgaben, Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden aus der folgenden ausführlichen Beschreibung und den beigefügten Zeichnungen deutlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockschema, das eine Hardware-Konfiguration einer Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung zeigt.
-
2 ist ein Funktionsblockschema, das eine Software-Konfiguration einer Programmanalysenunterstützungsvorrichtung nach Ausführungsform 1 zeigt.
-
3 ist ein Schema, das eine HAUPT-Ladderschaltung zeigt.
-
4 ist ein Schema, das eine HAUPT-Ladder-IL zeigt.
-
5 ist ein Schema, das eine SUB-Ladderschaltung zeigt.
-
6 ist ein Schema, das eine SUB-Ladder-IL zeigt.
-
7 ist ein Schema, das eine Programmanalysenunterstützungsbildfläche zeigt.
-
8 ist ein Schema, das eine Programmanalysenunterstützungsbildfläche zeigt.
-
9 ist ein Ablaufschema, das einen POU_LESE-Verarbeitungsablauf zeigt.
-
10 ist ein Ablaufschema, das einen VAR_REF-Verarbeitungsablauf zeigt.
-
11 ist ein Schema, das eine VAR_REF-Ergebnisbildfläche zeigt.
-
12 ist ein Schema, das eine VAR_REF-Ergebnisbildfläche zeigt.
-
13 ist ein Schema, das eine VAR_REF-Ergebnisbildfläche zeigt.
-
14 ist ein Ablaufschema, das einen UND-Verarbeitungsablauf zeigt.
-
15 ist ein Ablaufschema, das einen UND-Verarbeitungsablauf zeigt.
-
16 ist ein Schema, das eine UND-Ergebnis-VAR_REF-Bildfläche zeigt.
-
17 ist ein Ablaufschema, das einen ODER-Verarbeitungsablauf zeigt.
-
18 ist ein Ablaufschema, das einen ODER-Verarbeitungsablauf zeigt.
-
19 ist ein Schema, das eine ODER-Ergebnis-VAR_REF-Bildfläche zeigt.
-
20 ist ein Ablaufschema, das einen NICHT-Verarbeitungsablauf zeigt.
-
21 ist ein Ablaufschema, das einen NICHT-Verarbeitungsablauf zeigt.
-
22 ist ein Schema, das eine NICHT-Ergebnis-VAR_REF-Bildfläche zeigt.
-
23 ist ein Funktionsblockschema, das eine Software-Konfiguration einer Programmanalysenunterstützungsvorrichtung nach Ausführungsform 2 zeigt.
-
24 ist ein Schema, das eine Ladderstruktur zeigt.
-
25 ist ein Schema zur Erläuterung von Anweisung/Operator/Operand.
-
26 ist ein Schema, das ein Beispiel für Vorrichtungsabhängigkeit zeigt.
-
27 ist ein Schema, das ein Beispiel für Vorrichtungsabhängigkeit zeigt.
-
28 ist ein Schema, das ein Beispiel für Vorrichtungsabhängigkeit zeigt.
-
29 ist ein Schema, das eine Programmanalysenbildfläche zeigt.
-
30 ist ein Ablaufschema, das einen VAR_FWD-Verarbeitungsablauf zeigt.
-
31 ist ein Graph, der einen gerichteten VAR_FWD-Ergebnisgraphen zeigt.
-
32 ist ein Graph, der einen gerichteten VAR_FWD-Ergebnisgraphen zeigt.
-
33 ist ein Ablaufschema, das einen VAR_BWD-Verarbeitungsablauf zeigt.
-
34 ist ein Graph, der einen gerichteten VAR_BWD-Ergebnisgraphen zeigt.
-
35 ist ein Ablaufschema, das einen ODER-Verarbeitungsablauf zeigt.
-
36 ist ein Graph, der einen gerichteten ODER-Ergebnis-VAR-Graphen zeigt.
-
37 ist ein Ablaufschema, das einen UND-Verarbeitungsablauf zeigt.
-
38 ist ein Graph, der einen gerichteten UND-Ergebnis-VAR-Graphen zeigt.
-
39 ist ein Ablaufschema, das einen VAR_REF-Verarbeitungsablauf zeigt.
-
40 ist ein Schema, das eine VAR_REF-Ergebnisbildfläche zeigt.
-
41 ist ein Schema, das eine VAR_REF-Ergebnisbildfläche zeigt.
-
42 ist ein Funktionsblockschema, das eine Software-Konfiguration einer Programmanalysenunterstützungsvorrichtung nach Ausführungsform 7 zeigt.
-
43 ist ein Schema aller POUs, die ein Programm bilden.
-
44 ist ein Schema, das eine Programmanalysenunterstützungsbildfläche zeigt.
-
45 ist ein Ablaufschema, das einen POU_FWD-Verarbeitungsablauf zeigt.
-
46 ist ein Graph, der einen gerichteten POU_FWD-Ergebnisgraphen zeigt.
-
47 ist ein Graph, der einen gerichteten POU_FWD-Ergebnisgraphen zeigt.
-
48 ist ein Ablaufschema, das einen POU_BWD-Verarbeitungsablauf zeigt.
-
49 ist ein Graph, der einen gerichteten POU_BWD-Ergebnisgraphen zeigt.
-
50 ist ein Ablaufschema, das einen ODER-Verarbeitungsablauf zeigt.
-
51 ist ein Graph, der einen gerichteten ODER-Ergebnis-POU-Graphen zeigt.
-
52 ist ein Ablaufschema, das einen UND-Verarbeitungsablauf zeigt.
-
53 ist ein Graph, der einen gerichteten UND-Ergebnis-POU-Graphen zeigt.
-
54 ist ein Schema, das eine Programmanalysenunterstützungsbildfläche zeigt.
-
55 ist ein Ablaufschema, das einen POU_LESE-Verarbeitungsablauf zeigt.
-
56 ist ein Ablaufschema, das einen VAR_REF-Verarbeitungsablauf zeigt.
-
57 ist ein Ablaufschema, das einen VAR_FWD-Verarbeitungsablauf zeigt.
-
58 ist ein Ablaufschema, das einen POU_LESE-Verarbeitungsablauf zeigt.
-
59 ist ein Ablaufschema, das einen POU_LESE-Verarbeitungsablauf zeigt.
-
60 ist ein Ablaufschema, das einen UND-Verarbeitungsablauf zeigt.
-
61 ist ein Schema, das eine UND-Ergebnis-VAR_REF-Bildfläche zeigt.
-
62 ist ein Schema, das eine Bildfläche eines statischen Ladder-Programm-Slicings zeigt.
-
63 ist ein Funktionsblockschema, das eine Software-Konfiguration einer Programmanalysenunterstützungsvorrichtung nach Ausführungsform 13 zeigt.
-
64 ist ein Ablaufschema, das einen statischen Ladder-Frogramm-Slicing-Verarbeitungsablauf zeigt.
-
65 ist ein Schema, das einen Verarbeitungsablauf zeigt, der in einer neuen Befehlsdefinition definiert werden muss.
-
66 ist ein Schema, das einen Verarbeitungsablauf zeigt, der der VAR_REF-Befehisdefinition entspricht.
-
67 ist ein Schema, das einen Verarbeitungsablauf zeigt, der der VAR_FWD-Befehlsdefinition entspricht.
-
68 ist ein Schema, das einen Verarbeitungsablauf zeigt, der der POU_LESE-Befehlsdefinition entspricht.
-
69 ist ein Schema, das einen Verarbeitungsablauf zeigt, der der POU_FWD-Befehlsdefinition entspricht.
-
70 ist ein Schema, das einen Verarbeitungsablauf zeigt, der der UND-Befehlsdefinition entspricht.
-
71 ist eine grafische Darstellung, die ein Verhältnis zwischen einem Analysenbefehl und dessen Analysenergebnisdaten zeigt.
-
AUSFÜHRUNGSFORMEN ZUR UMSETZUNG DER ERFINDUNG
-
Ausführungsform 1
-
1 ist ein Blockschema, das eine Hardware-Konfiguration einer Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung zeigt, die die Ausführungsformen (die später noch beschrieben werden) gemein haben. In 1 umfasst eine Programmanalysenunterstützungsvorrichtung 1 (1) einen Mikroprozessor 2, der Funktionen der Programmanalysenunterstützungsvorrichtung 1 ausführt, (2) einen Datenspeicher 3, der zum Beispiel durch einen DRAM zum temporären Speichern von Daten gebildet ist, (3) einen Anzeigeabschnitt 4, der durch ein Anzeigeteil wie etwa eine Flüssigkristallanzeige gebildet ist, (4) einen Eingabeabschnitt 5, der durch eine Eingabevorrichtung wie etwa eine Maus und/oder eine Tastatur gebildet ist, und (5) einen Halteabschnitt 6, der durch eine Speichervorrichtung wie etwa eine Festplatte gebildet ist, die Programme, wie etwa ein Messsteuerungsprogramm, das analysiert werden soll, oder ein Programmanalysenunterstützungsprogramm, um die Funktionen der Programmanalysenunterstützungsvorrichtung umzusetzen, oder Daten wie etwa ein Analysenergebnis speichert und vorhält. Die Abschnitte 2 bis 6 sind über einen Systembus SB miteinander verbunden.
-
Wenn eine Programmanalyse (Herstellung eines Querverweises) zu einem Messsteuerungsprogramm in der Analysenunterstützungsvorrichtung 1 durchgeführt wird, betätigt ein Benutzer den Eingabeabschnitt 5, um eine Programmanalysenbedingung einzugeben, und benennt ein Messsteuerungsprogramm, das aus mehreren im Halteabschnitt 6 gespeicherten Messsteuerungsprogrammen benannt werden soll. Mit dem Eingabevorgang werden benannte Inhalte einer Programmanalysenbedingung und ein Messsteuerungsprogramm in einem (nicht gezeigten) Register im Mikroprozessor 2 gespeichert. In diesem Stadium greift der Mikroprozessor 2 auf den Halteabschnitt 6 zu, liest das durch den Benutzer benannte Messsteuerungsprogramm aus dem Halteabschnitt 6 aus und führt eine Analysenverarbeitung für das Messsteuerungsprogramm entsprechend der durch den Benutzer eingegebenen Programmanalysenbedingung aus. Der Mikroprozessor 2 speichert das Analysenverarbeitungsergebnis temporär im Datenspeicher 3 und zeigt das Ergebnis auf einem Bildschirm des Anzeigeabschnitts 4 an oder speichert das Ergebnis im Halteabschnitt 6 als eine Datei.
-
Ein Analysenunterstützungsprogramm selbst, das Funktionen oder Verarbeitungen der Programmanalysenunterstützungsvorrichtung 1 ausführen soll, ist als Software-Tool vorgesehen, das auf einem Personalcomputer ablaufen kann. In diesem Fall ist die Programmanalysenunterstützungsvorrichtung 1 durch den Personalcomputer gebildet. Alternativ kann das Analysenunterstützungsprogramm in einer GOT installiert sein. In diesem Fall bildet die GOT die Programmanalysenunterstützungsvorrichtung 1.
-
2 ist ein Funktionsblockschema (das einem Software-Bausteinschema entspricht), das Funktionsteile in einer durch die Programmanalysenunterstützungsvorrichtung 1, also durch den Mikroprozessor 2 ausgeführten Analysenverarbeitung zeigt. Wie in 2 gezeigt ist, umfasst die Programmanalysenunterstützungsvorrichtung 1 oder der Mikroprozessor 2 grob einen Analysenbedingungseinstellabschnitt 10, einen Analysenbedingungsausführungsabschnitt 11 und einen Analysenergebnisanzeigeabschnitt 20.
-
Von diesen Abschnitten besitzt der Analysenbedingungsausführungsabschnitt 11 Funktionsteile zur Programmanalysenverarbeitung. Konkreter ausgedrückt umfasst in der Ausführungsform, da ein Querverweis einer Variablen (Vorrichtung) extrahiert wird, der Analysenbedingungsausführungsabschnitt 11 einen POU-Listenextraktionsverarbeitungsausführungsabschnitt 14, um ein als Gegenstand einer Querverweisextraktion dienendes Programm auszulesen, und einen Varlablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12, der als Abschnitt dient, der eine Querverweisextraktionsverarbeitung durchführt.
-
Der Analysenergebnisanzeigeabschnitt 20 umfasst einen Variablenverwendungslistenanzeigeabschnitt 21, der Anzeigedaten herstellt, die eine Form zur Anzeige eines Querverweisergebnisses auf der Bildfläche des in 1 gezeigten Anzeigeabschnitts 4 haben.
-
Darüber hinaus umfasst der Analysenbedingungsausführungsabschnitt 11 einen Analysenergebnislogikverknüpfungverarbeitungsausführungsabschnitt 16. Der Analysenergebnislogikverknüpfungverarbeitungsausführungsabschnitt 16 umfasst als Abschnitte, die eine logische Verknüpfung zwischen Analysenergebnissen durchführen, die durch die Funktionen der Programmanalysenverarbeitung erhalten werden, einen UND-Verarbeitungsausführungsabschnitt 17, einen ODER-Verarbeitungsausführungsabschnitt 18 und einen NICHT-Verarbeitungsausführungsabschnitt 19.
-
Über den in 1 gezeigten Eingabeabschnitt 5 gibt ein Benutzer eine Programmanalysenbedingung in den Analysenbedingungseinstellabschnitt 10 ein. Je nach der Eingabe führt der Analysenbedingungsausführungsabschnitt 11 eine Analysenverarbeitung in Abhängigkeit von der durch den Benutzer eingegebenen Programmanalysenbedingung aus. Zum Beispiel führt der Analysenbedingungsausführungsabschnittll einen Prozess des Auslesens des durch den Benutzer benannten Messsteuerungsprogramms (das einer Analysengegenstandsprogrammdatei 8 entspricht) oder einer Vorrichtungskommentardatei 9, die sich auf das Analysengegenstandsprogramm bezieht, aus dem in 1 gezeigten Halteabschnitt 6 durch, stellt einen Querverweis her oder verarbeitet eine logische Verknüpfung (UND/ODER/NICHT) zwischen Analysenergebnissen. Danach führt der Analysenergebnisanzeigeabschnitt 20 einen Vorgang wie etwa eine Datenherstellungsoperation durch, um je nach dem Analysenergebnis eine Anzeige auf der Bildfläche des in 1 gezeigten Anzeigeabschnitts 4 durchzuführen, oder gibt Daten des Analysenergebnisses als Analysenergebnisdatei 25 nach außen aus. Zum Beispiel erhält der Analysenergebnisanzeigeabschnitt 20 ein durch den Analysenbedingungsausführungsabschnitt 11 hergestelltes Querverweisergebnis, stellt Anzeigedaten her, um das erhaltene Querverweisergebnis auf der Bildfläche des Anzeigeabschnitts 4 anzuzeigen, gibt die Anzeigedaten an den Anzeigeabschnitt 4 aus, um das erhaltene Querverweisergebnis für einen Benutzer anzuzeigen oder das erhaltene Querverweisergebnis als Querverweisergebnisdatei nach außen auszugeben.
-
Ein Beispiel, bei dem ein Ladder-Programm, das als Messsteuerungsprogramm einer SPS dient, als Gegenstand einer Programmanalyse verwendet wird, wird nachstehend beschrieben. In diesem Fall zeigt 3 eine der POUs, die das Messsteuerungsprogramm der SPS bilden. Der Name der POU ist HAUPT-Ladderschaltung. 3 ist ein Ladder-Kontaktschaltungsplanausdruck. Wenn der Plan in einem Textformat (z. B. IL-Format, IL: Anweisungsliste) ausgedrückt wird, wird 3 wie 4 ausgedrückt. Darüber hinaus zeigt 5 eine andere das Messsteuerungsprogramm der SPS bildende POU. Der Name der POU ist SUB-Ladderschaltung. 5 ist als Ladder-Kontaktschaltungsplan ausgedrückt. Wird jedoch der Plan in einem Textformat ausgedrückt, wird 5 auf dieselbe Weise wie in 6 ausgedrückt.
-
Bei jeder der 7 und 8 handelt es sich um ein Schema, das ein Beispiel einer Bildfläche zeigt, die im Anzeigeabschnitt 4 angezeigt wird, um einen Benutzer dazu zu bewegen, eine in den Mikroprozessor 2 der Vorrichtung 1 einzugebende Programmanalysenbedingung unter Verwendung des in 1 gezeigten Eingabeabschnitts 5 einzugeben. Eine solche Programmanalysenunterstützungsbildfläche wird auf dem Bildschirm des Anzeigeabschnitts 4 durch einen Funktionsablauf des in 2 gezeigten Analysenbedingungseinstellabschnitts 10 angezeigt. Der Abschnitt 10 hält die durch den Benutzer über die Programmanalysenunterstützungsbildfläche eingegebene Programmanalysenbedingung unverändert vor.
-
In der in 7 gezeigten Programmanalysenunterstützungsbildfläche ist jede Reihe durch eine Gleichungsnummernzelle, eine Analysenbefehlszelle, eine Analysengegenstandszelle und eine Ergebnisanzahlzelle aufgebaut. Ein Benutzer sieht sich die in 7 gezeigte Bildfläche an und gibt jeweils einen Analysengegenstand und eine einem Analysenbefehl entsprechende Analysenbedingung in entsprechende Zellen ein. Konkreter ausgedrückt benennt der Benutzer hauptsächlich einen als Gegenstand dienenden Bestand, an dem der Analysenbefehl eine Analysenverarbeitung vornimmt. Der Benutzer benennt hauptsächlich eine Bedingung für die Analysenbedingungszelle, unter der der Analysenbefehl eine Analysenverarbeitung ausführt.
-
Wie in dem in 8 gezeigten Beispiel ist eine Bildflächenauslegung, um einen Benutzer dazu zu bewegen, eine Programmanalysenbedingung einzugeben, nicht wie in 7 durch Zellen aufgebaut, die von der Art der Eingabedaten abhängen, sondern der Benutzer kann eine gesamte Gleichung der Programmanalysenbedingung eingeben.
-
Nachdem der Benutzer den Prozess des Eingebens der Analysebedingung in die auf der Bildfläche von 7 oder 8 angezeigte Analysenbedingungszelle abgeschlossen hat, erfolgt eine Eingabeverarbeitung, die vor eine Spalte einer Gleichungsnummer der Bildfläche setzt. In diesem Stadium wird ein Vorgang des Drückens (Anklickens) einer Ausführungstaste durchgeführt, die auf der oberen linken Seite der Bildfläche angezeigt wird. Wenn die Anklickverarbeitung (Eingabeverarbeitung) nacheinander ausgehend von einer niedrigen auszuführenden Nummer durchgeführt wird, bestimmt der in 2 gezeigte Analysenbedingungseinstellabschnitt 10, dass der Analysenbedingungsausführungsabschnitt 11 eine Verarbeitung der Analysenbedingungsgleichung durchführen soll. Im Ansprechen auf die Bestimmung führt der Analysenbedingungsausführungsabschnitt 11 eine Analysenverarbeitung an den Bedingungsgleichungen in der Reihenfolge der Gleichungsnummern durch. In dem in 7 gezeigten Bildflächenaufbaubeispiel werden Programmanalysenbedingungen (Analysenbefehl, Analysengegenstand und Analysenbedingung) jeweils in Gleichung Nummer S001 bis Gleichung Nummer S010 eingegeben, und jede der Gleichungsnummern wird durch die Anzeige von als ein Ausführungsgegenstand bestimmt. Aus diesem Grund führt danach, wenn ein Benutzer die Ausführungstaste druckt (anklickt), der in 2 gezeigte Analysenbedingungsausführungsabschnitt 11 eine Analysenverarbeitung auf Grundlage der eingegebenen Programmanalysenbedingung im Hinblick auf die Gleichung Nummer S001 bis Gleichung Nummer S010 sequentiell durch.
-
Das Ergebnis der Analysenverarbeitung wird vom Analysenbedingungsausführungsabschnitt 11 zum Analysenbedingungseinstellabschnitt 10 zurückgeschickt. Im Ergebnis zeigt der Analysenbedingungseinstellabschnitt 10 die Anzahl von Ergebnissen der Analysenverarbeitung in der Ergebnisanzahlzelle auf der Programmanalysenunterstützungsbildfläche an, die in 1 im Anzeigeabschnitt 4 angezeigt wird. Drückt der Benutzer eine Taste BT, die auf der rechten Seite der Ergebnisanzahlzelle angezeigt wird, zeigt der Analysenergebnisanzeigeabschnitt 20 entsprechend das Ergebnis der Analysenverarbeitung auf einer Bildfläche des Anzeigeabschnitts 4 von 1 an.
-
Verarbeitungsinhalte des Analysenbefehls (A) bis (E)
-
Die Verarbeitungsinhalte eines Analysenbefehls, der eine Programmanalysenbedingung darstellt, werden nachstehend beschrieben.
- (A) Zunächst handelt es sich bei einem in 7 angezeigten Analysenbefehl POU_LESE um einen Befehl zum Benennen oder Auslesen eines Programms (POU), das als Analysengegenstand dient. Ein Benutzer benennt einen Programmnamen (POU-Namen), der als Analysegegenstand dienen soll, wobei der Programmname in der folgenden Verarbeitung in der Analysengegenstandszelle durch eine Gleichungsnummer bezeichnet ist. In 7 ist ein Beispiel gezeigt, in dem, durch Ausführen eines Befehls, der durch eine Gleichung Nummer S001 angegeben ist, eine POU mit einem Programmnamen HAUPT zum Auslesen bestimmt ist. Als Analysenergebnis wird eine Zusammenstellung von POUs ausgegeben, von denen jede den Programmnamen HAUPT als Element hat. „Zusammenstellung” ist ein softwaretechnischer Begriff, der einen Satz Datenelemente bedeutet. „Zusammenstellung von POUs” bedeutet einen Satz, der Programme (POUs) als Elemente enthält. Wenn in der Analysengegenstandszelle kein POU-Name benannt wird, der als Analysengegenstand dienen soll, wird als Analysenergebnis eine Zusammenstellung ausgegeben, die alle POUs enthält, die als Elemente ein Programm darstellen. Ein Verarbeitungsablauf, der erfolgt, wenn der in 2 gezeigte POU-Listenextraktionsverarbeitungsausführungsabschnitt 14 den Analysenbefehl POU_LESE ausführt, ist in dem Ablaufschema von 9 gezeigt. Wie in 9 gezeigt ist, handelt es sich bei einem auf die Verarbeitung des Analysenbefehls POU_LESE bezogenen Verfahren um dasselbe wie ein herkömmliches Verfahren, das ein Programm als Suchbereich in Querverweisbildung bestimmt.
- (B) Bei einem in 7 gezeigten Analysenbefehl VAR_REF handelt es sich um einen Befehl, der einen Querverweis einer Variablen (Vorrichtung) extrahiert, und der durch den in 2 gezeigten Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 ausgeführt wird. Aus diesem Grund benennt ein Benutzer eine Gleichungsnummer, die ein Programm bestimmt, das als Analysengegenstand des Analysenbefehls VAR_REF in der Analysengegenstandszelle dient, und benennt eine Variable (Vorrichtung), die als eine Bedingung für eine Querverweisextraktion dient, in der Analysenbedingungszelle. Gleichung Nummer S002 in 7 zeigt ein Beispiel, bei dem in dem Programm HAUPT, das als die POU dient, die aus dem Speicherabschnitt 6 zum Mikroprozessor 2 durch Ausführen des als Gleichung Nummer S001 gegebenen Analysenbefehl POU_LESE ausgelesen wurde, ein auf alle Vorrichtungen M bezogener Querverweis als zu extrahieren bestimmt wird. Der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 von 2 gibt als Analysenergebnis eine Zusammenstellung aus, die Abschnitte enthält, in denen die Variablen (Vorrichtungen) M im Programm HAUPT als Elemente verwendet werden.
-
In diesem Fall ist ein Verarbeitungsablauf des Analysenbefehls VAR_REF, der durch den Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 von 2 ausgeführt wird, im Ablaufschema von 10 gezeigt. In dem auf die Verarbeitung des Analysenbefehls VAR_REF bezogenen Verfahren, handelt es sich bei Prozessen (Schritte S40:S41 bis S43), die durchgeführt werden, wenn ein Element einer POU-Zusammenstellung, die in der Analysengegenstandszelle des Analysenbefehls VAR_REF 1 benannt ist, um Grundprozesse des Analysenbefehls VAR_REF, und sie sind dieselben wie diejenigen im herkömmlichen Verfahren zur Herstellung eines Querverweises. Konkreter ausgedrückt kann eine Ausführung des durch die Gleichung Nummer S002 gegebenen Analysenbefehls VAR_REF durch das herkömmliche Verfahren zur Herstellung eines Querverweises verarbeitet werden.
-
Der Variablenverwendungslistenextraktiansverarbeitungsausführungsabschnitt 12 zeigt eine Ergebniszusammenstellung der Analysenverarbeitung der Gleichung Nummer S002 auf der Bildfläche des Anzeigeabschnitts 4 von 1 als VAR_REF-Ergebnisanzeigebildfläche an. Ein Beispiel der VAR_REF-Ergebnisanzeigebildfläche, die auf Grundlage der Ergebniszusammenstellung angezeigt wird, ist in 11 gezeigt. Wie in 11 gezeigt ist, sind im HAUPT-Ladder-Programm 6 Abschnitte vorhanden, in denen die Variablen (Vorrichtungen) M verwendet werden (Vorrichtungen M1, M3 bis M6), und ein Querverweisergebnis davon wird angezeigt. Die Vorrichtung M3 wird nicht nur als ein Operand einer SET-Anweisung im Schritt Nr. 5 verwendet, sondern auch als ein Operand eines Kontakts im Schritt Nr. 6. Die Operanden sind Elemente des Querverweisergebnisses. Bei einem Verfahren zum Anzeigen eines Verarbeitungsergebnisses des Analysenbefehls VAR_REF handelt es sich auch um dasselbe wie im herkömmlichen Verfahren zur Herstellung einer Querverweises.
-
Ein Beispiel einer VAR_REF-Ergebnisanzeigebildfläche, die erhalten wird, wenn ein Kommentar der Variablen (Vorrichtungen) M in einer diesbezüglichen Vorrichtungskommentardatei beschrieben ist, ist auch in 12 gezeigt.
-
Ähnlich zeigt die Gleichung Nummer S003 in 7 ein Beispiel, in dem ein Programm SUB, das als POU dient, zum Auslesen bestimmt wird, und die darauffolgend ausgeführte Gleichung Nummer S004 zeigt ein Beispiel, in dem ein Querverweis, der sich auf alle Variablen (Vorrichtungen) M in dem Programm SUB bezieht, durch Ausführen des Analysenbefehls in Gleichung Nummer S003 ausgelesen wird. Ein Beispiel einer VAR_REF-Ergebnisanzeigebildfläche in der Gleichung Nummer S004 ist in 13 gezeigt.
- (C) Bei einem in 7 gezeigten Analysenbefehl UND handelt es sich um einen Befehl zum Extrahieren eines logischen Produkts von als Verarbeitungsergebnis extrahierten Datensätzen, und er wird durch den UND-Verarbeitungsausführungsabschnitt 17 von 2 ausgeführt. Ein Benutzer benennt zwei Gleichungsnummern, die als Gegenstände des logischen Produkts dienen und in einer Zelle Analysengegenstand (erstes Argument) bzw. einer Zelle Analysengegenstand (zweites Argument) bezeichnet sind. Die Gleichung Nummer S005 in 7 zeigt ein Beispiel, in dem ein logisches Produkt eines in Gleichung Nummer S002 extrahierten Querverweisergebnisses und eines in Gleichung Nummer S004 extrahierten Querverweisergebnisses zur Extraktion benannt wird. Konkreter ausgedrückt zeigt Gleichung Nummer S005 ein Beispiel, in dem ein Querverweis, der sich auf alle Variablen (Vorrichtungen) M bezieht, die im Programm HAUPT und auch im Programm SUB verwendet werden, zur Extraktion bestimmt werden.
-
Ein Verarbeitungsablauf eines durch den UND-Verarbeitungsausführungsabschnitt 17 ausgeführten Analysenbefehls UND ist in den Ablaufschemata in 14 und 15 gezeigt. Bei der in 14 gezeigten UND-Verarbeitung zwischen POU-Zusammenstellungen handelt es sich um einfache logische Produktverarbeitung. Wird jedoch eine UND-Verarbeitung zwischen Zusammenstellungen von Querverweisen (Verwendungsabschnitte der benannten Vorrichtung) als einfaches logisches Produkt verstanden, wird auf jeden Fall ein leeres Ergebnis erhalten. Der Grund dafür ist, dass, da eine Position, an der eine Variable (Vorrichtung) M4 im Programm HAUPT verwendet wird, und ein Abschnitt, wo sich die Variable (Vorrichtung) M4 im Programm SUB befindet, sich mit Ausnahme der Variablen (Vorrichtung) voneinander unterscheiden, nicht davon auszugehen ist, dass beide Verwendungsabschnitte identisch zueinander sind.
-
Ein charakteristischer Punkt in der Ausführungsform der vorliegenden Erfindung liegt in der UND-Verarbeitung (siehe 15) zwischen Zusammenstellungen von Querverweisen (Verwendungsabschnitten einer benannten Vorrichtung). Konkreter ausgedrückt ist der charakteristische Punkt, dass, wenn es eine identische Variable (Vorrichtung) ist, es sich um einen Operationsbezug eines logischen Produkts handelt. Da zum Beispiel ein Abschnitt (siehe 11), in dem die Variable (Vorrichtung) M4 im Programm HAUPT verwendet wird, und ein Abschnitt (siehe 13), in dem die Variable (Vorrichtung) im Programm SUB verwendet wird, dieselbe Variable (Vorrichtung) verwenden, werden die Abschnitte als Ergebnisse logischer Produkte belassen. Ein anderer charakteristischer Punkt ist, dass jeweilige Elemente als Ergebnisse belassen werden. Da zum Beispiel der Abschnitt, in dem die Variable (Vorrichtung) M im Programm HAUPT verwendet wird, und der Abschnitt, in dem die Variable (Vorrichtung) im Programm SUB verwendet wird, dieselbe Variable (Vorrichtung) verwenden, werden beide Abschnitte als Elemente einer Ergebniszusammenstellung belassen. Wenn der UND-Verarbeitungsausführungsabschnitt 17 eine wie vorstehend beschriebene Verarbeitung durchführt, ist das Ergebnis in der Gleichung Nummer S005 von 7 wie in 16 gezeigt.
- (D) Bei einem in 7 gezeigten Analysenbefehl ODER handelt es sich um einen Befehl zum Extrahieren einer logischen Summe zwischen als Verarbeitungsergebnis extrahierten Sätzen unterschiedlicher Daten, und er wird durch den ODER-Verarbeitungsausführungsabschnitt 18 von 2 ausgeführt. Ein Benutzer benennt als Gegenstände der logischen Summe zwei Gleichungsnummern in einer Zelle Analysengegenstand (erstes Argument) bzw. einer Zelle Analysenbedingung (zweites Argument). Die Gleichung Nummer S006 von 7 zeigt ein Beispiel, bei dem eine logische Summe eines in Gleichung Nummer S002 extrahierten Querverweisergebnisses und eines anderen in Gleichung Nummer S004 extrahierten Querverweisergebnisses zur Extraktion bestimmt werden. Konkreter ausgedrückt zeigt Gleichung Nummer S006 ein Beispiel, in dem ein Querverweis, der sich auf alle Variablen (Vorrichtungen) M bezieht, die im Programm HAUPT oder im Programm SUB verwendet werden, zur Extraktion bestimmt werden.
-
Im Hinblick auf eine ODER-Befehlsverarbeitung handelt es sich bei einer ODER-Verarbeitung zwischen POU-Zusammenstellungen um eine einfache logische Summenerarbeitung, und eine ODER-Verarbeitung zwischen Zusammenstellungen von Querverweisen (Verwendungsabschnitten einer benannten Vorrichtung) ist auch eine einfache logische Summenverarbeitung. Ein Verarbeitungsablauf eines Analysenbefehls ODER, der durch den ODER-Verarbeitungsausführungsabschnitt 18 von 2 ausgeführt wird, ist wie in 17 und 18 gezeigt. Die Verarbeitung erfolgt wie nachstehend beschrieben, wobei ein Verarbeitungsergebnis der Gleichung Nummer S006 von 7 wie in 19 gezeigt ist.
- (E) Bei einem in 7 gezeigten Analysenbefehl NICHT handelt es sich um einen Befehl zum Extrahieren eines Datensatzes, der erhalten wird, indem Elemente eines anderen Datensatzes aus Elementen eines bestimmten als Verarbeitungsergebnis extrahierten Datensatzes ausgeschlossen werden, und er wird durch den NICHT-Verarbeitungsausführungsabschnitt 19 von 2 ausgeführt. Ein Benutzer benennt eine Gleichungsnummer, die als Bestand in einer Analysengegenstandszelle dient, und benennt eine Gleichungsnummer, die als Satz von Elementen dient, die aus dem Bestand in einer Analysenbedingungszelle ausgeschlossen sind. Die Gleichung Nummer S007 in 7 zeigt ein Beispiel, in dem ein Querverweisergebnis, das erhalten wurde, nachdem ein in der Gleichung Nummer S004 extrahiertes Querverweisergebnis aus einem in der Gleichung Nummer S002 extrahierten Querverweisergebnis ausgeschlossen wurde, zum Extrahieren bestimmt wird. Konkreter ausgedrückt zeigt Gleichung Nummer S007 ein Beispiel, in dem ein Querverweis, der sich auf Variablen (Vorrichtungen) M, die im Programm SUB nicht verwendet werden, bezieht, in allen Variablen (Vorrichtungen) M, die im Programm HAUPT verwendet werden, zum Extrahieren bestimmt wird.
-
Ein Verarbeitungsablauf eines Analysenbefehls NICHT, der durch den NICHT-Verarbeitungsausführungsabschnitt 19 ausgeführt wird, ist in 20 und 21 gezeigt. Bei einer NICHT-Verarbeitung (siehe 20) zwischen Zusammenstellungen von POUs handelt es sich um eine einfache Ausschlussverarbeitung. Wird allerdings eine NICHT-Verarbeitung zwischen Zusammenstellungen von Querverweisen (Verwendungsabschnitten einer benannten Vorrichtung) einfach als Ausschlussverarbeitung durchgeführt, wird als Ergebnis auf jeden Fall nichts ausgeschlossen. Der Grund dafür ist, dass, da eine Position, an der eine Variable (Vorrichtung) M4 im Programm HAUPT verwendet wird, und ein Abschnitt, wo sich die Variable (Vorrichtung) M4 im Programm SUB befindet, sich mit Ausnahme der Variablen (Vorrichtung) voneinander unterscheiden, nicht davon auszugehen ist, dass beide Verwendungsabschnitte identisch zueinander sind.
-
Die Ausführungsform der vorliegenden Erfindung hat ihren charakteristischen Punkt in der NICHT-Verarbeitung (siehe 21) zwischen Zusammenstellungen von Querverweisen (Verwendungsabschnitten einer benannten Vorrichtung). Konkreter ausgedrückt ist der charakteristische Punkt der vorliegenden Erfindung, dass, wenn es eine identische Variable (Vorrichtung) ist, es sich um einen Operationsbezug der Ausschlussverarbeitung handelt. Da zum Beispiel, der Abschnitt, in dem die Variable (Vorrichtung) M4 im Programm HAUPT verwendet wird, und der Abschnitt, in dem die Variable (Vorrichtung) M4 im Programm SUB verwendet wird, dieselbe Variable (Vorrichtung) verwenden, werden die Abschnitte als Gegenstände der Ausschlussverarbeitung aus den Zusammenstellungen ausgeschlossen. Wenn der NICHT-Verarbeitungsausführungsabschnitt 19 eine NICHT-Verarbeitung wie vorstehend beschrieben durchführt, ist das Ergebnis in der Gleichung Nummer S007 von 7 wie in 22 gezeigt.
-
In der Gleichung Nummer S008 von 7 handelt es sich bei einem ersten Argument und einem zweiten Argument um POU-Zusammenstellungen. Ein Ergebnis der ODER-Verarbeitung zwischen den Zusammenstellungen ist eine POU-Zusammenstellung, die das Programm HAUPT und das Programm SUB als Elemente enthält.
-
Ein Analysenbefehl VAR_REF in der Gleichung Nummer S009 von 7 ist ein Beispiel, das erhalten wird, wenn die Anzahl von Elementen der POU-Zusammenstellung des ersten Arguments nicht 1, sondern 2 ist. Ein Verarbeitungsablauf wird nachstehend mit Bezug auf 10 beschrieben.
-
In diesem Fall wird bei der Verarbeitung des Analysenbefehls VAR_REF die Verarbeitung des Analysenbefehls VAR_REF rekursiv eingesetzt, um ein Problem zu lösen. In der Gleichung Nummer S009 von 7 verarbeitet in dem Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 von 2 das Programm HAUPT, das als erstes Element einer POU-Zusammenstellung mit zwei Elementen dient, einen Analysenbefehl VAR_REF, der in der Analysengegenstandszelle benannt ist (eine Verarbeitung erfolgt, wenn die Anzahl von Elementen der POU-Zusammenstellung, die in der Analysengegenstandszelle des Analysenbefehls VAR_REF benannt sind, die Grundverarbeitung des Analysenbefehls VAR_REF ist, und die Verarbeitung wie im vorstehend beschriebenen Punkt (5) ist), es erfolgt eine ODER-Verarbeitung zwischen der Ergebniszusammenstellung der Verarbeitung und einer Hauptergebniszusammenstellung in Gleichung Nummer S009 (dabei ist die Zusammenstellung eine leere Zusammenstellung, die kein Element enthält) (die ODER-Verarbeitung ist wie im vorstehenden Punkt (D) beschrieben), und ein Ergebnis davon wird als Hauptergebniszusammenstellung in Gleichung Nummer S009 aktualisiert (dabei sind die Inhalte der Zusammenstellung dieselben wie diejenigen der Verarbeitungsergebniszusammenstellung des Analysenbefehls VAR_REF, der durch das Programm HAUPT in der Analysengegenstandszelle benannt wurde).
-
Im Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 verarbeitet das Programm SUB, das als zweites Element dient, einen in der Analysengegenstandszelle benannten Analysenbefehl VAR_REF, und es erfolgt eine ODER-Verarbeitung zwischen der Ergebniszusammenstellung der Verarbeitung und einer Hauptergebniszusammenstellung in Gleichung Nummer S009 (dabei sind die Inhalte der Hauptergebniszusammenstellung dieselben wie diejenigen der Verarbeitungsergebniszusammenstellung des in der Analysengegenstandszelle durch das Programm HAUPT benannten Analysenbefehls VAR_REF), und ein Ergebnis davon wird als Hauptergebniszusammenstellung in der Gleichung Nummer S009 aktualisiert.
-
Wenn der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 für alle Elemente der POU-Zusammenstellung, die in der Analysengegenstandszelle benannt sind, die rekursive Verarbeitung des Analysenbefehls VAR_REF und die ODER-Verarbeitung zwischen der Ergebniszusammenstellung der Verarbeitung und der Hauptergebniszusammenstellung in der Gleichung Nummer S009 abschließt, sortiert der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 die Hauptergebniszusammenstellung in der Gleichung Nummer S009 unter Verwendung der Variablen (Vorrichtung) als Schlüssel und gibt die sortierte Hauptergebniszusammenstellung als Endergebniszusammenstellung in der Gleichung S009 aus.
-
Die Verarbeitung erfolgt wie vorstehend beschrieben, das Ergebnis in der Gleichung S009 ist dasselbe wie in Gleichung Nummer S006, wie in 19 gezeigt ist.
-
Der Analysenbefehl VAR_REF ist ein Operator, der zu einer als Analysengegenstand dienenden POU-Zusammenstellung linear ist. Konkreter ausgedrückt wird davon ausgegangen, dass ein Verarbeitungsablauf durch 10 gegeben ist, so dass es sich bei dem Analysenbefehl VAR_REF um eine lineare Befehlsdefinition handelt. Aus diesem Grund kann eine solche rekursive Verarbeitung durchgeführt werden.
-
Ein Analysengegenstand wird als Argument einer VAR_REF-Funktion ausgedrückt, und eine ODER-Operation wird als + ausgedrückt, um die Linearität des Analysenbefehls VAR_REF zu beschreiben. In diesem Fall wird die Gleichung Nummer S009 durch eine Gleichung ausgedrückt, die durch den rechnerischen Ausdruck 1 gegeben ist.
-
Rechnerischer Ausdruck 1
-
-
VAR_REF(S008) = VAR_REF(HAUPT + SUB) = VAR_REF(HAUPT) + VAR_REF(SUB)
-
Der Analysenbefehl VAR_REF ist als ein Operator ausgelegt, der auch zu einer als Analysenbedingung dienenden Variablen (Vorrichtung). linear ist. Gleichung Nummer S010 wird durch eine Gleichung ausgerückt, die durch den rechnerischen Ausdruck 2 gegeben ist. Der Analysenbefehl VAR_REF wird rekursiv eingesetzt, um es möglich zu machen, eine Verarbeitung in der Gleichung Nummer S010 durchzuführen.
-
Rechnerischer Ausdruck 2
-
-
VAR_REF(M[0 – 9], M[20 – 29]) = VAR_REF(M0 + ... + M9 + M20 + ... M29)
= VAR_REF(M0) + ... + VAR_REF(M9) + VAR_REF(M20)
+ ... + VAR_REF(M29)
-
Jedoch kann, was die Verarbeitungszeit, ohne die rekursive Verarbeitung durchzuführen, im Schritt S42 des Verarbeitungsablaufs von 10 betrifft, der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 M [0 – 9] und M [20 – 29] gleichzeitig verarbeiten. In diesem Fall wird dasselbe Ergebnis wie vorstehend beschrieben erhalten.
-
Wirkung von Ausführungsform 1
-
Wie vorstehend beschrieben, wird eine logische Operation (UND-Verarbeitung/ODER-Verarbeitung/NICHT-Verarbeitung) zwischen Zusammenstellungen eines Querverweises (Verwendungsabschnitten einer benannten Vorrichtung) zur Verfügung gestellt, um es zu ermöglichen, einen gewünschten Querverweis zu extrahieren.
-
Die Herstellung eines Querverweises, der erhalten wird, wenn eine Ergebniszusammenstellung einer logischen Operation (UND-Verarbeitung/ODER-Verarbeitung/NICHT-Verarbeitung) zwischen Zusammenstellungen von POUs als Analysengegenstand benannt wird, wird zur Verfügung gestellt, um es zu ermöglichen, einen gewünschten Querverweis zu extrahieren.
-
Der Analysenbefehl VAR_REF ist als Operator definiert, der linear zu der als Analysengegenstand dienenden POU-Zusammenstellung ist. Zusätzlich ist der Analysenbefehl VAR_REF als Operator definiert, der auch zu einer als Analysenbedingung dienenden Variablen (Vorrichtung) linear ist. Deshalb kann eine Programmanalysenunterstützungsfunktion bereitgestellt werden, die dasselbe Ergebnis sicherstellen kann, auch wenn eine Querverweisoperation und logische Operationen in beliebiger Reihenfolge kombiniert werden.
-
Ausführungsform 2
-
In der Ausführungsform wird nachstehend als konkretes Beispiel eines Verfahrens zum Extrahieren eines gerichteten Graphen der Abhängigkeit von Variablen (Vorrichtungen) in einem Programm, ein Verfahren zum Extrahieren eines gerichteten Abhängigkeitsgraphen von Vorrichtungen in einem Ladder-Programm beschrieben.
-
Wie in 23 gezeigt ist, umfasst der Analysenbedingungsausführungsabschnitt 11 im Vergleich zu dem Fall von 2 darüber hinaus einen Variablenabhängigkeitsextraktionsverarbeitungsabschnitt 13, der als Funktionsteil dient, um eine Extraktion eines gerichteten Variablen-/Vorrichtungsabhängigkeitsgraphen zu verarbeiten, und der Analysenergebnisanzeigeabschnitt 20 umfasst darüber hinaus einen Variablenabhängigkeitsanzeigeabschnitt 22, der Bilddaten herstellt und ausgibt, um das Ergebnis eines gerichteten Variablen-/Vorrichtungsabhängigkeitsgraphen auf dem Anzeigeabschnitt 4 von 1 anzuzeigen.
-
Eine Grunderklärung zur Abhängigkeit (zum gerichteten Graphen) von Variablen in einem allgemeinen Programm ist im Schriftstück 2 offenbart, bei dem es sich um keine Patentschrift handelt.
-
Ein gerichteter Graph der Abhängigkeit von Variablen in einem Ladder-Programm wird zuerst mit Bezug auf 24 bis 27 beschrieben.
-
Ein Ladder-Grundprogramm besteht aus einem Kontakt, einer Spule und einem Bus. Insbesondere wird eine horizontale Linie (Kontaktplan), die an einen linken Bus und einen rechten Bus angeschlossen ist, und auf der ein Kontakt und/oder eine Spule angeordnet ist, im Folgenden als Sprosse (rung) bezeichnet. Die Sprosse ist deshalb ein Bestandteil eines Ladder-Programms. Ein Element, das eine Sprosse wie etwa einen Kontakt oder eine Spule darstellt, wird im Folgenden als Anweisung (instruction) bezeichnet. Eine Ladderstruktur in 24 zeigt konkrete Beispiele einer als Bestandteil eines Ladder-Programms dienenden Sprosse und einer als Bestandteil der Sprosse dienenden Anweisung.
-
Die Anweisung ist durch einen Operator (Anweisung) und Operanden (Operand) aufgebaut. Der Operand ist ein Argument des Operators. Manche Operatoren benötigen einen Operanden, und manche Operatoren benötigen zwei oder mehr Operanden. 25 zeigt konkrete Beispiele des Operators und des Operanden.
-
Wenn sich in einem Ladder-Programm ein Wert (Zustand) eines Kontakts verändert, verändert sich auch ein Wert (Zustand) einer auf derselben Sprosse angeordneten Spule. Konkreter ausgedrückt hängt ein Wert einer Vorrichtung, die als Spule dient, vom Wert einer Vorrichtung ab, die als Kontakt dient. Wenn dieses Verhältnis generalisiert und beschrieben wird, wird eine Anweisung mit einem Operator, der eine Vorrichtung einschreibt, an die vorgeordnete, d. h. linke Seite derselben Sprosse gesetzt und hängt von einer Anweisung mit einem Operator ab, der eine Vorrichtung ausliest.
-
Auch in einer Anweisung mit einem Operator, der zwei oder mehr Operanden benötigt, haben Vorrichtungen eine Abhängigkeit. Da zum Beispiel eine MOV-Anweisung eine Lesevorrichtung als ersten Operanden und eine Schreibvorrichtung als zweiten Operanden benennt, hängt der Wert des zweiten Operanden vom ersten Operanden ab.
-
Wenn eine an eine bestimmte Sprosse gesetzte Schreibvorrichtung als Lesevorrichtung einer anderen Sprosse gesetzt wird, werden über die Vorrichtung die Abhängigkeiten von Vorrichtungen in Abfolge verknüpft.
-
26 bis 28 zeigen konkrete Beispiele der Abhängigkeit von Anweisungen und Abhängigkeit von Vorrichtungen in einem Ladder-Programm.
-
Ein Verfahren zum Extrahieren eines gerichteten Graphen der Abhängigkeit von Vorrichtungen in einem Ladder-Programm wird nachstehend beschrieben. 29 ist ein Beispiel einer Bildfläche des Anzeigeabschnitts 4, um einen Benutzer dazu zu bewegen, eine Programmanalysenbedingung einzugeben und entspricht dem Rest des Beispiels der in 7 gezeigten Bildfläche.
-
Bei einem Analysenbefehl VAR_FWD in 29 handelt es sich um einen Befehl zum Extrahieren einer Variablen (Vorrichtung), die eine benannte Variable (Vorrichtung) beeinflusst, und zum Ermitteln eines gerichteten Graphen (gerichteten Vorwärtsabhängigkeetsgraphen), der die Variablenabhängigkeit zeigt. Für den Analysenbefehl VAR_FWD benennt ein Benutzer in der Analysengegenstandszelle eine Gleichungsnummer, die ein Programm bezeichnet, das als Analysengegenstand dient, und benennt in der Analysenbedingungszelle eine Variable (Vorrichtung), die als Startpunkt für einen gerichteten Vorwärtsabhängigkeitsgraphen dient. Gleichung Nummer S011 zeigt ein Beispiel, in dem der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 in einem Programm HAUPT und einem Programm SUB, die als Elemente dienen, die in einer als Verarbeitungsergebnis in der Gleichung Nummer S008 ausgegebenen POU-Zusammenstellung enthalten sind, die Extraktion eines gerichteten Vorwärtsabhängigkeitsgraphen aus einer Variable (Vorrichtung) x222 bestimmt. Der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 gibt als Analysenergebnis in der Gleichung Nummer S011 Daten aus, die erforderlich sind, um zeichnerisch einen gerichteten Graphen zum Variablenabhängigkeitsanzeigeabschnitt 22 zu ziehen.
-
Ein Verarbeitungsverfahren, das eingesetzt wird, wenn der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 einen gerichteten Graphen der Vorwärtsabhängigkeit aus einer durch einen Benutzer aus einem durch den Benutzer bezeichneten Ladder-Programm benannten Variable (Vorrichtung) extrahiert, ist in dem Schriftstück 3 nicht offenbart, bei dem es sich um kein Patent handelt. Aus diesem Grund ist ein Verarbeitungsablauf des Analysenbefehls VAR_FWD, der durch den Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 ausgeführt wird, im Ablaufschema von 30 gezeigt.
-
In der folgenden Beschreibung führt der Variablenabhängigkeitsextraktiansverarbeitungsausführungsabschnitt 13 eine Verarbeitung, die durch die Gleichung Nummer S011 in 29 benannt ist, nach dem in 30 gezeigten Ablauf durch, um in 31 ein Ergebnis zu erhalten.
-
Im Schritt S86 von 30 generiert der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 als Elemente eine Vorrichtungszusammenstellung [1], die eine in der Gleichung Nummer S011 als zweites Argument dienende Variable (Vorrichtung) x222 enthält.
-
Im Schritt S87 generiert der Abschnitt 13 eine Vorrichtungszusammenstellung [2] und eine gerichtete Segmentzusammenstellung [2].
-
Im Schritt S90 extrahiert der Abschnitt 13 im Programm HAUPT eine andere Variable (Vorrichtung) M3, die die als Element der Vorrichtungszusammenstellung [1] dienende Variable (Vorrichtung) x222 beeinflusst.
-
Im Schritt S91 fügt der Abschnitt 13 ein von der Variablen (Vorrichtung) x222 zur Variablen (Vorrichtung) M3 gerichtetes Segment der gerichteten Segmentzusammenstellung [2] hinzu. Als Datenstruktur des dabei erhaltenen gerichteten Segments müssen nur eine Abhängigkeitsursprungsvorrichtung und eine Abhängigkeitsbestimmungsvorrichtung festgehalten werden. In Anbetracht von Ausführungsformen (die später noch beschrieben werden), kann auch ein POU-Name, eine Schrittnummer und eine Anweisung in der Datenstruktur des gerichteten Segments festgehalten werden.
-
Im nächsten Schritt S92 bestimmt der Abschnitt 13, ob die extrahierte Variable (Vorrichtung) M3 in der Vorrichtungszusammenstellung [1] oder [2] vorkommt. Da in diesem Beispiel die Variable (Vorrichtung) M3 in den Vorrichtungszusammenstellungen [1] und [2] nicht vorkommt, wird die extrahierte Variable (Vorrichtung) M3 im Schritt S93 der Vorrichtungszusammenstellung [2] hinzugefügt.
-
Im nächsten Schritt S94 versucht der Abschnitt 13 eine zum Programm SUB, das als nächstes POU-Zusammenstellungselement dient, äquivalente Verarbeitung auszuführen. Jedoch kommt in dem Beispiel die Variable (Vorrichtung) x222 im Programm SUB nicht vor.
-
Im Schritt S95 führt der Abschnitt 13 eine Verarbeitung an der nächsten Elementvorrichtung aus. Allerdings enthält in dem Beispiel die Vorrichtungszusammenstellung [1] kein Element, mit Ausnahme der Variablen (Vorrichtung) x222. Aus diesem Grund bestimmt der Abschnitt 13 im Schritt S96 „NEIN”, um zum nächsten Schritt S97 überzugehen.
-
Im Schritt S97 inkrementiert der Abschnitt 13 eine Variable d der Vorrichtungszusammenstellung. Im Ergebnis setzt der Abschnitt 13 d = 2 an und generiert eine Vorrichtungszusammenstellung [3] und eine gerichtete Segmentzusammenstellung [3] im Schritt S87.
-
Im nächsten Schritt S90 extrahiert der Abschnitt 13 im Programm HAUPT eine andere Variable (Vorrichtung) M4, die die als das Element der Vorrichtungszusammenstellung [2] dienende Variable (Vorrichtung) M3 beeinflusst.
-
In diesem Stadium fügt der Abschnitt 13 im Schritt S91 ein von der Variablen (Vorrichtung) M3 zur Variablen (Vorrichtung) M4 gerichtetes Segment zur gerichteten Segmentzusammenstellung [3] hinzu.
-
Im Schritt S92 bestimmt der Abschnitt 13, ob die extrahierte Variable (Vorrichtung) M4 in den Vorrichtungszusammenstellungen [1] bis [3] vorkommt. Da in dem Beispiel die Variable (Vorrichtung) M4 in den Vorrichtungszusammenstellungen [1] bis [3] nicht vorkommt, wird die Variable (Vorrichtung) M4 im Schritt S93 der Vorrichtungszusammenstellung [3] hinzugefügt.
-
Im nächsten Schritt S94 versucht der Abschnitt 13 eine Verarbeitungsausführung am Programm SUB zu starten, das als das nächste POU-Element dient. Da jedoch die Variable (Vorrichtung) M3 im Programm SUB nicht vorkommt, versucht der Abschnitt 13 im Schritt S95 eine Verarbeitung an der nächsten Elementvorrichtung auszuführen, kann die Verarbeitung aber nicht ausführen, weil außer der Variablen (Vorrichtung) M3 kein Element in der Vorrichtungszusammenstellung [2] vorkommt. Im Schritt S96 bestimmt der Abschnitt 13 „JA”, um zum nächsten Schritt S97 überzugehen.
-
Im Schritt S97 inkrementiert der Abschnitt 13 weiter eine Variable d der Vorrichtungszusammenstellung. Im Ergebnis setzt der Abschnitt 13 d = 3 an und generiert eine Vorrichtungszusammenstellung [4] und eine gerichtete Segmentzusammenstellung [4] im Schritt S87.
-
Im Programm HAUPT kommt keine andere Variable (Vorrichtung) vor, die die als Element der Vorrichtungszusammenstellung [3] dienende Variable (Vorrichtung) M4 beeinflusst.
-
Der Abschnitt 13 extrahiert im Programm SUB, das als Element der nächsten POU-Zusammenstellung dient, andere Variable (Vorrichtungen) M7 und M8, die die als Element der Vorrichtungszusammenstellung [3] dienende Variable (Vorrichtung) M4 beeinflussen (Schritt S90).
-
In diesem Stadium fügt der Abschnitt 13 im Schritt S91 ein von der Variablen (Vorrichtung) M4 zu einer Variablen (Vorrichtung) M7 gerichtetes Segment, und ein von der Variablen (Vorrichtung) M4 zu einer Variablen (Vorrichtung) M8 gerichtetes Segment der gerichteten Segmentzusammenstellung [4] hinzu.
-
Im Schritt S92 bestimmt der Abschnitt 13, ob die extrahierten Variablen (Vorrichtungen) M7 und M8 in den Vorrichtungszusammenstellungen [1] bis [4] vorkommen. Da die Variablen (Vorrichtungen) M7 und M8 in den Vorrichtungszusammenstellungen [1] bis [4] nicht vorkommen, fügt der Abschnitt 13 im Schritt S93 die Variablen (Vorrichtungen) M7 und M8 der Vorrichtungszusammenstellung [4] hinzu.
-
Im Schritt S94 ist kein nächstes POU-Element vorhanden.
-
Im Schritt S95 versucht der Abschnitt 13, an der nächsten Elementvorrichtung eine Verarbeitung auszuführen. Da jedoch in der Vorrichtungszusammenstellung [3] außer der Variablen (Vorrichtung) M4 kein Element vorkommt, kann der Abschnitt 13 die Verarbeitung nicht ausführen. Im Schritt S96 bestimmt der Abschnitt 13 „JA”, um zum nächsten Schritt S97 überzugehen.
-
Im Schritt S97 inkrementiert der Abschnitt 13 weiter eine Variable d der Vorrichtungszusammenstellung. Im Ergebnis setzt der Abschnitt 13 d =4 an und generiert eine Vorrichtungszusammenstellung [5] und eine gerichtete Segmentzusammenstellung [5] im Schritt S87.
-
Im Programm HAUPT ist keine andere Variable (Vorrichtung) vorhanden, die die als Element der Vorrichtungszusammenstellung [4] dienende Variable (Vorrichtung) M7 beeinflusst.
-
Der Abschnitt 13 extrahiert im Programm SUB, das als Element der nächsten POU-Zusammenstellung dient, eine andere Variable (Vorrichtung) YOC10, die die als Element der Vorrichtungszusammenstellung [4] dienende Variable (Vorrichtung) M7 beeinflusst (Schritt S90).
-
In diesem Stadium fügt der Abschnitt 13 im Schritt S91 ein von der Variablen (Vorrichtung) M7 zur Variablen (Vorrichtung) YOC10 gerichtetes Segment der gerichteten Segmentzusammenstellung [5] hinzu.
-
Im Schritt S92 bestimmt der Abschnitt 13, ob die extrahierte Variable (Vorrichtung) YOC10 in den Vorrichtungszusammenstellungen [1] bis [5] vorkommt. Da in dem Beispiel die Variable (Vorrichtung) YOC10 in den Vorrichtungszusammenstellungen [1] bis [5] nicht vorkommt, fügt der Abschnitt 13 im Schritt S93 die Variable (Vorrichtung) YOC10 der Vorrichtungszusammenstellung [5] hinzu.
-
Im Schritt S94 ist kein nächstes POU-Element vorhanden.
-
Aus diesem Grund versucht der Abschnitt 13 im Schritt S95, eine Verarbeitung an der nächsten Elementvorrichtung auszuführen. Da jedoch keine andere Variable (Vorrichtung), die die nächste Variable (Vorrichtung) M8 beeinflusst, im Programm HAUPT und im Programm SUB vorkommt, bestimmt der Abschnitt 13 im Schritt S96 „JA”, um zum nächsten Schritt S97 überzugehen.
-
Im Schritt S97 inkrementiert der Abschnitt 13 weiter eine Variable d der Vorrichtungszusammenstellung. Im Ergebnis setzt der Abschnitt 13 d = 5 an und generiert eine Vorrichtungszusammenstellung [6] und eine gerichtete Segmentzusammenstellung [6] im Schritt S87.
-
Im Programm HAUPT ist keine andere Variable (Vorrichtung) vorhanden, die die als Element der Vorrichtungszusammenstellung [5] dienende Variable (Vorrichtung) YOC10 beeinflusst. Außerdem ist auch in dem Programm SUB, das als Element der nächsten POU-Zusammenstellung dient, keine andere Variable (Vorrichtung) vorhanden, die die Variable (Vorrichtung) YOC10 beeinflusst.
-
Aus diesem Grund bestimmt der Abschnitt 13 im Schritt 96, ob die Vorrichtungszusammenstellung [6] ein Element enthält. Da die Vorrichtungszusammenstellung [6] jedoch kein Element enthält, geht der Abschnitt 13 zum Schritt S98 über.
-
Im Schritt S98 gibt der Abschnitt 13 die Vorrichtungszusammenstellungen [1] bis [5] und die gerichteten Segmentzusammenstellungen [2] bis [5] als Vorwärtsabhängigkeitsanalysenergebnis des gerichteten Graphen an den Variablenabhängigkeitsanzeigeabschnitt 22 aus.
-
Danach gibt der Variablenabhängigkeitsanzeigeabschnitt 22 Zeichnungsdaten, die das Vorwärtsabhängigkeitsanalysenergebnis des gerichteten Graphen, das auf Grundlage der Vorrichtungszusammenstellungen [1] bis [5] und der gerichteten Segmentzusammenstellungen [2] bis [5] gegeben ist, an den Anzeigeabschnitt 4 von 1 aus. Als Ergebnis zieht der Anzeigeabschnitt 4 auf einer seiner Bildflächen das Vorwärtsabhängigkeitsanalysenergebnis des gerichteten Graphen zeichnerisch nach, das auf Grundlage der Vorrichtungszusammenstellungen [1] bis [5] und der gerichteten Segmentzusammenstellungen [2] bis [5] gegeben ist. Das Zeichnungsergebnis ist wie in 31 gezeigt.
-
Ein Beispiel einer Bildfläche, die erhalten wird, wenn ein Kommentar einer Variable (Vorrichtung) in einer diesbezüglichen Vorrichtungskommentardatei beschrieben wird, ist auch in 31 gezeigt.
-
Ein herkömmliches Verfahren kann beim Ziehen eines gerichteten Graphen verwendet werden. Eine Beschreibung eines Vorgangs zum konkreten Ziehen eines gerichteten Graphen auf Grundlage der Vorrichtungszusammenstellungen [1] bis [5] und der gerichteten Segmentzusammenstellungen [2] bis [5], die die Struktur des gerichteten Graphen zeigen, wird weggelassen, weil die Beschreibung vom Aussagegehalt und Umfang der der vorliegenden Erfindung abweicht.
-
Die in 29 durch die Gleichung Nummer S012 bezeichnete Verarbeitung kann auf ähnliche Weise auch entsprechend dem in 30 gezeigten Ablauf durch den Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 durchgeführt werden. Als Ergebnis wird ein in 32 gezeigtes Ergebnis erhalten.
-
Wirkung der Ausführungsform 2
-
Eine Extraktion eines gerichteten Graphen der Vorwärtsabhängigkeit einer Vorrichtung unter Verwendung eines Ladder-Programms als Analysengegenstand ist ermöglicht, oder eine Extraktion eines gerichteten Graphen der Vorwärtsabhängigkeit einer Vorrichtung unter Verwendung von POU-Zusammenstellungen im Ladder-Programm und ein Ergebnis einer logischen Operation (UND-Verarbeitung/ODER-Verarbeitung/NICHT-Verarbeitung) zwischen den POU-Zusammenstellungen als Analysengegenstände ist ermöglicht, um es möglich zu machen, Energie einer auf die Programmanalyse bezogenen Operation einzusparen.
-
Ausführungsform 3
-
Die Ausführungsform beschreibt ein Verfahren zum Extrahieren eines gerichteten Graphen der Rückwärtsabhängigkeit einer Variable (Vorrichtung) in einem Ladder-Programm.
-
Bei einem in diesem Fall verwendeten Analysenbefehl VAR_BWD handelt es sich um einen Befehl zum Extrahieren einer Variablen (Vorrichtung), die eine durch einen Benutzer benannte Variable (Vorrichtung) beeinflusst, und zum Ermitteln eines gerichteten Graphen (gerichteten Rückwärtsabhängigkeitsgraphen), der die Abhängigkeit zeigt. Der Benutzer benennt im Hinblick auf eine Eingabe einer Programmanalysenbedingung für den Analysenbefehl VAR_BWD in einer Analysenbedingungszelle eine Gleichungsnummer, die ein Programm bezeichnet, das als Analysengegenstand dient, und benennt in der Analysenbedingungszelle eine Variable (Vorrichtung), die als Startpunkt eines gerichteten Rückwärtsabhängigkeitsgraphen dient. Die Gleichung Nummer S015 in 29 zeigt ein Beispiel, in dem eine Extraktionsverarbeitung eines gerichteten Rückwärtsabhängigkeitsgraphen von einer Variablen (Vorrichtung) YC10 in einem Programm HAUPT und einem Programm SUB, die als Elemente (Element-POUs) dienen, die in einer POU-Zusammenstellung enthalten sind, die als logisches Verarbeitungsergebnis der Gleichung Nummer S008 ausgegeben wird, benannt wird. Der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 von 23 gibt als Analysenergebnis davon Daten, die erforderlich sind, um einen gerichteten Graphen der Rückwärtsabhängigkeit zu ziehen, an den Variablenabhängigkeitsanzeigeabschnitt 22 aus.
-
33 ist ein Ablaufschema, das einen Verarbeitungsablauf des Analysenbefehls VAR_BWD zeigt, der durch den Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 ausgeführt wird. Der Verarbeitungsablauf ist fast derselbe wie der Verarbeitungsablauf des in der Ausführungsform 2 beschriebenen Analysenbefehls VAR_FWD von 30, unterscheidet sich aber in den drei folgenden Punkten von dem Verarbeitungsablauf.
-
Konkreter ausgedrückt extrahiert im Gegensatz zum Schritt S90 von 30 der Vareablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 im Schritt S109 von 33 eine andere Variable (Vorrichtung), die eine benannte Variable (Vorrichtung) beeinflusst.
-
Darüber hinaus führt im Gegensatz zum Schritt S91 von 30 der Variablenabhängegkeitsextraktionsverarbeitungsausführungsabschnitt 13 im Schritt S110 von 33 eine zusätzliche Verarbeitung an einem gerichteten Segment aus, das die Abhängigkeit von einer im Schritt S109 extrahierten Variablen (Vorrichtung) darstellt.
-
Darüber hinaus führt der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 im Schritt S117 von 33 die Verarbeitung von Schritt S98 in 30 und eine Verarbeitung zum Invertieren von Tiefenzahlen einer Vorrichtungszusammenstellung und einer gerichteten Segmentzusammenstellung aus, und gibt ein nach der Invertierverarbeitung erhaltenes Ergebnis als Analysenergebnis des gerichteten Vorrichtungsabhängigkeitsgraphen aus.
-
Unter der Annahme, dass zum Beispiel die Vorrichtungszusammenstellungen [1] bis [n] erhalten werden, gibt der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 die Vorrichtungszusammenstellung [1] als Vorrichtungszusammenstellung [n] aus, gibt die Vorrichtungszusammenstellung [2] als Vorrichtungszusammenstellung [n – 1], ..., aus, gibt allgemein eine Vorrichtungszusammenstellung [k] als Vorrichtungszusammenstellung [n – k + 1], ..., aus, und gibt die Vorrichtungszusammenstellung [n] als Vorrichtungszusammenstellung [1] aus.
-
Unter der Annahme, dass gerichtete Segmentzusammenstellungen [2] bis [n] erhalten werden, gibt der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 die gerichtete Segmentzusammenstellung [2] als gerichtete Segmentzusammenstellung [n] aus, gibt die gerichtete Segmentzusammenstellung [3] als gerichtete Segmentzusammenstellung [n – 1], ..., aus, gibt allgemein eine gerichtete Segmentzusammenstellung [k] als gerichtete Segmentzusammenstellung [n – k + 2], ..., aus, und gibt die gerichtete Segmentzusammenstellung [n] als gerichtete Segmentzusammenstellung [2] aus.
-
Im Prinzip gehört das gerichtete Segment zu einer Tiefe einer gerichteten Segmentzusammenstellung, die in Bezug auf eine Tiefe einer Abhängigkeitsursprungsvorrichtung von dieser angesetzt ist. Wenn Zahlen von gerichteten Segmentzusammenstellungen zueinander umgekehrt werden, bewegt der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 die Elemente aller gerichteten Segmente zu Tiefen, zu denen die Elemente gehören sollten.
-
Wenn ein gerichteter Graph auf Grundlage der Vorrichtungszusammenstellung und der wie oben beschrieben erhaltenen gerichteten Segmentzusammenstellung zeichnerisch gezogen wird, ist ein Zeichnungsergebnis wie in 34 gezeigt.
-
Ein Punkt, dem spezielle Aufmerksamkeit geschenkt werden sollte ist, dass, wenn die Zahlen aller gerichteten Segmentzusammenstellungen umgekehrt werden, die Elemente aller gerichteten Segmente zu Tiefen bewegt werden, zu denen die Elemente gehören sollten.
-
In 34 enthält, bevor die Zahlen der gerichteten Segmentzusammenstellungen umgekehrt werden, eine gerichtete Segmentzusammenstellung [d = 3] fünf elementgerichtete Segmente [X223 → M6], [D2 → M6], [D3 → M6], [M4 → M7] und [M5 → M7], und eine gerichtete Segmentzusammenstellung [d = 4] enthält vier elementgerichtete Segmente [M3 → M4], [X223 → M5], [D2 → M5] und [D3 → M5].
-
Wenn der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 in diesem Stadium eine Verarbeitung durchführt, um nur Tiefenzahlen der gerichteten Segmentzusammenstellungen umzukehren, enthält eine gerichtete Segmentzusammenstellung [d = 4] fünf elementgerichtete Segmente [X223 → M6], [D2 → M6], [D3 → M6], [M4 → M7] und [M5 → M7], und andererseits enthält eine gerichtete Segmentzusammenstellung [d = 3] vier elementgerichtete Segmente [M3 → M4], [X223 → M5], [D2 → M5] und [D3 → M5].
-
Aus diesem Grund führt der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 eine Verarbeitung durch, um die gerichteten Segmente so zu bewegen, dass sie zu Tiefen einer gerichteten Segmentzusammenstellung gehören, die eine Tiefe einer Abhängigkeitsursprungsvorrichtung der gerichteten Segmente hat.
-
Im Ergebnis sollten drei elementgerichtete Segmente [X223 → M5], [D2 → M5] und [D3 → M5] von elementgerichteten Segmenten der gerichteten Segmentzusammenstellung [d = 3] zu einer Tiefe d = 4 gehören, weil eine Tiefe der Abhängigkeitsursprungsvorrichtung, nachdem die Tiefenzahlen umgekehrt wurden d = 3 ist, und sie zur gerichteten Segmentzusammenstellung [d = 4] bewegt werden.
-
Auf diese Weise enthält im Ergebnis die gerichtete Segmentzusammenstellung [d = 4] acht elementgerichtete Segmente [X223 → M6], [D2 → M6], [D3 → M6], [M4 → M7], [M5 → M7], [M223 → M5], [D2 → M5] und [D3 → M5], und die gerichtete Segmentzusammenstellung [d = 3] enthält ein elementgerichtetes Segment, das durch [M3 → M4] gebildet ist.
-
Wirkung der Ausführungsform 3
-
Da eine Extraktion eines gerichteten Rückwärtsabhängigkeitsgraphen einer Variable (Vorrichtung) unter Verwendung eines Ladder-Programms als Analysengegenstand ermöglicht ist, oder eine Extraktion eines gerichteten Rückwärtsabhängigkeitsgraphen einer Variable (Vorrichtung) unter Verwendung von POU-Zusammenstellungen im Ladder-Programm und ein Ergebnis einer logischen Operation (UND-Verarbeitung/ODER-Verarbeitung/NICHT-Verarbeitung) zwischen den POU-Zusammenstellungen als Analysengegenstände ermöglicht ist, kann die Energie einer auf die Programmanalyse bezogenen Operation eingespart werden.
-
Ausführungsform 4
-
In der Ausführungsform wird ein Verfahren beschrieben, das eine logische Operation (logische Summen-ODER-Verarbeitung) zwischen gerichteten Abhängigkeitsgraphen von Vorrichtungen im Ladder-Programm möglich macht.
-
Bei einem Analysenbefehl ODER handelt es sich um einen Befehl zum Extrahieren einer logischen Summe zwischen verschiedenen als Verarbeitungsergebnis extrahierten Datensätzen. Unter Verwendung des Eingabeabschnitts 5 benennt ein Benutzer zwei als Gegenstände der logischen Summe dienende Gleichungsnummern in einer Zelle Analysengegenstand (erstes Argument) bzw. einer Zelle Analysenbedingung (zweites Argument). Die Gleichung Nummer S013 in 29 zeigt ein Beispiel, in dem eine logische Summe zwischen einem Extraktionsergebnis eines gerichteten Vorrichtungsabhängigkeitsgraphen, das durch Verarbeiten in der Gleichung Nummer S011 extrahiert wurde, und einem anderen Extraktionsergebnis eines gerichteten Vorrichtungsabhängigkeitsgraphen, das durch Verarbeiten in der Gleichung Nummer S012 extrahiert wurde, zum Extrahieren benannt wird.
-
Deshalb schlägt die vorliegende Erfindung ein Beispiel vor, in dem ein Analysenbefehl zum Ausführen einer logischen Summe zwischen Querverweisen und ein Analysenbefehl zum Ausführen einer logischen Summe zwischen gerichteten Vorrichtungsabhängigkeitsgraphen durch denselben Analysenbefehl ODER benannt werden.
-
35 ist ein Ablaufschema, das einen Verarbeitungsablauf eines Analysenbefehls ODER zeigt, der durch den ODER-Verarbeitungsausführungsabschnitt 18 von 23 ausgeführt wird.
-
Zuerst bestätigt der Abschnitt 18 in den Schritten S120 und S121 von 35, ob es sich bei einer als Gegenstand einer logischen Summe dienenden Datenart um einen gerichteten Vorrichtungsabhängigkeitsgraphen handelt. Wenn es sich bei der Datenart um keinen gerichteten Vorrichtungsabhängigkeitsgraphen handelt, führt der Abschnitt 18 den vorstehend beschriebenen Verarbeitungsablauf von 18 aus.
-
Ist hingegen der Analysenbefehl ODER eine Operation einer logischen Summe zwischen gerichteten Vorrichtungsabhängigkeitsgraphen, führt der Abschnitt 18 als Vorbereitung, um das erste Argument und das zweite Argument miteinander zu verknüpfen, eine Verarbeitung durch, um die Tiefenebene beider Argumente einzustellen (Schritt S122), und alle Elemente des ersten Arguments werden als Grundlagen für die obige Verknüpfung verwendet (Schritt S125).
-
Der Abschnitt 18 verknüpft nacheinander Zusammenstellungen miteinander und bestätigt dabei, dass die Elemente des zweiten Arguments die Elemente des ersten Elements überlagern. Bei der Verknüpfung zwischen den Zusammenstellungen verarbeitet der Abschnitt 18 eine Verknüpfung (logische Summe) zwischen den Vorrichtungszusammenstellungen (Schritt S128) und verarbeitet dann eine Verknüpfung (logische Summe) zwischen gerichteten Segmentzusammenstellungen (Schritt S132).
-
Wenn der ODER-Verarbeitungsausführungsabschnitt 18 nach den in 35 gezeigten Abläufen nacheinander eine Verarbeitung bis zur Gleichung Nummer S013 von 29 ausführt, wird als Verarbeitungsergebnisse von logischen Summen in 31 und 32 ein in 36 gezeigtes Ergebnis erhalten. Dieser Punkt wird nachstehend noch im Detail beschrieben.
-
Im Schritt S123 von 35 extrahiert der Abschnitt 18 als Tiefe, bei der die Anzahl von sich überlagernden Elementen am größten ist, eine Kombination von d = 4 eines ersten Arguments und d = 3 eines zweiten Arguments, bei denen es sich um Tiefen handelt, bei denen sich Variablen (Vorrichtungen) M7 und M8 überlagern.
-
Im nächsten Schritt S124 behält der Abschnitt 18 die Tiefe des ersten Arguments unverändert bei und setzt die Tiefen der Zusammenstellungen so zurück, dass d = 3 des zweiten Arguments auf d = 4 des ersten Arguments eingestellt ist. Als Kriterium zur Bestimmung eines Arguments, dessen Tiefe unverändert in beiden Argumenten beibehalten wird, wird die Tiefe des Arguments mit dem im Schritt S123 extrahierten hohen Wert an Kombinationen unverändert beibehalten. Wenn die Werte der Tiefen der extrahierten Kombinationen einander gleich sind, brauchen die Tiefen der beiden Argumente nicht rückgesetzt zu werden. Bei der Verarbeitung in der Gleichung Nummer S013 werden Zusammenstellungen (Vorrichtungszusammenstellungen [2] bis [4] und gerichtete Segmentzusammenstellungen [3] bis [5]) von Tiefenwerten in den folgenden Schritten abgehandelt, nachdem nur +1 zum Wert der Tiefe der Zusammenstellung des zweiten Arguments hinzuaddiert wird.
-
Im nächsten Schritt S126 stellt der Abschnitt 18 eine Zusammenstellung einer Tiefe her, die einem Wert einer großen Tiefe des ersten Arguments und des zweiten Arguments entspricht, nachdem die Tiefen rückgesetzt wurden. In der Verarbeitung von Gleichung Nummer S013 stellt der Abschnitt 18 Vorrichtungs-ODER-Ergebniszusammenstellungen [1] bis [5] und gerichtete Segment-ODER-Ergebniszusammenstellungen [2] bis [5] als leere Zusammenstellungen her.
-
In diesem Stadium kopiert der Abschnitt 18 im Schritt S127 alle Zusammenstellungselemente des ersten Arguments in die ODER-Ergebniszusammenstellung. Beim Kopieren behält der Abschnitt 18, darauf achtend, dass die Tiefe des ersten Arguments im Schritt S124 unverändert beibehalten wird, eine Tiefe eines Kopierursprungs (erstes Argument) und eine Tiefe eines Kopierbestimmungorts (ODER-Ergebniszusammenstellung) bei und führt eine Kopierverarbeitung durch. Falls im Schritt S124 die Tiefe des ersten Arguments rückgesetzt wird, werden unter Berücksichtigung des obigen Rücksetzvorgangs die Tiefe des Kopierursprungs (erstes Argument) und die Tiefe des Kopierbestimmungsorts (ODER-Ergebniszusammenstellung) angesetzt.
-
Nachstehend werden Einzelheiten des nächsten Schritts S128 beschrieben.
-
Im Schritt S129 bestimmt der Abschnitt 18, dass keine Variable (Vorrichtung) x223, die als Element einer Vorrichtungszusammenstellung [Vorrichtungszusammenstellung mit einer Tiefe = 2 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der Vorrichtungs-ODER-Ergebniszusammenstellung vorkommt (JA), im nächsten Schritt S130 kopiert der Abschnitt 18 die Variable (Vorrichtung) x223 in eine Vorrichtungs-ODER-Ergebniszusammenstellung [2]. Der Abschnitt 18 geht zum Schritt S131 über.
-
Da keine Variable (Vorrichtung) M5, die als Element einer Vorrichtungszusammenstellung [Vorrichtungszusammenstellung mit einer Tiefe = 3 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der Vorrichtungs-ODER-Ergebniszusammenstellung vorkommt (JA wird im Schritt S129 bestimmt), kopiert der Abschnitt 18 die Variable (Vorrichtung) M5 in eine Vorrichtungs-ODER-Ergebniszusammenstellung [3] (Schritt S130).
-
Da keine Variable (Vorrichtung) M6, die als Element einer Vorrichtungszusammenstellung [Vorrichtungszusammenstellung mit einer Tiefe = 3 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der Vorrichtungs-ODER-Ergebniszusammenstellung vorkommt (JA wird im Schritt S129 bestimmt), kopiert der Abschnitt 18 die Variable (Vorrichtung) M6 in die Vorrichtungs-ODER-Ergebniszusammenstellung [3] (Schritt S130).
-
Da eine Variable (Vorrichtung) M7, die als Element einer Vorrichtungszusammenstellung [Vorrichtungszusammenstellung mit einer Tiefe = 4 nach dem Rücksetzen] des zweiten Arguments dient, in der Tiefe der Vorrichtungs-ODER-Ergebniszusammenstellung [4] vorkommt (NEIN wird im Schritt S129 bestimmt), führt der Abschnitt 18 keine Kopierverarbeitung der Variablen (Vorrichtung) M7 durch.
-
Da eine Variable (Vorrichtung) M8, die als Element einer Vorrichtungszusammenstellung [Vorrichtungszusammenstellung mit einer Tiefe = 4 nach dem Rücksetzen] des zweiten Arguments dient, in der Tiefe der Vorrichtungs-ODER-Ergebniszusammenstellung [4] vorkommt (NEIN wird im Schritt S129 bestimmt), führt der Abschnitt 18 keine Kopierverarbeitung der Variablen (Vorrichtung) M8 durch.
-
Da keine Variable (Vorrichtung) D5, die als Element einer Vorrichtungszusammenstellung [Vorrichtungszusammenstellung mit einer Tiefe = 4 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der Vorrichtungs-ODER-Ergebniszusammenstellung vorkommt (JA wird im Schritt S129 bestimmt), kopiert der Abschnitt 18 die Variable (Vorrichtung) D5 in die Vorrichtungs-ODER-Ergebniszusammenstellung [4] (Schritt S130).
-
Da eine Variable (Vorrichtung) YC10, die als Element einer Vorrichtungszusammenstellung [Vorrichtungszusammenstellung mit einer Tiefe = 4 nach dem Rücksetzen] des zweiten Arguments dient, in der Tiefe der Vorrichtungs-ODER-Ergebniszusammenstellung [5] vorkommt (NEIN wird im Schritt S129 bestimmt), führt der Abschnitt 18 keine Kopierverarbeitung der Variablen (Vorrichtung) YC10 durch.
-
Nachstehend werden Einzelheiten des nächsten Schritts S132 beschrieben.
-
Im Schritt S133 bestimmt der Anschnitt 18, dass kein gerichtetes Segment [X223 → M5], das als Element der gerichteten Segmentzusammenstellung [gerichtete Segmentzusammenstellung mit einer Tiefe = 3 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der gerichteten Segment-ODER-Ergebniszusammenstellung vorkommt (JA), im nächsten Schritt S134 kopiert der Abschnitt 18 das gerichtete Segment in eine gerichtete Segment-ODER-Ergebniszusammenstellung [3]. Wenn der Abschnitt 18 beim Kopieren auf Grundlage einer Tiefe einer Vorrichtungs-ODER-Ergebniszusammenstellung feststellt, dass dort eine Abhängigkeitsursprungsvorrichtung eines zu kopierenden gerichteten Segments vorhanden ist, kopiert der Abschnitt 18 das gerichtete Segment in eine Tiefe (d. h. Vorrichtungs-ODER-Ergebniszusammenstellung + 1). Da in diesem Fall eine Abhängigkeitsursprungsvorrichtung X223 des zu kopierenden gerichteten Segments [X223 → M5] in der Vorrichtungs-ODER-Ergebniszusammenstellung [2] vorkommt, kopiert der Abschnitt 18 das gerichtete Segment [X223 → M5] in eine gerichtete Segment-ODER-Ergebniszusammenstellung [3]. Der Abschnitt 18 geht zum nächsten Schritt S135 über.
-
Da im Ergebnis kein gerichtetes Segment [M5 → M7], das als Element der gerichteten Segmentzusammenstellung [gerichtete Segmentzusammenstellung mit einer Tiefe = 4 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der gerichteten Segment-ODER-Ergebniszusammenstellung vorkommt (JA wird im Schritt S133 bestimmt), kopiert der Abschnitt 18 das gerichtete Segment [M5 → M7] in die gerichtete Segment-ODER-Ergebniszusammenstellung [4] (Schritt S134).
-
Da kein gerichtetes Segment [M5 → M8], das als Element der gerichteten Segmentzusammenstellung [gerichtete Segmentzusammenstellung mit einer Tiefe = 4 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der gerichteten Segment-ODER-Ergebniszusammenstellung vorkommt (JA wird im Schritt S133 bestimmt), kopiert der Abschnitt 18 das gerichtete Segment [M5 → M8] in die gerichtete Segment-ODER-Ergebniszusammenstellung [4] (Schritt S134).
-
Da kein gerichtetes Segment [M6 → D5], das als Element der gerichteten Segmentzusammenstellung [gerichtete Segmentzusammenstellung mit einer Tiefe = 4 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der gerichteten Segment-ODER-Ergebniszusammenstellung vorkommt (JA wird im Schritt S133 bestimmt), kopiert der Abschnitt 18 das gerichtete Segment [M6 → D5] in die gerichtete Segment-ODER-Ergebniszusammenstellung [4] (Schritt S134).
-
Da kein gerichtetes Segment [M6 → YC10], das als Element der gerichteten Segmentzusammenstellung [gerichtete Segmentzusammenstellung mit einer Tiefe = 4 nach dem Rücksetzen] des zweiten Arguments dient, in allen Tiefen der gerichteten Segment-ODER-Ergebniszusammenstellung vorkommt (JA wird im Schritt S133 bestimmt), kopiert der Abschnitt 18 das gerichtete Segment [M6 → YC10] in die gerichtete Segment-ODER-Ergebniszusammenstellung [4] (Schritt S134). Obwohl in diesen Fall eine Abhängigkeitsursprungsvorrichtung YC10 des zu kopierenden gerichteten Segments [M6 → YC10] in der Vorrichtungs-ODER-Ergebniszusammenstellung [5] vorkommt, da die Abhängigkeitsursprungsvorrichtung M6 in der Vorrichtungs-ODER-Ergebniszusammenstellung [3] vorkommt, kopiert der Abschnitt 18 das gerichtete Segment [M6 → YC10] in die gerichtete Segment-ODER-Ergebniszusammenstellung [4].
-
Da ein gerichtetes Segment [M7 → YC10], das als Element der gerichteten Segmentzusammenstellung [gerichtete Segmentzusammenstellung mit einer Tiefe = 5 nach dem Rücksetzen] des zweiten Arguments dient, als Element der gerichteten Segment-ODER-Ergebniszusammenstellung [5] vorkommt, kopiert der Abschnitt 18 das gerichtete Segment [M7 → YC10] nicht.
-
Ein gerichteter Graph, der auf Grundlage der Vorrichtungszusammenstellungen [1] bis [5] und der gerichteten Segmentzusammenstellungen [2] bis [5], die durch die vorstehende Verarbeitung erhalten werden, gezogen wird, ist wie in 36 gezeigt.
-
Ein gerichtetes Segment stellt die Abhängigkeit einer bestimmten Vorrichtung von einer anderen Vorrichtung dar, und eine Variable (Vorrichtung) und ein gerichtetes Segment sind eng miteinander verwandt und werden vom ODER-Verarbeitungsausführungsabschnitt 18 von 23 wie vorstehend beschrieben verarbeitet. Das heißt, es wird eine Verknüpfung (logische Summe) zwischen Vorrichtungszusammenstellungen verarbeitet, und auf Grundlage von deren Ergebnis wird eine Verknüpfung (logische Summe) zwischen gerichteten Segmentzusammenstellungen verarbeitet, um es möglich zu machen, eine logische Summen-(ODER)-Operation zwischen gerichteten Graphen widerspruchsfrei durchzuführen.
-
Die logische Summen-(ODER)-Operation zwischen den gerichteten Graphen ist eine Verarbeitung, die ungeachtet dessen durchgeführt wird, ob einer oder beide der gerichteten Graphen eine Vorwärts- oder Rückwärtsabhängigkeit hat bzw. haben.
-
Die Gleichung Nummer S013 von 29 zeigt ein Beispiel, bei dem es sich bei einem Befehl, um den ODER-Verarbeitungsausführungsabschnitt 18 von 23 eine Verarbeitung einer logischen Summe zwischen gerichteten Vorrichtungsabhängigkeitsgraphen durch einen Analysenbefehl ODER durchführen zu lassen, um denselben wie einen Befehl (Bestimmung der Gleichung Nummer S006 von 7) handelt, um den ODER-Verarbeitungsausführungsabschnitt 18 von 2 eine Verarbeitung einer logischen Summe zwischen Querverweisen ausführen zu lassen. Alternativ ist selbst in einer Ausführungsform, in der die Befehle als unterschiedliche Befehle definiert sind (ersterer z. B. als VAR_FWD_BWD_ODER und zweiterer als VAR_REF_ODER definiert ist), ein hier verwendetes technisches Verfahren dasselbe wie das in der vorstehenden Ausführungsform beschriebene technische Verfahren.
-
Wenn die Ausführungsform eingesetzt wird, ist der Analysenbefehl VAR_FWD ein Operator, der zu einer Variablen (Vorrichtung) linear ist, die als Analysenbedingung (Startpunkt eines gerichteten Vorrichtungsabhängigkeitsgraphen) dient. Mit anderen Worten wird ein Verarbeitungsablauf einer logischen Summe von gerichteten Vorrichtungsabhängigkeitsgraphen wie in 35 gezeigt so angesetzt, dass der Analysenbefehl VAR_FWD als lineare Befehlsdefinition dient.
-
Eine Analysenbedingung wird als Argument einer VAR_FWD-Funktion ausgedrückt, und ein Analysenbefehl ODER wird als + ausgedrückt, um die Linearität des Analysenbefehls VAR_FWD zu beschreiben. In diesem Fall handelt es sich bei einem durch Gleichung Nummer S014 in 29 definierten Analysenbefehl um eine Gleichung, die durch den folgenden rechnerischen Ausdruck 3 gegeben ist.
-
Rechnerischer Ausdruck 3
-
-
VAR_FWD(X222 X223) = VAR_FWD(X222 + X223) = VAR_FWD(X222) + VAR_FWD(X223)
-
Deshalb kann, wie durch Gleichung Nummer S014 angegeben ist, wenn Variablen (Vorrichtungen), die als Analysenbedingung (Startpunkt eines gerichteten Vorrichtungsabhängigkeitsgraphen) des Analysenbefehls VAR_FWD dienen, durch einen Benutzer ausgewählt und benannt werden, eine rekursive Verarbeitung durchgeführt werden, so dass ein Ergebnis, das nach einer Durchführung einer logischen Summen-(ODER)-Verarbeitung eines Ergebnisses des Analysenbefehls VAR_FWD unter Verwendung der Variablen (Vorrichtungen) als Analysenbedingungen erhalten wird, als Ergebnis der Gleichung Nummer S014 verwendet wird. Dieser Punkt ist derselbe wie beim Analysenbefehl VAR_BWD.
-
Diese Tatsache bedeutet, dass, auch wenn ein Benutzer nicht drei Bedingungsgleichungen wie etwa die Gleichungen Nummer S011, S012 und S013 nacheinander eingibt, dasselbe Verarbeitungsergebnis wie in Gleichung Nummer S013 erhalten wird, wenn Gleichung Nummer S014 eingegeben wird und die Gleichungsnummer ausgeführt wird.
-
Ein Verfahren zum Auswählen und Benennen mehrerer Variablen (Vorrichtungen) in der Analysenbedingungszelle durch einen Benutzer haben auch der in der in Gleichung Nummer S010 von 7 gezeigte Analysenbefehl VAR_REF und der in Gleichung Nummer S014 von 29 gezeigte Analysenbefehl VAR_FWD gemeinsam, und die Analysenbedingungsbezeichnungsverfahren zwischen unterschiedlichen Analysenbefehlen sind aneinander angepasst und stehen keinesfalls miteinander in Widerstreit. Dieser Punkt ist derselbe wie bei dem Analysenbefehl VAR_BWD.
-
Wirkung der Ausführungsform 4
-
- 1) Da eine logische Operation (logische Summen-ODER-Operation) zwischen gerichteten Abhängigkeitsgraphen von Variablen (Vorrichtungen) in einem Ladder-Programm möglich gemacht ist, kann ein gewünschter gerichteter Vorrichtungsabhängigkeitsgraph extrahiert und die Energie einer auf die Programmanalyse bezogenen Operation eingespart werden.
- 2) Ein Benutzer kann einen Befehl zum Ausführen einer logischen Summe zwischen Querverweisen und einen Befehl zum Ausführen einer logischen Summe zwischen gerichteten Vorrichtungsabhängigkeitsgraphen unter Verwendung desselben Analysenbefehls ODER benennen. Obwohl eine Ausführungsform, in der die Befehle definiert sind und selektiv als unterschiedliche Befehle verwendet werden (z. B. ersterer als Analysenbefehl VAR_REF_ODER und zweiterer als Analysenbefehl VAR_FWD_BWD_ODER definiert wird), faktisch eingesetzt werden kann, werden zu verwendende Befehle je nach den Datenarten verändert, die Gegenstände des Analysenbefehls ODER sind. Wenn ein Analysenbefehl, der eine logische Summe ausführt, ungeachtet der Datenart als ODER definiert wird, wird die Verwendbarkeit besser. Wenn zu verwendende Analysenbefehle verändert werden, muss ein Benutzer einen jeder Datenart entsprechenden logischen Summenbefehl mit einer Hilfe, einer Anweisung o. dgl. überprüfen. Wenn jedoch alle Analysenbefehle durch einen Analysenbefehl ODER ausgeführt werden können, braucht ein solcher Benutzer nicht auf eine Hilfe o. dgl. zurückzugreifen, und die Energie einer auf eine Programmanalyse bezogenen Operation kann eingespart werden.
-
Ausführungsform 5
-
In der Ausführungsform wird ein technisches Verfahren beschrieben, das eine logische Operation (logische Produkt-UND-Verarbeitung) zwischen gerichteten Abhängigkeitsgraphen von Vorrichtungen im Ladder-Programm möglich macht.
-
Bei einem Analysenbefehl UND handelt es sich um einen Befehl zum Extrahieren eines logischen Produkts zwischen Sätzen von verschiedenen als Verarbeitungsergebnis extrahierten Daten. Ein Benutzer benennt zwei als Gegenstände eines logischen Produkts dienende Gleichungsnummern in einer Zeile Analysengegenstand (erstes Argument) bzw. einer Zelle Analysenbedingung (zweites Argument). Die Gleichung Nummer S016 in 29 zeigt ein Beispiel, in dem ein logisches Produkt zwischen einem Extraktionsergebnis eines gerichteten Vorrichtungsabhängigkeitsgraphen, das durch eine Verarbeitung in der Gleichung Nummer S014 extrahiert wurde, und einem anderen Extraktionsergebnis eines gerichteten Vorrichtungsabhängigkeitsgraphen, das durch eine Verarbeitung in der Gleichung Nummer S015 extrahiert wurde, zu extrahieren benannt wird.
-
Das heißt, die vorliegende Erfindung zeigt ein Beispiel, in dem ein Analysenbefehl zum Ausführen eines logischen Produkts zwischen den oben erwähnten Querverweisen und einem Analysenbefehl zum Ausführen eines logischen Produkts zwischen gerichteten Vorrichtungsabhängigkeitsgraphen durch denselben bzw. gemeinsamen Analysenbefehl UND bezeichnet werden.
-
37 ist ein Ablaufschema, das einen Verarbeitungsablauf eines durch den UND-Verarbeitungsausführungsabschnitt 17 von 23 ausgeführten Analysenbefehls UND zeigt. Mit Bezug auf den in 37 gezeigten Verarbeitungsablauf wird eine UND-Verarbeitung von gerichteten Vorrichtungsabhängigkeitsgraphen gemäß der Ausführungsform nachstehend beschrieben.
-
Zuerst bestätigt der UND-Verarbeitungsausführungsabschnitt 17 in den Schritten S137 und S138, ob es sich bei einer als Gegenstand eines logischen Produkts dienenden Datenart um einen gerichteten Vorrichtungsabhängigkeitsgraphen handelt. Wird in der Bestätigungsverarbeitung bestätigt, dass es sich bei der Datenart um einen gerichteten Vorrichtungsabhängigkeitsgraphen handelt, führt der Abschnitt 17 einfach nur den vorstehend beschrieben Verarbeitungsablauf von 15 durch.
-
Benennt andererseits der durch die Gleichungsnummer bezeichnete Analysenbefehl ein zwischen den gerichteten Vorrichtungsabhängigkeitsgraphen auszuführendes logisches Produkt, erfolgt als Vorbereitung zur Extraktion nur gemeinsamer Elemente von Zusammenstellungen eines ersten Arguments und eines zweiten Arguments eine Verarbeitung, die die Tiefenebenen der Zusammenstellungen beider Argumente einstellt (Schritt S139). Darüber hinaus werden leere UND-Ergebniszusammenstellungen für Variable (Vorrichtungen) bzw. gerichtete Segmente erstellt, und die UND-Ergebniszusammenstellungen als Grundlage verwendet, um nur gemeinsame Elemente zu extrahieren (Schritt S142).
-
Der Abschnitt 17 führt eine Verarbeitung zum Extrahieren gemeinsamer Elemente durch und bestätigt dabei, dass das Element des ersten Arguments die Elemente des zweiten Arguments überlagert. Bei der Extraktion der gemeinsamen Elemente extrahiert der Abschnitt 17 (als logisches Produkt) nur die gemeinsamen Elemente der Vorrichtungszusammenstellungen (Schritt S143) und extrahiert danach (als logisches Produkt) nur die gemeinsamen Elemente der gerichteten Segmentzusammenstellungen (Schritt S147).
-
Wenn der UND-Verarbeitungsausführungsabschnitt 17 eine UND-Verarbeitung bis zur Gleichung Nummer S016 von 29 durchführt, wird auf Grundlage des folgenden in 37 gezeigten Verarbeitungsablaufs als logisches Produkt zwischen dem Ergebnis von 36 und dem Ergebnis von 34 ein in 38 gezeigtes Ergebnis erhalten. Dieser Punkt wird im Detail beschrieben.
-
Im Schritt S140 extrahiert der Abschnitt 17 eine Tiefe, in der die Anzahl von sich überlagernden Elementen in der Vorrichtungszusammenstellung der Gleichung Nummer S014, die als erstes Argument dient, und der Vorrichtungszusammenstellung der Gleichung Nummer S015, die als zweites Argument dient, am größten ist. Als Ergebnis extrahiert der Abschnitt 17 als Tiefe, in der die Anzahl von sich überlagernden Elementen am größten ist, eine Kombination aus d = 3 des ersten Arguments und d = 3 des zweiten Arguments, bei der es sich um eine Tiefe handelt, in der sich eine Variable (Vorrichtung) M4 und eine Variable (Vorrichtung) M5 überlagern.
-
Im nächsten Schritt S141 behält der Abschnitt 17 als Anwendung eines Kriterium zum Bestimmen der Tiefe des ersten Arguments und/oder der unverändert beibehaltenen Tiefe des zweiten Arguments die Tiefe des Arguments mit dem großen Wert an im Schritt S140 extrahierten Kombinationen unverändert bei, und die andere Tiefe wird rückgesetzt. Auf diese Weise wird die Rücksetztiefe in den folgenden Schritten abgehandelt. Bei der Verarbeitung in der Gleichung Nummer S016 von 29 sind die Werte der Tiefen der im Schritt S140 extrahierten Kombinationen einander gleich (d = 3) und die Tiefen der beiden Argumente brauchen nicht rückgesetzt zu werden.
-
Im nächsten Schritt S141 stellt der Abschnitt 17 eine UND-Ergebniszusammenstellung einer Tiefe her, die dem Wert der großen der Tiefen des ersten Arguments und des zweiten Arguments entspricht, nachdem die Tiefen rückgesetzt wurden. In der Verarbeitung der Gleichung Nummer S016 in 29 sind die Tiefen der beiden Zusammenstellungen des ersten Arguments und des zweiten Arguments einander gleich (d = 5), und es werden Vorrichtungs-UND-Ergebniszusammenstellungen [1] bis [5] und gerichtete Segment-UND-Ergebniszusammenstellungen [2] bis [5] als UND-Ergebniszusammenstellungen mit leerem Inhalt hergestellt.
-
Da der Abschnitt 17 im nächsten Schritt S144 bestimmt, dass eine Variable (Vorrichtung) x222, die als Element einer Vorrichtungszusammenstellung [1] des ersten Arguments dient, in der Vorrichtungszusammenstellung [1] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im nächsten Schritt S145 die Variable (Vorrichtung) x222 in die Vorrichtungs-UND-Ergebniszusammenstellung [1].
-
Da eine Variable (Vorrichtung) M3, die als Element der Vorrichtungszusammenstellung [2] des ersten Arguments dient, in der Vorrichtungszusammenstellung [2] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S145 die Variable (Vorrichtung) M3 in die Vorrichtungs-UND-Ergebniszusammenstellung [2].
-
Da eine Variable (Vorrichtung) X233, die als Element der Vorrichtungszusammenstellung [2] des ersten Arguments dient, in der Vorrichtungszusammenstellung [3] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S145 die Variable (Vorrichtung) X223 in die Vorrichtungs-UND-Ergebniszusammenstellung [2].
-
Da eine Variable (Vorrichtung) M4, die als Element der Vorrichtungszusammenstellung [3] des ersten Arguments dient, in der Vorrichtungszusammenstellung [3] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S145 die Variable (Vorrichtung) M4 in die Vorrichtungs-UND-Ergebniszusammenstellung [3].
-
Da eine Variable (Vorrichtung) M5, die als Element der Vorrichtungszusammenstellung [3] des ersten Arguments dient, in der Vorrichtungszusammenstellung [3] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S145 die Variable (Vorrichtung) M5 in die Vorrichtungs-UND-Ergebniszusammenstellung [3].
-
Da eine Variable (Vorrichtung) M6, die als Element der Vorrichtungszusammenstellung [3] des ersten Arguments dient, in der Vorrichtungszusammenstellung [4] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S145 die Variable (Vorrichtung) M6 in die Vorrichtungs-UND-Ergebniszusammenstellung [3].
-
Da eine Variable (Vorrichtung) M7, die als Element der Vorrichtungszusammenstellung [4] des ersten Arguments dient, in der Vorrichtungszusammenstellung [4] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S145 die Variable (Vorrichtung) M7 in die Vorrichtungs-UND-Ergebniszusammenstellung [4].
-
Da keine Variable (Vorrichtung) M8, die als Element der Vorrichtungszusammenstellung [4] des ersten Arguments dient, in der gesamten Tiefe der Vorrichtungszusammenstellungen des zweiten Arguments vorkommt, führt der Abschnitt 17 keine Kopierverarbeitung durch.
-
Da keine Variable (Vorrichtung) D5, die als Element der Vorrichtungszusammenstellung [4] des ersten Arguments dient, in der gesamten Tiefe der Vorrichtungszusammenstellungen des zweiten Arguments vorkommt, führt der Abschnitt 17 keine Kopierverarbeitung durch.
-
Da eine Variable (Vorrichtung) YC10, die als Element der Vorrichtungszusammenstellung [5] des ersten Arguments dient, in der Vorrichtungszusammenstellung [5] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S145 die Variable (Vorrichtung) YC10 in, die Vorrichtungs-UND-Ergebniszusammenstellung [5].
-
Da im nächsten Schritt S148 ein gerichtetes Segment [X222 → M3], das als Element der gerichteten Segmentzusammenstellung [2] des ersten Arguments dient, in der gerichteten Segmentzusammenstellung [2] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S149 das gerichtete Segment [X222 → M3] in die gerichtete Segment-UND-Ergebniszusammenstellung [2]. Beim Kopieren kopiert der Abschnitt 17 auf Grundlage einer Tiefe einer Vorrichtungs-UND-Ergebniszusammenstellung, in der eine Abhängigkeitsursprungsvorrichtung eines zu kopierenden gerichteten Segments vorkommt, das gerichtete Segment in eine Tiefe einer gerichteten Segment-UND-Ergebniszusammenstellung, d. h. eine Tiefe (Tiefe Vorrichtungs-UND-Ergebniszusammenstellung + 1). Da in diesem Fall eine Abhängigkeitsursprungsvorrichtung X222 des zu kopierenden gerichteten Segments [X222 → M3] in der Vorrichtungs-UND-Ergebniszusammenstellung [1] vorkommt, kopiert der Abschnitt 17 das gerichtete Segment [X222 → M3] in die gerichtete Segment-UND-Ergebniszusammenstellung [2].
-
Da ein gerichtetes Segment [M3 → M4], das als Element der gerichteten Segmentzusammenstellung [3] des ersten Arguments dient, in der gerichteten Segmentzusammenstellung [3] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S149 das gerichtete Segment [M3 → M4] in die gerichtete Segment-UND-Ergebniszusammenstellung [3].
-
Da ein gerichtetes Segment [X223 → M5], das als Element der gerichteten Segmentzusammenstellung [3] des ersten Arguments dient, in der gerichteten Segmentzusammenstellung [4] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S149 das gerichtete Segment [X223 → M5] in die gerichtete Segment-UND-Ergebniszusammenstellung [3].
-
Da ein gerichtetes Segment [X223 → M6], das als Element der gerichteten Segmentzusammenstellung [3] des ersten Arguments dient, in der gerichteten Segmentzusammenstellung [4] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S149 das gerichtete Segment [X223 → M6] in die gerichtete Segment-UND-Ergebniszusammenstellung [3].
-
Da ein gerichtetes Segment [M4 → M7], das als Element der gerichteten Segmentzusammenstellung [4] des ersten Arguments dient, in der gerichteten Segmentzusammenstellung [4] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S149 das gerichtete Segment [M4 → M7] in die gerichtete Segment-UND-Ergebniszusammenstellung [4].
-
Da kein gerichtetes Segment [M4 → M8], das als Element der gerichteten Segmentzusammenstellung [4] des ersten Arguments dient, in allen Tiefen der gerichteten Segmentzusammenstellung des zweiten Arguments vorkommt, führt der Abschnitt 17 keine Kopierverarbeitung durch.
-
Da ein gerichtetes Segment [M5 → M7], das als Element der gerichteten Segmentzusammenstellung [4] des ersten Arguments dient, in der gerichteten Segmentzusammenstellung [4] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S149 das gerichtete Segment [M5 → M7] in die gerichtete Segment-UND-Ergebniszusammenstellung [4].
-
Da kein gerichtetes Segment [M5 → M8], das als Element der gerichteten Segmentzusammenstellung [4] des ersten Arguments dient, in allen Tiefen der gerichteten Segmentzusammenstellung des zweiten Arguments vorkommt, führt der Abschnitt 17 keine Kopierverarbeitung durch.
-
Da kein gerichtetes Segment [M6 → D5], das als Element der gerichteten Segmentzusammenstellung [4] des ersten Arguments dient, in allen Tiefen der gerichteten Segmentzusammenstellung des zweiten Arguments vorkommt, führt der Abschnitt 17 keine Kopierverarbeitung durch.
-
Da ein gerichtetes Segment [M6 → YC10], das als Element der gerichteten Segmentzusammenstellung [4] des ersten Arguments dient, in der gerichteten Segmentzusammenstellung [5] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S149 das gerichtete Segment [M6 → YC10] in die gerichtete Segment-UND-Ergebniszusammenstellung [4].
-
Da ein gerichtetes Segment [M7 → YC10], das als Element der gerichteten Segmentzusammenstellung [5] des ersten Arguments dient, in der gerichteten Segmentzusammenstellung [5] des zweiten Arguments vorkommt, kopiert der Abschnitt 17 im Schritt S149 das gerichtete Segment [M7 → YC10] in die gerichtete Segment-UND-Ergebniszusammenstellung [5].
-
Ein gerichteter Graph, der auf Grundlage der Vorrichtungszusammenstellungen [1] bis [5] und der gerichteten Segmentzusammenstellungen [2] bis [5], die durch die vorstehende Verarbeitung erhalten werden, gezogen wird, ist in 38 gezeigt.
-
Ein gerichtetes Segment stellt die Abhängigkeit einer bestimmten Vorrichtung von einer anderen Vorrichtung dar, und eine Vorrichtung und ein gerichtetes Segment sind eng miteinander verwandt. Auf diese Weise verarbeitet der UND-Verarbeitungsausführungsabschnitt 17 eine Extraktion (ein Logisches Produkt) gemeinsamer Elemente der Vorrichtungszusammenstellungen und verarbeitet auf deren Grundlage eine Extraktion (logisches Produkt) gemeinsamer Elemente der gerichteten Segmentzusammenstellungen, um es möglich zu machen, eine logische Produkt-UND-Operation zwischen den gerichteten Graphen widerspruchsfrei durchzuführen.
-
Die logische Produkt-UND-Operation zwischen den gerichteten Graphen wird ungeachtet dessen durchgeführt, ob einer oder beide der gerichteten Graphen eine Vorwärts- oder Rückwärtsabhängigkeit hat bzw. haben.
-
Die Gleichung Nummer S016 von 29 zeigt ein Beispiel, bei dem es sich bei einem Befehl, um den UND-Verarbeitungsausführungsabschnitt 17 von 23 eine Verarbeitung eines logischen Produkts zwischen gerichteten Vorrichtungsabhängigkeitsgraphen durch einen Analysenbefehl UND durchführen zu lassen, um denselben wie denjenigen eines Befehls handelt, um den UND-Verarbeitungsausführungsabschnitt 17 von 2 eine Verarbeitung eines logischen Produkts zwischen Querverweisen ausführen zu lassen. Alternativ ist selbst in einer Ausführungsform, in der die Befehle als unterschiedliche Befehle definiert sind (ersterer z. B. als VAR_FWD_BWD_UND und zweiterer als VAR_REF_UND definiert ist), ein hier verwendetes technisches Verfahren dasselbe wie das in der vorstehenden Ausführungsform beschriebene technische Verfahren.
-
Wenn die Gleichung Nummer S017 von 29 unter Verwendung des Verarbeitungsverfahrens gemäß der Ausführungsform verarbeitet werden soll, ist ein Ergebnis wie in einem unteren Teil von 38 gezeigt. Da eine Tiefe eines gerichteten Graphen, der durch das erste Argument benannt ist, sich in einem Ergebnis widerspiegelt, stellt sich heraus, wenn das Ergebnis in der Gleichung Nummer S016 mit dem Ergebnis in der Gleichung Nummer S017 verglichen wird, dass, obwohl die Zusammenstellungen, zu denen eine Elementvorrichtung und ein gerichtetes Elementsegment gehören, in der Tiefe verschieden sind, die gerichteten Vorrichtungsabhängigkeitsgraphen dieselben Strukturen haben.
-
Eine Verarbeitung, um nicht nur die Strukturen der gerichteten Vorrichtungsabhängigkeitsgraphen, sondern auch die Tiefen der Zusammenstellungen, zu denen die Elementvorrichtung und das gerichtete Elementsegment gehören, einander gleich zu machen, kann zusätzlich zu einem Ausgangsergebnis der Ausführungsform durchgeführt werden. Da diese jedoch vom Aussagegehalt und Umfang der vorliegenden Erfindung abweicht, wird eine Beschreibung davon weggelassen.
-
Wirkung der Ausführungsform 5
-
- 1) Da eine logische Operation (logische Produkt-UND-Verarbeitung) zwischen gerichteten Graphen der Abhängigkeit von Vorrichtungen in einem Ladder-Programm ermöglicht ist, kann ein gewünschter gerichteter Vorrichtungsabhängigkeitsgraph extrahiert und die Energie einer auf eine Programmanalyse bezogenen Operation kann eingespart werden.
- 2) Ein Befehl zum Ausführen eine logischen Produkts zwischen Querverweisen und einem Befehl zum Ausführen eines logischen Produkts zwischen gerichteten Vorrichtungsabhängigkeitsgraphen kann unter Verwendung desselben Analysenbefehls UND benannt werden. Obwohl eine Ausführungsform, in der die Befehle definiert sind und selektiv als unterschiedliche Befehle verwendet werden (z. B. ersterer als VAR_REF_UND und zweiterer als VAR_FWD_BWD_UND definiert wird), faktisch eingesetzt werden kann, werden zu verwendende Befehle je nach den Datenarten verändert, die Gegenstände des Analysenbefehls UND sind. Wenn ein Befehl, der ein logisches Produkt ausführt, ungeachtet der Datenart als Analysenbefehl UND definiert wird, wird die Verwendbarkeit besser. Wenn zu verwendende Befehle verändert werden, muss ein Benutzer einen jeder Datenart entsprechenden logischen Produktbefehl mit einer Hilfe, einer Anweisung o. dgl. überprüfen. Wenn jedoch alle Befehle durch einen Analysenbefehl UND ausgeführt werden können, ist diese Notwendigkeit aus der Welt geschafft und die Energie einer auf eine Programmanalyse bezogenen Operation kann eingespart werden.
-
Ausführungsform 5
-
In der Ausführungsform wird ein Verfahren beschrieben, das eine Extraktion eines Querverweises möglich macht, der sich auf eine Vorrichtung bezieht, die in einem aus dem Ladder-Programm extrahierten gerichteten Vorrichtungsabhängigkeitsgraphen vorkommt.
-
Obwohl es sich bei dem wie vorstehend beschriebenen Analysenbefehl VAR_REF um einen Befehl zum Extrahieren eines Querverweises einer Variablen (Vorrichtung) handelt, zeigt die Gleichung Nummer S018 in 29 ein Beispiel, in dem eine Gleichungsnummer, die einen gerichteten Vorrichtungsabhängigkeltsgraphen benennt, der als Analysengegenstand dient, in einer Analysengegenstandszelle benannt ist, und eine Variable (Vorrichtung), die als Bedingung einer Querverweisextraktion dient, in einer Analysenbedingungszelle benannt ist. Die Gleichung Nummer S018 zeigt ein Beispiel, in dem, obwohl keine Variable (Vorrichtung) in einer Analysenbedingungszelle benannt ist, diese alle Vorrichtungen bezeichnet.
-
39 ist ein Ablaufschema, das einen Verarbeitungsablauf des Analysenbefehls VAR_REF zeigt, der durch den Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 von 23 ausgeführt wird.
-
Zuerst bestätigt der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 im Schritt S152, ob es sich bei einer als Analysengegenstand dienenden Datenart um einen gerichteten Vorrichtungsabhängigkeitsgraphen handelt. Wenn es sich bei der Datenart um keinen gerichteten Vorrichtungsabhängigkeitsgraphen handelt, führt der Abschnitt 12 den vorstehend beschriebenen Verarbeitungsablauf von 10 aus.
-
Wenn hingegen eine in einer Analysenabhandlungszelle benannte Gleichungsnummer eine Extraktion eines Querverweises aus einem gerichteten Vorrichtungsabhängigkeitsgraphen benennt, stellt der Abschnitt 12 als Vorbereitung eine leere Hauptergebniszusammenstellung her (Schritt S153).
-
Der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 führt eine Verarbeitung durch, die Querverweisinformation aus jedem Element der gerichteten Segmentzusammenstellung des gerichteten Vorrichtungsabhängigkeitsgraphen extrahiert (Schritt S154). Um die Verarbeitung durchzuführen, müssen, wenn der Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 von 23 eine Verarbeitung durchführt, die den gerichteten Vorrichtungsabhängigkeitsgraphen auf Grundlage des Analysenbefehls VAR_FWD oder VAR_BWD extrahiert, die in 31 gezeigten Daten als Datenstruktur eines gerichteten Segments gespeichert werden.
-
Der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 führt die Verarbeitung bis zur Gleichung Nummer S018 von 29 auf Grundlage des in 39 gezeigten Verarbeitungsablaufs durch, um in 40 ein Ergebnis aus dem gerichteten Vorrichtungsabhängigkeitsgraphen in der in 31 gezeigten Gleichung Nummer S011 zu erhalten. Eine Verarbeitung dieses Punkts wird nachstehend beschrieben.
-
In der Gleichung Nummer S018 ist eine Spalte für eine Analysenbedingung leer und alle Vorrichtungen dienen als Extraktionsgegenstände. Aus diesem Grund bestimmt der Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 im Schritt S155 natürlich „JA” und bestimmt auch im Schritt S156, dass die Abhängigkeitsursprungsvorrichtung x222 des elementgerichteten Segments der gerichteten Segmentzusammenstellung [2] in der (zu diesem Zeitpunkt leeren) Hauptergebniszusammenstellung nicht vorkommt, und fügt im Schritt S157 der Hauptergebniszusammenstellung die Information „POU-Name = HAUPT, Schritt Nummer = 4, Anweisung = LD” und die Abhängigkeitsursprungsvorrichtung x222 hinzu.
-
Im nächsten Schritt S158 wird natürlich „JA” bestimmt, und im Schritt S159 ist die Abhängigkeitszielvorrichtung M3 des elementgerichteten Segments der gerichteten Segmentzusammenstellung [2] in der Hauptergebniszusammenstellung nicht vorhanden. Aus diesem Grunde fügt der Abschnitt 12 im Schritt S160 der Hauptergebniszusammenstellung die Information „POU-Name = HAUFT, Schritt Nummer = 5, Anweisung = SET” und die Abhängigkeitszielvorrichtung M3 hinzu.
-
Im Schritt S156 kommt die Abhängigkeitsursprungsvorrichtung M3 des elementgerichteten Segments der nächsten gerichteten Segmentzusammenstellung [3] in der Hauptergebniszusammenstellung nicht vor (obwohl dieselbe Variable (Vorrichtung) M3 vorkam, kommen Variablen (Vorrichtungen) M3 mit denselben POU-Namen, denselben Schrittnummern und denselben Anweisungen nicht vor), im Schritt S157 fügt der Abschnitt 12 der Hauptergebniszusammenstellung die Information „POU = HAUPT, Schritt Nummer = 6, Anweisung = LD” und die Abhängigkeitszielvorrichtung M3 hinzu.
-
Da im nächsten Schritt S159 die Abhängigkeitszielvorrichtung M4 des elementgerichteten Segments der gerichteten Segmentzusammenstellung [3] in der Hauptergebniszusammenstellung nicht vorkommt, fügt der Abschnitt 12 im Schritt S160 der Hauptergebniszusammenstellung die Information „POU-Name = HAUPT, Schritt Nummer = 7, Anweisung = RST” und die Abhängigkeitszielvorrichtung M4 hinzu.
-
Im Schritt S156 kommt die Abhängigkeitsursprungsvorrichtung M4 des ersten elementgerichteten Segments in der nächsten gerichteten Segmentzusammenstellung [4] in der Hauptergebniszusammenstellung nicht vor (obwohl dieselbe Variable (Vorrichtung) M4 vorkam, kommen Variablen (Vorrichtungen) M4 mit denselben POU-Namen, denselben Schritt Nummern und denselben Anweisungen nicht vor), im Schritt S157 fügt der Abschnitt 12 der Hauptergebniszusammenstellung die Information „POU = SUB, Schritt Nummer = 0, Anweisung = LD” und die Abhängigkeitsursprungsvorrichtung M4 hinzu.
-
Da im nächsten Schritt S159 die Abhängigkeitszielvorrichtung M7 des ersten elementgerichteten Segments der gerichteten Segmentzusammenstellung [4] in der Hauptergebniszusammenstellung nicht vorkommt, fügt der Abschnitt 12 im Schritt S160 der Hauptergebniszusammenstellung die Information „POU = SUB, Schritt Nummer = 2, Anweisung = AUS” und die Abhängigkeitszielvorrichtung M7 hinzu.
-
Im Schritt S156 kommt die Abhängigkeitsursprungsvorrichtung 14 des zweiten elementgerichteten Segments der gerichteten Segmentzusammenstellung [4] in der Hauptergebniszusammenstellung vor (Variablen (Vorrichtungen) M4 mit denselben POU-Namen, denselben Schrittnummern und denselben Anweisungen sind vorhanden), der Abschnitt 12 führt keine Hinzufügeverarbeitung an der Hauptergebniszusammenstellung durch.
-
Da im nächsten Schritt S159 die Abhängigkeitszielvorrichtung M8 des zweiten elementgerichteten Segments der gerichteten Segmentzusammenstellung [4] in der Hauptergebniszusammenstellung nicht vorkommt, fügt der Abschnitt 12 im Schritt S160 der Hauptergebniszusammenstellung die Information „POU = SUB, Schritt Nummer = 3, Anweisung = AUS” und die Abhängigkeitszielvorrichtung M8 hinzu.
-
Im Schritt S156 kommt die Abhängigkeitsursprungsvorrichtung M7 des elementgerichteten Segments der nächsten gerichteten Segmentzusammenstellung [5] in der Hauptergebniszusammenstellung nicht vor (obwohl dieselbe Variable (Vorrichtung) M7 mit Sicherheit vorhanden ist, sind keine Variablen (Vorrichtungen) M7 mit denselben POU-Namen, denselben Schrittnummern und denselben Anweisungen vorhanden), und der Abschnitt 12 fügt im Schritt 157 der Hauptergebniszusammenstellung die Information „POU = SUB, Schritt Nummer = 8, Anweisung = UND” und die Abhängigkeitszielvorrichtung M7 hinzu.
-
Da im nächsten Schritt S159 die Abhängigkeitszielvorrichtung YC10 des elementgerichteten Segments der gerichteten Segmentzusammenstellung [5] in der Hauptergebniszusammenstellung nicht vorkommt, fügt der Abschnitt 12 im Schritt S160 der Hauptergebniszusammenstellung die Information „POU-Name = SUB, Schritt Nummer = 9, Anweisung = AUS” und die Abhängigkeitszielvorrichtung YC10 hinzu.
-
Schließlich sortiert der Abschnitt 12 im Schritt S162 die Hauptergebniszusammenstellung unter Verwendung einer Variablen (Vorrichtung) als Schlüssel und gibt ein durch das Sortieren erhaltene Ergebnis als Analysenergebnis aus. Im Ansprechen auf ein Signal, das das Analysensignal wiedergibt, gibt der Variablenverwendungslistenanzeigeabschnitt 21 von 23 ein Anzeigesignal zum Anzeigen des Analysenergebnisses auf der Bildfläche des Anzeigeabschnitts 4 von 1 aus.
-
Der Abschnitt 12 verarbeitet die nächste Gleichung Nummer S019 von 29 (im Schritt S155 und im Schritt S158 von 39 wird nur eine Variable (Vorrichtung) M als Gegenstand extrahiert. Als Ergebnis wird ein in 41 gezeigtes Ergebnis erhalten.
-
Wirkung der Ausführungsform 6
-
- 1) Ein Querverweis von benannten Variablen (Vorrichtungen), die voneinander abhängen, kann extrahiert werden, und es kann ein gewünschter Querverweis extrahiert werden.
- 2) Wie in der vorstehenden Beschreibung, kann dasselbe Ergebnis erhalten werden, wenn auch ein Ladder-Programm, das bezeichnet wird, wenn gerichtete Graphen mit Vorrichtungsabhängigkeit extrahiert werden, und Vorrichtungen, die an den gerichteten Graphen mit der aus dem Ladder-Programm extrahierten Vorrichtungsabhängigkeit vorhanden sind, manuell durch einen Benutzer einzeln in eine Befehlsgleichung eines anderen Querverweises eingegeben werden, um eine Benennung auf dieselbe Weise wie der Analysenbefehl VAR_REF (S008, X222, M3, M4, M7, M8, YC10) durchzuführen. Gemäß der Ausführungsform kann ein Eingabeaufwand entfallen.
-
Ausführungsform 7
-
Die Ausführungsform bezieht sich auf ein Verfahren, das einen gerichteten Abhängigkeitsgraphen (der im Folgenden als „POU-Aufrufabhängigkeit” bezeichnet werden soll) eines Unterprogrammaufrufs (eine andere POU wird von einer bestimmten POU aufgerufen) in einem Ladder-Programm extrahiert.
-
42 ist ein Softwarekonfigurationsschema, das einen Funktionsabschnitt gemäß der Ausführungsform im Mikroprozessor 2 in der Programmanalysenunterstützungsvorrichtung von 1 zeigt. Wenn 42 und 23 miteinander verglichen werden, umfasst der Analysenbedingungsausführungsabschnitt 11 in der Funktionsabschnittauslegung von 42 darüber hinaus einen POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 zum Ausführen einer Extraktionsverarbeitung für gerichtete Graphen mit POU-Aufrufabhängigkeit, und der Analysenergebnisanzeigeabschnitt 20 umfasst darüber hinaus einen POU-Listenanzeigeabschnitt 23 und einen POU-Abhängigkeitsanzeigeabschnitt 24 zum Anzeigen des Ergebnisses eines gerichteten POU-Aufrufabhängigkeitsgraphen.
-
Eine POU-Aufrufabhängigkeit im Ladder-Programm wird nachstehend mit Bezug auf 43 beschrieben.
-
Ein POU-Aufruf verwendet eine AUFRUF-Anweisung, und es wird ein zum Beginn eines Programms einer aufzurufenden POU beschriebener Programmzeiger durch ein Argument der AUFRUF-Anweisung benannt. Zum Beispiel erfolgt eine Beschreibung, die einen Programmzeiger P10 aufruft, im Programm HAUPT, und es wird eine POU aufgerufen, in der der Programmzeiger P10 zu Beginn des Programms beschrieben ist, und deren POU-Name P10 ist. So zeigt 43 ein Beispiel, in dem derselbe POU-Name wie der des Programmzeigers einem anderen Programm als dem Programm HAUPT und den Programmen SUB1 und SUB2 erteilt ist, und ein Beispiel, in dem das Programm HAUPT eine Durchsuchungsausführung ansetzt, die Programme SUB1 und SU62 eine Durchsuchungsausführung, periodische Ausführung oder Anfangsausführung ansetzen, und das andere Programm, dem derselbe POU-Name wie der des Programmzeigers erteilt ist, eine Warteausführung ansetzt. 43 zeigt einen extrahierten Abschnitt, der sich auf einen Aufruf in der Programmbeschreibung jeder POU bezieht, und ein Ladder eines Abschnitts, der sich nicht auf einen Aufruf bezieht, ist weggelassen.
-
Ein Verfahren zum Extrahieren eines gerichteten Graphen einer POU-Aufrufabhängigkeit in einem Ladder-Programm wird nachstehend beschrieben.
-
44 ist ein Schema, das ein auf einer Bildfläche des Anzeigeabschnitts 4 angezeigtes Beispiel zeigt, um einen Benutzer dazu zu bewegen, eine Programmanalysenbedingung unter Verwendung des in 1 gezeigten Eingabeabschnitts 5 einzugeben, und zeigt die übrigen Teile der vorstehend beschriebenen 7 und 29.
-
Beim Analysenbefehl POU_FWD handelt es sich um einen Befehl zum Extrahieren einer POU, die von einer benannten POU aufgerufen wird (darüber hinaus ist POU ... aufgerufen durch die POU rekursiv), und zum Ermitteln eines gerichteten Graphen (gerichteten Graphen der POU-Aufrufvorwärtsabhängigkeit), der die Abhängigkeit darstellt. Ein Benutzer benennt für den Analysenbefehl POU_FWD eine Gleichungsnummer, die einen als einen Analysengegenstand dienenden Programmbereich bezeichnet, in einer Analysengegenstandszelle, und benennt eine POU, die als Startpunkt des gerichteten Graphen der POU-Aufrufvorwärtsabhängigkeit dient, in einer Analysenbedingungszelle.
-
In der Gleichung Nummer S020 von 44 ist kein Programm (POU) als Analysengegenstandszelle des Analysenbefehls POU_LESE benannt. Dies zeigt ein Beispiel, in dem alle das Programm bildenden POUs zum Auslesen benannt sind. Alle in 43 gezeigten Programme werden hier ausgelesen. Als Ergebnis zeigt 44 ein Beispiel, in dem die Anzahl von ausgelesenen Programmen, d. h. 21, in einer Fallanzahlzelle angezeigt werden.
-
Die Gleichung Nummer S021 von 44 zeigt ein Beispiel, in dem in einer Element-POU, die in einer aus den Abschnitten 14 und 23 als Ausführungsergebnisse der Gleichung Nummer S020 ausgegebenen Zusammenstellung, d. h. aller das Programm bildenden POUs, ein gerichteter Graph der POU-Aufrufvorwärtsabhängigkeit zum Extrahieren aus dem Programm HAUPT benannt wird. Der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 von 42 gibt Daten des gerichteten Graphen der POU-Aufrufvorwärtsabhängigkeit in der Gleichung Nummer S021 als Analysenergebnis aus, und der Abschnitt 24 gibt Daten an den Anzeigeabschnitt 4 von 1 aus, die erforderlich sind, um den gerichteten Graphen zu ziehen.
-
Im Hinblick auf ein Verfahren zum Extrahieren des gerichteten Graphen der POU-Aufrufvorwärtsabhängigkeit aus der benannten POU von einem bezeichneten Ladder-Programm, ist in 45 ein Verarbeitungsablauf des Analysenbefehls POU_FWD gezeigt, der durch den POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 von 42 ausgeführt wird. Ein Verarbeitungsablauf von 45 und eine Datenstruktur von 46 sind ähnlich denjenigen, die im Analysenbefehl VAR_FWD zum Extrahieren eines gerichteten Vorrichtungsabhängigkeitsgraphen erhalten werden.
-
Wenn der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 die Gleichung Nummer S021 von 44 entsprechend dem in 45 gezeigten Verarbeitungsablauf verarbeitet, kann ein in 46 gezeigtes Ergebnis erhalten werden. Dieser Punkt wird nachstehend im Detail beschrieben.
-
Da im Schritt S170 eine POU mit demselben Namen wie der im Programm HAUPT aufgerufene Programmzeiger P10, der als Element-POU einer POU-Zusammenstellung [1] dient, in einer POU-Zusammenstellung des ersten Arguments vorkommt, extrahiert der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 den Programmzeiger P10, der als weitere vom Programm HAUPT aufgerufene POU dient, aus der POU-Zusammenstellung.
-
Im Schritt S172 fügt der Abschnitt 15 ein vorn Programm HAUPT zum als weitere POU dienenden P10 gerichtetes Segment zur gerichteten Segmentzusammenstellung [2] hinzu. Als Datenstruktur des dabei erhaltenen gerichteten Segments braucht nur eine Abhängigkeitsursprungs-POU und eine Abhängigkeitsziel-POU gespeichert zu werden. Im Hinblick auf andere (später noch zu beschreibende) Ausführungsformen, kann auch eine Schrittnummer in der Datenstruktur des gerichteten Segments gespeichert werden.
-
Im Schritt S173 kommt der P10 in den POU-Zusammenstellungen [1] und [2] nicht vor und der Abschnitt 15 bestimmt „NEIN”. Im Schritt S174 fügt der Abschnitt 15 den P10 zur POU-Zusammenstellung [2] hinzu.
-
Da es sich in dem Beispiel bei einer aus dem Programm HAUPT aufgerufenen und extrahierten POU nur um das Programm P10 handelt, wird der Schritt S175 nicht ausgeführt.
-
Obwohl im nächsten Schritt S176 der Abschnitt 15 versucht, eine Verarbeitung an der nächsten Element-POU-Vorrichtung der POU-Zusammenstellung [1] auszuführen, geht in dem Beispiel der Abschnitt 15, da die POU-Zusammenstellung [1] außer dem Programm HAUPT kein Element enthält, zum Schritt S177 über, um „JA” zu bestimmen. Als Ergebnis inkrementiert der Abschnitt 15 im nächsten Schritt S178 die Variable d um 1.
-
Da im nächsten Schritt S170 nach der Inkrementierverarbeitung Programme P11 und P12, die in dem als Element-POU der POU-Zusammenstellung [2] dienenden Programm P10 aufgerufen werden, in der POU-Zusammenstellung des ersten Arguments vorkommen, extrahiert der Abschnitt 15 die Programme P11 und P12 aus der POU-Zusammenstellung des ersten Arguments.
-
Im Schritt S172 fügt der Abschnitt 15 ein vom Programm P10 zu einem Programm P11 gerichtetes Segment zur gerichteten Segmentzusammenstellung [2] hinzu.
-
Da im Schritt S173 das Programm P11 in den POU-Zusammenstellungen [1] bis [3] nacht vorkommt, fügt der Abschnitt im Schritt S174 das Programm P11 zur POU-Zusammenstellung [3] hinzu.
-
Der Abschnitt 15 verarbeitet ein Programm P12, das als nächste extrahierte POU dient (Schritt S176).
-
Im Schritt S172 fügt der Abschnitt 15 ein vom Programm P10 zu einem Programm P12 gerichtetes Segment zur gerichteten Segmentzusammenstellung [2] hinzu.
-
Da im Schritt S173 das Programm P12 in den POU-Zusammenstellungen [1] bis [3] nicht vorkommt, fügt der Abschnitt 15 im Schritt S174 das Programm P12 zur POU-Zusammenstellung [3] hinzu.
-
Obwohl im nächsten Schritt S176 der Abschnitt 15 versucht, eine Verarbeitung an der nächsten Element-POU der POU-Zusammenstellung [2] auszuführen, geht der Abschnitt 15, da die POU-Zusammenstellung [2] außer dem Programm P10 keine Element-POU enthält, zum Schritt S177 über, um „JA” zu bestimmen. Als Ergebnis inkrementiert der Abschnitt 15 im nächsten Schritt S178 die Variable d um 1.
-
Da anschließend an die Inkrementierverarbeitung im Schritt S170 Programme P35 und P25, die in dem als Element-POU der POU-Zusammenstellung [3] dienenden Programm P11 aufgerufen werden, in der POU-Zusammenstellung des ersten Arguments vorkommen, extrahiert der Abschnitt 15 die Programme P35 und P36 aus der POU-Zusammenstellung des ersten Arguments.
-
Im Schritt S172 fügt der Abschnitt 15 ein vorn Programm P11 zu einem Programm P35 gerichtetes Segment der gerichteten Segmentzusammenstellung [4] hinzu.
-
Da im Schritt S173 das Programm P35 in den POU-Zusammenstellungen [1] bis [4] nicht vorkommt, fügt der Abschnitt 15 im Schritt S174 das Programm P35 zur POU-Zusammenstellung [4] hinzu.
-
Der Abschnitt 15 verarbeitet ein Programm P36, das als nächste extrahierte POU dient (Schritt S175).
-
Im Schritt S172 fügt der Abschnitt 15 ein vorn Programm P11 zum Programm P36 gerichtetes Segment zur gerichteten Segmentzusammenstellung [4] hinzu.
-
Da im Schritt S173 das Programm P36 in den POU-Zusammenstellungen [1] bis [4] nicht vorkommt, fügt der Abschnitt 15 im Schritt S174 das Programm P36 zur POU-Zusammenstellung [4] hinzu.
-
Im Schritt S176 verarbeitet der Abschnitt 15 das Programm P12, das als nächste Element-POU-Vorrichtung der POU-Zusammenstellung [3] dient.
-
Da im Schritt S170 Programme P37 und P38, die im Programm P12 aufgerufen werden, in der POU-Zusammenstellung des ersten Arguments vorkommen, extrahiert der Abschnitt 15 die Programme P37 und P38.
-
Im Schritt S172 fügt der Abschnitt 15 ein vom Programm P12 zum Programm P37 gerichtetes Segment zur gerichteten Segmentzusammenstellung [4] hinzu.
-
Da im Schritt S173 das Programm P37 in den POU-Zusammenstellungen [1] bis [4] nicht vorkommt, fügt der Abschnitt 15 im Schritt S174 das Programm P37 zur POU-Zusammenstellung [4] hinzu.
-
Der Abschnitt 15 verarbeitet das Programm P38, das als nächste extrahierte POU dient (Schritt S175).
-
Im Schritt S172 fügt der Abschnitt 15 ein vom Programm P12 zum Programm P38 gerichtetes Segment zur gerichteten Segmentzusammenstellung [4] hinzu.
-
Da im Schritt S173 das Programm P38 in den POU-Zusammenstellungen [1] bis [4] nicht vorkommt, fügt der Abschnitt 15 im Schritt S174 das Programm P38 zur POU-Zusammenstellung [4] hinzu.
-
Über die nächsten Schritte S175 bis S178 extrahiert im Schritt S170, da ein Programm P39, das in dem als Element-POU der POU-Zusammenstellung [4] dienenden Programm P35 aufgerufen ist, in der POU-Zusammenstellung des ersten Arguments vorkommt, der Abschnitt 15 das Programm P39.
-
Im Schritt S172 fügt der Abschnitt 15 ein vom Programm P35 zum Programm P39 gerichtetes Segment zur gerichteten Segmentzusammenstellung [5] hinzu.
-
Da im Schritt S173 das Programm P39 in den POU-Zusammenstellungen [1] bis [5] nicht vorkommt, fügt der Abschnitt 15 im Schritt S174 das Programm P39 zur POU-Zusammenstellung [5] hinzu.
-
Im Schritt S175 handelt es sich bei einer extrahierten POU nur um das Programm P39. Der Abschnitt 15 geht zum Schritt S176 über.
-
Obwohl der Abschnitt 15 im Schritt S170 versucht, das Programm P36 zu verarbeiten, das als nächste Element-POU der POU-Zusammenstellung [4] dient, wird keine andere POU im Programm P36 aufgerufen.
-
Im Schritt S170 versucht der Abschnitt 15, das Programm P37 zu verarbeiten, das als nächste Element-POU der POU-Zusammenstellung [4] dient, es wird keine andere POU im Programm P37 aufgerufen.
-
Obwohl der Abschnitt 15 im Schritt S170 versucht, das Programm P38 zu verarbeiten, das als nächste Element-POU der POU-Zusammenstellung [4] dient, wird keine andere POU im Programm P38 aufgerufen.
-
Über die nächsten Schritte S177 und S178, bestimmt, obwohl der Abschnitt 15 im Schritt S170 versucht, das Programm P39 zu verarbeiten, das als Element-POU der POU-Zusammenstellung [5] dient, da keine andere POU im Programm P39 aufgerufen wird, der Abschnitt 15 im Schritt S177 „NEIN”, um zum Schritt S179 überzugehen, um ein Analysenergebnis des gerichteten POU-Aufrufabhängigkeitsgraphen auszugeben.
-
Entsprechend verarbeitet der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 die Gleichung Nummer S022 von 44, es wird ein in 47 gezeigtes Ergebnis als gerichteter Vorwärtsabhängigkeitsgraph mit einem Programm SUB1 als Startpunkt erhalten.
-
Wirkung der Ausführungsform 7
-
Eine Extraktion eines gerichteten Vorwärtsabhängigkeitsgraphen eines POU-Aufrufs unter Verwendung eines Ladder-Programms als Analysengegenstand ist ermöglicht, um es möglich zu machen, die Energie einer auf die Programmanalyse bezogenen Operation einzusparen.
-
Ausführungsform 8
-
Beim Analysenbefehl POU_BWD handelt es sich um einen Befehl zum Extrahieren einer POU, die eine von einem Benutzer benannte POU aufruft (darüber hinaus ist POU ... aufgerufen durch die POU rekursiv), und zum Ermitteln eines gerichteten Graphen (gerichteten Graphen der POU-Aufrufrückwärtsabhängigkeit), der die Abhängigkeit darstellt. Ein Benutzer benennt für den Analysenbefehl POU_BWD eine Gleichungsnummer, die einen als einen Analysengegenstand dienenden Programmbereich bezeichnet, in einer Analysengegenstandszelle, und benennt eine POU, die als Startpunkt des gerichteten Graphen der POU-Aufrufrückwärtsabhängigkeit dient, in einer Analysenbedingungszelle.
-
Die Gleichung Nummer S025 von 44 zeigt ein Beispiel, in dem eine Extraktion eines gerichteten Graphen der POU-Aufrufrückwärtsabhängigkeit aus dem Programm P39 in einer Element-POU, die in einer als Ergebnis der Gleichung Nummer S020 ausgegebenen POU-Zusammenstellung, d. h. aller das Programm bildenden POUs benannt wird. Als Analysenergebnis werden Daten ausgegeben, die erforderlich sind, um den gerichteten Graphen zu ziehen.
-
48 ist ein Ablaufschema, das einen Verarbeitungsablauf eines Analysenbefehls POU_BWD zeigt. Ein Verarbeitungsablauf und eine Datenstruktur in 48 sind denjenigen des Analysenbefehls VAR_BWD ähnlich, der den gerichteten Vorrichtungsabhängigkeitsgraphen extrahiert.
-
Wenn der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 in 42 die Gleichung Nummer S025 von 44 entsprechend dem in 48 gezeigten Ablauf verarbeitet, kann ein in 49 gezeigtes Ergebnis erhalten werden. Dieser Punkt wird nachstehend im Detail beschrieben.
-
Im Schritt S189 bestimmt der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 auf Grundlage der Programme der POU-Zusammenstellung des ersten Arguments, ob das Programm P39 aufgerufen wird, das als Element-POU der POU-Zusammenstellung [1] dient. Als Ergebnis werden die Programme P11, P23 und P28 der Element-POU aus der POU-Zusammenstellung des ersten Arguments extrahiert.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm P11 zum Programm P39 gerichtetes Segment zur gerichteten Segmentzusammenstellung [2] hinzu. Als Datenstruktur des dabei erhaltenen gerichteten Segments braucht nur eine Abhängigkeitsursprungs-POU und eine Abhängigkeitsziel-POU gespeichert zu werden. Im Hinblick auf (später noch zu beschreibende) Ausführungsformen kann auch eine Schrittnummer in der Datenstruktur des gerichteten Segments gespeichert werden.
-
Da im Schritt S192 das Programm P11 in den POU-Zusammenstellungen [1] bis [2] nicht vorkommt, fügt der Abschnitt 15 das Programm P11 im Schritt S193 zur POU-Zusammenstellung [2] hinzu.
-
Im Schritt S194 verarbeitet der Abschnitt 15 das Programm P23, das als nächste extrahierte POU dient.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm P23 zum Programm P39 gerichtetes Segment zur gerichteten Segmentzusammenstellung [2] hinzu.
-
Da im Schritt S192 das Programm P23 in den POU-Zusammenstellungen [1] bis [2] nicht vorkommt, fügt der Abschnitt 15 das Programm P23 im Schritt S193 zur POU-Zusammenstellung [2] hinzu.
-
Im Schritt S194 verarbeitet der Abschnitt 15 das Programm P28, das als nächste extrahierte POU dient.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm P28 zum Programm P39 gerichtetes Segment zur gerichteten Segmentzusammenstellung [2] hinzu.
-
Da im Schritt S192 das Programm P28 in den POU-Zusammenstellungen [1] bis [2] nicht vorkommt, fügt der Abschnitt 15 das Programm P28 im Schritt S193 zur POU-Zusammenstellung [2] hinzu.
-
Obwohl der Abschnitt 15 in nächsten Schritt S195 versucht, eine Verarbeitung an der nächsten Element-POU der POU-Zusammenstellung [1] auszuführen, durchläuft der Abschnitt 15, weil die POU-Zusammenstellung [1] außer dem Programm P39 keine Element-POU enthält, die Schritte S196 und S197.
-
Im Schritt S189 bestimmt der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 auf Grundlage der Programme der POU-Zusammenstellung des ersten Arguments, ob das Programm P11 aufgerufen wird, das als Element-POU der POU-Zusammenstllung [2] dient. Als Ergebnis wird das Programm P10 der Element-POU aus der POU-Zusammenstellung des ersten Arguments extrahiert.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm P10 zu einem Programm P11 gerichtetes Segment zur gerichteten Segmentzusammenstellung [3] hinzu.
-
Da im Schritt S192 das Programm P10 in den POU-Zusammenstellungen [1] bis [3] nicht vorkommt, fügt der Abschnitt 15 das Programm P10 im Schritt S193 zur POU-Zusammenstellung [3] hinzu.
-
Im nächsten Schritt S194 handelt es sich bei der extrahierten POU nur um das Programm P10, und der Abschnitt 15 geht zum Schritt S189 über, um das Programm P23 zu verarbeiten, das als nächste Element-POU der POU-Zusammenstellung [2] dient.
-
Im Schritt S189 bestimmt der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 auf Grundlage der Programme der POU-Zusammenstellung des ersten Arguments, ob das Programm P23 aufgerufen wird, das als Element-POU der POU-Zusammenstellung [2] dient. Als Ergebnis wird das Programm P20 der Element-POU aus der POU-Zusammenstellung des ersten Arguments extrahiert.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm P20 zu einem Programm P23 gerichtetes Segment zur gerichteten Segmentzusammenstellung [3] hinzu.
-
Da im Schritt S192 das Programm P20 in den POU-Zusammenstellungen [1] bis [3] nicht vorkommt, fügt der Abschnitt 15 das Programm P20 im Schritt S193 zur POU-Zusammenstellung [3] hinzu.
-
Im nächsten Schritt S194 handelt es sich bei der extrahierten POU nur um das Programm P20, und der Abschnitt 15 geht zum Schritt S189 über, um das Programm P28 zu verarbeiten, das als übrige Element-POU der POU-Zusammenstellung [2] dient.
-
Im Schritt S189 bestimmt der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 auf Grundlage der Programme der POU-Zusammenstellung des ersten Arguments, ob das Programm P28 aufgerufen wird, das als Element-POU der POU-Zusammenstellung [2] dient. Als Ergebnis wird die Element-POU P25 aus der POU-Zusammenstellung des ersten Arguments extrahiert.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm P25 zum Programm P28 gerichtetes Segment zur gerichteten Segmentzusammenstellung [3] hinzu.
-
Da im Schritt S192 das Programm P25 in den POU-Zusammenstellungen [1] bis [3] nicht vorkommt, fügt der Abschnitt 15 das Programm P25 im Schritt S193 zur POU-Zusammenstellung [3] hinzu.
-
Im nächsten Schritt S194 handelt es sich bei der extrahierten POU nur um das Programm P25, und der Abschnitt 15 schließt die Verarbeitung an allen POUs in der POU-Zusammenstellung [2] ab. Aus diesem Grund bestimmt der Abschnitt 15 im Schritt S195 „JA” und geht über die Schritte S197 und S187 zum Schritt S189 über.
-
Im Schritt S189 bestimmt der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 auf Grundlage der Programme der POU-Zusammenstellung des ersten Arguments, ob das Programm P10 aufgerufen wird, das als Element-POU der POU-Zusammenstellung [3] dient. Als Ergebnis wird die Element-POU HAUPT aus der POU-Zusammenstellung des ersten Arguments extrahiert.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm HAUPT zum Programm P10 gerichtetes Segment zur gerichteten Segmentzusammenstellung [4] hinzu.
-
Da im Schritt S192 das Programm HAUPT in den POU-Zusammenstellungen [1] bis [4] nicht vorkommt, fügt der Abschnitt 15 das Programm HAUPT im Schritt S193 zur POU-Zusammenstellung [4] hinzu.
-
Im nächsten Schritt S194 handelt es sich bei der extrahierten POU nur um das Programm HAUPT, und der Abschnitt 15 geht zum Schritt S189 über, um das Programm P20 zu verarbeiten, das als nächste Element-POU der POU-Zusammenstellung [3] dient (Schritt S195).
-
Im Schritt S189 bestimmt der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 auf Grundlage der Programme der POU-Zusammenstellung des ersten Arguments, ob das Programm P20 aufgerufen wird, das als Element-POU der POU-Zusammenstellung [3] dient. Als Ergebnis wird die Element-POU SUB1 aus der POU-Zusammenstellung des ersten Arguments extrahiert.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm SUB1 zum Programm P20 gerichtetes Segment zur gerichteten Segmentzusammenstellung [4] hinzu.
-
Da im Schritt S192. das Programm SUB1 in den POU-Zusammenstellungen [1] bis [4] nicht vorkommt, fügt der Abschnitt 15 das Programm SUB1 im Schritt S193 zur POU-Zusammenstellung [4] hinzu.
-
Im nächsten Schritt S194 handelt es sich bei der extrahierten POU nur um das Programm SUB1, und der Abschnitt 15 geht zum Schritt S189 über, um das Programm P25 zu verarbeiten, das als letzte Element-POU der POU-Zusammenstellung [3] dient (Schritt S195).
-
Im Schritt S189 bestimmt der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 auf Grundlage der Programme der POU-Zusammenstellung des ersten Arguments, ob das Programm P25 aufgerufen wird, das als Element-POU der POU-Zusammenstellung [3] dient. Als Ergebnis wird eine Element-POU SUB2 aus der POU-Zusammenstellung des ersten Arguments extrahiert.
-
Im Schritt S191 fügt der Abschnitt 15 ein vom Programm SUB2 zum Programm P25 gerichtetes Segment zur gerichteten Segmentzusammenstellung [4] hinzu.
-
Da im Schritt S192 das Programm SUB2 in den POU-Zusammenstellungen [1] bis [4] nicht vorkommt, fügt der Abschnitt 15 das Programm SUB2 im Schritt S193 zur POU-Zusammenstellung [4] hinzu.
-
Im nächsten Schritt S194 handelt es sich bei der extrahierten POU nur um das Programm SUB2, und der Abschnitt 15 schließt die Verarbeitung an allen Element-POUs in der POU-Zusammenstellung [3] ab. Aus diesem Grund bestimmt der Abschnitt 15 im Schritt S195 „JA” und geht über die Schritte S197 und S187 zum Schritt S189 über.
-
Im Schritt S189 bestimmt der POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt 15 auf Grundlage der Programme der POU-Zusammenstellung des ersten Arguments, ob das Programm HAUPT, SUB1 oder SUB2 aufgerufen wird, das als Element-POU der POU-Zusammenstellung [4] dient. Da jedoch das Programm HAUPT, SUB1 und SUB2 von keinem anderen Programm aufgerufen wird, erfolgt ein Übergang zum Schritt S196, und im Schritt S196 wird „NEIN” bestimmt. Als Ergebnis erfolgt ein Übergang zum Schritt S198.
-
Im Schritt S198 führt der Abschnitt 15 eine Verarbeitung an invertierenden Tiefen der POU-Zusammenstellung und der gerichteten Segmentzusammenstellung durch, die Element-POUs enthalten. Ein Punkt, dem besondere Aufmerksamkeit geschenkt werden sollte ist, dass, wenn die Zahlen aller gerichteten Segmentzusammenstellungen umgekehrt werden, die Elemente aller gerichteten Segmente zu Tiefen bewegt werden, zu denen die Elemente gehören sollten (in diesem Beispiel entspricht nichts den Elementen).
-
Wirkung der Ausführungsform 8
-
Eine Extraktion eines gerichteten Rückwärtsabhängigkeitsgraphen eines POU-Aufrufs unter Verwendung eines Ladder-Programms als Analysengegenstand ist ermöglicht, um es möglich zu machen, die Energie einer auf die Programmanalyse bezogenen Operation einzusparen.
-
Ausführungsform 9
-
In der Ausführungsform wird ein Verfahren beschrieben, das eine logische Operation (logische Summen-ODER-Verarbeitung oder logische Produkt-UND-Verarbeitung) zwischen gerichteten Graphen der POU-Aufrufabhängigkeit im Ladder-Programm möglich macht.
-
Die Gleichung Nummer S023 in 44 zeigt ein Beispiel, in dem eine logische Summe zwischen einem in der Gleichung Nummer S021 extrahierten Extraktionsergebnis eines gerichteten POU-Aufrufabhängigkeitsgraphen und einem anderen in der Gleichung Nummer S022 extrahierten Extraktionsergebnis eines gerichteten POU-Aufrufabhängigkeitsgraphen zum Extrahieren benannt wird.
-
Konkreter ausgedrückt werden in der vorliegenden Erfindung 1) ein Analysenbefehl zum Ausführen einer logischen Summe zwischen Querverweisen, 2) ein Analysenbefehl zum Ausführen einer logischen Summe zwischen gerichteten Vorrichtungsabhängigkeitsgraphen und 3) ein Analysenbefehl zum Ausführen einer logischen Summe zwischen gerichteten POU-Aufrufabhängigkeitsgraphen alle gemeinsam durch denselben Analysenbefehl ODER bezeichnet.
-
50 ist ein Ablaufschema, das einen Verarbeitungsablauf eines Analysenbefehls ODER zeigt, der durch den ODER-Verarbeitungsausführungsabschnitt 18 von 42 ausgeführt wird. Die Verarbeitungselemente in 50 sind dieselben wie diejenigen der Verarbeitung, die eine logische Summe zwischen gerichteten Vorrichtungsabhängigkeitsgraphen ausführen, die in 35 gezeigt sind.
-
Wenn der ODER-Verarbeitungsausführungsabschnitt 18 entsprechend dem in 50 gezeigten Verarbeitungsablauf eine Verarbeitung an der Gleichung Nummer S023 von 44 durchführt, wird als Ergebnis einer logischen Summe zwischen einem Ergebnis von 46 und einem Ergebnis von 47 ein in 51 gezeigtes Ergebnis erhalten.
-
Die Gleichung Nummer S023 zeigt ein Beispiel, in dem ein Analysenbefehl zum Ausführen einer logischen Summe zwischen Querverweisen, ein Befehl zum Ausführen einer logischen Summe zwischen gerichteten Vorrichtungsabhängigkeitsgraphen und ein Befehl zum Ausführen einer logischen Summe zwischen gerichteten POU-Aufrufabhängigkeitsgraphen durch denselben Analysenbefehl ODER benannt werden. In einer Ausführungsform, in der die Befehle als unterschiedliche Befehle definiert sind (zum Beispiel ersterer als VAR_REF_ODER bzw. VAR_FWD_BWD_ODER und letzterer als POU_FWD_BWD_ODER definiert ist) wird dasselbe Verfahren verwendet.
-
Wenn die Ausführungsform verwendet wird, ist der Analysenbefehl POU_FWD ein Operator, der linear zu einer POU ist, die als Analysengegenstand (Startpunkt eines gerichteten POU-Aufrufabhängigkeitsgraphen) dient. Anders ausgedrückt wird ein Verarbeitungsablauf einer logischen Summe ODER der gerichteten POU-Aufrufabhängigkeitsgraphen wie in 50 gezeigt so angesetzt, dass der Analysenbefehl POU_FWD als linearer Analysenbefehl definiert ist.
-
Ein Analysengegenstand wird als Argument einer POU_FWD-Funktion ausgedrückt, und eine ODER-Operation wird als + ausgedrückt, um die Linearität des Analysenbefehls POU_FWD auszudrücken. In diesem Fall wird die Gleichung Nummer S024 durch eine Gleichung ausgedrückt, die durch den folgenden rechnerischen Ausdruck 4 gegeben ist.
-
Rechnerischer Ausdruck 4
-
-
POU_FWD(HAUPT,SUB1) = POU_FWD(HAUPT + SUB1) = POU_FWD(HAUPT) + POU_FWD(SUB1)
-
Deshalb kann, wie durch die Gleichung Nummer S024 von 4 angegeben ist, wenn POUs aufgezählt und benannt werden, die als Analysengegenstände (Startpunkt eines gerichteten POU-Aufrufabhängigkeitsgraphen) des Analysenbefehls POU_FWD dienen, eine rekursive Verarbeitung derart durchgeführt werden, dass ein Ergebnis, das durch Durchführen einer ODER-Verarbeitung eines Ergebnisses des Analysenbefehls POU_FWD unter Verwendung der POUs als Analysengegenstände erhalten wird, als Ergebnis der Gleichung Nummer S024 verwendet wird. Entsprechend kann im Hinblick auf den Analysenbefehl POU_BWD eine rekursive Verarbeitung durchgeführt werden.
-
Selbst wenn ein Benutzer nicht drei Bedingungsgleichungen wie etwa die Gleichungen Nr. S021, S022 und S023 einzeln eingibt, wird dasselbe Ergebnis wie das Ergebnis in der Gleichung Nummer S023 durch eine Gleichung Nummer S024 erhalten.
-
Ein Verfahren zum Aufzählen und Benennen einer Variablen (Vorrichtung) ist auch in dem in Gleichung Nummer S010 gezeigten Analysenbefehl VAR_REF gebräuchlich, in dem in Gleichung Nummer S014 gezeigten Analysenbefehl VAR_FWD und dem in Gleichung Nummer S024 gezeigten Analysenbefehl POU_FWD, und Analysenbedingungsbezeichnungsverfahren zwischen verschiedenen Analysenbefehlen werden widerspruchsfrei aneinander angepasst. Dieser Punkt ist derselbe wie im Analysenbefehl POU_BWD.
-
Ähnlich ist ein Verarbeitungsablauf des Analysenbefehls UND, der durch den UND-Verarbeitungsausführungsabschnitt 17 von 42 ausgeführt wird, in 52 gezeigt. Die Verarbeitungsinhalte sind dieselben wie diejenigen der Verarbeitung, die an einem logischen Produkt zwischen den in 37 gezeigten gerichteten Vorrichtungsabhängigkeitsgraphen durchgeführt wird.
-
Wenn der UND-Verarbeitungsausführungsabschnitt 17 entsprechend dem in 59 gezeigten Verarbeitungsablauf eine Verarbeitung an der Gleichung Nummer S026 von 44 durchführt, wird als Ergebnis eines logischen Produkts zwischen einem Ergebnis von 49 und einem Ergebnis von 51 ein in 53 gezeigtes Ergebnis erhalten. Im Hinblick auf die Verarbeitung in der nächsten Gleichung Nummer S027 kann dasselbe Ergebnis wie vorstehend beschrieben erhalten werden
-
Wirkung der Ausführungsform 9
-
Da eine logische Operation (logische Summen-ODER-Verarbeitung) zwischen gerichteten Abhängigkeitsgraphen von POU-Aufrufen in einem Ladder-Progamm ermöglicht ist, kann ein gewünschter gerichteter POU-Aufrufabhängigkeitsgraph extrahiert und die Energie einer auf die Programmanalyse bezogenen Operation eingespart werden.
-
Ein Befehl zum Ausführen einer logischen Summe zwischen Querverweisen, ein Befehl zum Ausführen einer logischen Summe zwischen gerichteten Vorrichtungsabhängigkeitsgraphen, und ein Befehl zum Ausführen einer logischen Summe zwischen gerichteten POU-Aufrufabhängigkeitsgraphen können durch denselben Analysenbefehl ODER benannt werden. Obwohl eine Ausführungsform, in der die Befehle definiert sind und selektiv als unterschiedliche Befehle verwendet werden (z. B. ersterer als Analysenbefehl VAR_REF_ODER und VAR_FWD_BWD_ODER und zweiterer als Analysenbefehl POU_FWD_BWD_ODER definiert wird), faktisch eingesetzt werden kann, werden zu verwendende Befehle je nach den Datenarten verändert, die Gegenstände des Analysenbefehls ODER sind. Wenn ein Analysenbefehl, der eine logische Summe ausführt, ungeachtet der Datenart als ODER definiert wird, wird die Verwendbarkeit besser. Wenn zu verwendende Analysenbefehle verändert werden, muss ein Benutzer einen jeder Datenart entsprechenden logischen Summenbefehl mit einer Hilfe, einer Anweisung o. dgl. überprüfen. Wenn jedoch alle Analysenbefehle durch einen Analysenbefehl ODER ausgeführt werden können, braucht der Benutzer nicht auf eine Hilfe o. dgl. zurückzugreifen, und die Energie einer auf die Programmanalyse bezogenen Operation kann eingespart werden.
-
Selbstverständlich hat auch eine logische Produkt-UND-Verarbeitung dieselbe wie vorstehend beschriebene Wirkung.
-
Ausführungsform 10
-
Die Ausführungsform bezieht sich auf ein Verfahren, das es möglich macht, einen Vorrichtungsquerverweis oder einen gerichteten Vorrichtungsabhängigkeitsgraphen unter Verwendung einer POU zu extrahieren, die in einem gerichteten POU-Aufrufabhängigkeitsgraphen als Gegenstand vorkommt.
-
Die Gleichung Nummer S028 von 54 zeigt ein Beispiel, in dem eine Zusammenstellung von POUs, die in einem gerichteten POU-Aufrufabhängigkeitsgraphen vorkommen, der in der Gleichung Nummer S021 von 44 extrahiert wurde, zum Extrahieren benannt wird.
-
Konkreter ausgedrückt werden in der vorliegenden Erfindung 1) ein Befehl zum Benennen einer beliebigen auszulesenden POU, um eine Zusammenstellung der POU auszugeben, 2) ein Befehl zum Benennen aller ein auszulesendes Programm bildenden POUs, um eine Zusammenstellung der POUs auszugeben, und 3) ein Befehl zum Extrahieren einer Zusammenstellung einer POU, die in einem gerichteten POU-Aufrufabhängigkeitsgraphen vorkommt, durch denselben Analysenbefehl POU_LESE benannt.
-
Als nächstes wird ein Verfahren beschrieben, das eine Zusammenstellung einer POU, die in einem gerichteten POU-Aufrufabhängigkeitsgraphen vorkommt, durch den Analysenbefehl POU_LESE extrahiert.
-
54 ist ein Schema, das ein Beispiel einer Bildfläche des Anzeigeabschnitts 4 zeigt, um einen Benutzer dazu zu bewegen, eine Programmanalysenbedingung in den Mikroprozessor 2 unter Nutzung des Eingabeabschnitts 5 von 1 einzugeben und entspricht den übrigen Teilen der vorstehend beschriebenen 7, 29 und 44.
-
55 ist ein Ablaufschema, das einen Verarbeitungsablauf des Analysenbefehls POU_LESE zeigt, der durch den POU-Listenextraktionsverarbeitungsausführungsabschnitt 14 von 42 ausgeführt wird.
-
Die in 55 gezeigten Verarbeitungsinhalte sind denjenigen der Verarbeitung (siehe 39) eines Analysenbefehls VAR_REF vergleichbar, der durchgeführt wird, wenn ein Vorrichtungsquerverweis aus dem gerichteten Vorrichtungsabhängigkeitsgraphen extrahiert wird. Eine Vorrichtung und eine POU unterscheiden sich dadurch voneinander, dass ein Vorrichtungselement abgehandelt wird, zu dem eine Information eines gerichteten Segments gegeben ist, die Information des gerichteten Segments aber nicht an die POU weitergegeben ist.
-
Wenn der POU-Listenextraktionsverarbeitungsausführungsabschnitt 14 von 42 die Gleichung Nummer S028 entsprechend dem in 55 gezeigten Verarbeitungsablauf verarbeitet, wird aus dem gerichteten POU-Aufrufabhängigkeitsgraphen von 46 eine POU-Zusammenstellung erhalten, die HAUPT, P10, P11, P12, P35, P36, P37, P38 und P39 als POU-Elemente enthält.
-
Die Gleichung Nummer S029 von 54 zeigt ein Beispiel, in dem ein in der Gleichung Nummer S028 extrahiertes POU-Element zum Extrahieren eines Vorrichtungsquerverweises benannt wird. Ein auf die Verarbeitung in der Gleichung Nummer S029 bezogenes Verfahren wurde in der Ausführungsform 1 beschrieben.
-
Auf diese Weise wird nicht nur eine Extraktion eines Vorrichtungsquerverweises für eine POU, die in einem gerichteten POU-Aufrufabhängigkeitsgraphen vorkommt, möglich, sondern es erübrigt sich auch die Mühe eines Benutzers, HAUPT, P10, P11, P12, P35, P36, P37, P38 und P39, die als aus dem gerichteten POU-Aufrufabhängigkeitsgraphen extrahierte POU-Elemente dienen, einzeln in das erste Argument des Analysenbefehls VAR_REF einzugeben.
-
Duie Gleichung Nummer S030 von 54 zeigt ein Beispiel, in dem ein in der Gleichung Nummer S028 extrahiertes POU-Element zum Extrahieren eines gerichteten Vorrichtungsabhängigkeitsgraphen benannt wird. Ein auf die Verarbeitung in der Gleichung Nummer S030 bezogenes Verfahren wurde in den Ausführungsformen 2 und 3 beschrieben.
-
Auf diese Weise wird nicht nur eine Extraktion eines gerichteten Vorrichtungsabhängigkeitsgraphen für ein POU-Element möglich, das in einem gerichteten POU-Aufrufabhängigkeitsgraphen vorkommt, sondern es erübrigt sich auch die Mühe eines Benutzers, HAUPT, P10, P11, P12, P35, P36, P37, P38 und P39, die als aus dem gerichteten POU-Aufrufabhängigkeitsgraphen extrahierte POU-Elemente dienen, einzeln in das erste Argument des Analysenbefehls VAR_FWD einzugeben. Dieser Punkt gilt auch beim Analysenbefehl VAR_BWD.
-
Ein Analysenbefehl VAR_REF in der Gleichung Nummer S031 von 54 zeigt ein Beispiel, in dem ein in der Gleichung Nummer S021 extrahierter gerichteter POU-Aufrufabhängigkeitsgraph zum Extrahieren eines Vorrichtungsquerverweises benannt wird. Konkreter ausgedrückt soll der Analysenbefehl VAR_REF in der Gleichung Nummer S031 einen Vorrichtungsquerverweise in einer POU extrahieren, die im gerichteten POU-Aufrufabhängigkeitsgraphen vorkommt.
-
Ein Verarbeitungsablauf des Analysenbefehls VAR_REF, der durch den Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt 12 von 42 ausgeführt wird, ist in 56 gezeigt. Die in 56 gezeigten Verarbeitungsinhalte werden durch eine Kombination zwischen dem in 10 gezeigten Verfahren und dem in 55 gezeigten Verfahren realisiert, die in der vorliegenden Erfindung beschrieben wurden.
-
Auch wenn ein Benutzer keine zwei Bedingungsgleichungen wie etwa die Gleichungen mit den Nummern S028 und S029 einzeln in die Gleichung Nummer S021 eingibt, wird dasselbe Ergebnis erzielt, wenn eine Bedingungsgleichung, nämlich Gleichung Nummer S031 eingegeben wird.
-
Ein Analysenbefehl VAR_FWD in der Gleichung Nummer S032 von 54 zeigt ein Beispiel, in dem ein in der Gleichung Nummer S021 extrahierter gerichteter POU-Aufrufabhängigkeitsgraph zum Extrahieren eines gerichteten Vorrichtungsabhängigkeitsgraphen benannt wird. Konkreter ausgedrückt soll der Analysenbefehl VAR_FWD in der Gleichung Nummer S032 einen gerichteten Vorrichtungsabhängigkeitsgraphen in einer POU extrahieren, die im gerichteten POU-Aufrufabhängigkeitsgraphen vorkommt.
-
Ein Verarbeitungsablauf des durch den Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt 13 von 42 ausgeführten Analysenbefehls VAR_FWD ist in 57 gezeigt. Die in 57 gezeigten Verarbeitungsinhalte werden durch eine Kombination zwischen dem in 30 gezeigten Verfahren und dem in 55 gezeigten Verfahren realisiert, die in der vorliegenden Erfindung beschrieben wurden.
-
Auch wenn ein Benutzer keine zwei Bedingungsgleichungen wie etwa die Gleichungen mit den Nummern S028 und S030 einzeln in die Gleichung Nummer S021 eingibt, wird dasselbe Ergebnis erzielt, wenn eine Bedingungsgleichung, nämlich Gleichung Nummer S032 eingegeben wird.
-
Dieser Punkt gilt auch beim Analysenbefehl VAR_BWD.
-
Wirkung der Ausführungsform 10
-
Ein Vorrichtungsquerverweis oder ein gerichteter Vorrichtungsabhängigkeitsgraph kann zu einem gerichteten POU-Aufrufabhängigkeitsgraphen in einem Ladderprogramm extrahiert werden. Es erübrigt sich auch die Mühe eines Benutzers, aus dem gerichteten POU-Aufrufabhängigkeitsgraphen extrahierte POU-Elemente einzeln einzugeben. Darüber hinaus kann, auch wenn ein Benutzer keine zwei Bedingungsgleichungen einzeln eingibt, ein gewünschter Vorrichtungsquerverweis oder ein gewünschter gerichteter Vorrichtungsabhängigkeitsgraph durch Eingabe einer Bedingungsgleichung erzielt werden.
-
Entsprechend diesen Vorteilen kann die Energie einer auf die Programmanalyse bezogenen Operation eingespart werden.
-
Ausführungsform 11
-
Die Ausführungsform bezieht sich auf ein Verfahren, das es möglich macht, einen Vorrichtungsquerverweis oder eine POU zu extrahieren, die in einem gerichteten Vorrichtungsabhängigkeitsgraphen vorkommt. Wie zum Beispiel in 71 im Spezielleren gezeigt ist, benennt ein Benutzer einen Vorrichtungsquerverweis, der durch Ausführen eines Analysenbefehls POU_LESE und eines daran anschließenden Analysenbefehls VAR_REF erhalten wird, als zweites Argument, benennt den Analysenbefehl POU_LESE als erstes Argument und führt die Gleichungsnummer aus, um es möglich zu machen, wieder eine Zusammenstellung von POUs zu erhalten. Die Anzahl von POU-Elementen, die wieder die Zusammenstellung von POUs bilden, kann eingeschränkter sein als diejenige von POU-Elementen einer POU-Zusammenstellung, die durch Ausführen eines herkömmlichen Analysenbefehls POU_LESE erhalten wird. Ähnlich benennt ein Benutzer den gerichteten Vorrichtungsabhängigkeitsgraphen als zweites Argument und benennt den Analysenbefehl POU_LESE als erstes Argument, zur Ausführung der Gleichungsnummer, um es möglich zu machen, wieder eine Zusammenstellung von POUs zu erhalten. Auch in diesem Fall kann die Anzahl von POU-Elementen, die die Zusammenstellung der erhaltenen POUs bilden, wieder eingeschrankter sein.
-
In diesem Stadium wird ein noch weiter verfeinertes Verfahren wie nachstehend beschrieben entwickelt.
- A) Bei der Extraktion einer POU aus einem Vorrichtungsquerverweis benennt ein Benutzer eine als Analysengegenstand dienende POU als erstes Argument und benennt eine als Analysenbedingung dienende Variable (Vorrichtung) als zweites Argument. Es enthalten nicht immer alle als erstes Argument benannten POUs eine als zweites Argument benannte Variable (Vorrichtung). Aus diesem Grund wird, wenn der Benutzer alle das Programm bildenden POUs im ersten Argument benennt, um einen Querverweis der als zweites Argument benannten Variablen (Vorrichtung) zu erhalten, wenn der Benutzer eine Liste von POUs extrahieren möchte, die diese Variablen (Vorrichtungen) enthalten, das nachstehend beschriebene Verfahren in der Ausführungsform verwendet.
- B) Bei der Extraktion einer POU aus einem gerichteten Vorrichtungsabhängigkeitsgraphen benennt ein Benutzer eine als Analysengegenstand dienende POU als erstes Argument und benennt eine als Startpunkt einer Abhängigkeitsanalyse dienende Variable (Vorrichtung) als zweites Argument. Allerdings beziehen sich nicht immer alle als erstes Argument benannten POUs auf den als Extraktionsergebnis dienenden gerichteten Vorrichtungsabhängigkeitsgraphen. Aus diesem Grund wird, wenn der Benutzer alle das Programm bildenden POUs im ersten Argument benennt, um einen gerichteten Vorrichtungsabhängigkeitsgraphen mit der als zweites Argument benannten Variable (Vorrichtung) als Startpunkt zu erhalten, wenn der Benutzer eine auf den gerichteten Vorrichtungsabhängigkeitsgraphen bezogene Liste von POUs extrahieren möchte, das nachstehend beschriebene Verfahren in der Ausführungsform verwendet.
-
Die Gleichung Nummer S034 von 54 zeigt ein Beispiel, in dem eine Extraktion eines Vorrichtungsquerverweises von Variablen (Vorrichtungen) M [0 bis 9] und M [20 bis 29] in einer in der Gleichung Nummer S020 von 44 ausgelesenen Zusammenstellung von POUs, also in allen das Programm bildenden POUs benannt wird. Die Gleichung Nummer S035 von 54 zeigt ein Beispiel, in dem eine Liste von POUs extrahiert wird, die im Ergebnis in der Gleichung Nummer S034 vorkommen.
-
Konkreter ausgedrückt werden in der vorliegenden Erfindung 1) ein Befehl zum Benennen einer beliebigen auszulesenden POU, um eine Zusammenstellung der POU auszugeben, 2) ein Befehl zum Benennen aller ein auszulesendes Programm bildenden POUs, um eine Zusammenstellung der POUs auszugeben, 3) ein Befehl zum Extrahieren einer Zusammenstellung einer POU, die in einem gerichteten POU-Aufrufabhängigkeitsgraphen vorkommt, und 4) ein Befehl zum Extrahieren einer Zusammenstellung einer POU, die in einem Vorrichtungsquerverweis vorkommt, durch denselben Analysenbefehl POU_LESE benannt.
-
Ein durch den POU-Listenextraktionsverarbeitungsausführungsabschnitt 14 von 42 ausgeführter Verarbeitungsablauf des Analysenbefehls POU_LESE ist in 58 gezeigt. Zuerst bestätigt der Abschnitt 14, ob es sich bei einer als Gegenstand dienenden Datenart um einen Vorrichtungsquerverweis handelt. Wenn es sich bei der Datenart um keinen Vorrichtungsquerverweis handelt, führt der Abschnitt 14 den Verarbeitungsablauf von 55 durch. Handelt es sich andererseits bei einer als Gegenstand dienenden Datenart um einen Vorrichtungsquerverweis, führt der Abschnitt 14 eine Verarbeitung der Extraktion und Ausgabe einer Zusammenstellung einer POU durch, die in dem Vorrichtungsquerverweis vorkommt.
-
Der Einfachheit halber wird ein Fall mit der Gleichung Nummer S033 von 54 beschrieben. Mit. Bezug auf Programmnamen von Querverweisen, die auf einer Bildfläche in 19 vorkommen, die einen Vorrichtungsquerverweis in Gleichung Nummer S006 des ersten Arguments zeigt, handelt es sich bei POUs, die in den Vorrichtungsquerverwelsen vorkommen, nur um HAUPT und SUB. Aus diesem Grund wird, wenn der Abschnitt 14 die Gleichung Nummer S033 auf Grundlage des Verarbeitungsablaufs von 58 verarbeitet, eine Zusammenstellung von POUs erhalten, die jeweils HAUPT und SUB als Elemente enthalten.
-
Die Gleichung Nummer S036 von 54 zeigt ein Beispiel, in dem ein gerichteter Vorrichtungsabhängigkeitsgraph mit einer Variable (Vorrichtung) M4095 als Startpunkt in einer Zusammenstellung von in Gleichung Nummer S020 ausgelesenen POUs, also allen das Programm bildenden POUs zum Extrahieren benannt wird, die nächste Gleichung S037 zeigt ein Beispiel, in dem ein Querverweis, der sich auf eine Vorrichtung bezieht, die im Extraktionsergebnis von Gleichung Nummer S036 vorkommt, zum Extrahieren benannt wird, und die nächste Gleichung Nummer S038 zeigt ein Beispiel, in dem eine Liste von POUs gezeigt ist, die im Extraktionsergebnis von Gleichung Nummer S037 vorkommen. Die Verarbeitung jeder der Gleichungsnummern wurde vorstehend beschrieben.
-
Die Gleichung Nummer S039 von 54 zeigt ein Beispiel, in dem eine Liste von POUs extrahiert wird, die sich auf das Extraktionsergebnis von Gleichung Nummer S036 bezieht. Konkreter ausgedrückt werden in der vorliegenden Erfindung 1) ein Befehl zum Benennen einer beliebigen auszulesenden POU, um eine Zusammenstellung der POU auszugeben, 2) ein Befehl zum Benennen aller ein auszulesendes Programm bildenden POUs, um eine Zusammenstellung der POUs auszugeben, 3) ein Befehl zum Extrahieren einer Zusammenstellung einer POU, die in einem gerichteten POU-Aufrufabhängigkeitsgraphen vorkommt, 4) ein Befehl zum Extrahieren einer Zusammenstellung einer POU, die in einem Vorrichtungsquerverweis vorkommt, und 5) ein Befehl zum Extrahieren einer Zusammenstellung einer POU, die sich auf den gerichteten Vorrichtungsabhängigkeitsgraphen bezieht, durch denselben Analysenbefehl POU_LESE benannt.
-
Ein durch den POU-Listenextraktionsverarbeitungsausführungsabschnitt 14 von 42 ausgeführter Verarbeitungsablauf des Analysenbefehls POU_LESE ist in 59 gezeigt. Zuerst bestätigt der Abschnitt 14, ob es sich bei einer als Gegenstand dienenden Datenart um einen gerichteten Vorrichtungsabhängigkeitsgraphen handelt. Wenn es sich bei der Datenart um keinen gerichteten Vorrichtungsabhängigkeitsgraphen handelt, führt der Abschnitt 14 den vorstehend beschriebenen Verarbeitungsablauf von 58 durch. Handelt es sich andererseits bei einer als Gegenstand dienenden Datenart um einen gerichteten Vorrichtungsabhängigkeitsgraphen, wendet der Abschnitt 14 den in 56 gezeigten Analysenbefehl VAR_REF auf den gerichteten Vorrichtungsabhängigkeitsgraphen an, um einen Vorrichtungsquerverweis zu extrahieren, und wendet den Verarbeitungsablauf des in 58 gezeigten Analysenbefehls POU_LESE auf den extrahierten Vorrichtungsquerverweis an, um eine Verarbeitung der Extraktion und Ausgabe einer Zusammenstellung von POUs durchzuführen.
-
Auch wenn ein Benutzer keine zwei Bedingungsgleichungen wie etwa die Gleichungen mit den Nummern S037 und S038 einzeln in die Gleichung Nummer S036 eingibt, kann dasselbe Ergebnis erzielt werden, wenn eine Bedingungsgleichung, nämlich Gleichung Nummer S039 eingegeben wird.
-
Wirkung der Ausführungsform 11
-
Es kann eine POU extrahiert werden, die im extrahierten Vorrichtungsquerverweis oder dem extrahierten gerichteten Vorrichtungsabhängigkeitsgraphen vorkommt.
-
Darüber hinaus kann, auch wenn ein Benutzer keine zwei Bedingungsgleichungen einzeln zum Extrahieren einer im gerichteten Vorrichtungsabhängigkeitsgraphen vorhandenen POU eingibt, durch Eingabe einer Bedingungsgleichung ein Ergebnis erhalten werden.
-
Entsprechend diesen Vorteilen kann die Energie der auf die Programmanalyse bezogenen Operation eingespart werden.
-
Ausführungsform 12
-
Die Ausführungsform bezieht sich auf ein Verfahren, das es möglich macht, logische Operationen verschiedener Daten zu benennen. Wenn zum Beispiel ein logisches Produkt UND zwischen dem Vorrichtungsquerverweis und dem gerichteten Vorrichtungsabhängigkeitsgraphen benannt wird, wird der gerichtete Vorrichtungsabhängigkeitsgraph in den Vorrichtungsquerverweis umgesetzt, und der Mikroprozessor 2 von 1 kann automatisch eine benannte Gleichungsnummer interpretieren, um eine Verarbeitung entsprechend der internen Verarbeitung des Mikroprozessors so durchzuführen, dass eine Verarbeitung einer logischen Produktoperation ausgeführt wird.
-
Im logischen Produkt UND in der Gleichung Nummer S041 von 54 handelt es sich bei einem Ausgang aus einem ersten Argument S005 um den Vorrichtungsquerverweis und bei einem Ausgang aus einem zweiten Argument S011 um den gerichteten Vorrichtungsabhängigkeitsgraphen. Auf diese Weise extrahiert der Mikroprozessor 2, wenn eine logische Operation zwischen verschiedenen Daten benannt wird, zuerst Inhalte mit demselben Datenformat wie demjenigen des ersten Arguments aus Ausgangseinhalten des zweiten Arguments, und die vorgegebenen technischen Bedingungen der Programmanalysenunterstützungsvorrichtung sind so bestimmt, dass eine logische Operation eines danach benannten Analysenbefehls ausgeführt wird.
-
Nachdem ein Benutzer die Gleichung Nummer S018, die einen Analysenbefehl VAR_REF extrahiert, in die Gleichung Nummer S011 eingibt, kann, auch wenn keine Bedingungsgleichung eines logischen Produkts UND zwischen Gleichung Nummer S005 und Gleichung Nummer S018 wie bei der Gleichung Nummer S040 von 54 eingegeben wird, dasselbe Ergebnis erhalten werden, wenn eine Bedingungsgleichung, nämlich Gleichung Nummer S041 eingegeben wird.
-
Die Gleichung Nummer S042 von 54 ist so bezeichnet, dass das erste Argument und das zweite Argument in Gleichung Nummer S042 eine Umkehrfunktion der Funktion von Gleichung Nummer S041 haben. Auch in diesem Fall wird, da der Analysenbefehl UND ein logisches Produkt UND zwischen einem Vorrichtungsquerverweis und einem gerichteten Vorrichtungsabhängigkeitsgraphen ist, der gerichtete Vorrichtungsabhängigkeitsgraph zuerst in den Vorrichtungsquerverweis umgesetzt, und es kann eine Verarbeitung durch eine automatische Interpretation erfolgen, die durch interne Verarbeitung so durchgeführt wird, dass eine logische Produktoperation ausgeführt wird. Konkreter ausgedrückt werden in der Gleichung Nummer S041 und der Gleichung Nummer S042 dieselben Ergebnisse erhalten.
-
60 ist ein Ablaufschema, das eine durch den UND-Verarbeitungsausführungsabschnitt 17 von 42 ausgeführten Verarbeitungsablauf eines Analysenbefehls UND zeigt. Wenn der UND-Verarbeitungsausführungsabschnitt 17 die Gleichung Nummer S041 auf Grundlage des Verarbeitungsablaufs von 60 wie in 61 gezeigt durchführt, wird ein Querverweis erhalten, der ein Analysenergebnis darstellt, in dem die Variable (Vorrichtung) M4 in jedem der Programme HAUPT und SUB verwendet wird.
-
Wirkung der Ausführungsform 12
-
Es wird eine Benennung einer logischen Operation zwischen verschiedenen Daten möglich. Auf diese Weise braucht, auch wenn ein Benutzer keine Bedingungsgleichungen einzeln eingibt, um Datenformate in dasselbe Datenformat zu konvertieren, bevor eine Bedingungsgleichung einer logischen Operation benannt wird, nur eine Bedingungsgleichung eingegeben zu werden, und die Energie einer auf die Programmanalyse bezogenen Operation kann eingespart werden.
-
Ausführungsform 13
-
Bislang wurde als Beispiel einer Bildfläche eines Anzeigeabschnitts, um einen Benutzer dazu zu bewegen, eine Programmanalysenbedingung unter Verwendung eines Eingabeabschnitts einzugeben, 7 gezeigt und ein Verfahren vorstehend beschrieben, das es möglich macht, einen Querverweis herzustellen, der erhalten wird, indem Programmanalysenbedingungen frei kombiniert werden. Da in diesem Fall eine Kombination zwischen Programmanalysenbedingungen nicht speziell eingeschränkt ist, kann ein Benutzer die Programmanalysenbedingungen frei miteinander kombinieren. Wenn ein Benutzer hingegen ein gewünschtes Programmanalysenergebnis zu erhalten versucht, muss er von sich aus die Kombination zwischen den Programmanalysenbedingungen berücksichtigen.
-
Jedoch kann eine herkömmliche Programmanalysenunterstützungsvorrichtung einen Querverweis nur innerhalb eines vorbereiteten Bedingungsbenennungsfunktionsbereichs herstellen. Wenn im Gegensatz dazu jedoch ein vorbereiteter Querverweis hergestellt werden soll, braucht ein Benutzer eine Kombination zwischen Programmanalysenbedingungen von sich aus nicht zu berücksichtigen.
-
Wenn ein Benutzer versucht, ein gewünschtes Programmanalysenergebnis gemäß derselben Taktik wie die herkömmliche Programmanalysenunterstützungsvorrichtung zu erhalten, müssen jedoch verschiedene Querverweisherstellungsfunktionen vorbereitet werden. Wenn konkreter ausgedrückt ein Versuch gemacht wird, gemäß derselben Taktik wie der herkömmlichen Taktik eine Programmanalysenunterstützungsvorrichtung durch die in der Spalte Stand der Technik beschriebene Auslegung herzustellen, bedeutet dies einen großen Arbeitsaufwand für einen Entwickler einer Programmanalysenunterstützungsvorrichtung. Im Spezielleren stellt sich ein Komplexitätsproblem beim internen Aufbau eines Analysenbedingungsausführungsabschnitts.
-
In der vorliegenden Ausführungsform, wenn Programmanalysenfunktionen wie etwa verschiedene Querverweisherstellungsfunktionen gemäß derselben Taktik wie derjenigen der herkömmlichen Programmanalysenunterstützungsvorrichtung vorbereitet werden, wird nun ein Verfahren beschrieben, das es möglich macht, einen Arbeitsaufwand eines Entwicklers einer Programmanalysenunterstützungsvorrichtung unter Verwendung der bislang beschriebenen Erfindung erheblich zu reduzieren.
-
Als konkretes Beispiel wird ein Fall beschrieben, bei dem nach derselben Taktik wie derjenigen einer herkömmlichen Programmanalysenunterstützungsvorrichtung eine statische Ladder-Programm-Slicing-Funktion als Einzelzweck-Programmanalysenfunktion in der Programmanalysenunterstützungsvorrichtung gemäß der Ausführungsformvorbereitet oder als Programm installiert wird.
-
In diesem Fall handelt es sich bei 62 um ein Schema, das ein Beispiel (Dialogbox) einer Bildfläche eines Anzeigeabschnitts für statisches Ladder-Programm-Slicing zeigt.
-
Die statische Ladder-Programm-Slicing-Funktion ist eine Funktion des dedizierten oder fachmännischen Bereitstellens einer Extraktion eines gerichteten Vorrichtungsabhängigkeitsgraphen in einem durch einen Benutzer benannten Analysengegenstandsbereich POU und der Extraktion einer Liste (Querverweis) einer Variablen (Vorrichtung), die in dem gerichteten Graphen vorkommt.
-
In einen Slicing-Bereich in 62 gibt ein Benutzer einen POU-Namen ein, der als Analysengegenstandsbereich eines gerichteten Vorrichtungsabhängigkeitsgraphen dient, den der Benutzer extrahieren möchte. In der technischen Beschreibung wird davon ausgegangen, dass POUs in einem Slicing-Bereich aufgezählt und durch Kommata (,) getrennt werden, wenn ein Benutzer mindestens eine POU als Analysengegenstandsbereich benennen will, und der Benutzer nichts in den Slicing-Bereich eingibt, wenn er alle ein auszulesendes Programm bildende POUs benennen will.
-
In der technischen Beschreibung wird, wenn ein Benutzer verschiedene Variablen (Vorrichtungen) für sowohl eine Vorwärts-Slicing-Startpunktvorrichtung als auch eine Rückwärts-Slicing-Startpunktvorrichtung, jeweils auf der Bildfläche von 62 benennt, ein gerichteter Vorrichtungsabhängigkeitsgraph extrahiert, der durch Verarbeiten eines logischen Produkts UND zwischen dem gerichteten Graphen der Vorrichtungsvorwartsabhangigkeit und dem gerichteten Graphen der Vorrichtungsrückwärtsabhängigkeit erhalten wird.
-
In die Spalte der Vorwärts-Slicing-Startpunktvorrichtung auf der Bildfläche gibt ein Benutzer eine Variable (Vorrichtung) ein, die als Startpunkt eines gerichteten Vorrichtungsabhängigkeitsgraphen dient, den der Benutzer extrahieren möchte. Wenn der Benutzer einen gerichteten Vorrichtungsabhängigkeitsgraphen extrahieren möchte, der durch Verarbeiten einer logischen Summe ODER mindestens eines gerichteten Graphen der Vorrichtungsvorwärtsabhängigkeit erhalten wurde, zählt der Benutzer in der technischen Beschreibung Variablen (Vorrichtungen) auf, die durch Kommata (,) getrennt sind.
-
In die Spalte der Rückwärts-Slicing-Startpunktvorrichtung auf der Bildfläche gibt ein Benutzer eine Variable (Vorrichtung) ein, die als Startpunkt eines gerichteten Vorrichtungsabhängigkeitsgraphen dient, den der Benutzer extrahieren möchte. Wenn der Benutzer einen gerichteten Vorrichtungsabhängigkeitsgraphen extrahieren möchte, der durch Verarbeiten einer logischen Summe ODER mindestens eines gerichteten Graphen der Vorrichtungsrückwärtsabhängigkeit erhalten wurde, zählt der Benutzer in der technischen Beschreibung Variablen (Vorrichtungen) auf, die durch Kommata (,) getrennt sind.
-
Konkreter ausgedrückt wird in der technischen Beschreibung, wenn ein Benutzer mehrere verschiedene Variablen (Vorrichtungen) für jede sowohl einer Vorwärts-Slicing-Startpunktvorrichtung als auch einer Rückwärts-Slicing-Startpunktvorrichtung benennt, ein gerichteter Vorrichtungsabhängigkeitsgraph, der durch Ausführen einer UND-Verarbeitung an einem gerichteten Vorrichtungsabhängigkeitsgraphen erhalten wird, der durch eine ODER-Verarbeitung mindestens eines gerichteten Graphen der Vorwärtsvorrichtungsabhängigkeit erhalten wird, und ein gerichteter Vorrichtungsabhängigkeitsgraph extrahiert, der durch eine ODER-Verarbeitung mindestens eines gerichteten Graphen der Rückwärtsvorrichtungsabhängigkeit erhalten wird.
-
Wenn ein Benutzer eine Variable (Vorrichtung) nur für die Spalte der Rückwärts-Slicing-Startpunktvorrichtung benennt, ohne eine Variable (Vorrichtung) für die Vorwärts-Slicing-Startpunktvorrichtung auf der Bildfläche von 62 zu benennen, wird als Ergebnis ein gerichteter Graph der Rückwärtsvorrichtungsabhängigkeit extrahiert. Im Gegensatz dazu benennt in dieser technischen Beschreibung der Benutzer die Variable (Vorrichtung) nur für die Spalte der Vorwärts-Slicing-Startpunktvorrichtung, ohne die Variable (Vorrichtung) für die Spalte der Rückwärts-Slicing-Startpunktvorrichtung zu benennen, und als Ergebnis wird ein gerichteter Graph der Vorwärtsvorrichtungsabhängigkeit extrahiert.
-
63 ist ein Funktionsblockschema (Softwarebaustein-Konfigurationsschema), das eine Konfiguration eines Funktionsabschnitts zur Durchführung statischen Ladder-Programm-Slicings im Mikroprozessor 2 von 1 zeigt.
-
Eine Verarbeitung, die sich auf das statische Ladder-Programm-Slicing bezieht, erfolgt durch eine Konfiguration, in der im Ansprechen auf eine durch einen Benutzer eingegeben Bildfläche und eine Betätigung einer Startausführungstaste auf einem Bildschirm ein Befehl, der intern durch einen Bedingungseinstellabschnitt 294 für statisches Ladder-Slicing generiert wird, durch den Analysenbedingungsausführungsabschnitt 1 verarbeitet wird, und ein Ergebnis davon wird durch den Analysenergebnisanzeigeabschnitt 20 auf der Bildfläche des Anzeigeabschnitts 4 von 1 angezeigt.
-
Ein Verarbeitungsablauf, der durch den Bedingungseinstellabschnitt 294 für statisches Ladder-Slicing ausgeführt wird, ist in 64 gezeigt. Ein Punkt, an dem die in 62 gezeigten Eingabeinhalte durch den Abschnitt 294 entsprechend dem Verarbeitungsablauf von 64 verarbeitet werden, wird nachstehend beschrieben.
-
Im Schritt S295 startet, wenn ein Benutzer eine Ausführungstaste auf der Bildfläche des statischen Ladder-Programm-Slicings von 62 anklickt, der Bedingungseinstellabschnitt 294 für statisches Ladder-Slicing die folgende Verarbeitung.
-
Im Schritt S297 bestätigt der Abschnitt 294, ob ein POU-Name in einen Slicing-Bereich in einer Dialogbox von 62 eingegeben ist. In dem Beispiel von 62 bestimmt der Abschnitt 294 „JA”.
-
Im Schritt S198 bestätigt der Abschnitt 294, ob es sich bei der Anzahl von in einen Slicing-Bereich in der Dialogbox von 62 eingegebenen POU-Namen um mehrere handelt. In dem Beispiel von 62 bestimmt der Abschnitt 294 „JA”.
-
Im Schritt S301 generiert der Abschnitt 294 intern im Hinblick auf das Beispiel den folgenden Befehl und führt ihn aus.
- 1) S901 = POU_LESE(HAUPT)
- 2) S902 = POU_LESE(SUB4)
- 3) S903 = ODER(S901, S902)
-
In einer Anwendung des Schritts S301 in dem Beispiel generiert der Abschnitt 294 intern weiter den nächsten Befehl und führt ihn aus.
- 4) S904 = POU_LESE(SUB9)
- 5) S905 = ODER(S903, S904)
-
Wenn der Abschnitt 294 wie vorstehend beschrieben intern eine Generierung und Ausführung verschiedener Befehle einzeln nacheinander im Schritt S301 durchführt, muss der Abschnitt 294 eine Generierung einer POU-Zusammenstellung verkraften, wenn mehrere POU-Namen eingegeben werden.
-
Der Abschnitt 294 verwendet eine Gleichungsnummer eines endgültigen Analysenbefehls, der in der Verarbeitung des Schritts S296 als erstes Argument einer Extraktionsverarbeitung eines gerichteten Vorrichtungsabhängigkeitsgraphen intern generiert wurde, der in den folgenden Schritten S302 und S307 verarbeitet wird. In dem Beispiel benennt der Abschnitt S294 die als fünfter generierter Befehl dienende Gleichung Nummer S905 als erste Argumente eines Analysenbefehls VAR_FWD und eines Analysenbefehls VAR_BWD.
-
Im Schritt S303 und im Hinblick auf das Beispiel bestätigt der Abschnitt 294, dass eine Variable (Vorrichtung) in die Vorwärts-Slicing-Startpunktvorrichtung von 62 eingegeben ist.
-
Im Schritt S304 und im Hinblick auf das Beispiel bestätigt der Abschnitt 294, dass es sich bei der Anzahl von Variablen (Vorrichtungen), die in die Vorwärts-Slicing-Startpunktvorrichtung von 62 eingegeben sind, um mehrere handelt.
-
Im Schritt S306 und im Hinblick auf das Beispiel generiert der Abschnitt 294 intern den folgenden Befehl und führt ihn aus.
- 6) S906 = VAR_FWD(S905, X67)
- 7) S907 = VAR_FWD(S905, X89)
- 8) S908 = ODER(S906, S907)
-
Der Abschnitt 294 verwendet eine Gleichungsnummer eines im Schritt S302 intern generierten endgültigen Befehls als erstes Argument einer UND-Verarbeitung zwischen gerichteten Vorrichtungsabhängigkeitsgraphen, die im Schritt S312 verarbeitet werden. In dem Beispiel benennt der Abschnitt 294 die Gleichung Nummer S908 als erstes Argument der UND-Verarbeitung.
-
Im Schritt S308 und im Hinblick auf das Beispiel bestätigt der Abschnitt 294, dass eine Variable (Vorrichtung) als Rückwärts-Slicing-Startpunktvorrichtung von 62 eingegeben ist.
-
Im Schritt S309 und im Hinblick auf das Beispiel bestätigt der Abschnitt 294, dass es sich bei der Anzahl von Vorrichtungen, die als Rückwärts-Slicing-Startpunktvorrichtung von 62 eingegeben wurde, nicht um mehrere handelt (es wird „NEIN” bestimmt), um zum Schritt S310 überzugehen.
-
Im Schritt S320 und im Hinblick auf das Beispiel generiert der Abschnitt 294 intern den folgenden Befehl und führt ihn aus.
- 9) S909 = VAR_BWD(S905, Y234)
-
Der Abschnitt 294 verwendet eine Gleichungsnummer eines im Schritt S307 intern generierten endgültigen Befehls als zweites Argument einer UND-Verarbeitung zwischen gerichteten Vorrichtungsabhängigkeitsgraphen, die im Schritt S312 verarbeitet werden. In dem Beispiel benennt der Abschnitt 294 die Gleichung Nummer S909 als zweites Argument der UND-Verarbeitung.
-
Im Schritt S312 generiert der Abschnitt 294 intern einen Analysenbefehl UND und führt ihn aus, der eine Gleichungsnummer eines im Schritt 302 intern generierten endgültigen Befehls als erstes Argument und eine Gleichungsnummer eines im Schritt 307 intern generierten endgültigen Befehls als zweites Argument enthält.
- 10) S910 = UND(S908, S909)
-
Kommt jedoch im Schritt S302 kein intern generierter Befehl vor, verwendet der Abschnitt 294 ein Verarbeitungsergebnis eines im Schritt S307 intern generierten endgültigen Befehls unverändert als Verarbeitungsergebnis im Schritt 312.
-
Kommt im Schritt S307 kein intern generierter Befehl vor, verwendet der Abschnitt 294 ein Verarbeitungsergebnis eines im Schritt S302 intern generierten endgültigen Befehls unverändert als Verarbeitungsergebnis im Schritt 312.
-
Kommt jedoch in den Schritten S302 und S307 kein intern generierter Befehl vor, macht der Abschnitt 294 das Verarbeitungsergebnis im Schritt S312 leer.
-
Der Bedingungseinstellabschnitt 294 für statisches Ladder-Slicing überträgt ein Ergebnis des durch die vorstehende Verarbeitung erhaltenen gerichteten Vorrichtungsabhängigkeitsgraphen an den Analysenergebnisanzeigeabschnitt 20, und der Abschnitt 20 gibt ein Anzeigesignal aus, um das Ergebnis des gerichteten Vorrichtungsabhängigkeitsgraphen zum Anzeigeabschnitt 4 von 1 zu ziehen. Als Ergebnis wird das Ergebnis des gerichteten Vorrichtungsabhängigkeitsgraphen auf der Bildfläche des Anzeigeabschnitts 4 angezeigt.
-
Wenn ein Benutzer darüber hinaus eine Querverweistaste der Dialogbox in 62 mit dem Eingabeabschnitt 5 anklickt, extrahiert der Bedingungseinstellabschnitt 294 für statisches Ladder-Slicing einen Querverweis einer Variablen (Vorrichtung), die in dem gerichteten Vorrichtungsabhängigkeitsgraphen vorkommt, der erhalten wurde, und der Analysenergebnisanzeigeabschnitt 20 zeigt das Ergebnis an. Eine Darstellung eines Ablaufschemas des Verarbeitungsablaufs wird weggelassen, aber eine Verarbeitungsprozedur davon wird nachstehend beschrieben.
-
Wenn der Benutzer eine Querverweistaste auf der Bildfläche des statischen Ladder-Programm-Slicings drückt (anklickt), startet der Abschnitt 294 mit der Verarbeitung.
-
Der Abschnitt 294 generiert intern einen Analysenbefehl VAR_REF und führt ihn aus, der eine Gleichung Nummer S910 eines endgültigen Befehls enthält, der durch den Abschnitt 294 als erstes Argument ausgeführt wird. Dabei extrahiert der Abschnitt 294 einen Querverweis aller Variablen (Vorrichtungen), die in dem gerichteten Vorrichtungsabhängigkeitsgraphen vorkommen, ohne irgendetwas als zweites Argument zu benennen.
-
Wenn kein gerichteter Vorrichtungsabhängigkeitsgraph erhalten (verarbeitet) wurde, stellt der Abschnitt 124 ein leeres Verarbeitungsergebnis ein.
-
Der Bedingungseinstellabschnitt 294 für statisches Ladder-Slicing zeigt den Querverweis der erhaltenen Variablen (Vorrichtungen) über den Variablenverwendungslistenanzeigeabschnitt 21 von 63 an.
-
Wirkung der Ausführungsform 13
-
Ein Benutzer braucht eine Kombination zwischen Programmanalysenbedingungen nicht von sich aus zu berücksichtigen, um es möglich zu machen, ein gewünschtes Programmanalysenergebnis zu erhalten. Deshalb kann der Arbeitsaufwand zur Vorbereitung einer Programmanalysenfunktion wie etwa verschiedene Querverweisherstellungsfunktion in erheblichem Maße eingespart werden.
-
Auf diese Weise kann ein Entwickler einer Programmanalysenunterstützungsvorrichtung die Anzahl von Schritten (Kosten und Dauer) zum Entwickeln einer Programmanalysenunterstützungsvorrichtung reduzieren (verkürzen), um den Wirkungsgrad einer Operation zur genauen Angabe einer Stelle zu verbessern, die als Editiergegenstand bei einer Veränderung von Programmen, einer Analyse eines nachteiligen Funktionsablaufs o. dgl. dient, um es möglich zu machen, die für die Operation erforderliche Zeit zu verkürzen. Für die Programmanalysenunterstützungsvorrichtung kann/können ohne Weiteres eine Programmanalysierfunktion wie etwa verschiedene Querverweisherstellungsfunktionen vorbereitet werden.
-
Da die Programmanalysierfunktion wie etwa verschiedene Querverweisherstellungsfunktionen für die Programmanalysenunterstützungsvorrichtung vorbereitet wird/werden, verbessert ein Benutzer auf diese Weise den Wirkungsgrad einer Operation zur genauen Angabe einer Stelle, die als Editiergegenstand bei einer Veränderung von Programmen oder einem nachteiligen Funktionsablauf dient, um es möglich zu machen, die für die Operation erforderliche Zeit zu verkürzen.
-
Ausführungsform 14
-
Bislang wurden die Programmanalysierfunktionen zur Extraktion eines Vorrichtungsquerverweises für eine Zusammenstellung vorbestimmter Programm-POUs, zur Extraktion eines gerichteten Vorrichtungsabhängigkeitsgraphen und zur Extraktion eines gerichteten POU-Aufrufabhängigkeitsgraphen beschrieben. Es wird auch eine Funktion zum Durchführen einer logischen Operation (UND/ODER/NICHT) an diesen Analysenergebnissen beschrieben. Darüber hinaus wird auch eine Funktion zum weiteren Durchführen einer Programmanalysenverarbeitung an den Ergebnissen der Programmanalysierfunktionen beschrieben.
-
Wenn eine neue Analysierfunktion (Analysenbefehl) zur vorstehend beschriebenen Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung hinzugefügt wird, muss, wenn es sich bei einem Datenformat, das durch die neue Analysierfunktion (Analysenbefehl) extrahiert wird, um ein neues Datenformat handelt, das in der Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung noch nicht verwendet wurde, der charakteristische Punkt der Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung beibehalten werden und unbeschädigt sein, zum Beispiel müssen logische Operationen UND/ODER/NICHT für das Analysenergebnis definiert werden.
-
Die Ausführungsform bezieht sich auf ein Verfahren zum Hinzufügen einer neuen Analysierfunktion (Analysenbefehl) zur vorstehend beschriebenen Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung.
-
Bislang wurden die Programmanalysierfunktionen zur Extraktion eines Vorrichtungsquerverweises für eine Zusammenstellung vorbestimmter Programm-POUs, zur Extraktion eines gerichteten Vorrichtungsabhängigkeitsgraphen und zur Extraktion eines gerichteten POU-Aufrufabhängigkeitsgraphen und eine Funktion zum Durchführen von logischen UND/ODER/NICHT-Operationen an diesen Analysenergebnissen oder eine andere Programmanalyse beschrieben. Wenn diese Funktionen zusammengestellt werden, erhält man die Zeichnungen der 66 bis 71.
- a) Zuerst werden die Inhalte von 66 beschrieben, die einen Vorrichtungsquerverweisextraktionsbefehl VAR_REF zeigt.
-
Eine Variable (Vorrichtung) ist als zweites Argument des Analysenbefehls VAR_REF benannt. Andererseits kann als erstes Argument ein Analysenergebnis einer Programmanalysierfunktion benannt werden, die durch die Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung verarbeitet wird.
-
In den Inhalten ist ein Fall, in dem eine Gleichungsnummer, die eine Zusammenstellung von POUs ausgibt, als erstes Argument benannt ist, die grundlegendste Verarbeitungsart (angegeben durch Δ in 66) des Analysenbefehls VAR_REF.
-
Ein Fall, in dem eine Gleichungsnummer, die einen gerichteten Vorrichtungsabhängigkeitsgraphen ausgibt, als erstes Argument benannt ist, ist eine grundlegende Verarbeitungsart (angegeben durch O in 66) des Analysenbefehls VAR_REF.
-
Andererseits ist auch ein Fall vorstellbar, in dem ein POU-Name direkt als erstes Argument benannt ist. Obwohl der Verarbeitungsablauf in diesem Fall nicht als Ausführungsform in der technischen Beschreibung beschrieben ist, kann im Hinblick auf die Verarbeitungsart in diesem Fall der Mikroprozessor 2, wie in 66 gezeigt, intern einen Analysenbefehl POU_LESE verarbeiten und dann eine Verarbeitung nach der grundlegendsten Verarbeitungsart des Analysenbefehls VAR_REF durchführen. Konkreter ausgedrückt kann der Mikroprozessor 2 die Verarbeitung in diesem Fall durch eine Kombination zwischen anderen grundlegenden Verarbeitungsarten durchführen (angegeben durch Δ in 66).
-
Der Mikroprozessor 2 kann auch einen Fall, in dem eine Gleichungsnummer, die einen gerichteten POU-Aufrufabhängigkeitsgraphen ausgibt, als erstes Argument benannt ist, durch eine Kombination anderer grundlegender Verarbeitungsarten bewerkstelligen (auch durch Δ in 66 angegeben).
-
Ein Fall, in dem eine Gleichungsnummer, die einen Vorrichtungsquerverweis ausgibt, als erstes Argument benannt ist, ist nicht definiert (angegeben durch X in 66). Der Grund dafür ist, dass die Bedeutung oder Notwendigkeit der Definition nicht herausgefunden werden kann.
- b) Die Inhalte von 67 werden nun beschrieben, die einen Extraktionsbefehl VAR_FWD für einen gerichteten Vorrichtungsabhängigkeitsgraphen zeigt. 67 zeigt nur den Fall des Vorwärtsanalysenbefehls VAR_FWD im Hinblick auf den gerichteten Vorrichtungsabhängigkeitsgraphen. Dieser Punkt ist aus praktischen Gründen aufgeführt und dieselben wie vorstehend beschriebenen Inhalte treffen auch auf den Rückwärtsanalysenbefehl VAR_BWD zu. Ein Variable (Vorrichtung) ist als zweites Argument des Analysenbefehls VAR_FWD benannt. Als erstes Argument des Befehls kann ein Benutzer ein Analysenergebnis einer Programmanalysierfunktion benennen, die durch die Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung verarbeitet wird.
-
In den Inhalten ist ein Fall, in dem eine Gleichungsnummer, die eine Zusammenstellung von POUs ausgibt, als erstes Argument benannt ist, die grundlegendste Verarbeitungsart (angegeben durch ⊙ in 67) des Analysenbefehls VAR_FWD.
-
Andererseits ist auch ein Fall vorstellbar, in dem ein POU-Name direkt als erstes Argument benannt ist. Obwohl der Verarbeitungsablauf in diesem Fall nicht als Ausführungsform in der technischen Beschreibung beschrieben ist, kann im Hinblick auf die Verarbeitungsart in diesem Fall der Mikroprozessor 2, wie in 67 gezeigt, intern einen Analysenbefehl POU_LESE verarbeiten und dann eine Verarbeitung nach der grundlegendsten Verarbeitungsart des Analysenbefehls VAR_FWD durchführen. Konkreter ausgedrückt kann der Mikroprozessor 2 die Verarbeitung in diesem Fall durch eine Kombination zwischen anderen grundlegenden Verarbeitungsarten durchführen (angegeben durch Δ in 67).
-
Der Mikroprozessor 2 kann auch einen Fall, in dem eine Gleichungsnummer, die einen gerichteten POU-Aufrufabhängigkeitsgraphen ausgibt, als erstes Argument benannt ist, durch eine Kombination anderer grundlegender Verarbeitungsarten bewerkstelligen (auch durch Δ in 67 angegeben).
-
Ein Fall, in dem eine Gleichungsnummer, die einen gerichteten Vorrichtungsabhängigkeitsgraphen ausgibt, als erstes Argument benannt ist, ist nicht definiert (angegeben durch X in 67). Der Grund dafür ist, dass die Bedeutung oder Notwendigkeit der Definition nicht herausgefunden werden kann.
-
Ein Fall, in dem eine Gleichungsnummer, die einen Vorrichtungsquerverweis ausgibt, als erstes Argument benannt ist, ist auch nicht definiert (angegeben durch X in 67). Auch hierfür besteht der Grund darin, dass die Bedeutung oder Notwendigkeit der Definition nicht herausgefunden werden kann.
- c) Die Inhalte von 68 werden nachstehend beschrieben, die einen Analysenbefehl POU_LESE zeigt, der eine Zusammenstellung von POUs extrahiert. In diesem Fall ist nichts als zweites Argument des Analysenbefehls POU_LESE benannt. Andererseits kann ein Benutzer als erstes Argument ein Analysenergebnis einer Programmanalysierfunktion benennen, die durch die Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung verarbeitet wird.
-
In den Inhalten ist ein Fall, in dem ein Name einer POU direkt als erstes Argument benannt ist, die grundlegendste Verarbeitungsart (angegeben durch ⊙ in 68) des Analysenbefehls POU_LESE.
-
Ein Fall, in dem eine Gleichungsnummer, die einen Vorrichtungsquerverweis ausgibt, als erstes Argument benannt ist, ist eine grundlegende Verarbeitungsart (angegeben durch O in 68) des Analysenbefehls POU_LESE.
-
Ein Fall, in dem eine Gleichungsnummer, die einen gerichteten POU-Aufrufabhängigkeitsgraphen ausgibt, als erstes Argument benannt ist, ist eine grundlegende Verarbeitungsart (angegeben durch O in 68) des Analysenbefehls POU_LESE.
-
Andererseits kann ein Fall, in dem eine Gleichungsnummer, die einen gerichteten Vorrichtungsabhängigkeitsgraphen ausgibt, als erstes Argument benannt ist, wie in 68 gezeigt in der grundlegenden Verarbeitungsart des Analysenbefehls POU_LESE verarbeitet werden, nachdem der Mikroprozessor 2 den Analysenbefehl VAR_REF intern verarbeitet hat. Konkreter ausgedrückt kann der Mikroprozessor 2 die Verarbeitung in diesem Fall durch eine Kombination zwischen anderen grundlegenden Verarbeitungsarbeiten durchführen (angegeben durch Δ in 68).
-
Ein Fall, in dem eine Gleichungsnummer, die eine Zusammenstellung von POUs ausgibt, als erstes Argument benannt ist, ist nicht definiert (angegeben durch X in 68). Der Grund dafür ist, dass die Bedeutung oder Notwendigkeit der Definition nicht herausgefunden werden kann.
- d) Die Inhalte von 69 werden nachstehend beschrieben, die einen Analysenbefehl POU-FWD zeigt, der einen gerichteten POU-Aufrufabhängigkeitsgraphen zeigt. 69 zeigt nur den Fall des Vorwärtsanalysenbefehls POU_FWD im Hinblick auf den gerichteten POU-Aufrufabhängigkeitsgraphen. Dieselben wie vorstehend beschriebenen Inhalte bestehen auch im Hinblick auf den Analysenbefehl POU_BWD. Ein POU-Name ist als zweites Argument des Analysenbefehls POU_FWD benannt. Als erstes Argument kann ein Benutzer ein Analysenergebnis einer Programmanalysierfunktion benennen, die durch die Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung verarbeitet wird.
-
In den Inhalten ist ein Fall, in dem eine Gleichungsnummer, die eine Zusammenstellung von POUs ausgibt, als erstes Argument benannt ist, die grundlegendste Verarbeitungsart (angegeben durch ⊙ in 69) des Analysenbefehls POU_FWD.
-
Andererseits ist auch ein Fall vorstellbar, in dem ein POU-Name direkt als erstes Argument benannt ist. Obwohl der Verarbeitungsablauf in diesem Fall nicht als Ausführungsform in der technischen Beschreibung beschrieben ist, kann im Hinblick auf die Verarbeitungsart in diesem Fall der Mikroprozessor 2, wie in 69 gezeigt, intern einen Analysenbefehl POU_LESE verarbeiten und dann eine Verarbeitung nach der grundlegenden Verarbeitungsart des Analysenbefehls POU_FWD durchführen. Konkreter ausgedrückt kann der Mikroprozessor 2 die Verarbeitung in diesem Fall durch eine Kombination zwischen anderen grundlegenden Verarbeitungsarten durchführen (angegeben durch Δ in 69).
-
Ein Fall, in dem eine Gleichungsnummer, die eine gerichteten POU-Aufrufabhängigkeitsgraphen ausgibt, als erstes Argument benannt ist, ist nicht definiert (angegeben durch X in 69). Der Grund dafür ist, dass die Bedeutung oder Notwendigkeit der Definition nicht herausgefunden werden kann.
-
Ähnlich ist ein Fall, in dem eine Gleichungsnummer, die einen Vorrichtungsquerverweis ausgibt, als erstes Argument benannt ist, auch nicht definiert (angegeben durch X in 69). Der Grund dafür ist, dass die Bedeutung oder Notwendigkeit der Definition nicht herausgefunden werden kann.
-
Ähnlich ist ein Fall, in dem eine Gleichungsnummer, die einen gerichteten Vorrichtungsabhängigkeitsgraphen ausgibt, als erstes Argument benannt ist, nicht definiert (angegeben durch X in 69). Der Grund dafür ist, dass die Bedeutung oder Notwendigkeit der Definition nicht herausgefunden werden kann.
- e) Schließlich werden noch die Inhalte von 70 beschrieben, die eine Funktion zum Durchführen einer logischen Operation UND an diesen Analysenergebnissen zeigt. Obwohl in 70 nur der Analysenbefehl UND im Hinblick auf die logische Operationsverarbeitung gezeigt ist, gelten dieselben Inhalte auch im Hinblick auf die Analysenbefehle ODER und NICHT, die als weitere logische Operationen dienen.
-
In den Inhalten ist ein Fall, in dem das erste Argument und das zweite Argument dasselbe Datenformat verwenden, die grundlegende Verarbeitungsart (angegeben durch ⊙ in 70) des Analysenbefehls UND. Jedes der Datenformate, die durch die Programmanalysenfunktionsabschnitte der Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung ausgegeben werden, ist irgendeines von Datenformaten, d. h. ein Vorrichtungsquerverweis, eine gerichteter Vorrichtungsabhängigkeitsgraph, eine Zusammenstellung von POUs und ein gerichteter POU-Aufrufabhängigkeitsgraph, und die Verarbeitungsabläufe dieser Fälle sind jeweils in den vorstehend beschriebenen Ausführungsformen offenbart.
-
Andererseits ist auch ein Verfahren vorstellbar, in dem Datenformate des ersten Arguments und des zweiten Arguments nicht definiert sind, wenn sich die Datenformate voneinander unterscheiden. Jedoch kann zum Beispiel eine Benennung eines Analysenbefehls UND, wenn eine Gleichungsnummer, die einen Vorrichtungsquerverweis ausgibt, und eine Gleichungsnummer, die einen gerichteten Vorrichtungsabhängigkeitsgraphen ausgibt, als erstes bzw. zweites Argument benannt sind, auch als die UND-Verarbeitung zwischen dem Vorrichtungsquerverweis des ersten Arguments und dem Vorrichtungsquerverweis interpretiert werden, der sich auf den gerichteten Vorrichtungsabhängigkeitsgraphen des zweiten Arguments bezieht, das als Ergebnis davon extrahiert werden soll. Dies wurde in der Ausführungsform 12 beschrieben. In diesem Fall lässt sich, auch wenn sich das Datenformat des ersten Arguments vom Datenformat des zweiten Arguments unterscheidet, eine Verarbeitung mit der ähnlichsten Interpretation definieren. In der Verarbeitungsart in diesem Fall kann der Mikroprozessor 2 von 1, wie in 70 gezeigt, den Analysenbefehl VAR_REF intern verarbeiten und dann die grundlegende Verarbeitungsart des Analysenbefehls UND ausführen. Konkreter ausgedrückt kann der Mikroprozessor 2 die Verarbeitung in diesem Fall durch eine Kombination zwischen anderen grundlegenden Verarbeitungsarten durchführen (angegeben durch Δ in 70).
-
Es ist auch ein Verfahren vorstellbar, in dem ein Fall, in dem sich das Datenformat des ersten Arguments und das Datenformat des zweiten Arguments voneinander unterscheiden, nicht definiert ist. Allerdings kann der Mikroprozessor 2 von 1, nachdem die Verarbeitung mit der ähnlichsten Interpretation definiert wurde, die Verarbeitung durch eine Kombination anderer grundlegender Verarbeitungsarten durchführen (auch durch Δ in 70 angegeben).
-
Wenn in einem anderen Fall, in dem sich das Datenformat des ersten Arguments vom Datenformat des zweiten Arguments unterscheidet, die Bedeutung oder Notwendigkeit der Definition des Falls nicht herausgefunden werden kann, erfolgt keine Definition in der vorliegenden Erfindung (angegeben durch X in 70).
-
In jeder dieser Verarbeitungen von 70 werden, auch wenn das erste Argument und das zweite Argument umgekehrt benannt sind, das erste Argument und das zweite Argument symmetrisch als dieselbe Interpretation definiert. Wenn jedoch das erste Argument und das zweite Argument asymmetrisch definiert werden müssen, wird davon ausgegangen, dass unterschiedliche Definitionen erfolgen, wenn das erste Argument und das zweite Argument umgekehrt benannt sind.
-
Wie vorstehend beschrieben, ist es ein wichtiger Punkt der vorliegenden Erfindung, dass in der grundlegenden Verarbeitung (Verarbeitung, die in 70 durch ⊙ oder O angegeben ist) des Programmanalysenfunktionsabschnitts im Mikroprozessor 2 von 1 und in der Verarbeitung (Verarbeitung, die in 70 durch Δ angegeben ist), die durch eine Kombination der vorstehenden grundlegenden Verarbeitungen durchgeführt werden kann, die Verarbeitungen definitiv verschieden definiert sind. Obwohl die in 70 durch Δ angegebene Verarbeitung durch die Kombination der durch ⊙ oder O angegebenen Verarbeitung erfolgt, bewegt sich die Verarbeitung keineswegs im Kreis. Wenn die Verhältnisse zusammengestellt werden, ergibt sich ein in 71 gezeigtes Verhältnis.
-
Wenn ein für eine neue Analysierfunktion (Analysenbefehl) verantwortlicher Abschnitt dem Mikroprozessor 2 von 1 hinzugefügt wird, werden in 65 gezeigte Abschnitte (1) bis (7) softwaremäßig definiert. Zuerst wird (1) ein Analysenbefehlsname und (2) eine Art zur Benennung eines zweiten Arguments definiert. In einer Definition von (3) bis (7) werden Verarbeitungen vermerkt, bei denen es sich um eine grundlegende Verarbeitungsart (die ⊙ oder O entspricht) handelt, die durch eine Kombination anderer grundlegender Verarbeitungen (die Δ entsprechen) durchgeführt wird, und für die die Bedeutung oder Notwendigkeit einer Definition nicht herausgefunden werden kann (was X entspricht).
-
Darüber hinaus muss, wenn ein durch die neue Analysierfunktion extrahiertes Datenformat ein neues Datenformat ist, das in der Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung noch nicht verwendet wurde, für ein Analysenergebnis davon eine Funktion zum Definieren logischer UND/ODER/NICHT-Operationen oder eine andere Programmanalyse definiert werden.
-
Deshalb wird ein in 65 definierter Abschnitt (8) softwaremäßig definiert.
-
Für die Definition der Programmanalysierfunktionen der Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung wird eine Definition zu einem neuen Datenformat softwaremäßig hinzugefügt. Konkreter ausgedrückt werden die in 66 bis 69 gezeigten Abschnitte (9) bis (12) definiert.
-
Ein Abschnitt (13) von 70 (logische Operation zwischen neuen Datenformaten) wird softwaremäßeg definiert.
-
Schließlich werden noch Abschnitte (14) und (15) von 70 (logische Operation zwischen dem neuen Datenformat und einem anderen Datenformat) softwaremäßig definiert.
-
Wirkung der Ausführungsform 14
-
- 1) Wenn ein Funktionsabschnitt, der eine neue Analysierfunktion (Analysenbefehl) durchführt, der Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung hinzugefügt wird, wird die Verarbeitung der neuen Analysierfunktion softwaremäßig definiert und dabei der charakteristische Punkt der Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung beibehalten, ohne den charakteristischen Punkt zu beschädigen, um es möglich zu machen, eine Programmanalyse durchzuführen, die durch freies Kombinieren von Programmanalysenbedingungen erfolgt. Auf Grundlage des Analysenergebnisses kann ein Benutzer schnell eine als Editiergegenstand dienende Stelle schnell genau angeben, einen Arbeitsablauf zur genauen Angabe der als Editiergegenstand dienenden Stelle bei einer Änderung von Programmen, der Analyse eines nachteilhaften Funktionsablaufs davon o. dgl. verbessern, und die für den Arbeitsablauf erforderliche Zeit verkürzen.
- 2) Wenn es sich bei einem Datenformat, das durch den Funktionsabschnitt extrahiert wird, der die neue Analysierfunktion ausführt, um eine neues Datenformat handelt, das in der Programmanalysenunterstützungsvorrichtung noch nicht verwendet wurde, werden, um es möglich zu machen, logische UND/ODER/NICHT-Operationen am Analysenergebnis durchzuführen, eine Verarbeitung der neuen Analysierfunktion und eine Verarbeitung der Analysierfunktionen der Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung definiert und dabei der charakteristische Punkt der Pragrammanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung beibehalten, ohne den charakteristischen Punkt zu beschädigen. Aus diesem Grund kann eine Programmanalyse durchgeführt werden, die durch freies Kombinieren von Programmanalysebedingungen erfolgt. Auf Grundlage des Analysenergebnisses kann ein Benutzer schnell eine als Editiergegenstand dienende Stelle schnell genau angeben, einen Arbeitsablauf zur genauen Angabe der als Editiergegenstand dienenden Stelle bei einer Änderung von Pragrammen, der Analyse eines nachteilhaften Funktionsablaufs davon o. dgl. verbessern, und die für den Arbeitsablauf erforderliche Zeit verkürzen.
-
Anhang
-
Wie vorstehend beschrieben, ist die vorliegende Erfindung dazu gedacht, eine Programmanalysenunterstützungsvorrichtung zu realisieren, die Programmanalysenbedingungen frei kombinieren kann. Der charakteristische Punkt der vorliegenden Erfindung ist vergleichbar mit der Suche nach einer Patentschrift, wie es das vorstehend beschriebene System PATOLIS (eingetragener Markenname) tut. Ein unterschiedlicher Punkt zwischen den beiden Systemen ist wie folgt.
-
Konkreter ausgedrückt handelt es sich in der Suche nach einer Patentschrift bei „Wiederholen einer Anwendung einer Suchformel auf einen Bestand, der als Ganzes als ein Satz von Patentschriften dient” und „Ausführen einer logischen Operation an einem Ergebnis der Suche” und dem Bestand, der als Suchgegenstand dient, immer um die Gesamtheit des Satzes von Patentschriften. Andererseits ist die vorliegende Erfindung auch in der Programmanalyse dazu gedacht, eine Wiederholung einer Anwendung „einer Suchformel auf einen Bestand, bei dem es sich um ein ganzes Analysengegenstandsprogramm handelt” und „eine Ausführung einer logischen Operation an einem Ergebnis davon” durchzuführen.
-
Darüber hinaus ist die vorliegende Erfindung dazu gedacht, nicht nur die Tatsache zu erkennen, dass es sich bei einem Bestand, der als Suchgegenstand dient, immer um ein ganzes Analysengegenstandsprogramm, sondern auch „eine Anwendung einer anderen Suchformel auf ein bestimmtes Ergebnis” handelt.
-
Bei der Suche nach einer Patentschrift ist ein Ergebnis, das durch „Anwendung einer Suchformel auf einen Bestand, bei dem es sich um ein Ganzes eines Satzes von Patentschriften handelt” erhalten wird, auch ein Satz von Patentschriften. Jedoch ist in der Programmanalyse ein Ergebnis, das durch „Anwendung einer Suchformel auf einen Bestand, bei dem es sich um ein ganzes Analysengegenstandsprogramm handelt”, erhalten wird, ein Satz verschiedener Datenarten.
-
Deshalb gibt es wie bei der Suche nach einer Patentschrift eine Programmanalyse, die nicht erreicht werden kann, wenn nur „Anwendung einer Suchformel auf einen Bestand” und „Ausführung einer logischen Operation an einem Ergebnis davon” wiederholt wird.
-
Die vorliegende Erfindung macht es möglich, eine „Anwendung einer Suchformel (Analysenbedingungsgleichung) auf einen Bestand”, „Anwendung einer anderen Suchformel auf ein Ergebnis davon” und „Ausführung einer logischen Operation an einem Ergebnis davon” zu wiederholen, um eine gewünschte Programmanalyse durchzuführen.
-
Die Ausführungsformen der vorliegenden Erfindung wurden vorstehend im Einzelnen offenbart und beschrieben. Die vorstehende Beschreibung veranschaulicht Aspekte, auf die die vorliegende Erfindung angewendet werden kann, und die vorliegende Erfindung ist nicht auf die Ausführungsformen beschränkt. Konkreter ausgedrückt lassen sich verschiedene Veränderungen und Modifizierungen an den vorstehenden Aspekten vorstellen, ohne vom Aussagegehalt und Umfang der Erfindung abzuweichen.
-
INDUSTRIELLE ANWENDBARKEIT
-
Zum Beispiel wird die Programmanalysenunterstützungsvorrichtung nach der vorliegenden Erfindung im Hinblick auf ein Messteuerungsprogramm bevorzugt angewendet, das in verschiedenen industriellen Steuerungen wie etwa einer speicherprogrammierbaren Steuerung, einer Bewegungssteuerung, einer Steuerung für eine numerische Steuervorrichtung, einer Prüfvorrichtungssteuerung oder einer Anzeige oder einem Mikrocomputer ausgeführt wird, um den Wirkungsgrad eines Vorgangs zum Analysieren eines älteren Messsteuerungsprogramms zur Entwicklung eines neuen Messsteuerungsprogramms oder eines Vorgangs zum Aufbereiten/Ändern des Programms zu verbessern, wenn ein Messsteuerungsprogramm entwickelt oder ausgetestet wird.
-
Bezugszeichenliste
-
- 1
- Programmanalysenunterstützungsvorrichtung
- 2
- Mikroprozessor
- 3
- Datenspeicher
- 4
- Anzeigeabschnitt
- 5
- Eingabeabschnitt
- 6
- Speicherabschnitt
- 10
- Analysenbedingungseinstellabschnitt
- 11
- Analysenbedingungsausführungsabschnitt
- 12
- Variablenverwendungslistenextraktionsverarbeitungsausführungsabschnitt
- 13
- Variablenabhängigkeitsextraktionsverarbeitungsausführungsabschnitt
- 14
- POU-Listenextraktionsverarbeitungsausführungsabschnitt
- 15
- POU-Abhängigkeitsextraktionsverarbeitungsausführungsabschnitt
- 16
- Analysenergebnislogikverknüpfungverarbeitungsausführungsabschnitt
- 17
- UND-Verarbeitungsausführungsabschnitt
- 18
- ODER-Verarbeitungsausführungsabschnitt
- 19
- NICHT-Verarbeitungsausführungsabschnitt
- 20
- Analysenergebnisanzeigeabschnitt
- 21
- Variablenverwendungslistenanzeigeabschnitt
- 22
- Varibalenabhängigkeitsanzeigeabschnitt
- 23
- POU-Listenanzeigeabschnitt
- 24
- POU-Abhängigkeitsanzeigeabschnitt
- 294
- Bedingungseinstellabschnitt für statisches Ladder-Slicing
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2006-294011 [0010]
- JP 2006-294013 [0010]
-
Zitierte Nicht-Patentliteratur
-
- Norm IEC61131-3 [0002]
- GX Developer Version 8, Operating Manual, Mitsubishi Electric Corporation, Dezember 2008 [0010]
- ”Program slicing technique and application” von Shimomura Takao, KYORITSU SHUPPAN CO., LTD, ISBN4-320-02743-4 [0010]