-
Die Erfindung betrifft eine Slave-Einheit
bzw. Slave-Baugruppe gemäß dem Oberbegriff
des Anspruchs 1 bzw. 7 und Anordnungen mit einer Slave-Baugruppe
gemäß den Oberbegriffen
der Ansprüche
8 und 9.
-
Aus dem Siemens-Katalog ST 54.1,
SIMATIC S5, Automatisierungsgeräte,
Ausgabe 1994 ist eine Anordnung mit einer derartigen Slave-Einheit bekannt.
In einem Baugruppenträger
eines hochverfügbaren
Automatisierungsgerätes
sind mehrere Master-Einheiten bzw. Master-Baugruppe Form von Zentralbaugruppen über einen
parallel ausgeführten Rückwandbus
mit mehreren als Digital-Ein/Ausgabe-,
Analog-Ein/Ausgabe-, Signalvorverarbeitungs- oder als Kommunikationsbaugruppen ausgebildeten Slave-Einheiten verbunden.
-
Die Master-Einheiten greifen lesend
oder schreibend auf die Slave-Einheiten zu, und es werden unterschiedliche
Arten von Daten, z. B. Prozess-, Parametrier- oder Diagnosedaten,
zwischen den Master- und Slave-Einheiten ausgetauscht. Dazu weisen
die Slave-Einheiten gewöhnlich
einen Speicher auf, in welchem die Daten in dafür vorgesehenen Bereichen hinterlegt
sind, auf welche die Master-Einheiten mit entsprechenden Adressen
zugreifen. Um einen störungsfreien
Zugriff auf diese Daten zu ermöglichen,
müssen
die Master-Einheiten sowohl die Größe des Speichers und dessen
Aufteilung in die verschiedenen Bereiche als auch die Art und Anordnung
der unterschiedlichen Datenarten innerhalb dieser Bereiche kennen.
Versucht z. B. eine Master-Einheit, auf Diagnosedaten einer Slave-Einheit zuzugreifen,
welche über
keine Diagnosefunktionalität
verfügt
und welche daher mit keinen Diagnosedaten versehen ist, so dürfen insbesondere
in Automatisierungsgeräten
keine Störungen,
z. B. in Form einer verlängerten
Busbelegung, auftreten. Um solche Störungen zu vermeiden, kann man
alle am Bus angeschlossenen Slave-Einheiten mit Speichern gleicher
Größe versehen
und die Aufteilung der Bereiche sowie die Art und Anordnung der
Daten einheitlich gestalten. Das bedeutet allerdings, den jeweiligen
Speicher der Slave-Einheiten sowohl an den größten Speicher als auch an den
größten Speicherbereich
der Anordnung anzupassen. Dadurch sind einige Slave-Speicher überdimensioniert,
und die Größe der Speicherbereiche
kann nicht variiert werden.
-
Aus der englischen Patentanmeldung
GB 2 181 281 A ist
eine Anordnung mit einer CPU-Einheit und peripheren Einheiten bekannt.
Zugriffe der CPU-Einheit auf die peripheren Einheiten erfolgen über ein
Zugriffskontrollmodul, welches über
eine Zugriffsberechtigung entscheidet.
-
Aus der US-Patentschrift
US 4 969 085 ist eine Anordnung
mit einem Prozessor und mehreren Informationseinheiten bekannt,
wobei eine Speicherverwaltung dem Prozessor die Zugriffsbereitschaft
einer Gruppe von Informationseinheiten anzeigt.
-
Aus der US-Patentschrift
US 5 148 543 A ist ein
tragbares elektronisches Gerät
(IC Card) mit einer einen Speicher aufweisenden integrierten Schaltung
bekannt. Das elektronische Gerät
ist über
Verbindungsmittel mit einem externen Gerät verbindbar, das auf den Speicher
Lese- und/oder Schreibzugriffe ausführt, wobei die integrierte
Schaltung einen Protokollbereich aufweist, welcher zur Erteilung
oder Verweigerung einer Zugriffsberechtigung vorgesehen ist, und
wobei im Falle einer Zugriffsberechtigung das externe Gerät Zugriffe
auf Daten unter einer Startadresse ausführt, welche im Speicher der
integrierten Schaltung hinterlegt ist.
-
Der vorliegenden Erfindung liegt
die Aufgabe zugrunde, eine Slave-Einheit der eingangs genannten
Art zu schaffen, welche für
eine Kommunikation mit einer Master-Einheit nach einem vorgegebenen Kommunikationsprotokoll
geeignet ist.
-
Diese Aufgabe wird durch die im kennzeichnenden
Teil des Anspruchs 1 und 7 angegebenen Maßnahmen gelöst.
-
Die Aufgabe wird auch gelöst durch
die Anordnungen mit einer Slave-Baugruppe gemäß den Patentansprüchen 8 und
9.
-
Vorteilhafte Ausgestaltungen der
Erfindung sind in den Unteransprüchen
angegeben.
-
Alle an dem Bus angeschlossenen Slave-Einheiten
sind mit dem Protokollbereich versehen, auf welchen die Master-Einheit
einheitlich lesend oder schreibend zugreift. Die beabsichtigte Kommunikation
mit einer Slave-Einheit zeigt die Master-Einheit der Slave-Einheit in einer Auftragszelle
des Protokollbereichs an, und die Slave-Einheit quittiert durch
einen Eintrag in eine Antwortzelle dieses Protokollbereichs. Auftrags-
und Antwortzelle der an der Kommunikation teilnehmenden Slave-Einheiten
adressiert die Master-Einheit stets unter gleichen Adressen. Für den Fall,
dass die Slave-Einheit eine Zugriffsberechtigung erteilt, trägt die Slave-Einheit
in die Antwortzelle die Lage eines Adressbereichs des Speichers
ein, unter welcher die Master-Einheit einen Datensatz in den Speicher
einschreibt oder ausliest. Das Ende einer Datenübertragung zeigt die Master-Einheit
der Slave-Einheit durch einen entsprechenden Eintrag in der Auftragszelle
an, den wiederum die Slave-Einheit mit einem Eintrag in die Antwortzelle
quittiert.
-
Die einzuschreibenden bzw. auszulesenden Datensätze sind
jeweils mit einer Datensatznummer versehen, und bei einem Schreibzugriff
trägt die
Master-Einheit die Länge
eines einzuschreibenden Datensatzes in die Auftragszelle und bei
einem Lesezugriff die Slave-Einheit die Länge eines auszulesenden Datensatzes
in die Antwortzelle ein. Durch diese Längenangaben werden unterschiedliche
Datensätze,
z. B. 8-, 16- oder
32-Byte-Datensätze,
unterstützt, und
Slave-Einheiten können
ohne Rückwirkungen auf
die Anordnung um neue Funktionen erweitert werden, welche eine Vergrößerung des
Speichers und der Datensätze
erfordern.
-
Die Slave-Einheit selbst verwaltet
ihren Speicher, die Master-Einheit kennt weder Speichergröße noch
die Aufteilung des Speichers in verschiedene Bereiche, wodurch.
ein "Katalogwissen" der Master-Einheit über die
Speicher der Slave-Einheiten nicht erforderlich ist und Laufzeiten
verkürzt
werden. Größe und Aufteilung
dieses Speichers richten sich ausschlieblich nach der Funktionalität der verschiedenen
Slave-Einheiten.
Dadurch werden insbesondere bei den Slave-Einheiten Speicherbausteine
eingespart, welche z. B. lediglich mit Diagnosedaten versehen sind
oder welche überhaupt
keine Datensätze
verarbeiten können
und die daher keinen Speicher für
Prozeß-,
Parametrier- und Diagnosedaten aufweisen.
-
Damit diese Slave-Einheiten, die überhaupt keinen
Speicher für
solche Datensätze
aufweisen, an dem Kommunikationsprotokoll teilnehmen können, wird
der Master-Einheit durch eine festeingestellte Kennung in der Antwortzelle
ein Zugriff auf Datensätze
stets verweigert. Auf derartige Slave-Einheiten, z. B. Slave-Einheiten
in Form von Digital-Ein/Ausgabeeinheiten, greift die Master-Einheit
gewöhnlich
mit einer Steckplatzadresse und einer Kennung für den anzusprechenden Ein-
bzw. Ausgang zu.
-
Die Anordnung ist um weitere Slave-Einheiten
mit unterschiedlichen Funktionen erweiterbar, vorausgesetzt, die
Slave-Ein heiten stellen diesen erforderlichen Protokollbereich bereit, über welchen
die Master-Einheit eine Kommunikation mit den Slave-Einheiten einleiten
kann.
-
Auch kann die Anordnung mit weiteren
Master-Einheiten versehen werden, wobei während eines Schreibzugriffs
auf die Auftragszelle oder eines Lesezugriffs auf die Antwortzelle
durch eine Master-Einheit der Bus für einen Zugriff durch andere
Master-Einheiten gesperrt ist. Dadurch ist sowohl für die jeweilige
Master-Einheit als auch für
die Slave-Einheit die richtige Zuordnung zwischen Auftrag und Antwort
gewährleistet.
-
Da jede Master-Einheit mit einer
Kennung versehen ist und diese bei einem Zugriff in die Auftragszelle
einträgt,
können
die Slave-Einheiten gezielt mit den einzelnen Master-Einheiten kommunizieren.
-
Die Erfindung wird insbesondere in
Automatisierungsgeräten
eingesetzt.
-
Anhand der Zeichnung, in der ein
Ausführungsbeispiel
der Erfindung veranschaulicht ist, werden die Ausgestaltungen und
Vorteile der Erfindung näher
erläutert.
-
Es zeigen:
-
1 einen
Protokollbereich einer Slave-Einheit,
-
2 und 3 einen Slave-Speicher und
-
4 das
Blockschaltbild einer Auswerteschaltung einer Slave-Einheit.
-
In 1 ist
ein Protokollbereich (1, 2) einer Slave-Baugruppe
dargestellt, welche eine Auftragszelle 1 und eine Antwortzelle 2 umfaßt, von
denen die Auftragszelle 1 aus drei Registern 3, 4, 5 und
die Antwortzelle 2 aus zwei Registern 6, 7 besteht.
Die Register 3...7 sind mit Adressen ad1 ... ad5 adressierbar,
wobei eine Master-Einheit auf die Register 3, 4, 5 schreibend,
auf die Register 6, 7 lesend und die Slave-Einheit auf die Register 6, 7 schreibend
und auf die Register 3, 4, 5 lesend zugreift.
Um einen Speicherzugriff einzu leiten, trägt die Master-Einheit zunächst in
das Register 3 mehrere Kennungen ein, und zwar in die Zelle 0 des
Registers 3 eine Kennung für den bevorstehenden Schreib-
oder Lesezugriff, in die Zellen 1 und 2 eine Kennung
für den
Beginn des Zugriffs und in die Zellen 6 und 7 eine
Kennung für die
zugreifende Master-Einheit. Die Zellen 3...5 werden nicht
beschrieben, sondern sind für
mögliche Funktionserweiterungen
reserviert. In das Register 4 hinterlegt die Master-Einheit
die Nummer eines Datensatzes, welcher in den Speicher der Slave-Einheit einzutragen
oder aus diesem auszulesen ist. Für den Fall eines Schreibzugriffs
hinterlegt die Master-Einheit in das Register 5 eine Kennung
für die
Länge des einzuschreibenden
Datensatzes. Für
den Fall eines Lesezugriffs hinterlegt dagegen die Slave-Einheit
in das Register 6 die Kennung für die Länge des auszulesenden Datensatzes.
Das bedeutet, daß bei
einem Schreibzugriff die Master-Einheit die Register 3, 4, 5 der
Auftragszelle beschreibt, welche die Slave-Einheit ausliest, und
die Slave-Einheit lediglich das Register 7 beschreibt,
das die Master-Einheit ausliest. Bei einem einzuleitenden Lesezugriff
dagegen beschreibt die Master-Einheit lediglich die Register 3, 4 und
die Slave-Einheit zusätzlich
zum Register 7 das Register 6 der Antwortzelle.
-
Ob die Master-Einheit berechtigt
ist, einen Lesezugriff auf den mit der Datensatznummer gekennzeichneten
Datensatz auszuführen
oder diesen Datensatz in den Speicher der Slave-Einheit einzutragen,
zeigt die Slave-Einheit der Master-Einheit durch einen entsprechenden
Eintrag in die Zeller 0 und 1 des Registers 7 an.
Dabei kann die Slave-Einheit anzeigen, daß diese Master-Einheit auf
den angegebenen Datensatz temporär
nicht zugreifen kann, weil die Slave-Einheit der Datensatz gerade
bearbeitet, daß die
Master-Einheit auf den Datensatz überhaupt nicht zugreifen kann,
z. B. weil die Slave-Einheit den angeforderten Datensatz überhaupt
nicht kennt, oder daß die
Master-Einheit auf den angeforderten Datensatz zugreifen kann, wobei
in diesem Fall die Slave-Einheit der Master-Einheit die Lage des
Datensatzes im Speicher-Adreßbereich
in den Zellen 2...6 des Registers 7 anzeigt. Die
Zelle 7 des Regi sters 7 ist nicht belegt und kann
ebenfalls für eventuelle
Funktionserweiterungen berücksichtigt werden.
-
Nach den Einträgen in die Register 3...7 greift
im Falle einer vorliegenden Zugriffsberechtigung die Master-Einheit
auf den Speicher der Slave-Einheit unter der angegebenen Adresse
zu, wobei das Ende des Zugriffs die Master-Einheit der Slave-Einheit
durch einen erneuten Eintrag einer entsprechenden Kennung in die
Zellen 1 und 2 des Registers 3 anzeigt.
Die Slave-Einheit quittiert das Zugriffsende, indem sie die dafür vorgesehene
Kennung in die Zellen 0 und 1 des Registers 7 einschreibt.
-
In einem praktischen Ausführungsbeispiel der
Erfindung sind für
die Register 3...7 folgende Kennungen vorgesehen:
Zelle 6 und 7 des
Registers 3:
00 = Master-Einheit 1
01
= Master-Einheit 2
10 = Master-Einheit 3
11
= Master-Einheit 4
Zelle 1 und 2 des
Registers 3:
00 = reserviert
01 = Beginn des
Zugriffs
10 = Ende des Zugriffs
11 = Abbruch/Reset
Zelle 0 des
Registers 3:
0 = Schreiben
1 = Lesen
Nummer
des Datensatzes in Register 4:
0 . . . 255
Länge (in
Byte) des Datensatzes in Register 5 und 6:
0
... 255
Zelle 0 und 1 in Register 7:
00
= reserviert
01 = Quittung negativ (temporär)
10 = Quittung positiv
11
= Quittung negativ (generell, d. h. Slave-Einheit kennt die Nummer
des Datensatzes nicht)
Zelle 2...6 in Register 7:
12
= Adresse 176
13 = Adresse 180
14 =
Adresse 184
15 = Adresse 188
16 = Adresse 192
17
= Adresse 196
18 = Adresse 200
19 =
Adresse 204
20 = Adresse 208
21 = Adresse 212
Zelle 3...5 des
Registers 3 und Zelle 7 des Registers 7 sind
reserviert.
-
In 2 ist
ein Speicher 8 einer Slave-Einheit dargestellt, in welche
ein Anwender Parameterdaten zur Parametrierung der Slave-Einheit
einzutragen hat. Die in den 1 und 2 vorkommenden gleichen Teile
sind mit gleichen Bezugszeichen versehen. Zur Parametrierung ist
es erforderlich, daß der Anwender
entsprechend einer für
diese Einheit vorgesehe nen Parametriervorschrift die Parameter in
einen Datensatz mit der Datensatznummer 30 hinterlegt.
Die Master-Einheit aktiviert ein Schreibsignal WR und schreibt in
das Register 3 der Auftragszelle die Kennung 0 (Zelle 0, 1)
für einen
beabsichtigten Schreibzugriff und die Kennung 01 (nicht
dargestellt) für
den Beginn des Schreibzugriffs (Zelle 1 und 2),
in das Register 4 die Nummer 30 des Parametrierdatensatzes
und in das Register 5 die Länge lae30 dieses Datensatzes
ein. Die Slave-Einheit liest zunächst den
Inhalt der Register 3, 4 aus und erkennt anhand der
in der Slave-Einheit hinterlegten Tabelle 9, daß eine Berechtigung (Kennung 10)
für einen
Schreibzugriff zum Einschreiben des Parametrierdatensatzes Nummer
30 vorliegt. Anschließend überträgt die Slave-Einheit
die Länge
lae30 des Datensatzes in die Tabelle, ordnet diesem Datensatz eine
Adresse adr30 zu und schreibt die Adresse adr30 in das Register 7 (Zelle 2...6).
Die Master-Einheit aktiviert nun ein Lesesignal RD und schreibt
unter der Adresse adr30 den Parametrierdatensatz der Länge lae30
in den Speicher 8 der Slave-Einheit ein. Hat die Master-Einheit
den Datensatz im Speicher 8 hinterlegt, zeigt die Master-Einheit
der Slave-Einheit das Ende des Schreibzugriffs an (nicht dargestellt).
Dazu aktiviert die Master-Einheit wiederum das Schreibsignal und
trägt in
das Register 3 die Kennung 10 für das Ende
des Zugriffs ein. Die Slave-Einheit liest das Register 3 aus
und quittiert durch Eintrag der Kennung 11 (positive Quittung)
in das Register 7 der Antwortzelle. Der Schreibzugriff
ist somit beendet.
-
In 3 ist
ein Lesezugriff auf den Speicher 3 der Slave-Einheit veranschaulicht.
Dabei wird angenommen, daß ein
Datensatz mit der Nummer 40 auszulesen ist. Die Master-Einheit aktiviert
zunächst das
Schreibsignal WR und trägt
in das Register 3 die Kennung 1 für einen
beabsichtigten Lesezugriff, die Kennung 01 (nicht dargestellt)
für den
Zugriffsbeginn sowie in das Register 4 die Nummer 40 des
auszulesenden Datensatzes ein. Die Slave-Einheit liest die Register 3 und 4 aus,
und da eine Berechtigung für einen
Lesezugriff auf den Daten satz Nummer 40 vorliegt (Kennung 10 in
Tabelle 9), trägt
die Slave-Einheit die Länge
des Datensatzes lae40 sowie die Adresse adr40 aus der Tabelle 9
aus und in die Register 6 und 7 der Antwortzelle 2 ein.
Den Inhalt der Register 6 und 7 liest die Master-Einheit
nach der Aktivierung des Lesesignals RD aus und ist nun in der Lage,
den Speicher 8 mit der Adresse adr40 zu adressieren und
den Datensatz 40 mit der Länge lae40 aus dem Speicher 8 auszulesen.
Das Ende des Lesezugriffs zeigt die Master-Einheit wiederum im Register 3 der
Slave-Einheit an, welche die Anzeige im Register 7 quittiert.
-
Um ein deterministisches Verhalten
zu erreichen, müssen
alle Slave-Einheiten Zugriffe der Master-Einheit innerhalb einer
bestimmten Zeit quittieren. Für
den Fall, daß mehrere
Master-Einheiten
auf einen Datensatz zugreifen wollen, ist es erforderlich, daß die Slave-Einheit
der zuerst zugreifenden Master-Einheit den beabsichtigten Zugriff
positiv quittiert, allen weiteren Master-Einheiten dagegen den Zugriffsversuch
vorübergehend
negativ quittiert.
-
4 zeigt
das Blockschaltbild einer einfachen Auswerteschaltung einer Slave-Einheit,
welche geeignet ist, drei unterschiedliche Datensätze, welche
mit Datensatznummern 51, 52, 53 versehen sind, auszuwerten.
Es wird im folgenden ein Schreibzugriff betrachtet. Über einen
Bus BU werden während
des aktiven Schreibsignals WR der Auftragszelle 1 die entsprechenden
Kennungen zugeführt,
welche auszuwerten sind. Im vorliegenden Beispiel werden allerdings
eine Kennung MK der zugreifenden Master-Einheit und die Datensatzlänge lae
nicht ausgewertet. Datensätze
werden Vergleichern V1, V2, V3 aufgeschaltet, welche prüfen, ob
die Master-Einheit berechtigt ist, auf die Datensätze 51, 52, 53 zuzugreifen.
Die Kennungen Ke für
den Beginn des Auftrags, das Auftragsende oder Abbruch des Auftrages
werden mit diskreter Logik geprüft.
Ein Encoder EN ordnet den Datensätzen
Adressen ADR zu, und für
den Fall, daß ein
Zugriff auf einen der Datensätze 51, 52, 53 und
die Kennung Ke zulässig
sind, wird eine positive Quittung im Ant wortregister 2 hinterlegt.
Die Antwortzelle 2 wird bei dem aktiven Lesesignal RD durch die
Master-Einheit ausgelesen, und mit der ausgelesenen Adresse ADR
greift die Master-Einheit
auf den Speicher (nicht dargestellt) der Slave-Einheit zu. Ein Erkennen und gegenseitiges
Verriegeln von Mehrfachaufträgen
ist mit der dargestellten einfachen Auswerteschaltung nicht möglich.