-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren, ein System
und ein Computerprogrammprodukt zum Übermitteln von Informationen über ein
Kommunikationsnetz, und insbesondere auf ein Adressierungsschema
für Geräte in einem
Computernetz.
-
Auf
Ethernet basierende Produkte zur Produktionsautomatisierung und
zugehörige
Gebiete sind beim Übermitteln
zwischen Datenverarbeitungssystemen und Peripheriegeräten weit
verbreitet. Lokalnetze (LAN) schalten Betriebsanlagen und andere Geräte, wie
etwa speicherprogrammierbare Steuerungen (SPS), Brücken (z.
B. die BP85 Bridge Plus und BM85 Bridge Multiplexer von Schneider
Automation, Inc.), industrielle Stromversorgungsüberwachungsgeräte (z. B.,
das CM 4000 von Schneider Electric N. A.), speicherprogrammierbare
Steuerungen (SPS) (z. B., jede beliebige der Quantum-SPS von Schneider
Automation, Inc.) und Computerarbeitsplätze zum Überwachen und Programmieren von
SPS und anderen Geräten
bezüglich
der Produktionsautomatisierung zusammen. Das MODBUS-Protokoll ist
bei Anwendungen von Produktionsautomatisierung weit verbreitet.
Das MODBUS-Protokoll wird in dem "MODBUS Protocol Reference Guide", Veröffentlichung
PI-MBUS-300 von Schneider Automation, Inc. beschrieben. MODBUS Plus
ist ein LAN-Protokoll für
industrielle Steueranwendungen. Anwendungen des MODBUS-Plus-Protokolls
werden in dem „MODBUS
Plus Network Planning and Installation Guide", 890 USE 10000 Version 3.0, Schneider
Electric, April 1996 beschrieben.
-
Das
MODBUS-Protokoll ist wohl bekannt und wird zum Beispiel im World
Wide Web (Web) unter http://www.modicon.com/techpubs/toc7.html beschrieben,
was hierin zusammen mit allen sich darauf beziehenden Webseiten
unter Verweis eingegliedert ist.
-
Das
Aufkommen des Ethernets als der Industriestandard von Körperschaftssystemen
führte zur
Verwendung des Ethernets bei Betriebsvernetzung. Dies führte wiederum
zu der Entwicklung von MODBUS/TCP, was Ethernet, TCP/IP (Übertragungssteuerprotokoll/Internetprotokoll)
und MODBUS-Datenübertragung
kombiniert, um unter Verwendung dieser wohl bekannten Protokolle
und technischen Daten skalierbare Netze für Produktionsautomatisierungseinrichtungen
zu erreichen. Das MODBUS/TCP-Protokoll wird in Swales, "Open MODBUS/TCP Specification," Version 1.0, 29.
März 1999
beschrieben. Der Quellcode der Probe für einen MODBUS/TCP-Treiber
und Swales, "Open
MODBUS/TCP Specification" sind
im Web unter http://www.modicon.com/openmbus erhältlich. Das MODBUS-Protokoll wird im
Web unter http://www.modicon.com/techpubs/intr7.html beschrieben.
Verschiedene Vernetzungsschemata bezüglich der Produktionsautomatisierung
werden in
U.S. Pat. Nr. 6,151,625 ;
5,805,442 ;
5,251,302 ; und
5,699,350 beschrieben.
-
Ein
MODBUS-Datenpaket umfasst ein Adressfeld zum Speichern eines Gerätebezeichners (ID).
Die Geräte-ID
identifiziert das Slavegerät,
an das das MODBUS-Datenpaket gesendet werden soll, wenn die Nachricht
aus einem Mastergerät
gesendet wird. Wenn das Datenpaket an einem Slavegerät entsteht
und an ein Mastergerät gesendet
werden soll, identifiziert die Geräte-ID das Slavegerät, aus dem
das MODBUS-Datenpaket gesendet wird. Somit adressiert ein Master
ein Slave durch Platzieren der Slaveadresse in das Adressfeld der
Nachricht, und wenn das Slave seine Antwort sendet, platziert es
seine eigene Adresse in das Adressfeld, um den Master wissen zu
lassen, welches Slave antwortet.
-
Obwohl
MODBUS/TCP Internetworking von Produktionsautomatisierungsgeräten vereinfacht hat,
bestehen erhebliche Einschränkungen
auf dem von MODBUS/TCP verwendeten Adressierungsschema. Derzeit
sind beide Enden einer MODBUS/TCP-Verbindung von Hand konfiguriert,
so dass jedes MODBUS-Mastergerät
eine Nachschlagetabelle von IP-Zieladressen für jeden möglichen MODBUS-Geräte-ID-Wert
aufweist. In vielen Fällen
sind die Nachschlagetabellen in den MODBUS-Mastergeräten identisch
und somit redundant. Die Tabellen erfordern Aktualisierung durch
einen Ingenieur oder Facharbeiter. Geräte können ohne Kenntnisnahme die
Adresse ändern.
Die Tabellen veralten, und der Bediener erhält als Meldung, eine Tabelle
zu aktualisieren, eine Fehlermeldung – ein unpraktisches und schwieriges
Fehlermeldungssystem. Da sich die Industrie in Richtung Interoperabilität bewegt,
das heißt nahtlose
Datenübertragung
zwischen Datenübertragungsprotokollen,
erhöht
sich die Anzahl von Geräten
Dritter, die Adressierungserhöhung
erfordern, was des Weiteren die Wartung und Komplexität bei Adressierungsschemata
erhöht.
-
WO 00/21250 , was von dem
vorliegenden Anmelder angemeldet wurde, offenbart eine Brücke zum
Bereitstellen einer Verbindung zwischen einem MODBUS-Plus-Netz und
einem Ethernet-Netz. Die Brücke
umfasst ein MODBUS-Platine, eine Ethernet-Platine und eine CPU.
Die MODBUS-Platine ist zum Empfangen einer Nachricht aus einem Absendeknoten
mit einem Leitwegfeld von fünf
Byte bedienbar an ein Lokalnetz gekoppelt. Die CPU ist zum Extrahieren
einer Tabellenposition als Antwort auf ein drittes Byte innerhalb
des Leitwegfelds bedienbar mit der Platine verbunden. Die Ethernet-Platine ist zum Weiterleiten
der Nachricht an ein IP-Ziel als Antwort auf die Tabellenposition
bedienbar mit der CPU und dem Ethernet-Netz verbunden.
-
Der
Artikel, "The next
generation of the internet: aspects of the Internet Protocol Version
6" von David C Lee
et al. und veröffentlicht
in IEEE Network, Januar/Februar 1998, stellt einen Überblick über mehrere
Hauptverbesserungen, die von der Internetprotokollversion 6 (IPv6)
im Vergleich zu der gegenwärtigen
Internetprotokollversion 4 (IPv4) geboten werden, dar. Die abgedeckten
Themen umfassen IPv6-Adressierungs- und Leitkonzepte, Änderungen der
minimalen IPv6-Paketgröße, Datenflüsse und Verkehrsklassen,
die Neighbour-Discovery-
und Knoten-Autokonfigurationsmechanismen und einen Überblick über Mobile
IPv6 und das Netzsicherheitskonzept. Übergangsmechanismen, wie etwa
Dual-Stapel und das 6Bone werden ebenfalls behandelt. Das 6Bone
ist ein virtuelles Netz, das verwendet wird, um zu helfen, die Entwicklung
von IPv6 zu prüfen
und zu vereinfachen. Mit dem 6Bone assoziierte Hauptkonzepte, wie
etwa Einstellungsanforderungen, IPv6-DNS-Unterstützung und Tunnelmechanik sind
ebenfalls dargestellt.
-
Ein
Verfahren, System und Computerprogrammprodukt zum übermitteln
von Informationen über
ein Kommunikationsnetz aus einem Sendegerät zu einem Zielgerät ist offenbart.
Das Sendegerät bestimmt
eine Netzposition eines Zielgeräts,
an das ein erstes Informationsdatenpaket gesendet werden soll. Das
erste Informationsdatenpaket wird für ein erstes Kommunikationsprotokoll,
das ein MODBUS-Protokoll ist, formatiert und umfasst ein Feld einer
Geräteadresse,
das konfiguriert ist, um einen Gerätebezeichner zu speichern,
der dem Zielgerät
entspricht. Dann wählt
das Sendegerät
basierend auf der Netzposition des Zielgeräts einen Adressierungsbereich aus
vielfachen unterschiedlichen Adressierungsbereichen aus. Der Gerätebezeichner
wird auf der Basis des ausgewählten
Adressierungsbereichs und unter Verwendung eines Verfahrens, dass
von diesem abhängt,
für das
erste Datenpaket erzeugt. Das Sendegerät verkapselt das erste Informationsdatenpaket
in einem zweiten Informationsdatenpaket, das für ein zweites Kommunikationsprotokoll
formatiert ist und ein Feld einer Zieladresse umfasst. Dann erzeugt
das Sendegerät
in dem Feld der Geräteadresse
des ersten Datenpakets eine Zieladresse für das zweite Datenpaket auf
der Basis des Gerätebezeichners,
speichert die Zieladresse in dem Feld der Zieladresse des zweiten
Datenpakets und überträgt das zweite
Informationsdatenpaket über
das Kommunikationsnetz, wobei das Verfahren des Erzeugens der Zieladresse
von dem ausgewählten
Adressierungsbereich abhängt.
-
Somit
stellt die vorliegende Erfindung dem Adressierungsschema, das in
Kommunikationsnetzen verwendet wird, in denen ein Informationsdatenpaket,
das für
ein Protokoll formatiert ist, in einem Informationsdatenpaket eingeschlossen
ist, das für
ein anderes Protokoll formatiert ist, zusätzliche Flexibilität bereit.
In einer Ausführungsform
wird die Geräte-ID
in dem Adressfeld eines MODBUS-Datenpakets gespeichert, und die
Zieladresse ist die Zielinternetprotokolladresse (IP-Adresse) in
einem IP-Paket. Unterschiedliche Protokolle, wie etwa ATM (Asynchronous
Transfer Mode) können
in alternativen Ausführungsformen
verwendet werden. Zusätzlich
dazu ermöglicht
es die vorliegende Erfindung in einigen Situationen, dass ein Gerät lediglich
auf Informationen, die in einer MODBUS-Nachricht enthalten sind,
basierend, automatisch eine Ziel-IP-Adresse
eines anderen Geräts
erzeugt.
-
In
einer Ausführungsform
sind drei unterschiedliche Adressierungsschemata für jedes
MODBUS-Datenpaket erhältlich.
Bei dem ersten Schema ist die Geräte-ID des Zielgeräts (d. h.
des Geräts,
an das das MODBUS-Datenpaket gesendet wird) von 1 bis 64, und die
Ziel-IP-Adresse ist durch Ersetzen des letzten Oktetts der IP-Adresse des Sendegeräts mit der
Geräte-ID
des Zielgeräts
gebildet.
-
Bei
dem zweiten Adressierungsschema befindet sich die Geräte-ID des
Zielgeräts
in dem Bereich 70 bis 99. Die Geräte-ID wird von dem Eintrag in
eine Adressentabelle bestimmt, der der IP-Adresse und der Geräte-ID des
Zielgeräts
entspricht. Bei einer bevorzugten Ausführungsform weist die Nachschlagetabelle
30 Einträge
auf, die den 30 möglichen Geräte-IDs in
dem Bereich 70 bis 99 entsprechen.
-
Das
dritte Adressierungsschema wird für Geräte-Ids in dem Bereich 100 bis
247 verwendet. Die Geräte-ID
des Zielgeräts
wird durch Multiplizieren einer ersten Ebenenadresse des Zielgeräts mit einer vorbestimmten
Konstante gebildet. Das daraus resultierende Produkt wird zu der
zweiten Ebenenadresse des Zielgeräts addiert, um die Geräte-Id zu
bilden. Die erlaubt vorteilhafterweise zwei Ebenen der Adressierung.
Dies ist insbesondere hilfreich, wenn ein Gerät mit einer einzigartigen IP-Adresse
mehrere Peripheriegeräte
mit nicht einzigartigen Adressen aufweist. Bei einer Ausführungsform
identifiziert die erste Ebenenadresse zum Beispiel den Port eines Teilnetz-Netzübergangs,
und die zweite Ebenenadresse identifiziert das Zielgerät in dem
Teilnetz. Herkömmliche
NMODBUS/TCP können
unterschiedliche Geräte
adressieren, die mit demselben Port eines Teilnetz-Netzübergangs
verbunden sind, wie etwa einem Brücken-Multiplexer. Eine Ausführungsform
der vorliegenden Erfindung stellt in geeigneter Weise diese Fähigkeit
durch Identifizieren des Ports eines Teilnetz-Netzübergangs
mit dem Quotienten, der resultiert, wenn die Geräte-ID durch eine Konstante
geteilt wird, und durch Identifizieren des Zielgeräts in dem
Teilnetz mit dem Rest, bereit.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Eine
vollständigere
Beurteilung der Erfindung und viele der begleitenden Vorteile davon
werden leicht erhalten, da dies unter Bezugnahme auf die folgende
detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen
besser verständlich
wird, wobei:
-
1 eine
schematische Darstellung eines beispielhaften Kommunikationsnetzes,
das eine oder mehrere Variationen des erfinderischen Adressierungsschemas
der vorliegenden Erfindung gebraucht, ist;
-
2A eine
schematische Darstellung eines TCP-Datenpakets, das gemäß einer
Ausführungsform
der vorliegenden Erfindung konfiguriert ist, ist;
-
2B eine
schematische Darstellung eines MODBUS-Datenpakets, das gemäß einer
Ausführungsform
der vorliegenden Erfindung konfiguriert ist, ist;
-
3 eine
konzeptionelle Darstellung der Geräte-ID-Bereiche für das Geräte-ID-Feld
eines MODBUS-Datenpakets gemäß einer
Ausführungsform
ist;
-
4 eine
beispielhafte Adressentabelle ist, in der jeder Eintrag einzigartig
ein Zielgerät
durch eine IP-Adresse und eine Geräte-ID gemäß einer Ausführungsform
der vorliegenden Erfindung identifiziert;
-
5A und 5B sind
Flussdiagramme, die erklären,
wie die vorliegende Erfindung unterschiedliche Adressierungsschemata
basierend auf der Netzposition eines Zielgeräts gemäß einer Ausführungsform
verwendet;
-
6 ist
ein Flussdiagramm, dass erklärt, wie
MODBUS-Nachrichten gemäß unterschiedlicher Adressierungsschemata
geleitet werden; und
-
7 ist
eine schematische Darstellung eines Mehrzweckcomputersystems, das
konfiguriert ist, um eine oder mehrere der Sonderzweckfunktionen
der vorliegenden Erfindung durchzuführen.
-
BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORMEN
-
Nun
wird, unter Bezugnahme auf die Zeichnungen, wobei gleiche Bezugszeichen
identische oder zugehörige
Teile durch die verschiedenen Ansichten hinweg kennzeichnen, und
insbesondere auf 1 davon ein Abschnitt eines
beispielhaften Kommunikationsnetzes gezeigt. Das Netz umfasst Geräte, wie
etwa speicherprogrammierbare Steuerung (SPS) 104, Personal
Computer (PC) 106, PC 108, Brücken-Multiplexer 110 und
Brücke 116,
die über Bus 109 miteinander
in Verbindung stehen und einen Abschnitt eines LAN bilden. SPS 111, 112 und 113 und
PC 114, die zwei Teilnetze bilden, sind an die Ports 1
und 2 des Brücken-Multiplexers 110 bzw.
auf die Ports 1 und 2 des Brücken-Multiplexers 110 gekoppelt.
Brücke 116,
PC 117, SPS 118 und Server 122 bilden
einen Abschnitt eines anderen LAN, das mit dem Netz aus 1 verbunden
ist und kommunizieren über
Bus 119 miteinander. Die Server 122 und 126 kommunizieren über das
Internet 124 miteinander. Server 126, SPS 128 und
PC 134 kommunizieren über
Bus 133 miteinander und bilden einen Abschnitt eines anderen
LAN.
-
SPS 104, 111, 112, 113, 118 und 128 sind jede
beliebigen bekannten SPS zur Produktionsautomatisierung und/oder
Maschinensteuerung und Überwachung,
wie etwa die Produktlinien Quantum, Premium oder Momentum von Schneider
Automation.
-
Die
PCs 106, 108, 114, 117 und 134 sind
jeder beliebige geeignete Arbeitsplatz, Personal Computer, Laptop,
Palmtop, Personal Data Assistent und/oder zum Beispiel das Computersystem 701 aus 7.
Die PCs 106, 108, 114, 117 und 134 stellen alle
oder einige der Funktionen einer Benutzerschnittstelle, einer Überwachungseinrichtung
oder Kontaktplansteuerung oder jeder beliebigen anderen Funktion
bereit, die Computer zur Produktionsautomatisierung bereitstellen.
Der PC 108 kann zum Beispiel eine Benutzerschnittstelle
bereitstellen, die ermöglicht,
dass ein Benutzer andere Produktionsautomatisierungsfunktionen zum
Beispiel für
SPS 104, 111, 112, 113, 118 und 128 überwacht,
programmiert und bereitstellt. Als ein anderes Beispiel könnte PC 134 konfiguriert
werden, um SPS 118 zu programmieren und SPS 104 zu überwachen.
Als ein anderes Beispiel könnte
der PC 106 eine Programmierkonsole sein, wie etwa eine
P230 Programmierkonsole von Schneider Automation, Inc. Geeignete
Softwarewerkzeuge und Programmiertechniken, wie etwa die Concept
Programming Software von Schneider Automation, Inc. sind zum Überwachen,
Programmieren und Steuern von SPS auf dem Fachgebiet wohl bekannt.
-
Der
Brücken-Multiplexer 110 ist
jedes beliebige geeignete Gerät
zum Verbinden eines oder mehrerer Teilnetze mit einem anderen Netz.
Der Brücken-Multiplexer 110 stellt
dem Teilnetz an Port 1 und dem Teilnetz an Port 2 einen Teilnetz-Netzübergang bereit.
In diesem Fall verbindet der Brücken-Multiplexer 110 ein
Teilnetz, das von SPS 111 und SPS 112 gebildet
ist, und ein anderes Teilnetz, das von SPS 113 und PC 114 gebildet
ist, mit dem Netz von Geräten
(einschließlich
SPS 104, PC 106 und PC 108), die mit
dem Bus 109 verbunden sind. In einer Ausführungsform
führt der
Brückenmultiplexer 110 ebenfalls die
Funktion eines Routers durch. Der Brücken-Multiplexer 110 verbindet
Teilnetze mit Netzen, die dieselben Protokolle wie die Teilnetze
verwenden oder unterschiedliche. Ein Beispiel eines geeigneten Brücken-Multiplexers 110 ist
der BM85 Bridge Multiplexer von Schneider Automation Inc. Der BM85
Bridge Multiplexer verbindet MODBUS-Geräte oder Teilnetze von MODBUS-Geräten mit
MODBUS-Plus-Netzen. Die zwei mit 1 und 2 bezeichneten Ports können separat
konfiguriert werden, um zum Beispiel ein MODBUS-Mastergerät, Slavegerät oder Netz von Slavegeräten zu unterstützen.
-
Die
Portparameter sind separat konfigurierbar. Des Weiteren kann der
Brücken-Multiplexer 110 zum
Beispiel entweder für
Einzel- oder Doppelkabelnetzanlagen verwendet werden. In einer Ausführungsform
sind die Ports 1 und 2 des Brücken-Multiplexers 110 für RS422-
oder RS485-Seriengeräte konfiguriert.
Das RS422-Protokoll
unterstützt
bis zu 16 Geräte
in einem Teilnetz, und das RS485 unterstützt bis zu 32 Geräte in einem
Teilnetz.
-
In
einer Ausführungsform
kommunizieren die Geräte
in 1, die mit den Bussen 109, 119 und 133 verbunden
sind, unter Verwendung des MODBUS/TCP-Protokolls, obwohl jedes beliebige
andere geeignete Protokoll verwendet werden kann. Die Busse 109, 119 und 133 übertragen
Daten unter den Geräten
aus 1. Zusätzlich
repräsentieren
die Busse 109, 119 und 133 Verbindungen
zwischen verschiedenen Geräten,
und somit kann bei der vorliegenden Erfindung jede beliebige Netztopologie
(z. B. Bus, Ring, Stern) verwendet werden. Zu Demonstrationszwecken
weist der PC 106 eine IP-Adresse von 8.11.13.25 und eine
Geräte-ID
von 25 auf, der Brücken-Multiplexer 110 weist
eine IP-Adresse von 8.11.13.5 auf, die SPS 118 weist eine
IP-Adresse von 8.11.13.37 und eine Geräte-ID von 37 auf, und der PC 134 weist
eine IP-Adresse von 9.12.14.1 und eine Geräte-ID von 1 auf. Zusätzlich dazu
weist SPS 111 eine Geräte-Adresse von 1 auf,
SPS 112 weist eine Geräteadresse
von 2 auf, SPS 113 weist eine Geräteadresse von 2 auf, und PC 114 weist
eine Geräteadresse
von 9 auf, wie in 1 gezeigt.
-
Der
Server 122 und der Server 126 stellen Schnittstellen
zwischen den Netzen bereit, die über Bus 119 bzw.
Bus 133 du das Internet 124 verbunden sind. Die
Server 122 und 126 sind jede beliebigen Computer,
Arbeitsplätze,
Servercomputer, Computersystem (z. B. das Computersystem 701 aus 7)
oder jede(s) beliebige andere Gerät und/oder Software zum Beispiel
zum Steuern ihrer jeweiligen Netze oder Antworten auf Befehle von
Internet-Klienten. Beispiele von Server-Hardware umfassen GEC Alpha-
und Sun UltraSPARC-Server.
-
Die
Brücke 116 ist
jedes beliebige geeignete Gerät
zum Verbinden von Netzen. In dem gezeigten Beispiel in 1 verbindet
die Brücke 116 ein
Netz von Geräten,
die mit dem Bus 109 verbunden sind, mit einem Netz von
Geräten,
die mit dem Bus 119 verbunden sind. Ein Beispiel einer
geeigneten Brücke 116 ist
die BM85 Bridge Plus von Schneider Automation Inc.
-
Das
Internet 117 ist ein Weitverkehrsnetz (WAN), das Netzübergänge und
Netze umfasst, die TCP/IP-Protokolle verwenden. Die Server 122 und 126 kommunizieren
zum Beispiel über
das Internet 124 miteinander. Bei alternativen Ausführungsformen
wird jedes beliebige geeignete private oder öffentliche Netz zum Verbinden
entfernter Computer anstelle des oder zusätzlich zu dem Internet 124 verwendet.
-
2A ist
eine schematische Darstellung eines TCP-Datenpakets, das ein Transaktions-ID-Feld 202,
ein Protokoll-ID-Feld 204, ein Längenfeld 206 und ein
Informationsfeld 208 zum Verkapseln von Informationen,
wie etwa einem MODBUS-Datenpaket, umfasst. Es versteht sich, dass
die Begriffe Paket, Datenpaket, Block und Segment hierin austauschbar verwendet
werden. Das Transaktions-ID-Feld
speichert Informationen, die eine bestimmte Transaktion zwischen
zweit Geräten
identifizieren. Das Protokoll-ID-Feld 204 speichert Informationen,
die das Protokoll der Nachricht, die in dem TCP-Datenpaket verkapselt
ist, identifizieren. Ein Wert von 0 einer Protokoll-ID 204 zeigt
an, dass das TCP-Datenpaket eine Nachricht liefert, die für das MODBUS-Protokoll formatiert
ist. Das Längenfeld 206 identifiziert
die Länge
der verkapselten Nachricht in Feld 208. Das Feld 208 speichert
die Nachricht, in diesem Beispiel, ein MODBUS-Datenpaket, das in
dem TCP-Datenpaket aus 2A verkapselt ist.
-
2B ist
eine schematische Darstellung des MODBUs-Datenpakets in dem Feld 208.
Das MODBUS-Datenpaket umfasst ein Geräte-ID-Feld 210, ein Funktionscodefeld 212 und
ein Datenfeld 214. Das Geräte-ID-Feld 210 speichert
Informationen, die ein Slavegerät
identifizieren, an das eine MODBUS-Nachricht gesendet wird oder
von dem eine MODBUS-Nachricht empfangen wird. Das Funktionscodefeld 212 speichert
Informationen, die ein Slave anweisen, welche Art von Aktion es
durchzuführen
hat. Der Funktionscode 212 könnte zum Beispiel Informationen
speichern, die ein Slavegerät anweisen,
die An/Aus-Zustände
einer Gruppe von für sich
allein stehenden Spulen oder Eingaben zu lesen, die beinhalteten
Daten einer Gruppe von Verzeichnissen zu lesen, den Diagnosestatus
des Slave zu lesen, in vorgesehene Spulen oder Verzeichnisse zu
schreiben oder Laden, Aufzeichnen oder Verifikation eines Programms
innerhalb des Slavegeräts
zu erlauben. Wenn ein Slave eine MODBUS-Nachricht an ein Mastergerät sendet,
verwendet es das Funktionscodefeld 212, um entweder eine
normale (d. h. fehlerfreie) Antwort anzuzeigen oder dass ein Fehler auftritt
(d. h. eine Ausnahme-Antwort). Für
eine normale Antwort wiederholt das Slavegerät einfach den Originalfunktionscode.
Für eine
Ausnahme-Antwort sendet
das Slavegerät
einen Funktionscode zurück, der
gleich dem Originalfunktionscode ist, wobei seine höchstwertigen Bits
auf einen logischen Wert von 1 eingestellt werden. Bei dem MODBUS-Protokoll
wird das Datenfeld unter Verwendung von Sätzen von zwei hexadezimalen
Ziffern in dem Bereich von 00 bis FF hexadezimal konstruiert. Somit
kann das Datenfeld 214 aus einem Paar ASCII-Zeichen oder
aus einem einzelnen RTU-Zeichen gemäß dem seriellen Übertragungsmodus
des Netzes konstruiert werden. Das Datenfeld 214 enthält typischerweise
zusätzliche
Informationen, die ein Slavegerät
verwendet, um die in dem Funktionscodefeld 212 definierte
Aktion auszuführen.
Derartige Informationen umfassen die Adressen von Verzeichnissen,
die Quantität
von zu bearbeitenden Elementen und die Anzahl von eigentlichen Datenbytes
in dem Datenfeld 214. Gemäß einer Ausführungsform
der vorliegenden Erfindung ist ein MODBUS-Datenpaket (z. B. das
MODBUS-Datenpaket 208)
in einem TCP-Datenpaket (z. B. dem TCP-Datenpaket aus 2A)
verkapselt. Das TCP-Datenpaket ist in einem IP-Datenpaket verkapselt, das in einem
Ethernet-Paket eingeschlossen ist. Gemäß dieser Ausführungsform
wird entweder das Geräte-ID-Feld 210 oder
die Zieladresse des IP-Pakets verändert, abhängig von der Position des Zielgeräts, das
die MODBUS-Nachricht empfangen soll. Demgemäß verwendet die vorliegende
Erfindung unterschiedliche Adressierungsschemata für unterschiedliche
IP-Pakete und MODBUS-Datenpakete, basierend
auf der Position des Zielgeräts
in dem Netz. Zu beispielhaften Zwecken wird die vorliegende Erfindung
als in Verbindung mit einem MODBUS/TCP-Protokoll verwendet beschrieben.
-
3 ist
eine konzeptionelle Darstellung des Bereichs an Werten, die die
Geräte-ID
in dem Geräte-ID-Feld 210 nehmen
können.
In diesem Beispiel ist die Geräte-ID
ein Zahlenwert in dem Bereich 0 bis 255.
-
Die
Geräte-IDs
in dem Bereich 0, 65–69
und 248–255
sind in diesem Beispiel reserviert. Geräte-IDs in dem Bereich 1–64 werden
verwendet, wenn das Zielgerät
zu dem Sendegerät,
das die MODBUS-Nachricht
an das Zielgerät
sendet, lokal ist. Das Zielgerät
wird zu dem Sendegerät
als lokal angesehen, wenn sich das Zielgerät in demselben LAN befindet
wie das Sendegerät
oder sich in einem LAN befindet, das durch eine Netzbrücke (z.
B die Brücke 116)
mit dem LAN verbunden ist, in dem sich das Sendegerät befindet.
Somit könnten
PC 108 und SPS 118 zum Beispiel zu Zwecken der
vorliegenden Erfindung als lokal zueinander angesehen werden, auch
wenn sie sich in unterschiedlichen LANs befinden, wie unten erklärt.
-
Geräte-IDs in
dem Bereich 70–99
werden verwendet, wenn sich das Zielgerät in einem entfernten Netz
befindet. In einer Ausführungsform
wird ein Zielgerät
als in einem entfernten Netz befindlich angesehen, wenn jedes beliebige
der ersten drei Bytes der IP-Adresse (d. h. der ersten drei Oktetts)
des Zielgeräts
nicht gleich dem Sendegerät
sind. Bei einer alternierenden Ausführungsform werden das Zielgerät und das
Sendegerät
als in demselben Klasse-B-Netz befindlich angesehen, wenn sie lediglich
das erste oder zweite Byte der IP-Adresse gemein haben. Für dieses
Beispiel wird angenommen, dass die IP-Adressen im IPv4(IP-Version
4)-Format vorliegen; der durchschnittliche Fachmann wird jedoch
leicht imstande sein, die vorliegende Erfindung auf unterschiedliche
Adressierungsschemata zuzuschneiden, wie etwa IPv6 (IP-Version 6).
-
Somit
weist SPS 118 in dem Beispiel aus 1 eine IP-Adresse
von 8.11.13.37 auf, PC 106 weist eine IP-Adresse von 8.11.13.25
auf, and PC 134 weist eine IP-Adresse von 9.12.14.1 auf.
Deswegen sind, wenn zwei Geräte
als in demselben Netz befindlich angesehen werden, die ersten drei
Bytes ihrer IP-Adressen die gleichen, dann befinden sich SPS 118 und
PC 106 in demselben Netz und PC 133 befindet sich
in einem anderen Netz als PC 106 und SPS 118 zu
wecken des Bestimmens einer Geräte-ID.
-
Unter
nochmaliger Bezugname auf 3 werden
Geräte-IDs
in dem Bereich 100–247
verwendet, um Geräte
in einem Teilnetz zu identifizieren oder die anderenfalls mehrere
Ebenen der Adressierung erfordern. In dem Beispiel aus 1 weisen SPS 111,
SPS 112, SPS 113 und PC 114 Teilnetzadressen
von 1, 2, 2, bzw. 9 auf. Da diese Geräte nicht eindeutig adressiert
sind, sind zwei Ebenen von Adressierung erforderlich. Die erste
Ebene der Adressierung ist die Portzahl auf dem Brücken-Multiplexer 110 (d.
h. 1 oder 2 in diesem Beispiel). Die zweite Ebene der Adressierung
ist die Teilnetzadresse der Geräte.
Somit ist die SPS 113 als auf Port 2 des Brücken-Multiplexers 110 befindlich
identifiziert und weist eine Teilnetz- oder Geräteadresse von 2 auf, und die
SPS 112 ist als auf Port 1 des Brücken-Multiplexers 110 befindlich
identifiziert und weist eine Teilnetzadresse von 2 auf. Gemäß einer Ausführungsform
werden die Geräte-IDs
in dem Bereich von 100–247
auf folgende Art und Weise verwendet. Die Portzahl des Zielgeräts wird
mit einer Konstante multipliziert, und die Teilnetz- oder Geräteadresse
des Zielgeräts
wird zu dem resultierenden Produkt addiert. Wenn die Konstante zum
Beispiel 100 ist, dann würde
eine MODBUS-Nachricht, die an SPS 112 gesendet wurde, eine
Geräte-ID
von 102 (Port = 1, Geräte-ID
= 2) aufweisen, und eine MODBUS-Nachricht die an SPS 113 gesendet
wurde, würde
eine Geräte-ID
von 202 (Port = 2, Geräte-ID = 2) aufweisen.
-
4 ist
eine Adressentabelle zum Bestimmen der Geräte-ID einer MODBUS-Nachricht,
die an ein entferntes Zielgerät
gesendet wurde. Die Adressentabelle 402 umfasst ein Eintragsfeld 404 zum Speichern
der Einträge
70–99,
entsprechend dem Bereich von möglichen
Geräte-IDs
für entfernte
Zielgeräte
in den in 3 gezeigten beispielhaften Adressbereichen.
Das IP-Adressen-Feld 406 speichert IP-Adressen für die möglichen
Zielgeräte.
Das Geräte-ID-Feld 408 speichert
die Geräte-ID
des Zielgeräts.
Geräte,
die sich nicht in dem Teilnetz befinden, werden normalerweise von
ihrer IP-Adresse und ihrer Geräte-ID
einmalig identifiziert. Zum Beispiel identifiziert Eintrag 70 PC 134,
der eine IP-Adresse von 9.12.14.1 und eine Geräte-ID von 1 aufweist. Wenn
sich das Zielgerät
in einem Teilnetz befindet, identifiziert der Wert in dem Geräte-ID-Feld 408 das Gerät in dem
Teilnetz. Zum Beispiel wird die MODBUS-Nachricht, wenn eine MODBUS-Nachricht
an SPS 113 gesendet werden soll, eine Geräte-ID von 71 aufweisen,
da die Aufzeichnung in der Adressentabelle 402, die dem
Eintrag 71 entspricht, eine IP-Adresse von 8.11.13.5 (Brücken-Multiplexer 110 identifizierend)
und eine Geräte-ID
von 202 (SPS 113 identifizierend, die eine Teilnetzadresse
von 2 aufweist und sich auf Port 2 des Brücken-Multiplexers 110 befindet,
unter der Annahme, dass ein Konstantenwert von 100 wieder
verwendet wird, um die Zwei-Ebenen-Adresse zu bestimmen) aufweist.
Gemäß einer
Ausführungsform
wird die Adressentabelle 402 manuell konfiguriert und befindet
sich auf jedem MODBUS-Mastergerät.
Es sollte ebenfalls beachtet werden, dass die Adressentabelle 402 verwendet werden
könnte,
um lokale Geräte
zu adressieren. Wenn zum Beispiel das Adressierungsschema aus 3 verwendet
wird und bereits 64 lokale Geräte
in einem Netz vorhanden sind, dann könnten zusätzliche lokale Geräte unter
Verwendung der Adressentabelle 402 und der Geräte-Ids in
dem Bereich 70–99 adressiert
werden.
-
5A ist
ein Flussdiagramm zum Erklären wie
MODBUS-Nachrichten
und IP-Pakete gemäß der vorliegenden
Erfindung erzeugt werden. In Schritt 502 bestimmt das Sendegerät, ob sich
das Zielgerät in
demselben Netz befindet wie das Sendegerät, wie oben mit Bezug auf 3 beschrieben
(zum Beispiel durch Bestimmen, ob die ersten drei Oktette der IP-Adresse
des Sende- und des Zielgeräts
dieselben sind). Wenn sich das Zielgerät nicht in demselben Netz befindet
wie das Sendegerät,
dann erzeugt das Zielgerät
in Schritt 504 ein MODBUS-Datenpaket mit einer Geräte-ID in
dem Bereich 70–99
durch Gucken in der Adressentabelle 402, um die Geräte-ID in
dem Eintragsfeld 404 zu finden, das der IP-Adresse (in Feld 406)
und Geräte-ID
9in Feld 408) des Zielgeräts entspricht. Das Sendegerät stellt
die Geräte-ID
des MODBUS-Datenpakets gleich der Geräte-ID in dem Eintragsfeld 404,
das dem Zielgerät
entspricht, ein. Dann erzeugt das Sendegerät in Schritt 508 ein TCP-Datenpaket,
das das MODBUS-Datenpaket verkapselt.
-
Wenn
das Sendegerät
in Schritt 502 bestimmt, dass sich das Zielgerät in demselben
Netz befindet, dann bestimmt das Sendegerät in Schritt 505,
ob sich das Zielgerät
in einem Teilnetz befindet (oder ob mehrere Ebenen der Adressierung
erforderlich sind). Wenn sich das Zielgerät nicht in dem Teilnetz befindet,
dann erzeugt das Sendegerät
in Schritt 506 ein MODBUS-Datenpaket mit der Geräte-ID gleich
dem Zielgerät.
Zum Beispiel erzeugt der PC 106 dann, wenn der PC 106 wünscht, ein
Verzeichnis der SPS 118 zu lesen, ein MODBUS-Datenpaket
mit einer Geräte-ID
von 37. Somit wird das Adressierungsschema aus Schritt 506 verwendet,
wenn die Geräte-ID
des Zielgeräts
zwischen 1 und 64 liegt, wenn die beispielhaften Geräte-ID-Bereiche
aus 3 verwendet werden. Dann erzeugt das Sendegerät in Schritt 508 ein
TCP-Datenpaket, das das erzeugte MODBUS-Datenpaket verkapselt.
-
Wenn
das Sendegerät
in Schritt 505 bestimmt, dass sich das Zielgerät in einem
Teilnetz befindet, werden dann die mehreren Ebenen der Adressierung
verwendet, um das Zielgerät
in dem Teilnetz zu identifizieren. In Schritt 507 erzeugt
das Sendegerät
ein MODBUS-Datenpaket und bestimmt die Geräte-ID durch Multiplizieren
der Port-ID des Zielgeräts mit
einer Konstante und Addieren der Geräte-ID des Zielgeräts, so dass
die resultierende Geräte-ID
gemäß der in 3 gezeigten
beispielhaften Bereiche in dem Bereich 100–247 liegt. Dann erzeugt das
Sendegerät
in Schritt 508 ein TCP-Datenpaket, das das MODBUS-Datenpaket
verkapselt.
-
In
Schritt 510 erzeugt das Sendegerät ein IP-Paket, dass das TCP-Datenpaket verkapselt. Dann
sendet das Sendegerät
in Schritt 512 das IP-Paket über das Netz. Wenn das Netz
ein Ethernet-Protokoll verwendet, dann wird das IP-Paket über das
Netz, das in einem Ethernet-Datenpaket verkapselt ist, gesendet.
-
5B ist
ein Flussdiagramm zum detaillierteren Erklären der Erzeugung des IP-Pakets
in Schritt 510 aus 5A. In
Schritt 514 bestimmt das Sendegerät, ob die Geräte-ID des
MODBUS-Datenpakets
in dem Bereich 1–64
liegt (ob das Zielgerät
lokal ist). Wenn die Geräte-ID
des MODBUS-Datenpakets in dem Bereich 1–64 liegt, dann stellt das
Sendegerät
in Schritt 516 das letzte Oktett (d. h. das letzte Byte)
der Ziel-IP-Adresse gleich der Geräte-ID ein. Es ist zu beachten,
dass, wenn das Sendegerät
und das Zielgerät
in Schritt 502 auf der Basis, dass sie die ersten drei
Oktette ihrer IP-Adressen gemein haben, bestimmt sind, lokal zu
sein (d. h. nicht in einem entfernten Netz), Schritt 516 dann
das gleiche ist wie die Ziel-IP- Adresse
gleich der IP-Adresse des Senders einzustellen, wobei das letzte
Oktett gleich der Geräte-ID
eingestellt ist. Somit wird dann die Geräte-ID für die MODBUS-Nachricht 37 sein,
entsprechend der Geräte-ID
von SPS 118, wenn PC 106 eine MODBUS-Nachricht
an SPS 118 sendet. Um die Ziel-IP-Adresse zu bilden, erkennt
der PC 106, dass die Geräte-ID in dem Bereich 1–64 liegt
und die Ziel-IP-Adresse
bildet, indem 37 durch das letzte Oktett ihre eigene IP-Adresse, 8.11.13.25,
ersetzt wird, was in einer Ziel-IP-Adresse von 8.11.13.37 resultiert.
-
Wenn
das Sendegerät
in Schritt 522 bestimmt, dass die Geräte-ID in dem Bereich 70–99 (wenn
das Zielgerät
auch entfernt ist) liegt, dann bleibt die Ziel-IP-Adresse unverändert. Somit
bleibt die Ziel-IP-Adresse
dann in Schritt 518 unverändert, wenn die Geräte-ID in
dem Bereich von 70–99
liegt, so dass die Ziel-IP-Adresse die IP-Adresse in dem Feld 406 ist,
die der Geräte-ID
in dem Feld 404 der Adressentabelle 402 entspricht.
Wenn PC 134 zum Beispiel eine MODBUS-Nachricht an SPS 113 sendet,
dann würde
die IP-Adresse 8.11.13.5 bleiben, den Brücken-Multiplexer identifizierend.
In diesem Beispiel würde
die Geräte-ID
der MODBUS-Nachricht 71 sein, basierend auf den beispielhaften
Einträgen
in Tabelle 402 aus 4. Wenn
die Geräte-ID
in Schritt 524 in dem Bereich 100–247 (wenn sich das Zielgerät auch in
einem Teilnetz befindet) liegt, dann ist die Ziel-IP-Adresse in Schritt 520 die
IP-Adresse des Teilnetz-Netzübergangs.
Deswegen wäre
die Ziel-IP-Adresse dann, wenn der PC 106 eine MODBUS-Nachricht
an PC 111 sendet, 8.11.13.5. Wenn die Geräte-ID nicht
in einem Bereich von 1–64,
70–99 oder
100–247
liegt, dann ist die Geräte-ID
eine ungültige
Zieladresse.
-
6 ist
ein Flussdiagramm, das erklärt
wie IP-Pakete von Geräten gehandhabt
werden, die eine Leitfunktion durchführen, wie etwa ein Router,
Brücken-Multiplexer 110 oder
zum Beispiel Server 122 und 126. In Schritt 602 empfängt das
Leitgerät
ein IP-Paket. In Schritt 604 öffnet das Leitgerät das MODBUS-Datenpaket
innerhalb des IP-Pakets
und bestimmt, ob die Geräte-ID
in dem Bereich 1–64, 70–99 oder
100–247
liegt. Wenn die Geräte-ID
in Schritt 604 in dem Bereich 1–64 liegt, dann wird das IP-Paket
in Schritt 606 zu dem Gerät mit der Geräte-ID gleich
dem letzten Oktett der IP-Adresse geleitet. Wenn die Geräte-ID in
Schritt 604 bestimmt ist, in dem Bereich 70–99 zu liegen,
dann schlägt
das Leitgerät
die Geräte-ID
in dem Eintragsfeld 404 der Adressentabelle 402 nach
und leitet das IP-Paket zu dem Gerät mit der entsprechenden IP-Adresse
(in Feld 406) und Geräte-ID
(in Feld 408). Zum Beispiel, wenn die Geräte-ID des
empfangenen MODBUS-Datenpakets 70 ist,
dann schlägt
das Leitgerät
den Wert 70 in dem Eintragsfeld 404 nach und liest die IP-Adresse
und Geräte-ID
von dem IP-Adressen-Feld 406 bzw. dem Geräte-ID-Feld 408.
In diesem Fall würde
die Geräte-ID
von 70 verursachen, dass das IP-Paket zu dem Gerät mit einer IP-Adresse von
9.12.14.8 und einer Geräte-ID
von 1, was PC 134 in 1 entspricht,
geleitet wird.
-
Wenn
die Geräte-ID
in Schritt 604 in dem Bereich 100–247 liegt und das IP-Paket
von einem Teilnetz-Netzübergang,
wie etwa dem Brücken-Multiplexer 110,
empfangen wird, dann teilt der Teilnetz-Netzübergang
in Schritt 610 die Geräte-ID
durch die vorbestimmte Konstante, um einen Quotienten und einen
Rest zu erzeugen. Dann leitet der Teilnetz-Netzübergang in Schritt 612 das
eingeschlossenen MODBUS-Datenpaket zu dem Port des Teilnetz-Netzübergangs
mit einer Portzahl gleich dem Quotienten. Als Nächstes wird das MODBUS-Datenpaket
in Schritt 614 zu dem Gerät mit einer Teilnetzadresse
gleich dem Rest geleitet. Wenn der Brücken- Multiplexer 110 unter Bezugnahme
auf 1 zum Beispiel ein MODBUS-Datenpaket mit einer
Geräte-ID
von 102 empfängt
und eine vorbestimmte Konstante 100 ist, dann leitet der
Brücken-Multiplexer 110 das
MODBUS-Datenpaket zu Port 1 und dann zu SPS 112, die eine Teilnetzadresse
von 2 aufweist.
-
Die
gesamte oder ein Teil der Erfindung kann geeigneterweise unter Verwendung
von herkömmlichen
Mehrzweckcomputern oder Mikroprozessoren implementiert werden, die
gemäß der Lehre
der vorliegenden Erfindung programmiert sind, wie dem Computerfachmann
ersichtlich sein wird. Angemessene Software kann leicht von Durchschnittsprogrammieren
eingerichtet werden, basierend auf der Lehre der vorliegenden Offenbarung,
wie dem Softwarefachmann ersichtlich sein wird.
-
7 stellt
ein Computersystem 701 dar, auf das eine Ausführungsform
der vorliegenden Erfindung implementiert werden kann. Das Computersystem 701 umfasst
einen Bus 703 oder einen anderen Kommunikationsmechanismus
zum Übermitteln
von Informationen und einen Prozessor 705, der zum Verarbeiten
der Informationen an den Bus 703 gekoppelt ist. Das Computersystem 701 umfasst
ebenfalls einen Hauptdatenspeicher 707, wie etwa einen Direktzugriffsspeicher
(RAM) oder ein anderes Gerät dynamischer
Speicherung (z. B. dynamisches RAM (DRAM), statisches RAM (SRAM)
und synchrones DRAM (SDRAM)), der zum Speichern von Informationen
und von dem Prozessor 705 auszuführenden Anweisungen an den
Bus 703 gekoppelt ist. Zusätzlich dazu kann der Hauptdatenspeicher 707 zum Speichern
temporärer
Variablen oder anderer Zwischeninformationen während der Ausführung von von
dem Prozessor 705 auszuführenden Anweisungen verwendet werden.
Der Hauptdatenspeicher 707 speichert ebenfalls Protokollstapel
für jedes
Kommunikationsprotokoll, das von dem Computersystem 701 (z.
B. TCP, IP, MODBUS/TCP, Ethernet) verwendet wird. Das Computersystem 701 umfasst
des Weiteren einen Festspeicher (ROM) 709 oder ein anderes
statisches Speichergerät
(z. B. programmierbares ROM (PROM), löschbares ROM (EROM) und elektronisch
löschbares
ROM (EEROM) und Flash-ROM,
was zum Speichern statischer Informationen und Anweisungen für den Prozessor 705 an den
Bus 703 gekoppelt ist. Ein Speichergerät 711, wie etwa eine
Magnetplatte oder optische Diskette wird bereitgestellt und zum
Speichern von Informationen und Anweisungen an den Bus 703 gekoppelt.
-
Das
Computersystem 701 kann ebenfalls logische Sonderzweckgeräte (z. B.
anwendungsspezifische integrierte Schaltungen (ASICs)) oder konfigurierbare
logische Geräte
(z. B. Generic Array of Logic (GAL) oder reprogrammierbare frei
programmierbare logische Anordnungen (FPGAs)) umfassen. Andere entfernbare
Datenträgergeräte (z. B.
ein CD, ein Magnetband und ein entfernbarer magnetooptischer Datenträger) oder
feste Datenträgerlaufwerke
mit hoher Dichte können
dem Computersystem 701 unter Verwendung eines angemessenen
Gerätebusses
(z. B. ein kleiner Computersystemschnittstellenbus (SCSI-Bus), ein
Bus erweiterter integrierter Geräteelektronik
(IDE-Bus) oder ein Bus mit ultra-direktem Speicherzugang (DMA-Bus))
zugefügt
werden. Das Computersystem 701 kann zusätzlich dazu ein CD-Lesegerät, eine
CD-Lesegerät/Schreiber-Einheit
oder eine CD-Jukebox umfassen, von denen jedes mit demselben Gerätebus oder
einem anderen Gerätebus
verbunden werden kann.
-
Das
Computersystem 701 kann über den Bus 703 an
eine Anzeige 713, wie etwa eine Kathodenstrahlröhre (CRT)
gekoppelt werden, um einem Computerbenutzer Informationen anzuzeigen.
Die Anzeige 713 kann von einer Anzeigen- oder Grafikkarte
gesteuert werden. Das Computersystem umfasst Eingabegeräte, wie
etwa eine Tastatur 715 und eine Cursorsteuerung 717 zum Übermitteln
von Informationen und Befehlsauswahlen a den Prozessor 705.
Die Cursorsteuerung 717 ist zum Beispiel eine Maus, eine
Steuerkugel oder Cursorlenktasten zum Übermitteln von Richtungsinformationen
und Befehlsauswahlen an den Prozessor 705 und zum Steuern der
Cursorbewegung auf der Anzeige 713.
-
Das
Computersystem 701 führt
einen Teil oder alle der Verarbeitungsschritte der Erfindung als Antwort
auf den Prozessor 705, der eine oder mehrere Sequenzen
von einer oder mehreren Anweisungen, Computercodegeräten oder
Computercodemechanismen ausführt,
durch. Derartige Anweisungen können
in einem Datenspeicher von einem anderen computerlesbaren Datenträger enthalten
und/oder gelesen werden. Zum Beispiel können die Anweisungen in dem
Speichergerät 711 enthalten
sein und in dem Hauptdatenspeicher 707 gelesen werden.
Ein oder mehrere Prozessoren in einer simultanverarbeitenden Vorrichtung
können
ebenfalls gebraucht werden, um die Sequenzen von Anweisungen, die
in dem Hauptdatenspeicher 707 enthalten sind, auszuführen. Bei
alternativen Ausführungsformen
kann eine festverdrahtete Schaltung anstelle von oder in Kombination
mit Softwareanweisungen verwendet werden. Somit sind die Ausführungsformen
nicht auf jede beliebige spezifische Kombination von Hardwareschaltungen
und Software beschränkt.
-
Wie
oben erwähnt
umfasst das System 701 mindestens einen computerlesbaren
Datenträger, der
gemäß der Lehre
der Erfindung und zum Enthalten von Datenstrukturen, Tabellen, Aufzeichnungen oder
anderen hierin beschriebenen Daten programmiert ist. Auf jedem beliebigen
oder einer Kombination aus computerlesbaren Datenträgern gespeichert, umfasst
die vorliegende Erfindung Software zum Steuern des Computersystems 701,
zum Treiben eines Geräts
oder Geräten
zum Implementieren der Erfindung und zum Ermöglichen, dass das Computersystem 701 mit
einem menschlichen Benutzer zusammenwirkt. Derartige Software kann
Gerätetreiber,
Betriebssysteme, Entwicklungswerkzeuge und Anwendungssoftware umfassen,
ist aber nicht darauf beschränkt.
Derartige computerlesbare Datenträger umfassen des Weiteren das
Computerprogrammprodukt der vorliegenden Erfindung zum Durchführen der
gesamten oder eines Teils (wenn die Verarbeitung eingeteilt wird)
der Verarbeitung, die beim Implementieren der Erfindung durchgeführt wird.
Die Computercodegeräte
der vorliegenden Erfindung können
jede beliebigen ausgewerteten oder ausführbaren Codemechanismen sein,
einschließlich
aber nicht beschränkt
auf Skripte, Interpreter, dynamische Bibliotheken, Java-Klassen und vollständige ausführbare Programme.
Des Weiteren können
Teile der Verarbeitung der vorliegenden Erfindung für bessere Leistung,
Zuverlässigkeit
und/oder Kosten eingeteilt werden.
-
Der
Begriff „computerlesbarer
Datenträger", wie hierin verwendet,
bezieht sich auf jeden beliebigen Datenträger oder jede beliebige Datenträger, die sich
am Bereitstellen von Anweisungen an den Prozessor 705 zur
Ausführung
beteiligen. Ein computerlesbarer Datenträger kann viele Formen annehmen, einschließlich, aber
nicht beschränkt
auf unvergängliche
Datenträger,
vergängliche Datenträger und Übertragungsdatenträger. Unvergängliche
Datenträger
umfassen zum Beispiel optische Disketten, Magnetplatten und magnetooptische
Disketten, wie etwa das Speichergerät 711. Vergängliche
Datenträger umfassen
dynamische Datenspeicher, wie etwa den Hauptdatenspeicher 707. Übertragungsdatenträger umfasst
Koaxialkabel, Kupferdraht und Lichtleitfasern, einschließlich der
Drähte,
die den Bus 703 beinhalten.
-
Übertragungsdatenträger können ebenfalls die
Form von akustischen oder Lichtwellen, wie etwa derer, die während einer
Funkwelle und Infrarotdatenkommunikationen erzeugt werden, annehmen.
-
Gebräuchliche
Formen von computerlesbaren Datenträgern umfassen zum Beispiel
Festplatten, Disketten, Magnetband, magnetooptische Disketten, PROMs
(EPROM, EEPROM, Flash-EPROM),
DRAM, SRAM, SDRAM oder jeder beliebige andere magnetische Datenträger, CDs
(z. B. CDROM) oder jeder beliebige andere optische Datenträger, Lochkarten,
Lochstreifen oder ein anderer physikalischer Datenträger mit
Mustern von Löchern, eine
Trägerwelle
(unten beschrieben) oder jeder andere beliebige Datenträger, von
dem ein Computer lesen kann.
-
Verschiedene
Formen von computerlesbaren Datenträgern können in das Abwickeln von einer oder
mehr Sequenzen von einer oder mehr Anweisungen an den Prozessor 705 zur
Ausführung
einbezogen werden. Zum Beispiel können die Anweisungen anfangs
auf einer Magnetplatte eines entfernten Computers abgewickelt werden.
Der entfernte Computer kann die Anweisungen zum Implementieren der
gesamten oder eines Teils der vorliegenden Erfindung entfernt in einen
dynamischen Speicher laden und die Anweisungen unter Verwendung
eines Modems über
eine Telefonleitung senden. Ein Modem, das lokal zu dem Computersystem 701 ist,
kann die Daten in der Telefonleitung empfangen und einen Infrarotstrahler
verwenden, um die Daten zu einem Infrarotsignal zu konvertieren.
Ein Infrarotdetektor, der an den Bus 703 gekoppelt ist,
kann die Daten, die in dem Infrarotsignal getragen werden, empfangen
und die Daten auf dem Bus 703 platzieren. Der Bus 703 trägt die Daten
zu dem Hauptdatenspeicher 707, von dem der Prozessor 705 die
Anweisungen abfragt und ausführt.
Die von dem Hauptdatenspeicher 707 empfangenen Anweisungen
können
entweder vor oder nach der Ausführung
durch den Prozessor 705 optional in dem Speichergerät 711 gespeichert
werden.
-
Das
Computersystem 701 umfasst ebenfalls eine Kommunikationsschnittstelle 719,
die an den Bus 703 gekoppelt ist. Die Kommunikationsschnittstelle 719 stellt
eine Zwei-Wege-Datenkommunikationskopplung
an eine Netzverknüpfung 721 bereit, die
mit einem Lokalnetz (z. B. LAN 723) verbunden ist. Zum
Beispiel kann die Kommunikationsschnittstelle 719 eine
Netzschnittstellenkarte sein, um an jedes paketvermittelte Lokalnetz
(LAN) anzuschließen. Als
ein anderes Beispiel kann die Kommunikationsschnittstelle 719 eine
asymmetrische digitale Teilnehmeranschluss-Karte (ADSL-Karte), eine
diensteintegrierende digitale Netz-Karte (ISDN-Karte) oder ein Modem
sein, um einer entsprechenden Art von Telefonleitung eine Datenkommunikationsverbindung
bereitzustellen. Drahtlose Verknüpfungen
können
also implementiert werden. Bei jeder beliebigen derartigen Implementierung
sendet und empfängt
die Kommunikationsschnittstelle 719 elektrische, elektromagnetische oder
optische Signale, die digitale Datenströme tragen, die verschiedene
Arten von Informationen repräsentieren.
-
Die
Netzverknüpfung 721 stellt
anderen Datengeräten
typischerweise Datenkommunikation durch eins oder mehrere Netze
bereit. Zum Beispiel kann die Netzverknüpfung 721 durch LAN 723 eine Verbindung
mit einem Wirtsrechner 725, einem anderen Computersystem 701 oder
mit einer Dateneinrichtung, die von einem Diensteanbieter betrieben wird,
der Datenkommunikationsdienstleistungen durch ein IP(Internetprotokoll)-Netz 727 (z.
B. das internet 124) bereitstellt, bereitstellen. LAN 723 und IP-Netz 727 verwenden
beide elektrische, elektromagnetische oder optische Signale, die
digitale Datenströme
tragen. Die Signale durch die verschiednen Netze und die Signale
in der Netzverknüpfung 721 und
durch die Kommunikationsschnittstelle 719, die die digitalen
Daten zu und von dem Computersystem 701 tragen, sind beispielhafte
Formen von Trägerwellen,
die die Informationen transportieren. Das Computersystem 701 kann
Meldungen übermitteln und
Daten, einschließlich
Programmcodes, durch das/die Netz(e), die Netzverknüpfung 721 und
die Kommunikationsschnittstelle 719 empfangen.
-
Offensichtlich
sind zahlreiche Abwandlungen und Variationen der vorliegenden Erfindung
angesichts der obigen Lehren möglich.
Es versteht sich deshalb, dass die Erfindung innerhalb des Bereichs der
angehängten
Patentansprüche
anderweitig praktiziert werden kann als hierin ausdrücklich beschrieben.