-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die Erfindung betrifft eine Steuerung und einen Editor und insbesondere betrifft sie eine Steuerung und einen Editor, welche es einem Ladderprogramm ermöglichen, aus einer Endlosschleife herauszukommen. Der Begriff „Steuerung“ beinhaltet hier auch eine Regelung.
-
Zum Stand der Technik
-
Eine Technik, die es einem Ladderprogramm ermöglicht, wiederholt einen bestimmten Prozess auszuführen, ist die Verwendung eines Sprungbefehls („jump instruction“), derart, dass der bestimmte Prozess wiederholt ausgeführt wird, bis eine Ausführungsbedingung für einen Sprungbefehl ungültig wird (nicht erfüllt ist). Derartige Prozess-Techniken werden allgemein als „Schleifenbildung“ („looping“) bezeichnet.
-
5 erläutert ein Beispiel für ein Ladderprogramm, welches einen Schleifenprozess ausführt. Der Schleifenprozess geht von einer net-Nummer 0100 zu einer net-Nummer 0110. Ein net mit der net-Nummer 0100 hat eine Sprungmarke („label“; Sprungziel im Quellcode) 1, und ein Sprungbefehl zur Sprungmarke
1 ist im net mit der net-Nummer 0110 gegeben. Erreicht der Prozess den Sprungbefehl an der net-Nummer 0110, geht der Prozess zurück zur Sprungmarke
1, um den gerade durchgeführten Prozess neu zu starten. Eine Ausführungsbedingung (in der Figur mit gestrichelten Linien eingeschlossen) ist unmittelbar vor dem Sprungbefehl an der net-Nummer 0110 vorgesehen. Ist die Ausführungsbedingung ungültig, führt das Programm den Sprungbefehl nicht aus und kommt aus der Schleife heraus. Beim Beispiel nach
5 wird der Sprungbefehl ausgeführt, wenn die nachfolgende logische Gleichung (1) richtig („true“) ist, während der Sprungbefehl nicht ausgeführt wird, wenn die nachfolgende logische Gleichung (1) falsch („false“) ist:
-
Hat der Aufbau des Schleifenprozesses einen Fehler, kann der Prozess im Ladderprogramm in einer Endlosschleife steckenbleiben, ohne aus der Schleife auszusteigen. Eine derartige Endlosschleife ist schwer zu detektieren, bevor das Ladderprogramm ausgeführt wird.
-
Die offengelegte
japanische Patentanmeldung 07-210218 beschreibt ein System, welches detektiert, ob ein Ladderprogramm zum Zeitpunkt der Ausführung des Ladderprogramms in einer Endlosschleife steckt, schätzt den Ort des Auftretens der Endlosschleife ab und zeigt den Ort der Ursache auf einer Anzeigeeinrichtung.
-
Die offengelegte
japanische Patentanmeldung 07-210218 zeigt zwar ein Verfahren zum Detektieren einer Endlosschleife, zeigt jedoch kein Verfahren zum Aussteigen (Entkommen) aus der Endlosschleife. Ist ein Prozess in einer Endlosschleife bei Ausführung des Ladderprogramms hängengeblieben, kann das Ladderprogramm der Schleife nicht entkommen. Dies kann die regelgerechte Steuerung einer Maschine stören.
-
Die vorliegende Erfindung dient der Überwindung des obigen Problems und hat zum Ziel die Bereitstellung einer Steuerung und eines Editors, welche es einem Ladderprogramm ermöglichen, aus einer Endlosschleife zu entkommen.
-
KURZBESCHREIBUNG DER ERFINDUNG
-
Gemäß einer Merkmalskombination bezüglich einer erfindungsgemäßen Steuerung kann eine Steuerung einen Schleifenprozess detektieren, der bei Ausführung eines Ladderprogramms in einer Endlosschleife steckt. Die Steuerung enthält eine Endlosschleifen-Ausstiegseinheit zum Entkommen aus der Endlosschleife durch zwangsweise Einstellung einer Ausführungsbedingung für einen Sprungbefehl auf „falsch“, wenn die Endlosschleife auftritt, wobei der Sprungbefehl in dem Schleifenprozess enthalten ist.
-
Gemäß einer Merkmalskombination der erfindungsgemäßen Steuerung steigt die Endlosschleifen-Ausstiegseinheit aus der Endlosschleife aus durch Rückgriff auf eine Endlosschleifen-Auftrittsbedingungen-Informationstabelle, in der zumindest ein Zustand eines Ausführungsbedingungssignals bei normaler Ausführung des Schleifenprozesses aufgezeichnet wird und durch zwangsweises Überschreiben des laufenden Ausführungsbedingungssignals mit dem Ausführungsbedingungssignal für die normale Beendigung.
-
Gemäß einer Merkmalskombination der Steuerung gemäß der Erfindung entkommt die Endlosschleifen-Ausstiegseinheit der Endlosschleife durch zwangsweises Überschreiben des Signalzustandes eines geschlossenen Kontaktes in dem Sprungbefehl.
-
Gemäß einer Merkmalskombination hat die erfindungsgemäße Steuerung weiterhin eine Endlosschleifen-Detektionseinheit zum Aufzeichnen des Ausführungsbedingungssignals des Schleifenprozesses, welches die Endlosschleife verursachen kann, in einer Endlosschleifen-Auftrittsbedingungen-Informationstabelle.
-
Gemäß einer Merkmalskombination enthält die erfindungsgemäße Steuerung weiterhin eine Endlosschleifen-Detektionseinheit zum Aufzeichnen des Zustandes des Ausführungsbedingungssignals bei Normalabschluss des Schleifenprozesses in der Endlosschleifen-Auftrittsbedingungen-Informationstabelle während der Ausführung des Ladderprogrammes.
-
Gemäß einer Merkmalskombination ist ein Editor gemäß der Erfindung eingerichtet für die Edition eines Ladderprogrammes. Der Editor enthält eine Endlosschleifen-Detektionseinheit zum Aufzeichnen eines Ausführungsbedingungssignals bezüglich eines Schleifenprozesses, welches die Endlosschleife verursachen kann, in einer Endlosschleifen-Auftrittsbedingungen-Informationstabelle.
-
Die Erfindung stellt somit eine Steuerung und einen Editor bereit, welche es einem Ladderprogramm ermöglichen, aus einer Endlosschleife zu entkommen.
-
Figurenliste
-
Obige sowie weitere Ziele und Merkmale der Erfindung werden noch deutlicher aus der nachfolgenden Beschreibung von Ausführungsbeispielen mit Blick auf die Figuren:
- 1 zeigt den Hardware-Aufbau einer Steuerung;
- 2 zeigt den Hardware-Aufbau eines Editors;
- 3 ist ein funktionales Blockdiagramm zur Erläuterung der Steuerung und des Editors;
- 4 erläutert mit einem Flussdiagramm einen Prozess, der von dem Editor bei Kompilierung eines Ladderprogramms ausgeführt wird;
- 5 erläutert einen Schleifenprozess und einen Prozess zur Detektion eines Sprungbefehls;
- 6 erläutert mit einem Flussdiagramm eine Detektion einer Endlosschleife;
- 7 erläutert die Detektion der Endlosschleifenbedingung;
- 8 zeigt ein Beispiel für eine Endlosschleifen-Auftrittsbedingungen-Informationstabelle;
- 9 ist ein Flussdiagramm zur Erläuterung eines Prozesses, welcher in der Steuerung bei Ausführung eines Ladderprogramms abläuft;
- 10 zeigt ein Beispiel für eine Endlosschleifen-Auftrittsbedingungen-Informationstabelle;
- 11 erläutert einen Ausstiegsprozess; und
- 12 erläutert ebenfalls einen Ausstiegsprozess.
-
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSBEISPIELE IM EINZELNEN
-
Die 1 und 2 zeigen schematisch Hardware-Konfigurationen zur Erläuterung der hauptsächlichen Komponenten einer Steuerung 1 und eines Editors 2 gemäß einem ersten Ausführungsbeispiel der Erfindung. Die Steuerung 1 liest beispielsweise ein Ladderprogramm und steuert eine industrielle Maschine, einen Roboter oder dergleichen (nachfolgend der Einfachheit halber als „Maschine“ bezeichnet). Beispiele für die Steuerung 1 sind eine speicherprogrammierbare Steuerung (PLC; Programmable Logic Controller), eine numerische Steuerung mit einer PLC-Funktion oder dergleichen. Der Begriff „Steuerung“ beinhaltet hier auch eine Regelung. Die Steuerung 1 enthält eine CPU 11, einen ROM 12, einen RAM 13, einen nicht-flüchtigen Speicher 14, eine Schnittstelle 18, eine Schnittstelle 19, einen Bus 10, eine Achsen-Steuerschaltung 16 und einen Servoverstärker 17. Die Steuerung 1 ist mit einem Servomotor 50, einem Steuerungsbedienfeld 60 und dem Editor 2 verbunden.
-
Die CPU 11 ist ein Prozessor, welcher die Steuerung 1 insgesamt steuert. Die CPU 11 liest ein in dem ROM 12 abgespeichertes Systemprogramm über den Bus 10 und steuert die gesamte Steuerung entsprechend dem Systemprogramm.
-
Der ROM 12 enthält Systemprogramme, welche im Voraus abgespeichert sind zur Ausführung von beispielsweise verschiedenen Steuerungen bezüglich der Maschine.
-
Der RAM 13 speichert zeitweise Rechendaten oder Anzeigedaten, Daten, die über das Steuerungsbedienfeld 60 durch eine Bedienungsperson eingegeben werden, was weiter unten näher beschrieben wird, und dergleichen.
-
Der nicht-flüchtige Speicher 14 hält den Speicherzustand unter Einsatz von beispielsweise einer nicht dargestellten Batterie aufrecht, auch wenn die Energieversorgung für die Steuerung 1 abgeschaltet ist. Der nicht-flüchtige Speicher 14 speichert über das Steuerungsbedienfeld 60 eingegebene Daten, vom Editor 2 über die Schnittstelle 19 eingegebene Ladderprogramme oder dergleichen (Ladderprogramm : Kontaktplan bei Programmierung von speicherprogrammierbaren Steuerungen). Derartige, in dem nicht-flüchtigen Speicher 14 abgelegte Programme und Daten können bei Ausführung in den RAM 13 geladen werden.
-
Die Achsensteuerschaltung 16 steuert den Betrieb der Achsen der Maschine. Die Achsensteuerschaltung 16 empfängt einen angewiesenen Befehlsbetrag bezüglich der Bewegung der Achse gemäß einer Ausgabe von der CPU und gibt einen Achsenbewegungsbefehl an den Servoverstärker 17.
-
Der Servoverstärker 17 empfängt den von der Achsensteuerschaltung 16 ausgegebenen Achsenbewegungsbefehl und treibt den Servomotor 50 an.
-
Der Servomotor 50 wird vom Servoverstärker 17 angetrieben, um die Arbeitsachse der Maschine zu bewegen. Der Servomotor 50 hat einen internen Positions- und Geschwindigkeitsdetektor. Der Positions- und Geschwindigkeitsdetektor gibt ein Positions- und Geschwindigkeitsrückmeldungssignal ab. Dieses Signal wird in die Achsensteuerschaltung 16 zurückgeführt. Damit wird die Positions- und Geschwindigkeitsregelung ausgeführt.
-
Angemerkt sei, dass 1 nur eine Achsensteuerschaltung 16, einen Servoverstärker 17 und einen Servomotor 50 zeigt, jedoch ist tatsächlich die gleiche Anzahl von Achsensteuerschaltungen 16, Servoverstärkern 17 und Servomotoren 50 gegeben wie die Anzahl der zu steuernden beträgt. Wird beispielsweise ein Roboter mit sechs Achsen gesteuert, dann sind insgesamt sechs Sätze von Achsensteuerschaltungen 16, Servoverstärkern 17 und Servomotoren 50 entsprechend der jeweiligen Achsen vorgesehen.
-
Das Steuerbedienfeld 60 ist eine Dateneingabe-Datenausgabeeinrichtung einschließlich einer Anzeigevorrichtung, einer Tastatur etc. Das Steuerbedienfeld 60 zeigt von der CPU 11 über die Schnittstelle 18 empfangene Informationen auf der Anzeigeeinrichtung an. Das Steuerbedienfeld 60 gibt über die Schnittstelle 18 Befehlsdaten oder dergleichen, welche über die Tastatur oder dergleichen eingegeben worden sind.
-
Die Schnittstelle 19 ist eine Kommunikationsschnittstelle zum Verbinden der Steuerung 1 und des Editors 2.
-
Der Editor 2 ist eine Datenverarbeitungsvorrichtung mit Funktionen zur Erzeugung und Editierung eines Ladderprogramms. Beispielsweise ist der Editor 2 ein sogenannter Personalcomputer (PC). Der Editor 2 hat eine CPU 21, einen ROM 22, einen RAM 23, einen nicht-flüchtigen Speicher 24, eine Schnittstelle 28, eine Schnittstelle 29 und einen Bus 20. Der Editor 2 ist mit einer Eingabe-/Ausgabeeinrichtung 70 und der Steuerung 1 verbunden.
-
Die CPU 21 ist ein Prozessor, welcher den Editor 2 insgesamt steuert. Die CPU 21 empfängt ein Systemprogramm, welches in dem ROM 22 gespeichert ist, über den Bus 20 und steuert den gesamten Editor 2 entsprechend dem Systemprogramm.
-
Der ROM 22 beinhaltet Systemprogramme, welche im Voraus abgespeichert sind, um die verschiedenen Funktionen des Editors 2 auszuführen.
-
Der RAM 23 speichert zeitweise Rechendaten oder Anzeigedaten, Daten, die durch eine Bedienungsperson über die Eingabe-/Ausgabeeinrichtung 70 eingegeben werden, was weiter unten noch näher beschrieben wird, und dergleichen.
-
Der nicht-flüchtige Speicher 24 behält seinen Speicherzustand unter Einsatz beispielsweise einer nicht dargestellten Batterie als Stütze für den Speicher bei, wenn die Stromversorgung für den Editor 2 abgeschaltet ist. Der nicht-flüchtige Speicher 24 speichert ein Werkzeug (Programm) zum Editieren eines Ladderprogramms, wobei Ladderprogramme erzeugt werden oder mit dem Editierwerkzeug oder dergleichen editiert werden. Derartige Programme und Daten, die in dem nicht-flüchtigen Speicher 24 abgelegt sind, werden zur Zeit ihrer Ausführung oder ihres Einsatzes in den RAM 23 geladen.
-
Die Eingabe-/Ausgabeeinrichtung 70 hat eine Anzeigeeinrichtung und eine Tastatur. Die Eingabe-/Ausgabeeinrichtung 70 zeigt über die Schnittstelle 28 empfangene Informationen von der CPU 21 auf einer Anzeigeeinrichtung. Die Eingabe-/Ausgabeeinrichtung 70 leitet Daten oder dergleichen, die über die Tastatur oder dergleichen eingegeben sind, über die Schnittstelle 28 zu der CPU 21.
-
Die Schnittstelle 29 ist eine Kommunikationsschnittstelle zum Verbinden des Editors 2 und der Steuerung 1.
-
3 zeigt mit einem funktionalen Blockdiagramm die Steuerung 1 und den Editor 2 des ersten Ausführungsbeispieles. Die Steuerung 1 enthält eine Ladderprogramm-Ausführungseinheit 101 und eine Endlosschleifen-Ausstiegseinheit 102. Der Editor 2 enthält eine Endlosschleifen-Detektionseinheit 201. Die Ladderprogramm-Ausführungseinheit 101, die Endlosschleifen-Ausstiegseinheit 102 und die Endlosschleifen-Detektionseinheit 201 können beispielsweise als Funktionen der CPU 11 oder der CPU 21 realisiert sein. Beispielsweise werden die Ladderprogramm-Ausführungseinheit 101, die Endlosschleifen-Ausstiegseinheit 102 und die Endlosschleifen-Detektionseinheit 201 durch die CPU 11 oder 21 realisiert, welche ein Programm ausführt, das in dem ROM 12, dem ROM 22, dem RAM 13, dem RAM 23, dem nicht-flüchtigen Speicher 14 oder dem nicht-flüchtigen Speicher 24 gespeichert ist.
-
Die Endlosschleifen-Detektionseinheit 201 ist beispielsweise als eine Funktion eines Ladderprogramm-Kompilers des Editors 2 implementiert. Die Endlosschleifen-Detektionseinheit 201 identifiziert eine Ausführungsbedingung für einen Sprungbefehl, verschiedene Signale (nachfolgend als Ausführungsbedingungssignale bezeichnet), die in der Ausführungsbedingung enthalten sind, und Abschnitte, welche die verschiedenen Signale steuern, beispielsweise bei Kompilierung eines Ladderprogramms (Quellcode). Die Endlosschleifen-Detektionseinheit 201 zeichnet derartige Informationen in einer Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 auf.
-
Die Endlosschleifen-Detektionseinheit 201 dieses Ausführungsbeispieles baut Informationen, welche die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 repräsentieren, in den Objektcode eines Ladderprogramms ein. Beispielsweise fügt die Endlosschleifen-Detektionseinheit 201 die Informationen, welche die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 repräsentieren, am Ende oder irgendwo im Objectcode dazu. Die Endlosschleifen-Detektionseinheit 201 überträgt den Objektcode in den nicht-flüchtigen Speicher 14 oder dergleichen der Steuerung 1.
-
Angemerkt sei, dass die Endlosschleifen-Detektionseinheit 201 auch die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 in einer anderen Datei speichern kann, die mit dem Objektcode verknüpft ist, und die Datei und den Objektcode zu der Steuerung 1 übertragen kann. Andererseits kann die Endlosschleifen-Detektionseinheit 201 den Objektcode oder die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 in einem frei wählbaren Speicherbereich (irgendwo in der Steuerung 1, dem Editor 2, oder einer anderen Einrichtung) abspeichern, welcher für die Steuerung 1 zugänglich ist. Beim vorliegenden Ausführungsbeispiel hat die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 eine Daten-Tabellen-Struktur, jedoch kann die Information auch mit einer anderen, frei wählbaren Datenstruktur abgespeichert werden (beispielsweise in einer Baum-Struktur oder dergleichen).
-
Die Ladderprogramm-Ausführungseinheit 101 ruft den Objektcode des Ladderprogramms, welcher beispielsweise in den nicht-flüchtigen Speicher 14 übertragen wurde, auf und führt ihn aus.
-
Die Endlosschleifen-Ausstiegseinheit
102 überwacht die Zustände des Ausführungsbedingungssignals für den Sprungbefehl, während das Ladderprogramm durch die Ladderprogramm-Ausführungseinheit
101 ausgeführt wird. Die Endlosschleifen-Ausstiegseinheit
102 prüft, ob der Prozess in einer Endlosschleife steckt (siehe offengelegte
japanische Patentanmeldung 07-210218 ) und dann, wenn der Prozess in einer Endlosschleife steckt, wird dieser Umstand als Information nach außen gegeben. Die Endlosschleifen-Ausstiegseinheit
102 führt einen Prozess zum Aussteigen aus der Endlosschleife aus.
-
Ein in dem Editor 2 ausgeführter Prozess bei Kompilierung eines Ladderprogramms wird nunmehr mit Blick auf das Flussdiagramm nach 4 näher beschrieben.
-
<Detektion eines Sprungbefehls, welcher eine Endlosschleife verursachen kann>
-
Unter Bezugnahme auf das Flussdiagramm nach 4 und die Darstellung in 5 wird ein Prozess zum Detektieren eines Sprungbefehls, welcher eine Endlosschleife verursachen könnte, näher beschrieben.
-
S101: Die Endlosschleifen-Detektionseinheit 201 führt den nachfolgenden Prozess von Schritt S102 zu Schritt S104 für alle nets im Ladderprogramm (Quellcode) aus.
-
Insbesondere wiederholt die Endlosschleifen-Detektionseinheit 201 den nachfolgenden Prozess von Schritt S102 zu Schritt S104 in der Reihenfolge vom obersten net zum letzten net.
-
S102: Die Endlosschleifen-Detektionseinheit 201 ermittelt, ob das net einen Sprungbefehl beinhaltet. Enthält das net einen Sprungbefehl, geht die Endlosschleifen-Detektionseinheit 201 zum Prozess gemäß Schritt S103. Enthält das gerade geprüfte net keinen Sprungbefehl, geht die Endlosschleifen-Detektionseinheit 201 zur Verarbeitung des nächsten nets.
-
Beim Beispiel nach 5 enthält das net mit der net-Nummer 0110 einen Sprungbefehl.
-
S103: Die Endlosschleifen-Detektionseinheit 201 vergleicht die net-Nummer des nets mit dem Sprungbefehl mit der net-Nummer des nets mit einer Sprungmarke (Sprungziel) in dem Sprungbefehl. Ist die net-Nummer des nets mit dem Sprungbefehl größer als die net-Nummer des nets mit der Sprungmarke, stellt die Endlosschleifen-Detektionseinheit 201 fest, dass dieser Sprungbefehl einen Schleifenprozess bestimmt, das heißt, dass dieser Sprungbefehl eine Endlosschleife verursachen kann und der Prozess geht zu Schritt S104. Andernfalls bringt die Endlosschleifen-Detektionseinheit 201 den Prozess zum nächsten net.
-
Beim Beispiel gemäß 5 vergleicht die Endlosschleifen-Detektionseinheit 201 die net-Nummer 0110 eines nets mit einem Sprungbefehl und die net-Nummer 0100 eines nets mit der Sprungmarke 1, also ein Sprungziel gemäß dem Sprungbefehl. Da der Wert von 0110, repräsentiert durch die net-Nummer 0110, größer ist als der Wert von 0100, repräsentiert durch die net-Nummer 0100, wird festgestellt, dass dieser Sprungbefehl einen Schleifenprozess bestimmt, das heißt, dass dieser Sprungbefehl eine Endlosschleife verursachen könnte. Allgemein gilt: wenn der Prozess in eine Richtung springt (in Richtung abnehmender net-Nummern), entgegen der Prozessrichtung der Ladder, wird festgestellt, dass ein Schleifenprozess vorliegt.
-
Beim Beispiel nach 5 ist eine Ausführungsbedingung (der mit gestrichelten Linien umfasste Bereich) unmittelbar vor dem Sprungbefehl definiert und der Schleifenprozess wird fortgesetzt, bis die Ausführungsbedingung „falsch“ wird.
-
S104: Die Endlosschleifen-Detektionseinheit 201 führt einen Detektionsprozess bezüglich einer Endlosschleifen-Bedingung aus.
-
< Endlosschleifen-Bedingungs-Detektionsprozess>
-
Der Detektionsprozess für die Endlosschleifen-Bedingung gemäß Schritt S104 wird nunmehr im Einzelnen mit Blick auf das Flussdiagramm gemäß 6 und die Darstellungen in den 5 und 7 näher beschrieben.
-
S201: Die Endlosschleifen-Detektionseinheit 201 zeichnet die net-Nummer des nets mit dem Sprungbefehl und eine Ausführungsbedingung für den Sprungbefehl auf. Beispielsweise zeichnet die Endlosschleifen-Detektionseinheit 201 als Ausführungsbedingung zumindest ein Ausführungsbedingungssignal auf, welches in der Ausführungsbedingung enthalten ist und dann, wenn zwei oder mehr Ausführungsbedingungssignale darin enthalten sind, eine logische Gleichung oder dergleichen, welche die Beziehung zwischen den Ausführungsbedingungssignalen darstellt. Die Endlosschleifen-Detektionseinheit 201 speichert zeitweise diese Informationen in dem RAM 23.
-
Beim in 5 gezeigten Beispiel ist die mit gestrichelten Linien umrandete Schaltung die Ausführungsbedingung. Diese Ausführungsbedingung enthält R0001.0, F0000.5 und X0000.0 als Ausführungsbedingungssignal. Die Beziehung zwischen diesen Ausführungsbedingungssignalen wird durch die oben gegebene logische Gleichung (1) dargestellt.
-
S202: Die Endlosschleifen-Detektionseinheit 201 führt den Prozess von den Schritten S203 bis S205 für alle im Schritt S201 aufgezeichneten Ausführungsbedingungssignale aus.
-
S203: Die Endlosschleifen-Detektionseinheit 201 sucht das Ladderprogramm ab und prüft, ob das Bedingungsausführungssignal innerhalb der Schleife gesteuert wird. Wird das Bedingungsausführungssignal in der Schleife gesteuert, geht die Endlosschleifen-Detektionseinheit 201 zum Prozess gemäß Schritt S204. Ist das Ausführungsbedingungssignal nicht in der Schleife gesteuert, geht die Endlosschleifen-Detektionseinheit 201 im Prozess zu Schritt S205.
-
Bei dem Beispiel gemäß 7 wird in der Schleife der Wert des Ausführungsbedingungssignals R0001.0 (mit gestrichelten Linien umgebener Bereich), welches als Ausführungsbedingung in einem net mit der net-Nummer 0110 eingesetzt wird, durch ein net mit der net-Nummer 0101 gesteuert. Das net mit der net-Nummer 0101 steuert das Ausführungsbedingungssignal R0001.0 so, dass das Ausführungsbedingungssignal R0001.0 auf EIN gestellt werden kann, wenn der Wert von D0000 größer ist als 100.
-
S204: Die Endlosschleifen-Detektionseinheit 201 zeichnet die net-Nummer des nets auf, welche das Ausführungsbedingungssignal steuert.
-
Beim Beispiel gemäß 7 wird die net-Nummer 0101 des nets, welches das Ausführungsbedingungssignal R0001.0 steuert, aufgezeichnet.
-
S205: Die Endlosschleifen-Detektionseinheit 201 zeichnet Informationen auf, die anzeigen, dass das Ausführungsbedingungssignal nicht in der Schleife gesteuert wird.
-
Beim Beispiel gemäß 7 ist das Ausführungsbedingungssignal F0000.5 ein Signal (was die Steuerung 1 von außerhalb des Ladderprogramms gewinnen kann), welches den Status einer automatischen Ausführung anzeigt und das Ausführungsbedingungssignal X0000.0 ist ein von dem Steuerbedienfeld 60 eingegebenes Signal. In diesem Falle wird aufgezeichnet, dass sowohl das Ausführungsbedingungssignal F0000.5 als auch X0000.0 nicht in der Schleife gesteuert werden.
-
<Erzeugung der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301>
-
Mit Bezug auf das Flussdiagramm gemäß 4 wird nunmehr ein Prozess näher beschrieben, der ausgeführt wird, nachdem im Ladderprogramm (Quellcode) der Prozess von den Schritten S102 zu S104 für alle nets ausgeführt worden ist.
-
S105: Die Endlosschleifen-Detektionseinheit 201 prüft, ob der Endlosschleifen-Bedingungsdetektionsprozess (S104) jemals bis zu diesem Punkt ausgeführt worden ist oder nicht. Ist der Endlosschleifen-Bedingungsdetektionsprozess jemals ausgeführt, geht die Endlosschleifen-Detektionseinheit 201 zum Prozessschritt S106. Ist der Endlosschleifen-Bedingungsdetektionsprozess niemals ausgeführt worden, geht die Endlosschleifen-Detektionseinheit 201 zum Prozessschritt S109.
-
S106: Die Endlosschleifen-Detektionseinheit 201 erzeugt die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 auf Basis der Informationen, die in dem RAM 23 oder dergleichen in Schritt S104 aufgezeichnet sind.
-
8 zeigt ein Beispiel für eine Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301. Beim in 8 gezeigten Beispiel ist die net-Nummer eines nets, welches den Sprungbefehl enthält, welcher eine Endlosschleife verursachen kann, verknüpft mit zumindest einem Ausführungsbedingungssignal, einer Ursache (das heißt, eine Ausführungsbedingung; wobei eine logische Gleichung bei diesem Beispiel aufgezeichnet wird, welche die Beziehung zwischen Ausführungsbedingungssignalen darstellt) für die Endlosschleife, und mit der net-Nummer (befindet sich in der Schleife kein Steuerungsbereich, wird der Satz „ohne Überschreibung in der Schleife“ geschrieben) eines nets, welches die zumindest eine Ausführungsbedingung steuert.
-
S107: Die Endlosschleifen-Detektionseinheit 201 gibt einer Bedienungsperson eine Warnung, beispielsweise durch Darstellung des Ergebnisses, welches gewonnen wird durch Kompilierung des Ladderprogramms und einiger oder aller Inhalte der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 auf einer Anzeigeeinheit der Eingabe-/Ausgabeeinrichtung 70.
-
S108: Die Endlosschleifen-Detektionseinheit 201 bettet Informationen bezüglich der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 in den Objektcode des Ladderprogramms. Beispielsweise fügt die Endlosschleifen-Detektionseinheit 201 Binär-Daten oder dergleichen, welche die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 repräsentieren, am Ende des Objektcodes hinzu. Die Endlosschleifen-Detektionseinheit 201 sendet über die Schnittstelle 29 den Objektcode mit den Informationen bezüglich der Endlosschleifen-Auftrittsbedingungen-Informationstabelle darin zu der Steuerung 1.
-
Die Steuerung 1 empfängt den Objektcode mit den darin eingebetteten Informationen bezüglich der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 und speichert den so empfangenen Objektcode in dem nicht-flüchtigen Speicher 14.
-
S109: Die Endlosschleifen-Detektionseinheit 201 sendet den Objektcode des Ladderprogramms über die Schnittstelle 29 zur Steuerung 1.
-
Die Steuerung 1 empfängt über die Schnittstelle 19 den Objektcode und speichert den empfangenen Objektcode im nicht-flüchtigen Speicher 14.
-
Ein in der Steuerung 1 bei Ausführung des Ladderprogramms ausgeführter Prozess wird nunmehr mit Blick auf das Flussdiagramm gemäß 9 näher beschrieben.
-
< Endlosschleifenbestimmung >
-
Mit Blick auf das Flussdiagramm nach 9 und die Darstellung gemäß 7 wird nunmehr ein Prozess zum Detektieren einer Endlosschleife näher beschrieben.
-
Die Ladderprogramm-Ausführungseinheit 101 entnimmt dem nicht-flüchtigen Speicher 14 den vom Editor 2 in Schritt S108 empfangenen Objektcode, wobei der Objektcode die Informationen beinhaltet, welche die darin eingebettete Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 repräsentieren, und führt den Objektcode aus. Die Endlosschleifen-Ausstiegseinheit 102 überwacht den Status der Ausführung des Objektcodes und führt den Prozess gemäß Schritt S301 bei jeder Ausführung eines Befehls aus.
-
S301: Der Schritt S301 ist ein Prozess, der ausgeführt wird, wenn der Schleifenprozess gestartet wird. Die Endlosschleifen-Ausstiegseinheit 102 ermittelt, ob ein Sprungbefehl, der in der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 aufgezeichnet ist, ausgeführt worden ist. Wurde ein in der Endlosschleifen-Auf-Informationstabelle 301 aufgezeichneter Sprungbefehl ausgeführt, geht die Endlosschleifen-Ausstiegseinheit 102 zum Prozess gemäß Schritt S302.
-
S302: Ist der Prozess fortgeschritten zu einem net mit dem in der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 aufgezeichneten Sprungbefehl, ermittelt die Endlosschleifen-Ausstiegseinheit 102, ob eine Ausführungsbedingung für den Sprungbefehl „richtig“ (gültig) ist. Ist die Ausführungsbedingung für den Sprungbefehl richtig, geht die Endlosschleifen-Ausstiegseinheit 102 zum Prozess gemäß Schritt S304. Ist die Ausführungsbedingung für den Sprungbefehl „falsch“, geht die Endlosschleifen-Ausstiegseinheit 102 im Prozess zu Schritt S303.
-
S303: S303 ist ein Prozess, der ausgeführt wird, wenn der Schleifenprozess normal abgeschlossen ist. Die Endlosschleifen-Ausstiegseinheit 102 zeichnet die laufenden Zustände (für die Zeit, in der die Ausführungsbedingungen für den Sprungbefehl in Schritt S302 auf „falsch“ erkannt ist) der Ausführungsbedingungssignale in der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 auf.
-
10 erläutert ein Beispiel für eine Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 mit den Zuständen der Ausführungsbedingungssignale, die darin aufgezeichnet sind. Die Zustände der Ausführungsbedingungssignale werden als „Signalzustand bei normaler Beendigung“ aufgezeichnet.
-
S304: S304 ist ein Prozess, der ausgeführt wird, wenn der Schleifenprozess fortgesetzt wird. Die Endlosschleifen-Ausstiegseinheit
102 ermittelt, ob der Schleifenprozess in einer Endlosschleife steckt unter Verwendung der Techniken gemäß dem Stand der Technik (siehe offengelegte
japanische Patentanmeldung 07-210218 ). Gemäß dem in der offengelegten
japanischen Patentanmeldung 07-210218 beschriebenen Verfahren stellt die Endlosschleifen-Ausstiegseinheit
102 fest, dass der Prozess in einer Endlosschleife steckt, wenn die Abtastzeitspanne die Auszeit des Laufzeitüberwachers überschreitet, und startet einen Programmzähler. Die Endlosschleifen-Ausstiegseinheit
102 zeichnet die Anzahl der Abtastungen für jede einzelne Adresse auf und identifiziert einen Ort, wo die Endlosschleife auftritt auf Basis der Verteilung der Anzahl der Abtastungen bezüglich der net-Nummer des die jeweilige Adresse enthaltenden nets. Steckt der Prozess in einer Endlosschleife, geht die Endlosschleifen-Ausstiegseinheit
102 im Prozess zu Schritt
S306. Steckt der Prozess nicht in einer Endlosschleife, geht die Endlosschleifen-Ausstiegseinheit
102 im Prozess zu Schritt
S305.
-
S305: S305 ist ein Prozess, der ausgeführt wird, wenn der Schleifenprozess normal beendet wird. Die Endlosschleifen-Ausstiegseinheit 102 zeichnet die laufenden Zustände (wenn in Schritt S104 ermittelt wurde, dass der Prozess nicht in einer Endlosschleife steckt) der Ausführungsbedingungssignale in die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 auf.
-
10 erläutert ein Beispiel für eine Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 mit darin aufgezeichneten Zuständen der Ausführungsbedingungssignale. Die Zustände der Ausführungsbedingungssignale werden als „Signalzustand während der Schleife“ aufgezeichnet.
-
S306: Der Schritt S306 ist ein Prozess, der ausgeführt wird, wenn der Prozess in einer Endlosschleife steckt. Die Endlosschleifen-Ausstiegseinheit 102 zeigt die nachfolgenden Informationen auf einer Anzeigeeinrichtung des Steuerbedienfeldes 60 der Steuerung 1, um die Bedienungsperson über das Auftreten einer Endlosschleife zu unterrichten (zu warnen):
- - der Ort des Auftretens der Endlosschleife gemäß Detektion in Schritt S304,
- - Inhalte der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301, wie beispielsweise
- - Abschnitte, welche die Ausführungsbedingungssignale für den Sprungbefehl steuern,
- - die Zustände der Ausführungsbedingungssignale (Signalzustand bei normaler Beendigung, Signalzustand in Endlosschleife).
-
S307: Die Endlosschleifen-Ausstiegseinheit 102 führt einen Ausstiegsprozess aus (weiter unten näher beschrieben), um den Zustand in der Endlosschleife zwangsweise zu beenden.
-
S308: Die Endlosschleifen-Ausstiegseinheit 102 bringt vorzugsweise die Maschine in einen Zustand mit Notstopp. Dies fördert die Sicherheit.
-
<Ausstieg aus einer Endlosschleife>
-
Der Ausstiegsprozess gemäß Schritt S307 wird nun im Einzelnen beschrieben.
-
Mit Blick auf 11 wird nunmehr ein erster Ausstiegsprozess beschrieben.
-
Die Endlosschleifen-Ausstiegseinheit 102 greift auf die Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 und vergleicht die Zustände der Ausführungsbedingungssignale bei normaler Beendigung und die Zustände der Ausführungsbedingungssignale in einer Endlosschleife. Damit wird das Ausführungsbedingungssignal (der mit gestrichelten Linien gezeigte Bereich) identifiziert, welches eine Endlosschleife verursacht hat.
-
Die Endlosschleifen-Ausstiegseinheit 102 überschreibt zwangsweise die Zustände der Ausführungsbedingungssignale mit einer Endlosschleifen-Stoppbedingung, das heißt, den Signalzuständen bei normaler Beendigung. Dadurch wird die Ausführungsbedingung für den Sprungbefehl „falsch“ und dies ermöglicht den Ausstieg aus der Endlosschleife.
-
Beispielsweise seien gemäß 10 die Zustände der Ausführungsbedingungssignale in der Endlosschleife R0001.0=AUS, F0000.5=EIN und X0000.0=AUS und die Zustände der Ausführungsbedingungssignale bei normaler Beendigung seien R0001.0_EIN, F0000.5=EIN und X0000.0=AUS. In diesem Fall überschreibt die Endlosschleifen-Ausstiegseinheit 102 zwangsweise die Zustände der Ausführungsbedingungssignale mit R0001.0=EIN, F0000.5=EIN und X0000.0=AUS.
-
Bei Verwendung einer logischen Gleichung wird die Endlosschleifen-Bildungsbedingung durch die logische Gleichung (1) dargestellt. Beim beschriebenen ersten Ausstiegsprozess überschreibt die Endlosschleifen-Ausstiegseinheit
102 die Zustände der Ausführungsbedingungssignale so, dass eine Endlosschleifen-Stoppbedingung gemäß der nachfolgenden logischen Gleichung (2) erfüllt ist:
-
Mit Blick auf 12 wird nunmehr ein zweiter Ausstiegsprozess beschrieben.
-
Bei diesem Beispiel wird ein geschlossener Kontakt (gestrichelt umrandeter Bereich) im Voraus als im Sprungbefehl enthalten angenommen. Die Endlosschleifen-Ausstiegseinheit 102 überschreibt zwangsweise den geschlossenen Kontakt in dem Sprungbefehl mit „EIN“. Dies bewirkt, dass die Ausführungsbedingung für den Sprungbefehl „falsch“ wird und ermöglicht somit einen Ausstieg aus der Endlosschleife.
-
Wird eine logische Gleichung eingesetzt, dann wird eine normale Endlosschleifen-Erzeugungsbedingung durch die logische Gleichung (1) dargestellt. Beim zweiten Ausstiegsprozess überschreibt die Endlosschleifen-Ausstiegseinheit
102 die Endlosschleifen-Bildungsbedingung gemäß der nachfolgenden logischen Gleichung (3):
-
Während oben Ausführungsbeispiele der Erfindung näher beschrieben worden sind, ist die Erfindung jedoch nicht auf diese Beispiele beschränkt und kann mit verschiedenen Abwandlungen realisiert werden.
-
Beispielsweise werden bei den oben beschriebenen Ausführungsbeispielen in der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 Informationen aufgezeichnet, wie Abschnitte, welche die Steuerung der Ausführungsbedingungssignale für den Sprungbefehl steuern und derartige Informationen werden einer Bedienungsperson angezeigt, wenn eine Endlosschleife auftritt. Jedoch ist die Erfindung nicht darauf beschränkt. Andere, frei auswählbare Informationen, die zur Lösung des Problems beitragen, können in der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 aufgezeichnet und einer Bedienungsperson angezeigt werden, wenn eine Endlosschleife auftritt. Andererseits können auch Informationen, wie Abschnitte, welche die Ausführung der Bedienungssignale für den Sprungbefehl steuern, nicht in der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 aufgezeichnet werden und auch nicht einer Bedienungsperson angezeigt werden, wenn eine Endlosschleife auftritt. Mit anderen Worten: Informationen außer den in 10 gezeigten Elementen können oder brauchen nicht in der Endlosschleifen-Auftrittsbedingungen-Informationstabelle 301 aufgezeichnet werden.
-
Weiterhin enthalten die Sprungbefehle beim obigen Ausführungsbeispiel verschiedene Befehle und Syntax, die eingesetzt werden zur Beschreibung des Schleifenprozesses in einem Ladderprogramm.
-
Zwar sind oben die Steuerung 1 und der Editor 2 bei dem Ausführungsbeispiel als verschiedene Vorrichtungen beschrieben worden, jedoch ist die Erfindung nicht darauf eingeschränkt. Die Funktionen der Steuerung 1 und des Editors 2 können in einer einzigen Vorrichtung implementiert sein.
-
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 7210218 [0005, 0006, 0039, 0076]