-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft die Technik industrieller Steuervorgänge, und
insbesondere Verfahren und Systeme zur I/O-Zwangssteuerung unter Verwendung
eines I/O-Prozessors, der einen Cache-Speicher aufweist.
-
Hintergrund
der Erfindung
-
Industrielle
Controller sind Spezialzweck-Verarbeitungsvorrichtungen, die zum
Steuern industrieller Prozesse, Maschinen, Herstellungsanlagen und
anderen Fabrikautomationsanwendungen verwendet werden. In Übereinstimmung
mit einem Steuerprogramm bzw. einer Routine kann ein Industriecontroller
einen oder mehrere Prozessvariable messen oder Eingänge, die
für den
Status eines gesteuerten Prozesses repräsentativ sind, und Ausgänge bzw.
Ausgangssignale ändern,
die die Steuerung des Prozesses beeinflussen. Die Eingänge und
Ausgänge
bzw. Eingangs- und Ausgangssignale können binär (z. B. ein oder aus) sein,
und/oder analog unter der Voraussetzung eines kontinuierlichen Bereichs von
Werten. Die Steuerroutine kann in einer Reihe von Ausführungszyklen
mit Chargenverarbeitungsfähigkeiten
ausgeführt
werden und sie kann eine oder mehrere funktionelle Einheiten aufweisen.
Die gemessenen Eingangssignale, die von einem gesteuerten Prozess
empfangen werden, und die Ausgangssignale, die zu dem Prozess übertragen
werden, können
durch ein oder mehrere Eingabe-/Ausgabe-(I/O)-module in einem Steuersystem laufen,
die als elektrische Schnittstelle zwischen dem Controller und dem
gesteuerten Prozess dienen, und sie können in der Nähe des oder
entfernt vom Controller zu liegen kommen. Die Eingangssignale und
Ausgangssignale können
in einer I/O-Tabelle in einem Prozessorspeicher aufgezeichnet sein.
Eingangswerte können
asynchron aus dem gesteuerten Prozess durch ein oder mehrere Eingangsmodul(e)
gelesen werden, und Ausgangswerte können direkt in die I/O-Tabelle
durch einen Prozessor für
eine nachfolgende Kommunikation mit dem Prozess durch einen spezialisierten
Kommunikationsschaltkreis geschrieben werden. Ein Ausgangsmodul
kann direkt mit einem gesteuerten Prozess eine Schnittstelle bilden
durch Bereitstellen eines Ausgangssignals aus einer I/O-Tabelle
für ein
Stellorgan, wie etwa einen (Elektro-)motor, ein Ventil, ein Solenoid
und dergleichen.
-
Während der
Ausführung
der Steuerroutine laufen Werte der Eingangssignale und Ausgangssignale,
die mit dem gesteuerten Prozess ausgetauscht werden, durch die I/O-Tabelle.
Die Werte der Eingangssignale bzw. Eingaben in die I/O-Tabelle können asynchron
von dem gesteuerten Prozess durch einen zugeordneten Abtastschaltkreis
aktualisiert werden. Dieser Abtastschaltkreis kann mit Eingangs- und/oder
Ausgangsmodulen über
einen Bus auf einer Rückseitenebene
(Backplane) oder über
Netzwerkkommunikationen kommunizieren. Der Abtastschaltkreis kann
auch asynchron Werte der Ausgangssignale in der I/O-Tabelle für den gesteuerten Prozess
schreiben. Die Ausgangswerte aus der I/O-Tabelle können daraufhin
zu einem oder mehreren Ausgangsmodulen zur Schnittstellenbildung
mit dem Prozess kommuniziert werden. Ein Controllerprozessor vermag
in einfacher Weise auf die I/O-Tabelle dadurch zuzugreifen, so dass
eine direkte Kommunikation mit dem gesteuerten Prozess entfällt.
-
In
verteilten Steuersystemen kann eine Controllerhardware-Konfiguration durch
Auftrennen des industriellen Controllers in eine Anzahl von Steuermodulen
erleichtert werden, von de nen jedes eine unterschiedliche Funktion
ausführt.
Spezielle Steuermodule, die für
die Steueraufgabe erforderlich sind, können daraufhin gemeinsam auf
einer gemeinsamen Rückseitenebene
innerhalb eines Regals und/oder durch ein Netzwerk oder ein anderes
Kommunikationsmedium miteinander verbunden werden. Die Steuermodule
können
Prozessoren, Stromversorgungen, Netzwerkkommunikationsmodule und I/O-Module
enthalten, die Eingangs- und Ausgangssignale direkt mit dem gesteuerten
Prozess austauschen. Daten können
zwischen Modulen unter Verwendung eines Rückseitenebenen-Kommunikationsbusses
ausgetauscht werden, der seriell oder parallel sein kann, oder über ein
Netzwerk. Zusätzlich
zur Durchführung
von I/O-Betriebsabläufen
ausschließlich
auf Grund von Netzwerkkommunikationen existieren smarte Module,
die autonome logische oder andere Steuerprogramme oder Routinen
auszuführen
vermögen.
-
Verschiedene
Steuermodule eines verteilten industriellen Steuersystems können entlang
einer gemeinsamen Kommunikationsleitung in mehreren Racks räumlich verteilt
sein. Bestimmte I/O-Module können
dadurch in der Nähe
eines Abschnitts der Steueranlage angeordnet werden sowie entfernt
vom Rest des Controllers. Daten können mit diesen entfernten
Modulen oder über
eine gemeinsame Kommunikationsleitung oder ein Netzwerk kommuniziert werden,
wobei sämtliche
Module auf dem Netzwerk über
ein Standardkommunikationsprotokoll kommunizieren.
-
In
einem typischen verteilten Steuersystem sind ein oder mehrere I/O-Module
zur Schnittstellebildung mit einem Prozess vorgesehen. Die Ausgangssignale
gewinnen ihre Steuerungs- oder
Ausgangssignalwerte in Form einer Mitteilung von einem Master- oder
Peer-Gerät über ein
Netzwerk oder eine Rückseitenebene
(Backplane). Beispielsweise kann ein Ausgangsmodul einen Ausgangssignalwert
von einem Prozessor empfangen, wie etwa einem programmierbaren Logikcontroller
(PLC) über
ein Kommunikationsnetzwerk oder einen Rückseitenebenen-Kommunikationsbus.
Der gewünschte
Ausgangswert wird üblicherweise
zu dem Ausgangsmodul in einer Mitteilung übertragen, wie etwa als I/O-Mitteilung.
Das Ausgangsmodul, das eine Mitteilung empfängt, stellt für die gesteuerten
Prozesse ein entsprechendes (analoges oder digitales) Ausgangssignal
bereit. Eingangsmodule messen einen Wert einer Prozessvariablen
und berichten die Eingangswerte an ein Master- oder Peer-Gerät über ein
Netzwerk oder eine Rückseitenebene.
Die Eingangswerte können
durch einen Prozessor (z. B. einen PLC) zur Durchführung von
Steuerberechnungsvorgängen
genutzt werden.
-
Die
Erfindung, die in den unabhängigen
Ansprüchen
festgelegt ist, stellt ein System und ein Verfahren zur industriellen
I/O-Zwangssteuerung bereit, demnach Zugriffe eines geteilten Speichers
durch einen I/O-Prozessor reduziert werden können, wodurch das Leistungsvermögen eines
Prozessors zur Ausführung
eines Steuerprogramms des Systems erhöht werden kann.
-
Vorteilhafte
Weiterbildungen sind in den Unteransprüchen angegeben.
-
Anspruch
1 würdigt
in seinem Oberbegriff die
US
5212631 . Die
US 5212631 offenbart
ein programmierbares Steuersystem mit einem Prozessor und einem
I/O-Prozessor, der betriebsmäßig mit
einem geteilten Speicher verbunden ist, wie im Oberbegriff des Anspruchs
1 angeführt.
-
Die
US 6085263 offenbart die
Verwendung eines Cache-Speichers. Die
US
6085263 betrifft allgemein ein Mehrfachverarbeitungssystem,
aufweisend mehrere Prozessoren, die mit einem I/O-Prozessor und
einem Speicher über
einen lokalen Schalter verbunden sind. Jeder der mehreren Prozessoren und
der I/O-Prozessor
nutzen einen privaten Cache. Die
US
6085263 offenbart die Verwendung eines Vorauslesecontrollers
(Prefetch Controller) zur Speicherung von vorab eingelesenen Transienteneingangs-
und -ausgangsdaten in den Cache des I/O-Prozessors ohne irgendwelche
Ordnungsbeschränkungen
zur Sicherstellung eines maximalen Durchsatzes von Daten durch den
I/O-Prozessor. Die
US 6085263 ist im Hinblick
auf die Art der im Cache gespeicherten Daten nicht diskriminierend
und speichert Eingangs- und Ausgangsdaten, die von einer I/O-Vorrichtung
empfangen und zu dieser gerichtet sind.
-
Die
DE-A-4423559 offenbart ein Mehrfachprozessor-Computersystem, in
dem jeder Prozessor eine lokalen Cache-Speicher aufweist, der zum
unabhängigen
und vorübergehenden
Speichern und Ändern
von Datenblöcken
verwendet wird. Die US-A-5161219 offenbart ein Computersystem, das einen
Cache zwischen Eingangs-/Ausgangsvorrichtungen und einem Hauptspeichersystem
aufweist, so dass durch sämtliche
Systemspeicher Zugriffe durch den Cache vorgenommen werden können.
-
Zusammenfassung
der Erfindung
-
Es
folgt eine vereinfachte Zusammenfassung der Erfindung, um ein grundsätzliches
Verständnis
von einigen Aspekten der Erfindung zu fördern. Diese Zusammenfassung
stellt keine ausführliche Übersicht
der Erfindung dar. Kernelemente oder kritische Elemente der Erfindung
sollen hierdurch nicht identifiziert werden und der Umfang der Erfindung
soll dadurch nicht festgelegt werden. Der einzige Zweck dieser Darstellung
besteht darin, einige Konzepte der Erfindung in vereinfachter Form
als Einleitung für
eine detailliertere Beschreibung darzustellen, die nachfolgend angeführt ist.
-
Die
vorliegende Erfindung betrifft ein System und ein Verfahren zur
I/O-Zwangssteuerung unter Verwendung eines I/O-Prozessors, der einen Cache-Speicher.
aufweist. Die vorliegende Erfindung stellt einen Prozessor und einen
I/O-Prozessor zur betriebsmäßigen Verbindung
mit einem geteilten Speicher bereit, der beispielsweise Konfigurationsdaten,
I/O-Zwangssteuerungsdaten
(z. B. auf Grundlage einer Bedienpersoneingabe), Ausgangsdaten zur
Beeinflussung des Prozesses (z. B. zur Übertragung zu einer Betätigungsvorrichtung
bzw. Betätigungsvorrichtungen)
und/oder Eingangsdaten speichert, die für den Status des gesteuerten
Prozesses (z. B. Empfangen von einer Erfassungsvorrichtung bzw.
Erfassungsvorrichtungen) repräsentativ
sind.
-
In Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung ist der I/O-Prozessor
betriebsmäßig mit
einem Cache-Speicher
verbunden. Der Cache-Speicher wird selektiv mit zumindest einem
Teil der I/O-Zwangssteuerungsdaten geladen, die in dem geteilten
Speicher abgespeichert sind. Der I/O-Prozessor vermag Information zu speichern,
die mit einem Eingangssignal bzw. Eingangssignalen in dem geteilten
Speicher verbunden ist, auf Grundlage zumindest teilweise von einem
Eingangssignal bzw. Eingangssignalen, die von der Erfassungsvorrichtung
bzw. den Erfassungsvorrichtungen empfangen werden, und I/O-Zwangssteuerungsdaten,
die in dem Cache-Speicher gespeichert sind. Der I/O-Prozessor kann
eine Steuerung des Prozesses (z. B. über eine Betätigungsvorrichtung
bzw. Betätigungsvorrichtungen)
auf Grundlage zumindest teilweise einer Ausgangsinformation bewirken,
die aus dem geteilten Speicher rückgewonnen
wird, und I/O-Zwangssteuerungsdaten, die in dem Cache-Speicher gespeichert sind.
Typischerweise kann sich das Eingangssignal bzw. können sich
die Eingangssignale und/oder das Ausgangssignal bzw. die Ausgangssignale
häufig ändern, weshalb
sie in dem Cache-Speicher nicht gespeichert werden.
-
Gemäß einem
weiteren Aspekt stellt die vorliegende Erfindung für den Prozessor
die Möglichkeit bereit,
den I/O-Prozessor (z. B. über
eine Befehlsmitteilung) in dem Fall zu benachrichtigen, dass I/O-Zwangssteuerungsdaten
während
der Ausführung
des Steuerprogramms geändert
werden. Der I/O-Prozessor vermag den Cache-Speicher nach Empfang
der Mitteilung (z. B. über
einen "blockierten Schreibvorgang" in eine virtuelle
Adresse in dem geteilten Speicher) aufzufrischen.
-
Die
folgende Beschreibung und die anliegenden Zeichnungen stellen detailliert
bestimmte illustrative Aspekte der Erfindung dar. Diese Aspekte
zeigen lediglich einige wenige der verschiedenen Möglichkeiten
auf, demnach die Prinzipien der vorliegenden Erfindung eingesetzt
werden können,
und die vorliegende Erfindung soll sämtliche dieser Aspekte sowie ihre Äquivalente
umfassen. Weitere Vorteile und neuartigen Merkmale der Erfindung
erschließen
sich aus der nachfolgenden detaillierten Beschreibung der Erfindung
in Verbindung mit den Zeichnungen.
-
Kurze Beschreibung
der Zeichnungen
-
1 zeigt
ein schematisches Blockdiagramm eines Industriecontrollersystems
in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung.
-
2 zeigt
ein schematisches Blockdiagramm eines geteilten Speichers in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung.
-
3 zeigt
ein beispielhaftes digitales Eingangssignal mit Zwangssteuerungsmasken,
die in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung angewendet sind.
-
4 zeigt
ein beispielhaftes digitales Ausgangssignal mit Zwangssteuerungsmasken,
die in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung angewendet sind.
-
5 zeigt
ein Flussdiagramm unter Darstellung einer Methode zum Cachen einer I/O-Zwangssteuerungsmaske
bzw. von mehreren derartigen Masken für ein Eingangssignal bzw. Eingangssignale
in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung.
-
6 zeigt
ein Flussdiagramm unter Darstellung der Methode von 5.
-
7 zeigt
ein Flussdiagramm unter Darstellung einer Methode zum Cachen einer I/O-Zwangssteuerungsmaske
bzw. von mehreren derartigen Masken für ein Ausgangssignal bzw. Ausgangssignale
in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung.
-
8 zeigt
ein Flussdiagramm unter zusätzlicher
Darstellung der Methode von 7.
-
9 zeigt
eine perspektivische Darstellung eines Industriecontrollers, der
mehrere funktionelle Module aufweist, die innerhalb mehrere Racks
angeordnet sind, die mit Kommunikationsleitungen verbunden sind.
-
10 zeigt
eine schematische Darstellung eines Einzelfunktionsmoduls von 9 unter
Darstellung seiner Verbindung mit einer gemeinsamen Rückseitenebene
und Kommunikationsleitungen zur Kommunikation mit anderen Modulen.
-
Detaillierte
Beschreibung der Erfindung
-
Die
vorliegende Erfindung wird nunmehr unter Bezug auf die Zeichnungen
erläutert,
wobei zur Bezeichnung gleicher Elemente durchgehend die gleichen
Bezugsziffern verwendet werden. In der nachfolgenden Beschreibung
sind zu Erläuterungszwecken
zahlreiche spezifische Einzelheiten angeführt, um ein sorgfältiges Verständnis der
vorliegenden Erfindung zu ermöglichen.
Dem Fachmann auf diesem Gebiet der Technik erschließt sich,
dass die vorliegende Erfindung ohne die spezifischen Einzelheiten
in die Praxis umgesetzt werden kann. In anderen Fällen sind
an sich bekannte Strukturen und Vorrichtungen in Blockdiagrammgestalt
gezeigt, um die Erläuterung
der vorliegenden Erfindung zu erleichtern.
-
In 1 ist
ein System 100 für
einen Industriecontroller gezeigt. Das System 100 umfasst
einen Prozessor 110 und einen I/O-Prozessor 120.
Beispielsweise kann es sich bei dem Prozessor 110 um eine
Zentralprozessoreinheit (CPU), einen Steuerprozessor, einen Logikprozessor
und/oder einen Leiterprozessor für
einen Industriecontroller handeln. Der I/O-Prozessor 120 kann üblicherweise
so ausgelegt sein, dass er eine I/O-Funktion bzw. derartige Funktionen
in einer verteilten Steuerumgebung ausführt. Der Prozessor 110 und
der I/O-Prozessor 120 sind
betriebsmäßig mit
einem geteilten Speicher 130 (z. B. einem RAM) verbunden.
Beispielsweise können
der Prozessor 110 und der I/O-Prozessor 120 mit dem
geteilten Speicher 130 über
einen Rückseitenebenen-
(Backplane-) Kommunikationsbus verbunden sein, der seriell oder
parallel ausgelegt ist, oder über ein
Netzwerk. Der I/O-Prozessor 120 um fasst einen Cache-Speicher 140.
Der geteilte Speicher 130, enthält einen virtuellen Speicher 131,
der eine Speicherverwaltung des Cache-Speichers 140 erlaubt
(z. B. ein cachefähiges,
Nurlese-Spiegelbild des geteilten Speichers, der über einen
unterschiedlichen Adressenraum adressiert ist).
-
Wie
in 2 gezeigt, kann der geteilte Speicher 130 Konfigurationsdaten 132,
I/O-Zwangssteuerungsdaten 134, Ausgangsdaten 136 und/oder
Eingangsdaten 138 enthalten. Es wird bemerkt, dass die in
den Konfigurationsdaten 132, den I/O-Zwangssteuerungsdaten 134,
den Ausgangsdaten 136 und/oder den Eingangsdaten 138 gespeicherte
Information in einer beliebigen geeigneten Datenstruktur gespeichert
sein kann, einschließlich,
ohne hierauf beschränkt
zu sein, als Tabelle(n), Datenbasis bzw. Datenbasen, eine Aufzeichnung
bzw. Aufzeichnungen, eine Array bzw. Arrays und/oder eine Liste
bzw. Listen. Die Eingangsdaten 138 speichern Information in
Verbindung mit dem Zustand einer Erfassungsvorrichtung bzw. von
Erfassungsvorrichtungen, die mit dem System 100 verbunden
ist bzw. sind (z. B. Empfangen über
den I/O-Prozessor 120). Ausgangsdaten 136 geben
den Zustand des Ausgangssignals bzw. von Ausgangssignalen wieder,
das bzw. die die Steuerung des Prozesses bewirkt bzw. bewirken (z.
B. eine Betätigungsvorrichtung
bzw. derartige Vorrichtungen der Anlage und/oder eine Steuerung
bzw. Steuerungen), der durch das System 100 gesteuert wird.
Beispielsweise können
die Ausgangsdaten 136 Daten speichern, die zur Steuerung
einer Betätigungsvorrichtung
bzw. Betätigungsvorrichtungen verwendet
werden, die mit einem Ausgangs-I/O-Modul bzw. mehreren derartigen
Modulen verbunden ist bzw. sind (nicht gezeigt). Die Konfigurationsdaten 132 vermögen Systempegelkonfigurationsdaten
zu speichern (z. B. ein Passwort und/oder Privileginformation, einen
Anschlusskommunikationsparameter bzw. mehrere derartige Parameter und/oder
ein Ereigniszeitablaufintervall bzw. mehrere derartige Intervalle).
-
I/O-Zwangssteuerungsdaten 134 können. Information
speichern zur Zwangssteuerung eines spezifischen Eingangs bzw. solcher
Eingänge
(z. B. Empfangen von der Erfassungsvorrichtung bzw. den Erfassungsvorrichtungen)
und/oder eines Ausgangs bzw. von Ausgängen (z. B. gesendet zu einer
Betätigungsvorrichtung
bzw. Betätigungsvorrichtungen)
in einem gegebenen Logikzustand. Bei der I/O-Zwangssteuerung handelt
es sich um die Nutzung eines vorbestimmten Wert in einem Steuerprogramm
anstelle des tatsächlichen
Werts, der von einem I/O-Modul empfangen wird, oder um das Ausgeben
eines vorbestimmten Werts zu einem I/O-Modul anstelle des tatsächlichen
Werts, der durch das Steuerprogramm erzeugt wird. Die Zwangssteuerung
ist beispielsweise nützlich
zur Fehlersuche in Steuerprogrammen, Fehlersuche in einem industriellen Steuersystem
bzw. derartigen Steuersystemen, zum Umgehen einer nicht betriebsfähigen Anlage und/oder
zum Testen eines I/O.
-
Wie
in 3 und 4 gezeigt, können die I/O-Zwangssteuerungsdaten 134 eine
Zwangssteuerungsausschaltmaske 204, 214 und/oder
eine Zwangssteuerungseinschaltmaske 208, 218 enthalten,
die mit der Zwangssteuerung eines I/O-Moduls verbunden sind. Für den Eingang
bzw. die Eingänge wird
die Zwangssteuerungsausschaltmaske 204 durch den I/O-Prozessor 120 mit
dem tatsächlichen Eingangssignal
bzw. den tatsächlichen
Eingangssignalen 202 logisch UND-verknüpft, das bzw. die von dem I/O-Modul empfangen wird
bzw. werden, was zu einem Interimsergebnis 206 führt. Das
Interimsergebnis 206 wird daraufhin durch den I/O-Prozessor 120 mit
der Zwangssteuerung auf der Maske 208 logisch ODER-verknüpft, was
zu einem Eingangsergebniswert 210 führt, der in Eingangsdaten 138 des geteilten
Speichers 130 gespeichert wird. Sobald er in dem geteilten
Speicher 130 gespeichert ist, steht der Eingangsergebniswert 210 zur
Nutzung durch das Steuerprogramm zur Verfügung.
-
In ähnlicher
Weise wird die Zwangssteuerungsausschaltmaske 214, logisch
durch den I/O-Prozessor 120 mit Ausgangsdaten 212 UND-verbunden,
die aus dem geteilten Speicher 130 durch den I/O-Prozessor 120 rückgewonnen
werden, was zu einem Interimsergebnis 216 führt. Das
Interimsausgangssignalergebnis 216 wird daraufhin durch den
I/O-Prozessor 120 mit der Zwangssteuerung auf der Maske 218 ODER-verknüpft, was
zu einem Ausgangssignalergebniswert 220 führt, der
daraufhin zu einem I/O-Modul kommuniziert wird. In dem der I/O-Prozessor 120 eine
bestimmte I/O-Verarbeitungsfunktion bzw. derartige Funktionen durchführen gelassen
wird, kann die Geschwindigkeit des Prozessors 110 und/oder
ihr Wirkungsgrad verbessert werden.
-
Sowohl
der Prozessor 110 wie der I/O-Prozessor 120 greifen üblicherweise
auf Information zu, die in dem geteilten Speicher 130 gespeichert
ist. Beispielsweise vermag der I/O-Prozessor 120 Information zu
speichern, die mit einer Erfassungsvorrichtung in Eingangsdaten 138 (beispielsweise
im Eingangswert) verbunden sind, auf die der Prozessor 110 später während der
Ausführung
des Steuerprogramms zugreifen kann. In ähnlicher Weise kann der Prozessor 110 Information
speichern, die mit einer Betätigungsvorrichtung
in Ausgangsdaten 136 verbunden ist, auf die der I/O-Prozessor 120 später zugreifen
und beim Durchführen
einer I/O-Funktion bzw. derartigen Funktionen verarbeiten kann.
Typischerweise vermag lediglich entweder der Prozessor 110 oder
der I/O-Prozessor 120 auf Information in dem geteilten
Speicher 130 zu einem gegebenen Zeitpunkt zuzugreifen.
-
In
einer industriellen Steuerumgebung kann eine bestimmte Information,
die in dem geteilten Speicher 130 gespeichert ist, beispielsweise
Ausgangsdaten und/oder Eingangsdaten, den Wert bzw. die Werte häufig während der
Ausführung
des Steuerprogramms ändern.
Da es erforderlich ist, dass diese Information aktuell ist, wird
sie typischerweise nicht gecacht (z. B. zum Schutz gegenüber unerwünschter
Latenz und/oder dem verbrauchten Zustand von Daten). Andere, im
geteilten Speicher 130 gespeicherte Information, beispielsweise
Konfigurationsdaten und/oder I/O-Zwangssteuerungsdaten, ändert sich
hingegen während
der Ausführung
des Steuerprogramms selten.
-
Um
die Frequenz des Zugriffs auf den geteilten Speicher 130 zu
verringern, kann zumindest ein Teil der Daten, die im geteilten
Speicher 130 gespeichert sind und sich typischerweise während der
Ausführung
eines Steuerprogramms selten ändern
(z. B. I/O-Zwangssteuerungsdaten) in dem Cache-Speicher 140 des
I/O-Prozessors 120 gespeichert werden. Beispielsweise können die
I/O-Zwangssteuerungsdaten 134 im Speicher getrennt von
den sich dynamisch ändernden
Eingangsdaten 138 und/oder Ausgangsdaten 136 partitioniert
werden, und/oder der gesamte geteilte Speicher 130 kann
an einem zusätzlichen
virtuellen Speicherraum gespiegelt werden, in welchen Cachen freigegeben
ist. Die jüngsten Eingangsdaten 138 und/oder
Ausgangsdaten 136 können
in dem nicht gecachten geteilten Speicher 130 geprüft werden;
auf die I/O-Zwangssteuerungsdaten 134 kann jedoch über den
cachefähigen
Raum (z. B. den Cache-Speicher 140) nicht zugegriffen werden.
Im Fall, dass typischerweise selten geänderte Daten während der
Ausführung
des Steuerprogramms geändert
worden sind, kann der Prozessor 110 dies dem I/O-Prozessor 120 mitteilen
(z. B. über eine
Befehlsmitteilung). Sobald mitgeteilt worden ist, dass sich selten
geän derte
Daten geändert
haben, kann der I/O-Prozessor 120 das erneute Laden des Cache-Speichers 140 initiieren.
Sobald mitgeteilt worden ist, dass sich selten geänderte Daten
geändert
haben, vermag der I/O-Prozessor 120 beispielsweise aus
dem geteilten Speicher 130 zu lesen und die aktualisierten
Daten zu gewinnen (z. B. I/O-Zwangssteuerungsdaten 134).
Der I/O-Prozessor 120 kann
daraufhin die frischen Daten in dieselbe virtuelle Stelle über den
cachefähigen
Adressenraum schreiben; es wird bemerkt, dass die geteilte Speicherstellenadresse
und die virtuelle Speicheradresse auf dieselbe physikalische Adresse
im Speicher 130 zugreifen, und dass der Prozessor 110 diese
Stellen im geteilten Speicher 130 bereits aktualisiert
hat. Das tatsächliche
Schreiben in den virtuellen Speicher 131 über den
I/O-Prozessor 120 kann "blockiert" sein, so dass lediglich
der Cache-Speicher 140 tatsächlich aktualisiert wird.
-
Sobald
mitgeteilt worden ist, dass selten geänderte Daten geändert worden
sind, vermag der I/O-Prozessor 120 ein "blockiertes Schreiben" für den virtuellen
Speicher zu initiieren. Um eine potentielle Dateninkonsistenz zu
reduzieren, ändert
der I/O-Prozessor 120 den Inhalt jeder Speicherstelle während des "blockierten Schreibens" tatsächlich nicht,
womit bezweckt wird, zu dem Cache-Speicher 140 das Auftreten
einer Änderung
der selten geänderten
Daten zu kommunizieren, von denen ein Teil in dem Cache-Speicher 140 speicherbar
ist. In Übereinstimmung
mit allgemein bekannter Cache-Speicher-verwaltungstechnik frischt
der Cache-Speicher seinen Inhalt bzw. seine Inhalte aus dem geteilten
Speicher 130 auf, sobald das "blockierte Schreiben" durch den I/O-Prozessor 120 initiiert
worden ist, wenn die in das "blockierte
Schreiben" einbezogene
Adresse im Cache-Speicher 140 gespeichert ist bzw. wird.
Alternativ vermag der Prozessor 110 dem I/O-Prozessor 120 den geänderten
Wert bzw. die geänderten
Werte mitzuteilen, wodurch der I/O-Prozessor 120 den Cache-Speicher 140 modifizieren
kann.
-
Während der
Initialisierung vermag der Prozessor 110 den geladenen
Wert bzw. die geladenen Werte beispielsweise in die I/O-Zwangssteuerungsdaten 134 zu
laden (z. B. Zwangssteuerungsausschaltmaske(n) 204, 214 und/oder
Zwangssteuerungseinschaltmaske(n) 208, 218). Daraufhin
vermag der I/O-Prozessor 120 den Cache-Speicher 140 mit
zumindest einem Teil der I/O-Zwangssteuerungsdaten 134 zu
laden. Während
des Betriebs des Systems kann der I/O-Prozessor 120 zum
Reduzieren der Verarbeitungslast des Prozessors 110 eine I/O-Zwangssteuerung
durchführen.
In dem Fall, dass Information, die für die I/O-Zwangssteuerung benötigt wird (z. B. Zwangssteuerungsausschaltmaske(n) 204, 214 und/oder
Zwangssteuerungseinschaltmaske(n) 208, 218), in
dem Cache-Speicher 140 gespeichert ist, können Zugriffe
des geteilten Speichers 130 durch den I/O-Prozessor 120 verringert
werden, wodurch das Leistungsvermögen des Prozessors 110 potentiell
vergrößert wird.
In dem Fall, dass I/O-Zwangssteuerungsdaten 134 (z. B.
Zwangssteuerungsausschaltmaske(n) 204, 214 und/oder Zwangssteuerungseinschaltmaske(n) 208, 218) während der
Ausführung
des Steuerprogramms geändert
werden (z. B. durch eine Bedienperson), kann der Prozessor 110 dem
I/O-Prozessor 120 das Auftreten dieser Änderung mitteilen. Um Kohärenz von Daten
zu gewährleisten,
die in dem geteilten Speicher 130 und dem Cache-Speicher 140 gespeichert sind,
vermag der I/O-Prozessor 120 daraufhin ein "blockiertes Schreiben" zu initiieren, das
mit der geänderten
geteilten Speicheradresse einhergeht, was dazu führt, dass der Cache-Speicher 140 aktualisiert wird,
wenn in der geänderten
geteilten Speicheradresse gespeicherte Daten in dem Cache-Speicher 140 gespeichert
worden sind.
-
Es
wird bemerkt, dass, während
das System 100 im Hinblick auf I/O-Zwangssteuerungsdaten
im Hinblick auf binäre
(z. B. ein oder aus) Eingangssignal(e) und Ausgangssignal(e) erläutert worden
sind, die vorliegende Erfindung analoge Zwangssteuerungsdaten umfassen
kann (unter der Annahme eines kontinuierlichen Bereichs von Werten).
In dem Fall, dass analoge Zwangssteuerungsdaten in dem I/O-Zwangssteuerungsdaten 134 enthalten
sind, wird der analoge Zwangssteuerungswert bzw. die entsprechenden
Werte für
das Ausgangssignal bzw. die Ausgangssignale zu der Betätigungsvorrichtung
bzw. den entsprechenden Vorrichtungen durch den I/O-Prozessor gesendet.
In ähnlicher
Weise würden für das Eingangssignal
bzw. die -signale der analoge Zwangssteuerungswert bzw. die entsprechenden Werte
in dem geteilten Speicher 130 gespeichert werden.
-
Zusätzlich können die
I/O-Zwangssteuerungsdaten 134 eine Freigabemaske bzw. Freigabemasken
und eine Wertmaske bzw. Wertmasken enthalten. Die Freigabemaske(n)
stellen Information bereit im Hinblick auf das Bit bzw. die Bits
von Information, die beeinflusst werden soll, während die Wertmaske(n) den
Wert für
das beeinflusste Bit bzw. die beeinflussten Bits der Information
bereitstellt bzw. bereitstellen. Der Cache-Speicher 140 des I/O-Prozessors 120 vermag
außerdem
Information zu speichern, die üblicherweise
während
der Ausführung des
Steuerprogramms selten geändert
wird, beispielsweise Konfigurationsdaten, I/O-Fail-Safe-Information,
eine Verknüpfungstabelle
bzw. -tabellen (z. B. Information in Bezug auf eine Verknüpfung bzw. Verknüpfungen
für das
Eingangssignal bzw. die Eingangssignale und/oder das Ausgangssignal
bzw. die Ausgangssignale), eine Ausgangssignal-Keep-Alive-Tabelle
bzw. entsprechende Tabellen (z. B. Information in Bezug auf die Frequenz
und die Stelle einer Keep-Alive-Mitteilung bzw. entsprechende Mitteilungen
für ein
Ausgangsmodul bzw. -module) und/oder Eingangssignal-Time-Out-(Zeitablauf)Information.
-
Im
Hinblick auf die vorstehend gezeigten und erläuterten beispielhaften Systeme
lassen sich Methoden, die in Übereinstimmung
mit der vorliegenden Erfindung implementierbar sind, besser verstehen unter
Bezug auf die Flussdiagramme der 5, 6, 7 und 8.
Während
zur Vereinfachung der Erläuterung
die Methoden als Abfolge von Blöcken
gezeigt und erläutert
werden, wird bemerkt, dass die vorliegende Erfindung nicht auf die
Abfolge von Blöcken
beschränkt
ist, da einige Blöcke
in Übereinstimmung
mit der Erfindung in unterschiedlicher Abfolge und/oder gleichzeitig
mit anderen Blöcken auftreten
können
im Gegensatz zu den gezeigten und vorstehend erläuterten. Nicht sämtliche
dargestellten Blöcke
müssen
ein Verfahren in Übereinstimmung
mit der vorliegenden Erfindung implementieren. Außerdem wird
bemerkt, dass die beispielhaften Verfahren 500, 700 sowie
weitere Verfahren in Übereinstimmung
mit der Erfindung im Zusammenhang mit dem industriellen Steuersystem
implementiert werden können,
das vorliegend dargestellt und erläutert ist, sowie in Verbindung
mit anderen Systemen und Vorrichtungen, die weder dargestellt noch
erläutert
sind.
-
Die
Erfindung kann im allgemeinen Zusammenhang mit computerausführbaren
Instruktionen erläutert
werden, wie etwa Programmmodulen, die durch einen oder mehrere Computer
oder andere Vorrichtungen ausführbar
sind. Üblicherweise
umfassen Programmmodule Routinen, Programme, Objekte, Komponenten,
Datenstrukturen und dergleichen, die spezielle Aufgaben durchführen oder
bestimmte abstrakte Datenarten implementieren. Typischerweise kann
die Funktionalität
der Programmmodule in verschiedenen Ausführungsformen kombiniert oder verteilt
werden.
-
In 5 und 6 ist
eine Methode 500 zum Cachen einer I/O-Zwangssteuerungsmaske bzw. von mehreren
derartigen Masken für
ein Eingangssignal bzw. Eingangssignale in Übereinstimmung mit einem Aspekt
der vorliegenden Erfindung dargestellt. Bei 510 wird ein
Anfangswert bzw. werden Anfangswerte (z. B. Konfigurationsdaten 132, I/O-Zwangssteuerungsdaten 134,
Ausgangsdaten 136 und/oder Eingangsdaten 138)
in den geteilten Speicher 130 geladen. Bei 514 wird
der Cache-Speicher 140 des I/O-Prozessors 120 mit
selten geänderten
Daten geladen, aufweisend zumindest einen Teil des geteilten Speichers 130 (z.
B. I/O-Zwangssteuerungsdaten 134). Bei 520 wird
eine Ermittlung durch den I/O-Prozessor 120 ausgeführt, ob
eine aktualisierte Befehlsmittelung durch den Prozessor 110 empfangen
worden ist. Wenn die Ermittlung bei 520 NEIN ergibt, wird
der Prozessablauf bei 550 fortgesetzt. Wenn die Ermittlung
bei 520 JA ergibt, initiiert der I/O-Prozessor 120 bei 524 ein
geblocktes Schreiben in bzw. für
die Adresse(n) in dem geteilten Speicher 130 in Verbindung
mit dem aktualisierten Befehl bzw. Aktualisierungsbefehl (z. B.
eine geteilte Speicheradresse bzw. derartige Adressen, deren Wert bzw.
Werte geändert
wird bzw. werden). Bei 530 wird eine Ermittlung ausgeführt, ob
Daten aus der Adresse bzw. den Adressen, die mit dem Aktualisierungsbefehl
verbunden ist bzw. sind, in dem Cache-Speicher 140 gespeichert
sind (z. B. durch eine Cache-Speicherkontrollehardware,
-firmware und/oder -Software (nicht gezeigt)). Wenn die Ermittlung
bei 530 NEIN ergibt, wird der Prozessablauf bei 550 fortgesetzt.
Wenn die Ermittlung bei 530 JA ergibt, wird der Cache-Speicher 140 bei 540 aktualisiert
(z. B. es werden Daten aus dem geteilten Speicher 130 gelesen).
Bei 550 wird ein Eingangswert bzw. werden Eingangswerte
durch den I/O-Prozessor 120 empfangen (z. B. von dem I/O-Modul
bzw. derartigen Modulen). Bei 560 erfolgt eine Ermittlung,
ob mit dem Eingang bzw. den Eingängen
oder dem Eingangssignal bzw. den Eingangssignalen verbundene Daten
(z. B. I/O-Zwangssteuerungsdaten 134, beispielsweise Zwangssteuerungsausschaltmaske 204 und/oder Zwangssteuerungseinschaltmaske 208)
im Cache-Speicher 140 gespeichert ist. Wenn die Ermittlung
bei 560 JA ergibt, wird der Prozessablauf bei 580 fortgesetzt.
Wenn die Ermittlung bei 560 NEIN ergibt, wird der Cache-Speicher 140 bei 570 mit
Daten geladen, die mit dem Eingangssignal bzw. den Eingangssignalen
verbunden sind (z. B. I/O-Zwangssteuerungsdaten 134) aus
dem geteilten Speicher 130. Bei 580 wird das Eingangssignal
bzw. werden die Eingangssignale verarbeitet (z. B. das von dem I/O-Modul
empfangene Eingangssignal kann mit der Zwangssteuerungsausschaltmaske 204 logisch UND-verknüpft werden,
und das Ergebnis hiervon kann mit der Zwangssteuerungseinschaltmaske 208 logisch
ODER-verknüpft
werden.) Bei 590 wird der verarbeitete Eingangswert in
den geteilten Speicher 130 gespeichert. Bei 594 erfolgt
eine Ermittlung, ob der I/O-Prozessor zu Ende gekommen ist (z. B.
ob die Ausführung
des Steuerprogramms beendet ist). Wenn die Ermittlung bei 594 NEIN
lautet, wird der Prozessablauf bei 520 fortgesetzt. Wenn
die Ermittlung bei 594 JA lautet, findet kein weiterer
Prozessablauf statt.
-
In 7 und 8 ist
eine Methode 700 zum Cachen einer I/O-Zwangssteuerungsmaske bzw. von derartigen
Masken für
ein Eingangssignal bzw. Eingangssignale in Übereinstimmung mit einem Aspekt
der vorliegenden Erfindung dargestellt. Bei 710 wird bzw.
werden ein Anfangswert bzw. Anfangswerte (z. B. Konfigurationsdaten 132,
I/O-Zwangssteuerungsdaten 134, Ausgangsdaten 136 und/oder Eingangsdaten 138)
in den geteilten Speicher 130 geladen. Bei 714 wird
der Cache-Speicher 140 des I/O- Prozessors 120 mit selten geänderten
Daten geladen, aufweisend zumindest einen Teil des geteilten Speichers 130 (z.
B. I/O-Zwangssteuerungsdaten 134). Bei 720 erfolgt
eine Ermittlung durch den I/O-Prozessor 120, ob eine aktualisierte
Befehlsübermittlung
von dem Prozessor 110 empfangen worden ist. Wenn die Ermittlung
bei 720 NEIN ergibt, wird der Prozessablauf bei 750 fortgesetzt.
Wenn die Ermittlung bei 720 JA ergibt, initiiert der I/O-Prozessor 120 bei 724 ein
blockiertes Schreiben in die Adresse bzw. Adressen in dem geteilten
Speicher 130 in Verbindung mit dem aktualisierten Befehl
(z. B. eine geteilte Speicheradresse bzw. derartige Adressen, deren Wert
bzw. Werte geändert
wird bzw. werden). Bei 730 erfolgt eine Ermittlung, ob
Daten aus der Adresse bzw. den Adressen, die dem Aktualisierungsbefehl zugeordnet
ist bzw. sind, in dem Cache-Speicher 140 gespeichert (worden)
sind (z. B. durch eine Cache-Speicherkontrollehardware, -firmware
und/oder -software (nicht gezeigt)). Wenn die Ermittlung bei 730 NEIN
ergibt, wird der Prozessablauf bei 750 fortgesetzt. Wenn
die Ermittlung bei 730 JA ergibt, wird der Cache-Speicher 140 bei 740 aktualisiert
(z. B. Daten werden aus dem geteilten Speicher 130 ausgelesen).
Bei 750 wird ein Ausgangssignalwert bzw. werden derartige
Werte durch den I/O-Prozessor 120 aus dem geteilten Speicher 130 rückgewonnen.
Bei 760 erfolgt eine Ermittlung, ob mit dem Ausgangssignal
bzw. den Ausgangssignalen verbundene Daten (z. B. I/O-Zwangssteuerungsdaten 134,
beispielsweise eine Zwangssteuerungsausschaltmaske 204 und/oder
Zwangssteuerungseinschaltmaske 208) in dem Cache-Speicher 140 gespeichert
(worden) sind. Wenn die Ermittlung bei 760 JA ergibt, wird
der Prozessablauf bei 780 fortgesetzt. Wenn die Ermittlung bei 760 NEIN
ergibt, wird der Cache-Speicher 140 bei 770 mit
Zwangssteuersdaten geladen, die mit dem Ausgangssignal bzw. den
Ausgangssignalen von dem geteilten Speicher 130 verbunden
sind. Bei 780 wird das Aus gangssignal bzw. werden die Ausgangssignale
verarbeitet (z. B. der Ausgangssignalwert bzw. die entsprechenden
Werte, die von dem geteilten Speicher 130 rückgewonnen
sind, können mit
der Zwangssteuerungsausschaltmaske 204 logisch UND-verknüpft werden,
und das Ergebnis davon kann mit der Zwangssteuerungseinschaltmaske 208 logisch
ODER-verknüpft
werden.) Bei 790 wird der verarbeitete Ausgangssignalwert
genutzt, um die Steuerung des Prozesses zu bewirken (z. B. Übertragen
zu einem I/O-Modul). Bei 794 erfolgt eine Ermittlung, ob
der I/O-Prozessor
zu Ende gekommen ist (z. B. ob die Ausführung des Steuerprogramms beendet ist).
Wenn die Ermittlung bei 794 NEIN lautet, wird der Prozessablauf
bei 720 fortgesetzt. Wenn die Ermittlung bei 794 JA
lautet, findet kein weiterer Prozessablauf statt.
-
Beispielhaftes
Steuersystem
-
Die
Verfahren und Systeme gemäß der vorliegenden
Erfindung können
im Zusammenhang mit zahlreichen Formen von Steuersystemen verwendet werden.
Um den Kontext für
verschiedene Anwendungen aufzuzeigen, demnach die Aspekte der Erfindung
ausgeführt
werden können,
wird nunmehr unter Bezug auf 9 und 10 ein
beispielhaftes Steuersystem erläutert.
Es wird bemerkt, dass die verschiedenen Aspekte der Erfindung im
Zusammenhang mit anderen Controllern und Steuersystemen verwendet
werden können
als denjenigen, die vorstehend dargestellt und erläutert sind.
Ein verteiltes industrielles Steuersystem 310, das zur
Verwendung mit der vorliegenden Erfindung geeignet ist, stellt erste
und zweite Racks 312A und 312B zum Aufnehmen einer
Anzahl von funktionellen Modulen 314 bereit, die durch
Rückseitenebenen
(Backplanes) 316A und 316B elektrisch miteinander
verbunden sind, die entlang der Rückseite der Racks 312A bzw. 312B verlaufen.
Jedes Modul 314 kann indivi duell von dem Regel 312A oder 312B einzeln
abgenommen werden, wodurch es von seiner jeweiligen Rückseitenebene 316 für eine Reparatur
oder einen Austausch abgenommen wird und eine kundenspezifische
Konfiguration des verteilten Systems 310 erlaubt.
-
Die
Module 314 innerhalb des Regals 312A können beispielsweise
ein Stromversorgungsmodul 318, ein Prozessormodul 326,
zwei Kommunikationsmodule 324A und 324B und zwei
I/O-Module 320 umfassen. Ein Stromversorgungsmodul 318 empfängt von
einer externen Quelle (nicht gezeigt) Strom und stellt geregelte
Spannungen für
die weiteren Module 314 mittels Leitern auf der Rückseitenebene 316A bereit.
Die I/O-Module 320 stellen eine Schnittstelle zwischen
den Eingängen
von oder Ausgängen zu
einer externen Anlage (nicht gezeigt) über eine Verkabelung 322 bereit,
die an den I/O-Modulen 320 an Anschlüssen auf ihren Frontplatten
angebracht sind. Die I/O-Module 320 wandeln Eingangssignale auf
den Kabeln 322 in Digitalwörter zur Übertragung auf der Rückseitenebene 316A.
Die I/O-Module 320 wandeln außerdem weitere Digitalwörter von
der Rückseitenebene 316A in
die notwendigen Signalpegel zur Steuerung der Anlage.
-
Die
Kommunikationsmodule 324A und 324B stellen eine ähnliche
Schnittstelle zwischen der Rückseitenebene 316A und
einem von zwei externen Hochgeschwindigkeitskommunikationsnetzwerken 327A und 327B bereit.
Die Hochgeschwindigkeitskommunikationsnetzwerke 327A und 327B können mit
anderen Modulen 314 verbunden sein oder mit entfernten
Racks von I/O-Modulen 320, mit Controllerkonfigurationswerkzeugen
oder -systemen oder dergleichen. In dem in 9 gezeigten
Beispiel steht das Hochgeschwindigkeitskommunikationsnetzwerk 327A mit
der Rückseitenebene 316A über das
Kommunikationsmodul 324A in Verbin dung, während das
Hochgeschwindigkeitskommunikationsnetzwerk 327B des Kommunikationsmoduls 324B Kommunikationsmodule 324C und 324D im Rack 312B verbindet.
Das Prozessormodul 326 verarbeitet Information, die durch
die Kommunikationsmodule 324A und 324B sowie die
I/O-Module 320 in Übereinstimmung
mit einem gespeicherten Steuerprogramm bzw. einer -routine bereitgestellt
wird, und es stellt Ausgangsinformation für die Kommunikationsmodule 324 und
die I/O-Module 320 in Reaktion mit diesem gespeicherten
Programm und empfangenen Eingangsmitteilungen bereit.
-
Wie
in 10 gezeigt, ist jedes funktionale Modul 314 an
der Rückseitenebene 316 mittels
eines trennbaren elektrischen Verbinders 330 angebracht, der
die Entfernung des Moduls 314 von der Rückseitenebene 316 derart
erlaubt, dass es ersetzt oder repariert werden kann, ohne die übrigen Module 314 zu stören. Die
Rückseitenebene 316 versorgt
das Modul 314 sowohl mit Strom wie mit einem Kommunikationssignal
zu den übrigen
Modulen 314. Eine lokale Kommunikation mit den übrigen Modulen 314 durch die
Rückseitenebene 316 wird
mittels einer Rückseitenebenen-Schnittstelle 332 bewirkt,
die die Rückseitenebene 316 über den
Verbinder 330 elektrisch anschließt. Die Rückseitenebenen-Schnittstelle 332 überwacht
Mitteilungen auf der Rückseitenebene 316 zum
Identifizieren dieser Mitteilungen, die für das spezielle Modul 314 bestimmt
sind, auf Grundlage einer Mitteilungsadresse, die Teil der Mitteilung
ist und die Bestimmung der Mitteilung anzeigt. Mitteilungen, die
durch die Rückseitenebenen-Schnittstelle 332 empfangen
werden, werden zu einem internen Bus 334 in dem Modul 314 übertragen.
-
Der
interne Bus 334 verbindet die Rückseitenebenen-Schnittstelle 332 mit
einem Speicher 336, einem Mikroprozes sor 328,
einem Frontplattenschaltkreis 338, einem I/O-Schnittstellenschaltkreis 339 (wenn
es sich bei dem Modul um ein I/O-Modul 320 handelt) und
mit einem Kommunikationsnetzwerkschnittstellenschaltkreis (wenn
es sich bei dem Modul um ein Kommunikationsmodul 324 handelt). Der
Mikroprozessor 328 kann ein Allzweckmikroprozessor sein,
der die sequenzielle Ausführung
von Instruktionen bereitstellt, die in dem Speicher 336 enthalten
sind, und der Daten aus dem Speicher 336 und den übrigen,
mit dem internen Bus 334 verbundenen Vorrichtungen liest
und in diesen schreibt. Der Mikroprozessor 328 umfasst
eine (nicht gezeigte) interne Taktschaltung, die die Taktung bzw.
Zeitsteuerung des Mikroprozessors 328 bereitstellt; er
kann jedoch auch mit einem externen Taktgeber 343 verbesserter
Präzision
kommunizieren. Dieser Taktgeber 343 kann ein kristallgesteuerter
Oszillator oder ein Zeitstandard sein, einschließlich einer Funkverbindung
zu einem externen Zeitstandard. Die Präzision des Taktgebers 343 kann
in dem Speicher 336 als Qualitätsfaktor aufgezeichnet sein.
Der Frontplattenschaltkreis 338 umfasst Statusanzeigeleuchten,
die auf diesem Gebiet der Technik bekannt sind, sowie manuell betätigbare
Schalter, wie etwa zum Verriegeln des Moduls 314 im Ausschaltzustand.
-
Der
Speicher 336 kann Steuerprogramme oder -routinen umfassen,
die durch den Mikroprozessor 328 ausgeführt werden, um Steuerfunktionen
bereitzustellen, sowie Variablen und Daten, die für die Ausführung dieser
Programme oder Routinen erforderlich sind. Für die I/O-Module kann der Speicher 336 außerdem eine
I/O-Tabelle enthalten, die den aktuellen Status von Eingangssignalen
und Ausgangssignalen enthält,
die von dem industriellen Controller 310 über die
I/O-Module 320 empfangen und zu diesen gesendet werden.
Das Modul 314 kann dazu ausgelegt sein, die verschiedenen
Methoden der Erfindung über Hardwarekonfigurationstechniken und/oder
durch Softwareprogrammiertechniken durchzuführen.
-
Obwohl
die Erfindung im Hinblick auf bestimmte, dargestellte Aspekte illustriert
und erläutert worden
ist, wird bemerkt, dass sich dem Fachmann äquivalente Abwandlungen und
Modifikationen aus einem Studium und Verständnis der Beschreibung und
der anliegenden Zeichnungen erschließen. Insbesondere im Hinblick
auf die verschiedenen Funktionen, die durch die vorstehend erläuterten
Komponenten durchgeführt
werden (Aufbauten, Vorrichtungen, Schaltungen, Systeme und dergleichen),
sollen die Begriffe (einschließlich
einem Bezug auf "Einrichtung"), die verwendet
wurden, um diese Bestandteile zu erläutern, dazu dienen, sich auf
jeden Bestandteil zu beziehen, es sei denn, es ist etwas anderes
angeführt,
das die spezifizierte Funktion des erläuterten Bestandteils durchführt (d.
h. funktionell äquivalent ist),
obwohl er nicht strukturell äquivalent
zu der offenbarten Struktur ist, die die Funktion in den vorstehend
erläuterten
beispielhaften Aspekten der Erfindung durchführt. In diesem Hinblick wird
bemerkt, dass die Erfindung ein System sowie ein computerlesbares
Medium mit computerausführbaren
Instruktionen zum Durchführen
der Akte und/oder Ereignisse der verschiedenen Verfahren gemäß der Erfindung
enthält.
-
Während ein
spezielles Merkmal der Erfindung unter Bezug auf lediglich eine
von mehreren Implementierungen offenbart worden sein kann, kann dieses
Merkmal mit einem oder mehreren weiteren Merkmalen der übrigen Implementierungen
kombiniert werden, falls dies erwünscht und vorteilhaft ist für eine gegebene
spezielle Anwendung. Der Begriff "Komponente bzw. Bestandteil" soll sich, so wie
er in dieser Anmeldung verwendet wird, auf eine computerbezogene
Gesamtheit beziehen, das heißt
entweder auf Hardware, eine Kombination von Hardware und Software
oder sich in Ausführung
befindlicher Software. Beispielsweise kann eine Komponente bzw.
ein Bestandteil, ohne hierauf beschränkt zu sein, ein Prozess sein,
der auf einem Prozessor läuft, ein
Prozessor, ein Objekt, ein ausführbares
Mittel, ein Ausführungsknoten,
ein Programm und ein Computer. In dem Umfang, in dem die Begriffe "enthält", "enthalten" bzw. "umfasst" bzw. "umfassen", "aufweist", "aufweisen" und Varianten hiervon
in der detaillierten Beschreibung oder den Ansprüchen verwendet werden, sollen
diese Begriffe ähnlich
dem Begriff "umfassend" von einschließender Natur
sein.
-
Die
vorliegende Erfindung kann wie folgt zusammengefasst werden: In
einem System und einem Verfahren für eine industrielle Steuerung
wird eine I/O-Zwangssteuerung bereitgestellt. Die Erfindung umfasst
einen Prozessor, einen geteilten Speicher und einen I/O-Prozessor
mit Cache-Speicher. Die Erfindung sieht vor, dass der Cache-Speicher
mit I/O-Zwangssteuerungsdaten aus dem geteilten Speicher geladen
wird. Der I/O-Prozessor führt
eine I/O-Zwangssteuerung unter Nutzung der I/O-Zwangssteuerungsdaten
aus, die in dem Cache-Speicher gespeichert sind. Die Erfindung sieht außerdem vor,
dass der Prozessor den I/O-Prozessor darüber informiert, dass I/O-Zwangssteuerungsdaten
während
der Ausführung
des Steuerprogramms geändert
werden. Die Erfindung sieht außerdem
vor, dass der I/O-Prozessor den Cache-Speicher (z. B. über einen
blockierten Schreibvorgang) auffrischt nach Empfang einer Änderung
der I/O-Zwangssteuerungsdaten aus dem Prozessor.