-
Gebiet
-
Die vorliegende Anmeldung betrifft eine programmierbare Steuerung, die externe Geräte, bei denen es sich um industrielle Maschinen handelt, steuert, und ein Synchronisationssteuerungsprogramm.
-
Hintergrund
-
Im einschlägigen Stand der Technik weist eine programmierbare Steuerung, die mehrere externe Geräte steuert, bei denen es sich um industrielle Maschinen handelt, die in einer Fabrik eingesetzt werden, Funktionen zur Durchführung einer Synchronisation von Daten auf, die von den externen Geräten empfangen wurden (siehe beispielsweise Patentdokument 1).
-
Liste der Zitate
-
Patentliteratur
-
Patentdokument 1:
japanische Offenlegungsschrift Nr. 2005-293569
-
Kurzbeschreibung
-
Technische Problemstellung
-
Bei der dem einschlägigen Stand der Technik entsprechenden Technologie wird zur Korrektur eines Fehlers bei einer Synchronisation von Gerätedaten ein Kontaktplanprogramm benötigt, wenn ein solcher Fehler auftritt.
-
Die vorliegende Erfindung entstand angesichts des oben Dargelegten, wobei eine Aufgabe der Erfindung in der Angabe einer programmierbaren Steuerung und eines Synchronisationssteuerungsprogramms besteht, die einen Fehler beim Synchronisationsprozess in einfacher Weise verhindern können, ohne dass ein Kontaktplanprogramm erforderlich wäre, um den Fehler beim Synchronisationsprozess zu korrigieren.
-
Lösung der Problemstellung
-
Zur Lösung der vorgenannten Probleme und der Aufgabe gibt die vorliegende Erfindung eine Steuerung an, die mehrere externe Geräte periodisch steuert und die einen Kurzzeitspeicher, einen Arbeitsspeicher und eine Steuereinheit aufweist. Die Steuereinheit überträgt Anforderungspakete an jedes der externen Geräte, wobei die Anforderungspakete eine Übertragung von Gerätedaten für die Verwendung bei der Steuerung der externen Geräte anfordern und die externen Geräte Zielobjekte darstellen, die der Synchronisationssteuerung unterzogen werden sollen, bezieht die Gerätedaten aus den Antwortpaketen, die von den externen Geräten veranlasst durch die Anforderungspakete erhalten wurden, speichert die bezogenen Gerätedaten in den Kurzzeitspeicher und schreibt die in dem Kurzzeitspeicher gespeicherten Gerätedaten unter der Bedingung in den Arbeitsspeicher, dass die jeweiligen Antwortpakete, die durch die innerhalb eines Steuerungszeitraums übertragenen Anforderungspakete veranlasst wurden, von den externen Geräten empfangen wurden, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt.
-
Vorteilhafte Wirkungen der Erfindung
-
Die erfindungsgemäße programmierbare Steuerung kann einen Fehler beim Synchronisationsprozess in einfacher Weise verhindern, ohne dass ein Kontaktplanprogramm zur Korrektur des Fehlers beim Synchronisationsprozess erforderlich ist.
-
Figurenliste
-
- 1 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für eine funktionelle Konfiguration einer programmierbaren Steuerung gemäß einer ersten Ausführungsform.
- 2 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für einen an der programmierbaren Steuerung gemäß der ersten Ausführungsform ausgeführten Ablauf.
- 3 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für einen an einer programmierbaren Steuerung gemäß einer zweiten Ausführungsform ausgeführten Ablauf.
- 4 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für einen an der programmierbaren Steuerung gemäß der zweiten Ausführungsform ausgeführten Ablauf.
- 5 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für eine funktionelle Konfiguration einer programmierbaren Steuerung gemäß einer dritten Ausführungsform.
- 6 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für einen an der programmierbaren Steuerung gemäß der dritten Ausführungsform ausgeführten Ablauf.
- 7 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für einen an der programmierbaren Steuerung gemäß der dritten Ausführungsform ausgeführten Ablauf.
- 8 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für eine Hardwarekonfiguration einer programmierbaren Steuerung gemäß einer Ausführungsform.
-
Beschreibung von Ausführungsformen
-
Erste Ausführungsform
-
Nachfolgend werden Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die Figuren beschrieben. Es wird darauf hingewiesen, dass die vorliegende Erfindung nicht auf die Ausführungsformen beschränkt ist.
-
Die Darstellung von 1 veranschaulicht ein Beispiel für eine funktionelle Konfiguration einer programmierbaren Steuerung gemäß einer ersten Ausführungsform. Wie aus 1 ersichtlich ist die programmierbare Steuerung 10 gemäß der ersten Ausführungsform über ein Netzwerk 1 mit einem externen Gerät 20 und einem externen Gerät 30 verbunden, sodass die programmierbare Steuerung 10 mit dem externen Gerät 20 und dem externen Gerät 30 eine ein Senden und Empfangen von Daten betreffende Kommunikation vornehmen kann. Das Netzwerk 1 kann ein lokales Netzwerk (LAN) umfassen, beispielsweise das Internet oder Ethernet (eingetragene Marke).
-
Die programmierbare Steuerung 10 weist einen Programmspeicher 11, einen Kurzzeitspeicher 12, einen Arbeitsspeicher 13, eine Steuereinheit 14 und eine Kommunikationssteuerungseinheit 15 auf. In 1 sind lediglich funktionelle Einheiten dargestellt, die zur Beschreibung der programmierbaren Steuerung 10 gemäß der ersten Ausführungsform erforderlich sind.
-
In dem Programmspeicher 11 sind Programme zur Implementierung von verschiedenen Steuerungen in der programmierbaren Steuerung 10 gespeichert. In dem Programmspeicher 11 ist zum Beispiel ein Synchronisationssteuerungsprogramm 11a gespeichert. Das Synchronisationssteuerungsprogramm 11a kann Funktionen zum Synchronisieren von Gerätedaten aufweisen, wobei es sich bei den Gerätedaten um Steuerdaten zum Steuern der externen Geräte handelt, die die der Synchronisationssteuerung unterliegenden Zielobjekte darstellen. Die von dem Synchronisationssteuerungsprogramm 11a zur Verfügung gestellten Funktionen, die einen Prozess zum Abrufen von Gerätedaten von den externen Geräten 20 und 30, die zur Kommunikation mit der mit ihnen verbundenen programmierbaren Steuerung 10 ausgebildet sind, umfassen Funktionen zur Durchführung der unten dargelegten Prozesse in einem periodisch ausgeführten Sequenzdurchlauf (nachfolgend als Durchlauf bezeichnet). Die von dem Synchronisationssteuerungsprogramm 11a zur Verfügung gestellten Funktionen umfassen konkret folgende Funktionen, die innerhalb desselben Durchlaufs ausgeführt werden: eine Funktion, um Anforderungspakete, die Gerätedaten anfordern, an die externen Geräte 20 und 30 zu übertragen, die die der Synchronisationssteuerung unterliegenden Zielobjekte darstellen, eine Funktion, um die Gerätedaten aus den Antwortpaketen zu beziehen, die veranlasst durch die Anforderungspakete von den externen Geräten 20 und 30 erhalten wurden, und um die bezogenen Gerätedaten in den Kurzzeitspeicher 12 zu speichern, und eine Funktion, um die in dem Kurzzeitspeicher 12 vorübergehend gespeicherten Gerätedaten aus dem Kurzzeitspeicher 12 auszulesen und um die ausgelesenen Gerätedaten in den Arbeitsspeicher 13 unter der Bedingung zu schreiben, dass die Antwortpakete, die zu den Anforderungspaketen gehören, die innerhalb desselben Durchlaufs an die externen Geräte 20 und 30 übertragen wurden, bei denen es sich um die Zielobjekte handelt, die der Synchronisationssteuerung zu unterziehen sind, von dem Gerät 20 bzw. 30 empfangen wurden. Aufgrund der von dem Synchronisationssteuerungsprogramm 11a bereitgestellten Funktionen wird der Zeitpunkt, an dem die Gerätedaten von dem externen Gerät 20, das das der Synchronisationssteuerung zu unterziehende Zielobjekt ist, aus dem Kurzzeitspeicher 12 in den Arbeitsspeicher 13 gespiegelt werden, mit dem Zeitpunkt synchronisiert, an dem die Gerätedaten von dem externen Gerät 30, das das Zielobjekt ist, das der Synchronisationssteuerung in ähnlicher Weise zu unterziehen ist, aus dem Kurzzeitspeicher 12 in den Arbeitsspeicher 13 gespiegelt werden.
-
Die Gerätedaten 12a werden im Kurzzeitspeicher 12 vorübergehend gespeichert. Die Gerätedaten 12a, bei denen es sich um die Gerätedaten handelt, die in den von den externen Geräten 20 und 30 erhaltenen Antwortpaketen enthalten sind, werden von der Steuereinheit 14 in dem Kurzzeitspeicher abgelegt. Die Gerätedaten 13a werden in dem Arbeitsspeicher 13 abgelegt. Die Gerätedaten 13a, die den im Kurzzeitspeicher 12 gespeicherten Gerätedaten 12a entsprechen, werden von der Steuereinheit 14 in den Arbeitsspeicher 13 geschrieben. Der Arbeitsspeicher 13 kann auch als Arbeitsbereich verwendet werden, in dem die Ergebnisse der Verarbeitung durch die Steuereinheit 14 vorübergehend gespeichert werden. Der Kurzzeitspeicher 12 und der Arbeitsspeicher 13 können individuell in einen Speicherbereich, in dem die von dem externen Gerät 20 erhaltenen Gerätedaten gespeichert werden, und einen Speicherbereich, in dem die von dem externen Gerät 30 erhaltenen Gerätedaten gespeichert werden, unterteilt werden. Die Unterteilung in Speicherbereiche kann virtuell oder physikalisch sein.
-
Die Steuereinheit 14 führt in der programmierbaren Steuerung 10 verschiedene Steuerungen aus, indem sie verschiedene Programme ausführt, die in dem Programmspeicher 11 gespeichert sind. Konkret führt die Steuereinheit 14 bezüglich der von den jeweiligen Einheiten der programmierbaren Steuerung 10 bezogenen Daten in den Programmen enthaltene Anweisungen aus, wodurch die verschiedenen Steuerungen in der programmierbaren Steuerung 10 ausgeführt werden.
-
Bei der ersten Ausführungsform führt die Steuereinheit 14 das Synchronisationssteuerungsprogramm 11a aus, um hierdurch einen Prozess zum Synchronisieren der Gerätedaten an den externen Geräten zu implementieren, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt. Konkret überträgt die Steuereinheit 14 während einer Ausführung eines Durchlaufs Anforderungspakete, die Gerätedaten anfordern, an die externen Geräte 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt. Dadurch werden die Anforderungspakete von der Steuereinheit 14 an jedes der externen Geräte 20 und 30 innerhalb desselben Duchlaufs übertragen, wobei es sich bei den Geräten um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt. Bei Empfang des Antwortpakets von dem externen Gerät 20 oder dem externen Gerät 30 bezieht die Steuereinheit 14 die Gerätedaten aus dem erhaltenen Antwortpaket und speichert die erhaltenen Gerätedaten sukzessive in den Kurzzeitspeicher 12. Beim Übergang zu einer ENDE-Prozedur, bei der es sich um eine abschließende Prozedur des Durchlaufs handelt, bestimmt die Steuereinheit 14, ob die Antwortpakete, die zu den Anforderungspaketen gehören, die innerhalb desselben Durchlaufs an die externen Geräte 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, übertragen wurden, von dem externen Gerät 20 und dem externen Gerät 30 empfangen wurden. Wenn von zumindest einem der externen Geräte 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, kein Antwortpaket empfangen wurde, beendet die Steuereinheit 14 die ENDE-Prozedur, macht mit einem neuen Durchlauf weiter und bestimmt weiterhin, ob das zu dem übertragenen Anforderungspaket gehörende Antwortpaket empfangen wurde, wobei die Wiederholung der Bestimmung solange erfolgt, bis der Empfang der Antwortpakete von den externen Geräten 20 und 30 abgeschlossen ist. Wenn der Empfang der Antwortpakete von beiden externen Geräten 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, abgeschlossen ist, liest die Steuereinheit 14 die Gerätedaten der externen Geräte 20 und 30 aus dem Kurzzeitspeicher 12 aus und schreibt die entsprechenden Gerätedaten in den Arbeitsspeicher 13. Durch Ausführen des Synchronisationssteuerungsprogramms 11a implementiert die Steuereinheit 14 wie oben beschrieben den Prozess zum Synchronisieren des Zeitpunkts, an dem die Gerätedaten des externen Geräts 20 von dem Kurzzeitspeicher 12 in den Arbeitsspeicher 13 gespiegelt werden, mit dem Zeitpunkt, an dem die Gerätedaten des externen Geräts 30 von dem Kurzzeitspeicher 12 in den Arbeitsspeicher 13 gespiegelt werden.
-
Die Kommunikationssteuerungseinheit 15 steuert die Übertragung und den Empfang von Daten zwischen dem externen Gerät 20 und dem externen Gerät 30.
-
Das Flussdiagramm von 2 veranschaulicht ein Beispiel für einen Prozessablauf, der von der programmierbaren Steuerung 10 gemäß der ersten Ausführungsform ausgeführt wird. Der in 2 veranschaulichte Prozessablauf wird implementiert, indem die Steuereinheit 14 das in dem Programmspeicher 11 gespeicherte Synchronisationssteuerungsprogramm 11a ausführt.
-
Wie in 2 dargestellt überträgt die programmierbare Steuerung 10 während einer Ausführung eines Durchlaufs Anforderungspakete an die externen Geräte 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt (Schritt S101).
-
Anschließend speichert die programmierbare Steuerung 10 die Gerätedaten, die in den von den externen Geräten 20 und 30 erhaltenen Antwortpaketen enthalten sind, in den Kurzzeitspeicher 12 (Schritt S102). Die speicherprogrammierbare Steuerung 10 speichert die Gerätedaten beim Empfangen des Antwortpakets sukzessive in den Kurzzeitspeicher 12.
-
Anschließend bestimmt die programmierbare Steuerung 10, ob sich der Durchlauf in der ENDE-Prozedur befindet, bei der es sich um die abschließende Prozedur des Durchlaufs handelt (Schritt S103).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass sich der Durchlauf nicht in der ENDE-Prozedur befindet (Schritt S103, Nein), springt die programmierbare Steuerung 10 zur oben beschriebenen Prozedur von Schritt S102 zurück.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass sich der Durchlauf in der ENDE-Prozedur befindet (Schritt S103, Ja), bestimmt die programmierbare Steuerung 10, ob die Antwortpakete, die zu den in S101 übertragenen Anforderungspaketen gehören, von den externen Geräten 20 und 30 erhalten wurden (Schritt S104).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass die Antwortpakete sowohl von dem externen Gerät 20 als auch von dem externen Gerät 30 empfangen wurden (Schritt S104, Ja), schreibt die programmierbare Steuerung 10 die Gerätedaten, die in dem Kurzzeitspeicher 12 gespeichert sind, in den Arbeitsspeicher 13 (Schritt S105), beendet die ENDE-Prozedur und fährt mit dem nächsten Durchlauf fort (Schritt S106).
-
Anschließend bestimmt die programmierbare Steuerung 10, ob der Synchronisationsprozess an den Gerätedaten fortgesetzt werden soll (Schritt S107). Die programmierbare Steuerung 10 bestimmt, dass der Synchronisationsprozess fortgesetzt werden soll, außer wenn beispielsweise ein anormaler Vorgang aufgetreten ist, oder ein Anwender eine Stopanweisung eingibt.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass der Synchronisationsprozess an den Gerätedaten fortgesetzt werden soll (Schritt S107, Ja), dann springt die programmierbare Steuerung 10 zu der Prozedur des oben beschriebenen Schrittes S101 zurück.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass der Synchronisationsprozess an den Gerätedaten nicht fortgesetzt werden soll (Schritt S107, Nein), dann beendet die programmierbare Steuerung 10 den in 2 dargestellten Ablauf.
-
Wenn das Ergebnis der Bestimmung in dem oben beschriebenen Schritt S104 angibt, dass von dem externen Gerät 20 und/oder dem externen Gerät 30 kein Antwortpaket empfangen wurde (Schritt S104, Nein), beendet die programmierbare Steuerung 10 die ENDE-Prozedur, macht mit dem nächsten Durchlauf weiter (Schritt S108) und springt zu der oben beschriebenen Prozedur von Schritt S102 zurück.
-
Bei der ersten Ausführungsform liest die programmierbare Steuerung 10 die in dem Kurzzeitspeicher 12 vorübergehend gespeicherten Gerätedaten und schreibt die ausgelesenen Gerätedaten unter der Bedingung in den Arbeitsspeicher 13, dass die Antwortpakete, die zu den Anforderungspaketen gehören, die innerhalb desselben Durchlaufs von den externen Geräten 20 und 30, bei denen es sich um die Zielobjekte handelt, die der Synchronisationssteuerung zu unterziehen sind, empfangen wurden. Die programmierbare Steuerung 10 kann dadurch den Zeitpunkt, an dem die Gerätedaten des externen Geräts 20 von dem Kurzzeitspeicher 12 in den Arbeitsspeicher 13 gespiegelt werden, mit dem Zeitpunkt synchronisieren, an dem die Gerätedaten des externen Geräts 30 von dem Kurzzeitspeicher 12 in den Arbeitsspeicher 13 gespiegelt werden. Durch die programmierbare Steuerung 10 wird ein Fehler beim Synchronisationsprozesses somit in einfacherer Weise verhindert, als wenn zur Korrektur eines Fehlers beim Synchronisationsprozess ein Kontaktplanprogramm vorgesehen ist.
-
Zudem synchronisiert die programmierbare Steuerung 10 bei der ersten Ausführungsform die Gerätedaten zuverlässig, da die programmierbare Steuerung 10 die Gerätedaten selbst während der ENDE-Prozedur des Durchlaufs nicht von dem Kurzzeitspeicher 12 in den Arbeitsspeicher 13 spiegelt, außer wenn die Gerätdaten von beiden, dem externen Gerät 20, bei dem es sich um das Zielobjekt handelt, das der Synchronisationssteuerung zu unterziehen ist, und dem externen Gerät 30, bei dem es sich um das Zielobjekt handelt, das der Synchronisationssteuerung zu unterziehen ist, in dem Kurzzeitspeicher 12 gespeichert sind.
-
Auch wenn die erste Ausführungsform anhand eines Beispiels beschrieben wurde, bei dem die programmierbare Steuerung 10 die Synchronisationssteuerung der Gerätedaten vornimmt, die von den beiden externen Geräten, bei denen es sich um die externen Geräte 20 und 30 handelt, erhalten wurden, kann die Synchronisationssteuerung gemäß der ersten Ausführungsform in ähnlicher Weise auch an Gerätedaten vorgenommen werden, die von drei oder mehr externen Geräten erhalten wurden.
-
Zweite Ausführungsform
-
Die erste Ausführungsform stellt ein Beispiel für einen Ablauf dar, bei dem, wenn zum Zeitpunkt der ENDE-Prozedur des Durchlaufs von zumindest einem der externen Geräte 20 oder 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, kein Antwortpaket erhalten wurde, die programmierbare Steuerung 10 weiterhin bestimmt, ob das zu dem übertragenen Anforderungspaket gehörende Antwortpaket empfangen wurde, wobei die Wiederholung der Bestimmung solange erfolgt, bis der Empfang der Antwortpakete von den externen Geräten 20 und 30 abgeschlossen ist. Der Ablauf ist jedoch nicht auf dieses Beispiel beschränkt. Wenn von dem externen Gerät 20 und/oder dem externen Gerät 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, zum Zeitpunkt der ENDE-Prozedur des Durchlaufs kein Antwortpaket erhalten wurde, kann die programmierbare Steuerung 10 innerhalb desselben Durchlaufs fortfahren, auf den Empfang des Antwortpakets, das zu dem übertragenen Anforderungspaket gehört, zu warten, ohne den aktuellen Durchlauf zu beenden. Das Synchronisationssteuerungsprogramm 11a kann eine Funktion zum Versetzen der ENDE-Prozedur in einen Kommunikationsbereitschaftszustand aufweisen, um einen Zustand zum Warten auf einen Empfang eines Antwortpakets aufrechtzuerhalten, wobei die Steuereinheit 14 das Synchronisationssteuerungsprogramm 11a ausführen kann, um hierdurch einen Vorgang zu implementieren, der die ENDE-Prozedur in den Kommunikationsbereitschaftszustand versetzt, um den Zustand des Wartens auf einen Empfang eines Antwortpakets aufrechtzuerhalten.
-
Ein Beispiel eines mithilfe einer programmierbaren Steuerung 10 gemäß einer zweiten Ausführungsform vorgenommenen Ablaufs wird anhand der 3 und 4 beschrieben. Die 3 und 4 zeigen Flussdiagramme zur Veranschaulichung eines Beispiels für einen von der programmierbaren Steuerung 10 gemäß einer zweiten Ausführungsform vorgenommenen Ablauf.
-
Wie in 3 dargestellt überträgt die programmierbare Steuerung 10 während der Ausführung eines Durchlaufs Anforderungspakete an die externen Geräte 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt (Schritt S201).
-
Anschließend speichert die programmierbare Steuerung 10 die in den von den externen Geräten 20 und 30 erhaltenen Antwortpaketen enthaltenen Gerätedaten in den Kurzzeitspeicher 12 (Schritt S202). Bei Erhalt des Antwortpakets speichert die programmierbare Steuerung 10 die Gerätedaten sukzessive in den Kurzzeitspeicher 12.
-
Anschließend bestimmt die programmierbare Steuerung 10, ob sich der Durchlauf in der ENDE-Prozedur befindet, die die abschließende Prozedur des Durchlaufs darstellt (Schritt S203).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass sich der Durchlauf nicht in der ENDE-Prozedur befindet (Schritt S203, Nein), springt die programmierbare Steuerung 10 zur oben beschriebenen Prozedur von Schritt S202 zurück.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass sich der Durchlauf in der ENDE-Prozedur befindet (Schritt S203, Ja), dann bestimmt die programmierbare Steuerung 10, ob die Antwortpakete, die zu den in Schritt S201 übertragenen Anforderungspaketen gehören, von den externen Geräten 20 und 30 empfangen wurden (Schritt S204).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass die Antwortpakete von beiden externen Geräten 20 und 30 empfangen wurden (Schritt S204, Ja), dann bestimmt die programmierbare Steuerung 10, ob bereits auf den Empfang eines Antwortpakets gewartet wird (Schritt S205).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass nicht auf den Empfang des Antwortpakets gewartet wird (Schritt S205, Nein), dann schreibt die programmierbare Steuerung 10 die in dem Kurzzeitspeicher 12 gespeicherten Gerätedaten in den Arbeitsspeicher 13 (Schritt S206), beendet die ENDE-Prozedur und macht mit dem nächsten Durchlauf weiter (Schritt S207).
-
Anschließend bestimmt die programmierbare Steuerung 10, ob der Synchronisationsprozess an den Gerätedaten fortgesetzt werden soll (Schritt S208). Die programmierbare Steuerung 10 bestimmt, dass der Synchronisationsprozess fortgesetzt werden soll, außer wenn beispielsweise ein anormaler Vorgang aufgetreten ist, oder ein Anwender eine Stopanweisung eingibt.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass der Synchronisationsprozess an den Gerätedaten fortgesetzt werden soll (Schritt S208, Ja), dann springt die programmierbare Steuerung 10 zu der oben beschriebenen Prozedur von Schritt S201 zurück.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass der Synchronisationsprozess an den Gerätedaten nicht fortgesetzt werden soll (Schritt S208, Nein), dann beendet die programmierbare Steuerung 10 den in 3 dargestellten Ablauf.
-
Wenn das Ergebnis der in dem oben beschriebenen Schritt S205 vorgenommene Bestimmung anzeigt, dass auf den Empfang des Antwortpakets gewartet wird (Schritt S205, Ja), hebt die programmierbare Steuerung 10 den Zustand des Wartens auf den Empfang des Antwortpakets auf (Schritt S209) und fährt mit der Prozedur des oben beschriebenen Schritts S206 fort.
-
Wenn das Ergebnis der in dem oben beschriebenen Schritt S204 vorgenommene Bestimmung anzeigt, dass von dem externen Gerät 20 und/oder dem externen Gerät 30 kein Antwortpaket empfangen wurde (Schritt S204, Nein), bestimmt die programmierbare Steuerung 10, ob bereits auf den Empfang des Antwortpakets gewartet wird (Schritt S210).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass nicht auf den Empfang des Antwortpakets gewartet wird (Schritt S210, Nein), dann geht die programmierbare Steuerung 10 in den Zustand des Wartens auf den Empfang des Antwortpakets über (Schritt S211) und springt zu der Prozedur des oben beschriebenen Schrittes S202 zurück. Wenn das Ergebnis der Bestimmung dagegen anzeigt, dass auf den Empfang des Antwortpakets gewartet wird (Schritt S210, Ja), dann springt die programmierbare Steuerung 10 direkt zu der oben beschriebenen Prozedur von Schritt S202 zurück.
-
Bei der zweiten Ausführungsform versetzt die programmierbare Steuerung 10 die ENDE-Prozedur, bei der es sich um die abschließende Prozedur des Durchlaufs handelt, solange in den Kommunikationsbereitschaftszustand, bis der Empfang der Antwortpakete von sowohl dem externen Gerät 20 als auch dem externen Gerät 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, abgeschlossen ist. Da das Versetzen der ENDE-Prozedur in den Kommunikationsbereitschaftszustand es der programmierbaren Steuerung 10 ermöglicht, weiterhin auf den Empfang des zu dem übertragenen Anforderungspaket gehörenden Antwortpaket zu warten, kann die programmierbare Steuerung 10 die Gerätedaten innerhalb desselben Durchlaufs synchronisieren.
-
Dritte Ausführungsform
-
Auch wenn die zweite Ausführungsform anhand eines Beispiels beschrieben wurde, bei dem die programmierbare Steuerung 10 den Zustand des Wartens auf den Empfang des Antwortpakets solange aufrechterhält, bis die Antwortpakete von sowohl dem externen Gerät 20 als auch dem externen Gerät 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, empfangen wurden, ist der Ablauf nicht auf dieses Beispiel beschränkt. Die programmierbare Steuerung 10 kann den Zustand des Wartens auf den Empfang des Antwortpakets nur dann aufrechterhalten, wenn sich die Zeit, die seit der Übertragung der Anforderungspakete vergangen ist, innerhalb einer zulässigen Zeitspanne befindet.
-
Die Darstellung von 5 veranschaulicht ein Beispiel für eine funktionelle Konfiguration einer programmierbaren Steuerung 10 gemäß einer dritten Ausführungsform. Wie aus 5 ersichtlich weist die programmierbare Steuerung 10 gemäß der dritten Ausführungsform zusätzlich zu den in der programmierbaren Steuerung 10 gemäß der zweiten Ausführungsform enthaltenen funktionellen Einheiten einen Zulässige-Zeitspanne-Speicher 16 und einen Zeitnehmer 17 auf.
-
Der Zulässige-Zeitspanne-Speicher 16 speichert Zulässige-Zeitspanne-Daten 16a. Bei den Zulässige-Zeitspanne-Daten 16a handelt es sich um Daten, die als zulässige Zeitspanne für das Aufrechterhalten des Zustands des Wartens auf den Empfang eines Antwortpakets vorab festgelegt werden. Die den Zulässige-Zeitspanne-Daten 16a entsprechende zulässige Zeitspanne wird so festgelegt, dass sie zumindest etwas länger ist, als die sich vom Start eines Durchlaufs bis zu einer ENDE-Prozedur erstreckende Zeitspanne.
-
Der Zeitnehmer 17 beginnt mit der Messung der Zeitspanne, wenn eine entsprechende Anweisung von der Steuereinheit 14 vorliegt. Der Zeitnehmer 17 misst die Zeit, die seit der Übertragung von Gerätedaten anfordernden Anforderungspaketen vergangen ist. Der Zeitnehmer 17 setzt die gemessene Zeit auf null, wenn eine entsprechende Anweisung von der Steuereinheit 14 vorliegt.
-
Das Synchronisationssteuerungsprogramm 11a kann eine Funktion, die die Zeit ausgelöst durch die Übertragung der Anforderungspakete misst, eine Funktion, die die gemessenen Zeit auf null stellt, bevor mit dem nächsten Durchlauf weitergemacht wird, und eine Funktion aufweisen, die den Zustand des Wartens auf einen Empfang von Antwortpaketen, die zu Anforderungspaketen gehören, die innerhalb desselben Durchlaufs übertragen wurden, aufrechterhält, wenn die seit der Übertragung der Anforderungspakete verstrichene Zeitspanne die zulässige Zeitspanne nicht überschritten hat.
-
Die Steuereinheit 14 führt das Synchronisationssteuerungsprogramm 11a aus, um einen Prozess zu implementieren, der eine durch eine Übertragung von Anforderungspaketen ausgelöste Zeitmessung mithilfe des Zeitnehmers 17 startet. Wenn die Steuereinheit 14 beispielsweise Anforderungspakete überträgt, dann sendet die Steuereinheit 14 an den Zeitnehmer 17 eine Anweisung zur Durchführung einer Zeitmessung. Wenn die Steuereinheit 14 mit dem nächsten Durchlauf fortfährt, sendet die Steuereinheit 14 an den Zeitnehmer 17 eine Anweisung, um die gemessene Zeit auf null zu stellen. Die Steuereinheit 14, die das Synchronisationssteuerungsprogramm 11a ausführt, implementiert eine Prozedur zum Aufrechterhalten des Zustands des Wartens auf den Empfang eines Antwortpakets, wenn sich die seit der Übertragung der Anforderungspakete vergangene Zeit innerhalb der zulässigen Zeitspanne bewegt. Wenn die Antwortpakete nicht von beiden externen Geräten 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, empfangen wurden, bestimmt die Steuereinheit 14 beispielsweise, ob sich die von dem Zeitnehmer gemessene Zeit innerhalb der zulässigen Zeitspanne befindet, wobei die Steuereinheit 14, wenn das Ergebnis der Bestimmung anzeigt, dass sich die Zeit innerhalb der zulässigen Zeitspanne bewegt, den Zustand des Wartens auf den Empfang von Antwortpaketen, die zu den innerhalb desselben Durchlaufs übertragenen Anforderungspaketen gehören, aufrechterhält.
-
Ein Beispiel eines von der programmierbaren Steuerung 10 gemäß einer dritten Ausführungsform vorgenommenen Ablaufs wird unter Bezugnahme auf die 6 und 7 beschrieben. Die 6 und 7 zeigen Flussdiagramme, die ein Beispiel für einen von der programmierbaren Steuerung 10 gemäß der dritten Ausführungsform ausgeführten Ablauf veranschaulichen.
-
Wie in 6 dargestellt überträgt die programmierbare Steuerung 10 während einer Vornahme eines Durchlaufs Anforderungspakete an die externen Geräte 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt (Schritt S301).
-
Anschließend startet die programmierbare Steuerung 10 eine Zeitmessung mithilfe des Zeitnehmers 17 (Schritt S302).
-
Anschließend speichert die programmierbare Steuerung 10 die in den Antwortpaketen enthaltenen Gerätedaten, die von den externen Geräten 20 und 30 erhalten wurden, in den Kurzzeitspeicher 12 (Schritt S303). Die programmierbare Steuerung 10 speichert die Gerätedaten bei Empfang des Antwortpakets in den Kurzzeitspeicher 12.
-
Anschließend bestimmt die programmierbare Steuerung 10, ob sich der Durchlauf in der ENDE-Prozedur, die die letzte Prozedur des Durchlaufs darstellt, befindet (Schritt S304).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass sich der Durchlauf nicht in der ENDE-Prozedur befindet (Schritt S304, Nein), springt die programmierbare Steuerung 10 zu der oben beschriebenen Prozedur von Schritt S303 zurück.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass sich der Durchlauf in der ENDE-Prozedur befindet (Schritt S304, Ja), bestimmt die programmierbare Steuerung 10, ob die Antwortpakete, die zu den in Schritt S301 übertragenen Anforderungspaketen gehören, von den externen Geräten 20 und 30 empfangen wurden (Schritt S305).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass die Antwortpakete von beiden Geräten, dem externen Gerät 20 und dem externen Gerät 30, erhalten wurden (Schritt S305, Ja), dann bestimmt die programmierbare Steuerung 10, ob auf den Empfang eines Antwortpakets gewartet wird (Schritt S306).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass nicht auf den Empfang des Antwortpakets gewartet wird (Schritt S306, Nein), dann schreibt die programmierbare Steuerung 10 die in dem Kurzzeitspeicher 12 gespeicherten Gerätedaten in den Arbeitsspeicher 13 (Schritt S307) und setzt die von dem Zeitnehmer 17 gemessene Zeit auf null (Schritt S308).
-
Anschließend beendet die programmierbare Steuerung 10 die ENDE-Prozedur, macht mit dem nächsten Durchlauf weiter (Schritt S309) und bestimmt, ob der Synchronisationsprozess an den Gerätedaten fortgesetzt werden soll (Schritt S310). Die programmierbare Steuerung 10 bestimmt, dass der Synchronisationsprozess fortgesetzt werden soll, ausgenommen, wenn zum Beispiel ein anormaler Vorgang aufgetreten ist oder wenn ein Anwender eine Stopanweisung eingibt.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass der Synchronisationsprozess an den Gerätedaten fortgesetzt werden soll (Schritt S310, Ja), springt die programmierbare Steuerung 10 zu der Prozedur des oben beschriebenen Schrittes S301 zurück.
-
Wenn das Ergebnis der Bestimmung anzeigt, dass der Synchronisationsprozess an den Gerätedaten nicht fortgesetzt werden soll (Schritt S310, Nein), dann beendet die programmierbare Steuerung 10 den in 6 veranschaulichten Ablauf.
-
Wenn das Ergebnis der Bestimmung in dem oben beschriebenen Schritt S306 anzeigt, dass auf den Empfang des Antwortpakets gewartet wird (Schritt S306, Ja), dann hebt die programmierbare Steuerung 10 den Zustand des Wartens auf den Empfang des Antwortpakets auf (Schritt S311) und fährt mit der oben beschriebenen Prozedur des Schritts S307 fort.
-
Wenn das Ergebnis der Bestimmung in dem oben beschriebenen Schritt S305 anzeigt, dass von dem externen Gerät 20 und/oder dem externen Gerät 30 kein Antwortpaket empfangen wurde (Schritt S305, Nein), dann bestimmt die programmierbare Steuerung 10, ob die von dem Zeitnehmer 17 gemessene verstrichene Zeit die zulässige Zeitspanne übersteigt (Schritt S312).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass die von dem Zeitnehmer 17 gemessene verstrichene Zeit die zulässige Zeitspanne übersteigt (Schritt S312, Ja), dann setzt die programmierbare Steuerung 10 die von dem Zeitnehmer 17 gemessene Zeit auf null (Schritt S313).
-
Anschließend beendet die programmierbare Steuerung 10 die ENDE-Prozedur, macht mit dem nächsten Durchlauf weiter (Schritt S314) und springt zu der oben beschriebenen Prozedur des Schritts S302 zurück. Konkret führt die programmierbare Steuerung 10 den nächsten Durchlauf aus, ohne die Gerätedaten abzurufen, wenn die von dem Zeitnehmer 17 während des aktuellen Durchgangs gemessene verstrichene Zeit die zulässige Zeitspanne übersteigt.
-
Wenn das Ergebnis der Bestimmung in dem oben beschriebenen Schritt S312 anzeigt, dass die von dem Zeitnehmer 17 gemessene verstrichene Zeit die zulässige Zeitspanne nicht übersteigt (Schritt S312, Nein), dann bestimmt die programmierbare Steuerung 10, ob bereits auf den Empfang des Antwortpakets gewartet wird (Schritt S315).
-
Wenn das Ergebnis der Bestimmung anzeigt, dass nicht auf den Empfang des Antwortpakets gewartet wird (Schritt S315, Nein), dann geht die programmierbare Steuerung 10 in den Zustand des Wartens auf den Empfang des erhaltenen Pakets über (Schritt S316) und springt zur Prozedur des oben beschriebenen Schritts S303 zurück. Wenn das Ergebnis der Bestimmung dagegen anzeigt, dass auf den Empfang des Antwortpakets gewartet wird (Schritt S315, Ja), dann springt die programmierbare Steuerung 10 direkt zu der Prozedur des oben beschriebenen Schritts S303 zurück.
-
Wenn bei dem oben beschriebenen Ablauf von 6 die von dem Zeitnehmer 17 gemessene verstrichene Zeit die zulässige Zeitspanne übersteigt und die Gerätedaten von dem externen Gerät 20 oder dem externen Gerät 30 in dem Kurzzeitspeicher 12 gespeichert sind, kann die programmierbare Steuerung 10 nur die in dem Kurzzeitspeicher 12 gespeicherten Gerätedaten in den Arbeitsspeicher 13 speichern und mit dem Ablauf so fortfahren, dass vor Beginn des nächsten Durchlaufs kein Antwortpaket empfangen wird. Bei dem Ablauf von FIG. 6 können dem Anforderungspaket und dem Antwortpaket vorab Blocksequenznummern zugeteilt werden, um die Verknüpfung zwischen dem Anforderungspaket und dem Antwortpaket korrekt zu bestimmen, wobei die programmierbare Steuerung 10 den Ablauf so fortführen kann, dass die programmierbare Steuerung 10 bei Empfang eines Antwortpakets auf die dem Antwortpaket zugeteilte Blocksequenznummer Bezug nimmt, um zu bestimmen, zu welchem Durchlauf das Paket gehört.
-
Bei der dritten Ausführungsform hält die programmierbare Steuerung 10 den Zustand des Wartens auf den Empfang des Antwortpakets aufrecht, ohne mit dem nächsten Durchlauf weiterzumachen, wenn der Empfang der Antwortpakete von den externen Geräten 20 und 30, bei denen es sich um die der Synchronisationssteuerung zu unterziehenden Zielobjekte handelt, noch nicht abgeschlossen ist, die seit der Übertragung der Anforderungspakete verstrichene Zeit sich aber noch innerhalb der zulässigen Zeitspanne befindet. Hierdurch kann die programmierbare Steuerung 10 die Gerätedaten weitestgehend innerhalb eines Durchlaufs synchronisieren, wodurch verhindert wird, dass die Durchführung des Durchlaufs ins Stocken gerät.
-
Unter Bezug auf 8 wird ein Beispiel für einen Computer zur Implementierung von Steuervorgängen beschrieben, die den Steuervorgängen der programmierbaren Steuerung 10 ähneln, die bei den oben angegebenen Ausführungsformen beschrieben wurden. Die Darstellung von 8 veranschaulicht ein Beispiel für eine Hardwarekonfiguration der programmierbaren Steuerung 10 gemäß der Ausführungsform.
-
Wie aus 8 ersichtlich umfasst ein als programmierbare Steuerung 10 dienender Computer 100 beispielsweise einen Prozessor 101, einen Direktzugriffsspeicher (RAM) 102, einen Festwertspeicher (ROM) 103, eine Eingabeschnittstelle 104, ein Eingabegerät 105, eine Ausgabeschnittstelle 106, ein Ausgabegerät 107, eine Kommunikationsschnittstelle 108 und einen Bus 109. Der Prozessor 101, das RAM 102, das ROM 103, die Eingabeschnittstelle 104, das Eingabegerät 105, die Ausgabeschnittstelle 106, das Ausgabegerät 107 und die Kommunikationsschnittstelle 108 sind untereinander über den Bus 109 verbunden.
-
Bei dem RAM 102 handelt es sich um eine Speichervorrichtung, aus der Daten gelesen und in die Daten geschrieben werden können, wobei als RAM 102 eine Halbleiterspeichervorrichtung wie beispielsweise ein statisches RAM (SRAM) oder ein dynamisches RAM (DRAM) verwendet wird. Anstatt des RAMs 102 kann ein Flashspeicher verwendet werden. Das RAM 102 wird als Arbeitsbereich eingesetzt, in den die Ergebnisse der Verarbeitung bei den von dem Prozessor 101 vorgenommenen Steuervorgängen vorübergehend gespeichert werden. Das RAM 102 entspricht beispielsweise dem Kurzzeitspeicher 12 und dem Arbeitsspeicher 13. Bei dem ROM 103 handelt es sich um eine Speichervorrichtung, aus der Programme und Daten gelesen werden können und das ein programmierbares ROM (PROM) umfasst. Das ROM 103 wird zum Aufzeichnen von Programmen und Daten zur Implementierung von verschiedenen Steuervorgängen eingesetzt, die von dem Prozessor 101 ausgeführt werden. Das ROM 103 entspricht dem Programmspeicher 11.
-
Die Eingabeschnittstelle 104 wird von einer Schaltung gebildet, die Eingabesignale von dem Eingabegerät 105 an den Prozessor 101 überträgt. Die Ausgabeschnittstelle 106 wird von einer Schaltung gebildet, die dem Ausgabegerät 107 Ausgabesignale zuführt, die zu einer Anweisung des Prozessors 101 gehören. Die Kommunikationsschnittstelle 108 wird von einer Schaltung gebildet, die die über das Netzwerk 1 vorgenommene Kommunikation steuert. Bei der Kommunikationsschnittstelle 108 kann es sich beispielsweise um eine Netzwerkkarte (NIC) handeln. Die Eingabeschnittstelle 104 und die Ausgabeschnittstelle 106 können als intergrierte Einheit ausgebildet sein. Die Kommunikationsschnittstelle 108 entspricht der Kommunikationssteuerungseinheit 15.
-
Der Prozessor 101 liest in dem ROM 103 gespeicherte Programme, expandiert die Programme in das RAM 102 und führt die Anweisungen aus, die in den in das RAM 102 expandierten Programmen enthalten sind. Der Prozessor 101 wird den Ergebnissen der Ausführung der in den Programmen enthaltenen Anweisungen entsprechend betrieben, sodass diverse Steuerungsvorgänge implementiert werden, die den Funktionen entsprechen, die über das in dem Programmspeicher 11 gespeicherte Synchronisationssteuerungsprogramm 11a verfügbar sind. Der Prozessor 101 entspricht beispielsweise der Steuereinheit 14.
-
Die Programme zum Implementieren der Steuervorgänge, die den über das Synchronisationssteuerungsprogramm 11a verfügbaren Funktionen entsprechen, und die Daten, die bei der von den Programmen vorgenommenen Verarbeitung verwendet werden, müssen nicht vorab im ROM 103 gespeichert sein. Beispielsweise können die Programme zur Implementierung der Steuerungsvorgänge und die Daten, die bei der von den Programmen vorgenommenen Verarbeitung verwendet werden, in einem „anderen Computer (oder Server)“ gespeichert sein, der mit dem Computer 100 über ein Netzwerk wie eine öffentliche Leitung, das Internet, ein LAN oder ein Weitverkehrsnetz (WAN) verbunden sein, wobei der Computer 100 die Programme und Daten von dem Computer oder Server herunterladen und ausführen kann.
-
Die Ausführungsformen sind nicht auf das in 8 dargestellte Beispiel beschränkt, bei dem der Prozessor 101 die in dem ROM 103 gespeicherten Programme liest und ausführt, um die Steuerungsvorgänge zu implementieren, die den über das Synchronisationssteuerungsprogramm 11a verfügbaren Funktionen entsprechen. Die Steuerungsvorgänge, die den über das Synchronisationssteuerungsprogramm 11a verfügbaren Funktionen entsprechen, können mittels einer festverdrahteten logischen Schaltung implementiert werden, die mehrere Verarbeitungsschaltungen aufweist, die zur Implementierung der jeweiligen Steuervorgänge, die den über das Synchronisationssteuerungsprogramm 11a verfügbaren Funktionen entsprechen, zusammenwirken. Bei den Verarbeitungsschaltungen, die mit den über das Synchronisationssteuerungsprogramm 11a verfügbaren Funktionen verknüpft sind, können anwendungsspezifische integrierte Schaltungen (ASICs) oder Field Programmable Gate Arrays (FPGAs) eingesetzt werden.
-
Die in den oben angegebenen Ausführungsformen vorgestellten Konfigurationen stellen Beispiele der vorliegenden Erfindung dar und können mit anderen bekannten Technologien kombiniert, oder zum Teil weggelassen, oder modifiziert werden, ohne den Umfang der vorliegenden Erfindung zu verlassen.
-
Bezugszeichenliste
-
- 1
- Netzwerk;
- 10
- programmierbare Steuerung;
- 20, 30
- externes Gerät.
-
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
-