-
HINTERGRUND
DER ERFINDUNG
-
Die Prozessindustrie verwendet eine
Vielzahl von Vorrichtungen zur Überwachung
und Steuerung industrieller Prozesse. Derartige Vorrichtungen schließen Prozessvariablen-Sender,
Prozess-Stellglieder,
Prozess-Warnvorrichtungen sowie Prozess-Steuermodule ein.
-
Prozessvariablen-Sender werden zum Überwachen
von Prozessvariablen verwendet, die mit industriellen Prozessen
in Zusammenhang stehen. Solche Variablen schließen Druck, Temperatur, Strömung, Pegel,
pH-Wert, Trübheit,
Dichte, Konzentration, chemische Zusammensetzung und andere Eigenschaften
ein. Prozess-Stellglieder werden zum Steuern von Ventilen, Pumpen,
Heizvorrichtungen, Agitatoren, Magnetspulen, Abzügen und anderen derartigen
Vorrichtungen verwendet. Prozess-Warnvorrichtungen werden zum Fernüberwachen
einer spezifischen Prozessvariablen verwendet, die unter anderem
von einem Prozessvariablen-Sender bereitgestellt wird, und liefern
ein Warnsignal, falls die Prozessvariable von der Prozessnorm unzulässig abweicht.
Prozesssteuermodule empfangen mit dem Prozess in Zu sammenhang stehende
Informationen von Prozessvariablen-Sendern, führen Analysen der empfangenen
Prozessinformationen durch und setzen einen Korrekturvorgang mit
Hilfe der Prozess-Stellglieder
in Gang. Im Allgemeinen ist ein Prozesssteuerungsmodul in einer
Steuerwarte angeordnet, um ein Einwirken durch den Benutzer zu erleichtern.
-
Aufgrund der unbeständigen Natur
der Prozessfluidumgebung sollten die Prozessvorrichtungen keinen
Funken erzeugen, der mit explosiven Atmosphären und brennbaren Stoffen
koppeln und diese entflammen könnte.
Prozessvorrichtungen erfüllen dieses
Konstruktionskriterium im Allgemeinen dadurch, dass sie entweder
explosionssichere Gehäuse
gemäß der Definition
in den NEC-Paragraphen 500–503,
1996, oder von sich aus sichere Schaltkreise aufweisen. Wenn eine
Prozessvorrichtung eigensicher ist, arbeitet sie auf derart niedrigen
Energiepegeln, dass sie im Allgemeinen nicht in der Lage ist, einen
Funken mit genügend
Energie zu erzeugen, um eine Zündung
selbst bei Fehlerzuständen
zu verursachen. Dieses Konstruktionskriterium wird weiter durch
die Tatsache verkompliziert, dass zusätzliche externe Energiequellen
oft nicht für
das Betreiben einer Prozessvorrichtung im Feld zur Verfügung stehen.
Daher muss sich die Prozessvorrichtung auf Energie verlassen, die
von der Stromschleife selbst geliefert wird, wobei diese entweder
explosionssicher oder eigensicher ist. Niedrigenergie-Prozessvorrichtungen
sind in der Lage, Eigensicherheitskriterien zu erfüllen, während sie
immer noch nur mit der von einer Prozesssteuerschleife empfangenen
Energie betrieben werden.
-
In der Prozessindustrie ist eine
schnelle und verlässliche
Kommunikation zwischen den Prozessvorrichtungen sehr wichtig. In
der Vergangenheit beinhaltete eine derartige Kommunikation einen
Prozessvariablensender, der die durch eine Prozessregelschleife
fließende
Strommenge basierend auf einer Prozessvariablen steuert. Der Strom
wurde von einer Stromquelle in der Steuerwarte geliefert und der
Prozessvariablen-Sender steuerte die Strommenge von seiner Anordnung
im Feld aus. Beispielsweise könnte
ein Signal mit einer Stärke
von 4 Milliampere (mA) dazu verwendet werden, eine Nullablesung
anzuzeigen, während
ein 20 mA-Strom dazu verwendet werden könnte, eine umfassende Ablesung
anzuzeigen. Aufgrund des technologischen Fortschritts besteht ein
stetig zunehmender Bedarf daran, mehr und mehr Informationen über den
Prozess und die Prozessvorrichtungen selbst zu liefern.
-
Beim FoundationTM-Feldbussen
und Profibus-PA (die kollektiv als Feldbus bezeichnet werden) handelt
es sich um serielle digitale Mehrpunkt-Kommunikationsprotokolle,
die zum Verbinden von Feldinstrumenten und anderen Prozessvorrichtungen, wie
z. B. Überwachungs-
und Simulationseinheiten in Prozesssteuersystemen, gedacht sind.
Die physische Schicht der Feldbusprotokolle wird von der Instrument
Society of America Norm ISA-S50.02-1992, und
deren Entwurf 2-Zusatz von 1995; oder der IEC 1158-2 von 1993 definiert.
Feldbus ermöglicht
eine verbesserte digitale Übertragung
mit Hilfe früherer Prozessregelkreisverfahren,
während
die Fähigkeit beibehalten
wird, an die Feldbusschleife gekoppelte Prozessvorrichtungen zu
betreiben, und während
Eigensicherheitsanforderungen erfüllt werden.
-
Die Einführung des Feldbus lieferte
zu Beginn eine digitale Prozessschleife, die in der Lage ist, eine
Kommunikation bei 31,250 Bit/Sekunde zu ermöglichen. Später ermöglichten Überarbeitungen von Feldbus
Geschwindigkeiten von 1 Megabit/Sekunde und 2,5 Megabit/Sekunde
bei der seriellen digitalen Übertragung.
Es wurden zudem auch andere Übertragungsgeschwindigkeiten
in Betracht gezogen.
-
Feldbus schafft nun bedeutende Möglichkeiten
für die
digitale Übertragung
riesiger Mengen an Prozessdaten. Daher besteht ein fortschreitender Bedarf,
Prozessvorrichtungen zu entwickeln, die dazu in der Lage sind, die
Wirksamkeit der Felbus-Kommunikation zu erhöhen, während Stromverbrauch, Kosten
und Vorrich tungsgröße auf ein
Minimum reduziert werden.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die vorliegende Erfindung schafft
eine Feldbus-Vorrichtung, die Folgendes aufweist: eine Medien-Zugriffseinheit,
die zum Koppeln an eine Feldbusschleife und zum Empfangen von Signalen,
die Feldbusnachrichten repräsentieren,
ausgelegt ist, sowie eine serielle Ausgangsschnittstelle aufweist;
einen Feldbus-Kommunikationsregler, der eine serielle Eingangsschnittstelle,
die an die serielle Ausgangsschnittstelle der Medien-Zugriffseinheit gekoppelt
ist, sowie einen Datenausgang aufweist; und einen Regler mit einer
Dateneingangsschnittstelle, die an die Datenausgangsschnittstelle
des Feldbus-Kommunikationsreglers gekoppelt ist; und wobei die Feldbus-Vorrichtung
dadurch gekennzeichnet ist, dass der Feldbus-Kommunikationsregler
einen FIFO-Empfangsspeicher (FIFO = first-in-first-out) einschließt und so
ausgelegt ist, dass er gleichzeitig zumindest Abschnitte von zwei
Feldbus-Nachrichten speichert.
-
Die vorliegende Erfindung liefert
des Weiteren eine anwenderspezifischen integrierten Schaltkreis
zum Speichern von zumindest ersten und zweiten Feldbus-Nachrichten,
wobei der Schaltkreis Folgendes aufweist: eine serielle Eingangsschnittstelle, die
so ausgelegt ist, dass sie serielle Feldbusdaten bei einer ersten Übertragungsrate
empfängt;
einen Datenausgang, der so ausgelegt ist, dass er Feldbusdaten mit
einer zweiten Übertragungsgeschwindigkeit
liefert, die schneller ist als die erste Übertragungsgeschwindigkeit;
einen FIFO-Empfangsspeicher, der an die serielle Eingangsschnittstelle
und den Datenausgang gekoppelt ist und so ausgelegt ist, dass er
eine Vielzahl von Feldbusdaten-Segmenten speichert; einen ersten
Zeiger, der so ausgelegt ist, dass er eine Segment-Speicherstelle
anzeigt, die einer aktuellen Empfangs-FIFO-Lese-Speicherstelle entspricht; einen zweiten
Zeiger, der so aus gelegt ist, dass er eine Segment-Speicherstelle
anzeigt, die einer aktuellen Empfangs-FIFO-Schreib-Speicherstelle
entspricht; und einen dritten Zeiger, der so ausgelegt ist, dass
er eine Segment-Speicherzelle anzeigt, die einem ersten Segment
eines Abschnitts der zweiten Feldbus-Nachricht entspricht.
-
Die vorliegende Erfindung schafft
weiter ein Verfahren zum Empfangen zumindest von Abschnitten einer
Mehrzahl von Feldbus-Nachrichten, die Folgendes aufweist: serielles
Empfangen von Daten, die eine erste Feldbus-Nachricht und mindestens
einen Abschnitt einer zweiten Feldbus-Nachricht darstellen; Assemblieren
von Daten, die die erste Feldbus-Nachricht repräsentieren, in mindestens ein Segment
der ersten Nachricht; Speichern des mindestens einen Segments der
ersten Nachricht in einem FIFO-Empfangsspeicher; Assemblieren von
Daten, die zumindest einen Abschnitt der zweiten Feldbus-Nachricht
darstellen, in mindestens ein Segment der zweiten Nachricht; und
Speichern des mindestens einen Segments der zweiten Nachricht in
dem FIFO-Empfangsspeicher, während
das zumindest eine Segment der ersten Nachricht in dem FIFO-Empfangsspeicher
gespeichert ist.
-
Die vorliegende Erfindung schafft
zudem ein Feldbus-Computerprogramm auf computerlesbaren Medien,
das Folgendes aufweist: FIFO-Empfangsspeicher-Befehle zum Empfangen
zumindest von Abschnitten von zwei Feldbus-Nachrichten und Speichern
von zumindest Abschnitten in einem FIFO-Empfangsspeicher; Zeigerbefehle
zum Speichern von Informationen, die mit einer Endsegement-Speicherstelle
in Zusammenhang stehen, falls es sich bei dem mindestens einen Feldbus-Nachrichtensegment
um ein Endsegment handelt; Zählbefehle,
die einen Zählwert
einer Gesamtanzahl an in dem FIFO-Empfangsspeicher gespeicherten
Nachrichten-Segmenten beibehalten; und Lesebefehle, die wiederholt
Segmente von Inkremental-Speicherstellen des FIFO-Empfangsspeichers
lesen, die auf der Anzahl der in dem FIFO- Empfangsspeicher gespeicherten Segmente
und den Zeigerinformationen basieren.
-
Es sind ein Verfahren und eine Vorrichtung vorgesehen,
die zumindest die Speicherung von Abschnitten von zwei Feldbus-Nachrichten in einer Feldbus-Vorrichtung
ermöglichen.
Die Feldbus-Vorrichtung schließt
eine Medien-Zugriffseinheit, einen Feldbus-Kommunikationsregler,
sowie einen Regler ein. Die Medien-Zugriffseinheit ist für den Empfang von
Feldbussignalen an eine Feldbusschleife gekoppelt und liefert einen
digitalen Bitstrom, der mit den Feldbussignalen in Beziehung steht.
Der Feldbus-Kommunikationsregler assembliert Datensegmente, die
zumindest mit Abschnitten der beiden Feldbusnachrichten von dem
Bitstrom in Zusammenhang stehen und speichert die Segmente in einem FIFO-Empfangsspeicher.
Der Regler ist so ausgelegt, dass er die Segmente aus dem FIFO-Empfangsspeicher
ausliest und auf die Feldbusnachrichten anspricht.
-
Weitere Einzelheiten, Merkmale und
Vorteile ergeben sich aus der nachfolgenden Kurzbeschreibung der
Erfindung anhand der Zeichnungen:
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Es zeigen:
-
1 Blockdiagramm
eines Feldbus-Prozesssteuersystems, das die Umgebung der Erfindung
zeigt;
-
2 ein
Blockdiagramm einer Feldbus-Vorrichtung entsprechend einer erfindungsgemäßen Ausführungsform;
-
3 ein
Blockdiagramm einer anderen Feldbus-Vorrichtung entsprechend einer
weiteren erfindungsgemäßen Ausfüh rungsform;
-
4 ein
Blockdiagramm des Feldbus-Kommunikationsreglers aus
-
2 und 3 entsprechend einer erfindungsgemäßen Ausführungsform;
-
5A–5C Diagrammansichten eines
Feldbus-FIFO-Empfangsspeichers des Feldbus-Kommunikationsreglers
aus 4;
-
6 ein
Blockdiagramm, das ein Verfahren zum Speichern empfangener Feldbussegmente
entsprechend einer erfindungsgemäßen Ausführungsform
darstellt; und
-
7 ein
Zeitdiagramm, das die Zeitsteuerung der Feldbus-Nachricht darstellt.
-
AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
1 ist
ein Blockdiagramm des Feldbus-Prozesssteuersystems 10,
das eine Prozess-Mess-/Steuerumgebung darstellt. Das System 10 weist
die Feldbusschleife 12, die Schleifenenden 14,
die Feldbus-Stromversorgung 16, sowie die Feldbusvorrichtungen 18, 20, 22, 24, 26 und 28 auf.
-
Das System 10 ist in einer
Stützpfosten-Implementierung
verdrahtet, wobei jedoch eine Vielzahl anderen Verdrahtungs-Implementierungen
möglich ist.
Die Feldbus-Enden 14 begrenzen gegenüberliegende Enden der Feldbusschleife 12.
Jedes Feldbus-Ende 14 ist
als ein in Reihe mit einem Widerstand geschalteter Kondensator ausgebildet.
Im Allgemeinen weist der Kondensator einen Kapazität von ungefähr 1 Mikrofarad
und auf der Widerstand besitzt einen Widerstand von ungefähr 100 Ohm.
Die Feldbus-Stromversorgung 16 ist ebenfalls an die Feldbusschleife 12 gekoppelt,
um Energie an die Feldbusvorrichtungen 18, 20, 22, 24, 26, 28 zu
liefern, die an die Feldbusschleife 12 gekoppelt sind.
Im Allgemeinen erfordern die Feldbus-Vorrichtungen eine Spannung
zwischen 9 und 35 Volt Gleichstrom, die von einer Feldbus-Stromversorgung 16 über die Feldbus-Schleife 12 geliefert
wird.
-
Eine Feldbusvorrichtung ist eine
Prozessvorrichtung, die über
die Hardware, Software oder einer Kombination aus beiden für die Kommunikation
entsprechend den vorstehend definierten Feldbus-Protokollen ausgelegt
ist. Die Prozessvorrichtungen 18, 20, 22, 24, 26 und 28 sind
lediglich ein paar wenige Beispiele für Feldbusvorrichtungen. Beispielsweise handelt
es sich bei der Feldbus-Vorrichtung 18 um eine Host-Vorrichtung,
die als Feldbus-Prozesssteuerungsmodul arbeitet, das Steuerfunktionen
für den Prozess
bereitstellt. Die Feldbus-Vorrichtungen 20 und 22 sind
beispielsweise Prozessvariablensender, die Prozessinformationen
in Zusammenhang mit Prozessvariablen liefern. Bei der Feldbus-Vorrichtung 24 handelt
es sich um ein Prozess-Stellglied, das ein Ventil schließt oder
irgendeine andere Betätigungsfunktion
nach Erhalt einer Feldbus-Nachricht von der Feldbus-Schleife 12 ausübt. Die
Feldbus-Vorrichtung 26 ist eine Prozess-Warnvorrichtung,
die Informationen über
Prozessvariablen von den Feldbus-Vorrichtungen 20 und 22 überwacht
und ein Warnsignal liefert, falls die Informationen über die Prozessvariablen
von den Feldbus-Vorrichtungen 20 und 22 unzulässig von
einer Prozessnorm abweichen. Die Feldbus-Vorrichtung 28 ist
eine Diagnoseeinheit, wie z. B. eine Feldbus-Überwachungs-
und Simulationseinheit mit einer Benutzerschnittstelle zur Fehlersuche.
-
Die Feldbus-Schleife 12 stellt
eine Medienkonfiguration dar, die zwei oder mehr Leiter einschließt, die
für das
Weiterleiten von Signalen entsprechend den vorstehend definierten
physikalischen Schichtbeschreibungen geeignet sind. Daher kann es
sich bei der Feldbus-Schleife 12 um einen Niedriggeschwindigkeits-Feldbus,
um einen Hochgeschwindigkeits-Feldbus oder um jede andere beliebige
Feldbusimplementierung handeln, die in Übereinstimmung mit den vorstehend
zitierten Protokollen konstruiert worden sind.
-
2 ist
ein System-Blockdiagramm einer Feldbus-Vorrichtung 30,
die an eine Feldbus-Schleife 12 mit einer Medien-Zugriffseinheit 32,
einem Feldbus-Kommunikationsregler 34 und einen Regler 36 gekoppelt
ist. Während
die Medien-Zugriffseinheit 32, der Feldbus-Kommunikationsregler 34 sowie
der Regler 36 im Allgemeinen separat beschrieben werden,
soll eine solche Beschreibung die Klarheit fördern, und es ist beabsichtigt,
dass derartige Bauteile auf einem einzigen anwenderspezifischen
integrierten Schaltkreis vorgesehen sind.
-
Die Medien-Zugriffseinheit 32 ist
so ausgelegt, dass sie an eine Feldbus-Schleife 12 koppelt, um
analoge Signale zu übertragen
und zu senden, welche Feldbus-Nachrichten oder Rahmen darstellen.
Während
des Empfangs wandelt die Medien-Zugriffseinheit 32 die
empfangenen analogen Signale in digitale Signale um, die im Wesentlichen
Manchester-codierte serielle Daten einschließt. Die Medien-Zugriffseinheit 32 weist
eine serielle Ausgangsschnittstelle 38 auf, welche die
digitalen Daten bei einer ersten Übertragungsrate bidirektional
liefert. Beispielsweise stellt ein Niedriggeschwindigkeits-Feldbus
eine Datenübertragung
mit einer Geschwindigkeit von 31,250 Bit/Sekunde bereit. Somit beträgt die erste Übertragungsgeschwindigkeit
ungefähr
31,250 Bit/Sekunde, falls die Medien-Zugriffseinheit 32 so ausgelegt
ist, dass sie zusammen mit einem Niedriggeschwindigkeits-Feldbus
arbeitet.
-
Bei dem Feldbus-Kommunikationsregler 34 kann
es sich um einen anwenderspezifischen integrierten Schaltkreis handeln,
wobei dieser eine serielle Eingangsschnittstelle 40 aufweist,
die an die serielle Augangsschnittstelle 38 der Medien-Zugriffseinheit 32 gekoppelt
ist. Der Feldbus-Kommunikationsregler 34 weist zudem einen
Datenausgang 42 auf, der Daten bei einer zweiten Übertragungsrate bereitstellt,
wobei diese schneller als die von der Medien-Zugriffseinheit 32 bereitgestellte Übertragungsrate
ist. Der Feldbus-Kommunikationsregler 34 weist zudem einen
Feldbus-FIFO-Empfangsspeicher 46 auf, der Feldbusdaten
speichern kann und den Geschwindigkeitsabgleich der beiden Daten-Übertragungsgeschwindigkeiten
erleichtert. Der Feldbus-FIFO-Empfangsspeicher 46 ist eine
Speicheranordnung in dem Feldbus-Kommunikationsregler 34, die
so ausgelegt ist, dass sie Datensegmente in der Reihenfolge des
Empfangs speichert.
-
Der Regler 36 schließt eine
Daten-Eingangsschnittstelle 44 ein, die an die Daten-Ausgangsschnittstelle 42 des
Feldbus-Kommunikationsreglers 34 gekoppelt
ist. Die Daten-Eingangsschnittstelle ist so ausgelegt, dass sie
mit der Daten-Ausgangsschnittstelle 42 kommuniziert, und
als solche eine parallele oder eine serielle Schnittstelle sein
kann. Der Regler 36 kann ein Mikroprozessor oder ein direkter Speicherzugangsregler
sein, und kann eine Vielzahl von Steuerfunktionen bereitstellen,
oder der Regler 36 kann lediglich Feldbusdaten von der
Feldbusschleife 12 protokollieren. Bei den Daten kann es
sich um Prozessdaten oder Diagnosedaten handeln, die mit dem Betrieb
des Feldbus-Protokolls selbst in Zusammenhang stehen.
-
Während
des Empfangs von Feldbusdaten empfängt die Medien-Zugriffseinheit 32 Manchester-codierte
Daten im Feldbusformat von der Feldbusschleife 12 und wandelt
diese in Manchester-codierte
digitale Daten mit Logikpegeln um, wobei diese Daten dann über die
Anschlüsse 38, 40 an
den Feldbus-Kommunikationsregler 34 geliefert werden. Der
Feldbus-Kommunikationsregler 34 empfängt den Manchester-codierten
seriellen Bitstrom und entschlüsselt
den Bitstrom, während
er die Bits in Datensegmente assembliert. Ein Datensegment ist jegliche
Gruppierung von zwei oder mehr Bits. Beispielsweise kann ein Datensegment
eine Tetrade, ein Oktett, ein Byte, ein Wort oder jegliche andere
Gruppierung sein. Die Datensegmente werden für das Ausle sen durch den Regler 36 in
dem FIFO-Empfangsspeicher 46 gespeichert. Die Feldbus-Nachricht,
oder der Rahmen, weist einen Dateianfangs-Block, ein Anfangs-Trennzeichen,
ein oder mehrere Feldbus-Datensegmente, Rahmenprüfsequenz (RPS)-Segemente und
ein End-Trennzeichen auf, wobei alle ein oder mehrere Datensegmente
aufweisen können.
Jedes gespeicherte Feldbus-Datensegment kann durch den Regler 36 ausgelesen
werden, um auf die Feldbusnachricht anzusprechen. Wahlweise können die
RPS-Segmente durch
den Regler 36 zum Zweck der Datensicherheit ausgelesen
werden.
-
Ein Merkmal der Ausführungsformen
der Erfindung schließt
die Anpassung des Feldbus-Kommunikationsreglers 34 ein,
um es zumindest Abschnitten zweier Feldbus-Nachrichten zu ermöglichen,
in dem Feldbus-FIFO-Empfangsspeicher 46 nebeneinander zu
existieren, ohne einen Fehler zu erzeugen und keinen Abschnitt einer
der beiden Feldbus-Nachrichten zu verlieren. In der Vergangenheit
musste ein Regler die Datensegmente, die einer vorgegebenen Feldbusnachricht
von dem Feldbus-FIFO-Empfangsspeicher vor Erhalt eines Anfangs-Trennzeichens
von einer zweiten Nachricht von der Feldbusschleife entsprechen,
vollständig auslesen.
Falls ein Anfangs-Trennzeichen von einer zweiten Feldbus-Nachricht
empfangen worden war, bevor alle der ersten Nachricht entsprechenden
Datensegmente von dem Feldbus-FIFO-Empfangsspeicher entfernt worden waren,
dann wurde ein Fehler erzeugt und beide Feldbusnachrichten waren
verloren, da es keine Möglichkeit
gab, die Grenze zwischen Abschnitten der Vielzahl von Feldbus-Nachrichten
zu verfolgen. Zur Lösung
dieses Problems wäre
der Feldbus-Kommunikationsregler so konfiguriert, dass er ein Unterbrechungssignal
an den Regler bereitstellen würde,
wenn ein vorausgewählte
Anzahl an Datensegmenten in dem Feldbus-FIFO-Empfangsspeicher vorliegt.
Nach dem Erhalt der Unterbrechungs-Aufforderung von dem Feldbus-Kommunikationsregler
war es wichtig für
den Regler, sehr schnell zu reagieren, um die Feldbus-Datensegmente
aus dem Feldbus-FIFO-Empfangsspeicher
auszulesen, oder die Ankunft eines neuen An fangs-Trennzeichens und
den damit verbundenen Fehler zu riskieren. Derartige Ergebnisse
waren in der Proyessindustrie in höchstem Maße unerwünscht, da genaue Prozessinformationen
in Echtzeit praktisch eine Notwendigkeit darstellen.
-
3 ist
ein System-Blockdiagramm der Feldbusvorrichtung 50, die
entsprechend einer Ausführungsform
der Erfindung ähnlich
wie die in 2 gezeigte
Ausführungsform
implementiert ist. Die Feldbusvorrichtung 50 weist viele Ähnlichkeiten
zu der Feldbus-Vorrichtung 30 von 2 auf und gleiche Elemente sind ähnlich bezeichnet.
Fie Feldbusvorrichtung 50 weist eine Medien-Zugriffseinheit 32 auf,
die an die Feldbusschleife 12 gekoppelt ist, um serielle
Feldbusdaten an den Feldbus-Kommunikationsregler 34 zu
liefern. In der in 3 gezeigten Ausführungsform
weist der Feldbus-Kommunikationsregler 34 einen end ptr-Zeiger 52 auf,
der so ausgelegt ist, dass er eine Segment-Speicherstelle eines Anfangssegments
eines Abschnitts einer zweiten Feldbusnachricht oder eines Rahmens
anzeigt.
-
Wie in 3 gezeigt
kann der Regler 36 an einen Sensor 56 oder ein
Stellglied 58 zur Überwachung
oder Steuerung eines Prozesses gekoppelt sein. Beispielsweise kann
es sich bei dem Sensor 56 um einen Drucksensor, einen Temperatursensor, oder
jeglichen anderen geeigneten Sensor handeln. Das Stellglied kann
eine elektrische Magnetspule, ein Druckluftventil oder jedes andere
beliebige Stellglied sein.
-
Die Feldbusvorrichtung 50 weist
zudem die Stromversorgung 60 auf. Die Stromversorgung 60 ist zum
Erhalt von Strom von der Feldbusschleife 12 an die Feldbusschleife 12 koppelbar,
und ist an die Medien-Zugriffseinheit 32, den Feldbus-Kommunikationsregler 34,
den Regler 36, den Sensor 56 und das Stellglied 58 gekoppelt,
um Energie an diese Bauteile zu liefern. Auf diese Weise kann die
Feldbusvorrichtung 50 so ausgelegt sein, dass sie vollständig durch die
von der Feldbusschleife 12 empfangenen Energie betrieben
wird.
-
4 ist
ein System-Blockdiagramm des Feldbus-Kommunikationsreglers 34.
Der Feldbus-Kommunikationsregler 34 schließt eine
Empfangs-Zustandsmaschine 62, einen FIFO-Empfangsspeicher 46,
eine Regler-Registerschnittstelle/Registerbank 64, Zeitgeber 66,
einen FIFO-Sendespeicher 68, eine FIFO-Dualschnittstelle 70,
eine Taktsteuerung 72, eine Hilfsregisterschnittstelle/Registerbank 74,
eine Geschnatter- bzw. Zufallszeitsteuerung 76, eine Sende-Zustandsmaschine 78 sowie
ein Schleifen-Rückmodul 80 ein.
-
Die Leitungen 82 umfassen
eine serielle Niedriggeschwindigkeits-Schnittstelle, die an die
Medien-Zugriffseinheit koppelbar ist, wie z. B. die in den 2 und 3 gezeigte Medien-Zugriffseinheit 32. Die Empfangsleitungen
RxA und RxS sind an ein digitales Phasenregelkreis (PLL)-Modul 84 in
der Empfangs-Zustandsmaschine 62 gekoppelt.
Das PLL-Modul 84 ermöglicht
es der Empfangs-Zustandsmaschine 62, mit einem Dateianfangs-Block zu
synchronisieren und Manchester-codierte Daten zu entschlüsseln, wenn
die Leitung RxA aktiv wird. Sofort nach Erfassung des Dateianfangs-Blocks
wartet die Empfangs-Zustandsmaschine 62 auf das Anfangs-Trennzeichenmuster.
Falls die Empfangs-Zustandsmaschine 62 erfasst, dass das
Anfangs-Trennzeichen seine Polarität umgekehrt hat, korrigiert
diese die Polarität
der Daten. Das Anfangs-Trennzeichen bestimmt die Segmentgrenze innerhalb
des Bitstroms. Nach der Erfassung der Anfangs-Trennzeichen durch
die Empfangs-Zustandsmaschine 62 wird der serielle Bitstrom
durch die Empfangs-Zustandsmaschine 62 in Datensegmente umgewandelt,
die dann in den FIFO-Empfangsspeicher 46 geschrieben werden.
Die Empfangs-Zustandsmaschine 62 fährt fort, neue Datensegmente in
dem FIFO-Empfangsspeicher 46 anzuordnen, bis sie ein End-Trennzeichen
erfasst. Sofort nach Erfassung des End-Trennzeichens und Verifizierung
der RPS-Segmente wartet die Empfangs-Zustandsmaschine 62 auf
die Deaktivierung der RxA-Leitung. Sobald die RxA-Leitung deaktiviert
ist, kehrt die Empfangs-Zustandsmaschine 62 zu ihrem Anfangszustand
zurück
und wartet auf das nächste
aktive RxA-Signal.
-
Der FIFO-Empfangsspeicher 46 akzeptiert die
Datensegmente von der Empfangs-Zustandsmaschine 62 und
ermöglicht
es einem Regler wie z. B. dem Regler 36 (in den 2 und 3 gezeigt), auf die gespeicherten Datensegmente über die
Regler-Registerschnittstelle/Registerbank 64 zuzugreifen.
Die Regler-Registerschnittstelle/Registerbank 64 weist eine
Vielzahl von Leitungen 86 auf, die einen Datenausgang umfassen,
der Daten bei einer zweiten Übertragungsgeschwindigkeit
liefert. Die zweite Übertragungsgeschwindigkeit
ist schneller als die Geschwindigkeit, die von der seriellen Niedriggeschwindigkeits-Schnittstelle 82 bereitgestellt
wird. Die Leitungen 86 können eine parallele Schnittstelle oder
eine serielle Schnittstelle umfassen, solange die Geschwindigkeit
der Datenübertragung
schneller als die der Schnittstelle 82 ist.
-
Der FIFO-Sendespeicher 68 ist
an die Regler-Registerschnittstelle/Registerbank 64 und
die Sende-Zustandsmaschine 78 gekoppelt. Der FIFO-Sendespeicher 68 und
die Sende-Zustandsmaschine 78 werden zur Übertragung
von Feldbusinformationen über
die Feldbusschleife 12 verwendet. Die FIFO-Dualschnittstelle 70 ist
sowohl an die Regler-Registerschnittstelle/Registerbank 64 als
auch an die Hilfsregler-Schnittstelle/Registerbank 74 gekoppelt.
Die FIFO-Dualschnittstelle 70 und die Hilfsregler-Schnittstelle/Registerbank 74 werden
zur Kopplung an einen optionalen zweiten Regler (nicht gezeigt)
verwendet, der zusätzliche
Funktionen wie z. B. Linearisierung und dergleichen bereitstellen
kann. Die Taktsteuerung 72 wird von dem Feldbus-Kommunikationsregler 34 bereitgestellt,
um eine geeignete Signalzeitsteuerung aufrechtzuerhalten.
-
5A ist
eine Diagrammansicht eines Feldbus-FIFO-Empfangsspeichers 46 mit
einem damit verbundenen rd_adr-Zeiger 90 und einem wrt_adr-Zeiger 92.
Die Zeiger 90 und 92 können in jedem beliebigen Speicher
ausgeführt
sein, der Daten speichern kann, die Feldbus-Datensegmentspeicherstellen
in dem FIFO-Empfangsspeicher 46 anzeigen. Zum Zwecke der
Veranschaulichung ist der FIFO-Empfangsspeicher 46 mit
8 Feldbusdatensegmentstellen gezeigt. Vorzugsweise weist der FIFO-Empfangsspeicher 46 32
derartige Segment-Speicherstellen auf, wobei jedoch auch jede andere
Anzahl an Segmenten möglich
ist. Die Zeiger 90, 92 sind Umherkreis-Zeiger,
so dass bei Vorrücken
eines Zeigers über
die Datensegmentspeicherstelle 7 hinaus, der Zeiger sofort
die Datensegmentspeicherstelle 0 anzeigt. Bei den Zeigern 90, 92 kann es
sich um Dreibit-Zähler
in dem obigen Beispiel handeln, wenn jedoch mehr als 8 Segment-Speicherstellen
von dem FIFO-Empfangsspeicher 46 bereitgestellt
werden, dann weisen die Zeiger 90, 92 eine angemessene
Bitanzahl auf. Im Betrieb rückt
der Zeiger 92 vor, wenn ein neues Datensegment in dem FIFO-Empfangsspeicher 46 gespeichert
wird. Daher zeigt der Zeiger 92 die nächste verfügbare Segment-Speicherstelle
an, in der ein empfangenes Feldbus-Datensegment gespeichert werden
kann. Der Zeiger 90 zeigt die augenblickliche Speicherstelle
des nächsten
Feldbus-Datensegments an, das durch einen Regler, beispielsweise
dem Regler 36 (in den 2 und 3 gezeigt) aus dem FIFO-Empfangsspeicher
ausgelesen werden soll. Ein derartiger Regler würde im Allgemeinen das von
dem Zeiger 90 angezeigte Datensegment aus dem FIFO-Empfangsspeicher 46 auslesen;
den Zeiger 90 zu dem nächsten
Datensegment vorrücken;
prüfen,
ob der FIFO-Empfangsspeicher 46 als Ergebnis der vorhergegangenen
Leseoperation geleert worden ist; und den Vorgang kontinuierlich
wiederholen, bis der FIFO-Empfangsspeicher 46 leer wäre. So überprüft der Regler
im Allgemeinen nach jeder Segment-Ausleseoperation jedes von dem
FIFO-Empfangsspeicher 46 ausgelesene Datensegment, um zu
sehen, ob der FIFO-Empfangsspeicher 46 als
Ergebnis einer vorhergegangenen Leseoperation geleert worden ist.
Erfindungsgemäß können auch
andere Arten von FIFO-Speichergefügen verwendet werden. Beispielsweise
kann der FIFO-Speicher 46 durch Verwendung eines verbundenen
Listendatengefüges gebildet
werden, so dass Datenzeiger aktualisiert werden können, um
den FIFO-Speicher zu beeinflussen.
-
5B ist
eine Diagrammansicht eines Feldbus-FIFO-Empfangsspeichers 46,
eines zugehörigen
rd_adr-Zeigers 90, eines wrt_adr-Zeigers 92, sowie eines
Feldbus-FIFO-Empfangszählers 94.
Der Zähler
ist ein Vierbit-Aufwärts/Abwärts-Zähler, der
so ausgelegt ist, dass er die Gesamtanzahl der in dem FIFO-Empfangsspeicher 46 gespeicherten
Feldbus-Datensegmente zählt.
Falls jedoch von dem FIFO-Empfangsspeicher 46 mehr als
8 Segment-Speicherstellen bereitgestellt werden, weist der Zähler 94 die
geeignete Bitanzahl auf. Der Zähler 94 zählt bei
jeder Schreiboperation aufwärts
und zählt bei
jeder Leseoperation rückwärts, und
behält
den gleichen Zählwert
bei, wenn sowohl die Schreib- als auch die Leseoperation während der
gleichen Taktperiode stattfinden. Die Zeiger 90 und 92 wirken
wie mit Bezug auf 5A beschrieben.
Die einer Feldbus-Nachricht (Msg1) entsprechenden Feldbus-Datensegmente
werden in den FIFO-Empfangsspeicherstellen 1 bis 3 gespeichert.
Somit speichert der Feldbus-Empfangszähler 94 einen Wert
von 3. Durch Bereitstellung einer Zählung der Gesamtanzahl der in
dem FIFO-Empfangsspeicher 46 vorliegenden
Datensegmente kann ein Regler, wie z. B. der Regler 36,
iterativ eine Anzahl von Feldbus-Datensegmenten
in einem Zuge auslesen, beginnend mit dem Segment, das von dem rd_adr-Zeiger
90 angezeigt wird.
-
5C ist
eine Diagrammansicht des FIFO-Empfangsspeichers 46, des
rd_adr-Zeigers 90, des wrt_adr-Zeigers 92, des
Zählers 94,
des end_ptr-Zeigers 96, und des Nachrichtensegment-Zählers 98.
Die Zeiger 90, 92 und der Zähler 94 arbeiten im
Hinblick auf 5B wie
vorstehend beschrieben. Der End_ptr-Zeiger 96 kann als
Platzhalter betrachtet werden und zeigt auf das erste Datensegment
eines Abschnitts einer zweiten Feldbus-Nachricht. Der Zeiger 96 ist
auf den wrt_adr-Zeiger 92 festgelegt, sobald Rcv_end auftritt
und queue_empty ist falsch (zeigt das Ende der ersten Feldbus-Nachricht
an). Der Nachrichtensegment-Zähler 98 ist
für den
Regler 36 zum Auslesen zu jeder beliebigen Zeit vorgesehen,
und zeigt einen gültigen
Segmentzählwert
für die
in dem FIFO-Empfangsspeicher 46 gespeicherte erste Feld bus-Nachricht
(Msg1) auch dann an, wenn Datensegmente für eine zweite Feldbus-Nachricht
(Msg2) ebenfalls in dem Feldbus-FIFO-Empfangsspeicher 46 gespeichert
sind. Der zusätzliche
Nachrichtensegment-Zähler 98 ermöglicht es
einem Regler wie z. B. dem Regler 36, alle Feldbus-Nachrichtensegmente entsprechend
der Feldbus-Nachricht Msg1 in einem Zuge auszulesen.
-
Die folgenden Datenstrukturen erleichtern die
Speicherung von zumindest Abschnitten der beiden Feldbus-Nachrichten
in dem Feldbus-FIFO-Empfangsspeicher 46. Solche Datenstrukturen
werden im Allgemeinen in der Regler-Registerschnittstelle/Speicheradressbereich 64 (gezeigt
in 4) gespeichert.
-
Queue_empty kann ein Merker sein,
der genau gesetzt wird, wenn der Zähler gleich 0 ist. Bei einem
Merker handelt es sich um eine boolesche Datenstruktur mit nur zwei
Zuständen,
ein oder aus. Diese Zustände
können
auch als wahr oder falsch, und eins oder null bezeichnet werden.
-
Queue_full kann ein Merker sein,
der genau gesetzt wird, wenn der Zähler 94 der Gesamtanzahl der
von dem FIFO-Empfangsspeicher 46 (d. h. 8 in den 5A bis 5C) bereitgestellten Segmentspeicherzellen
entspricht.
-
Bei Rcv_end kann es sich um einen
Impuls handeln, der anzeigt, dass eine Feldbus-Nachricht erhalten
worden ist. Hierbei handelt es sich um ein Unterbrechungsbit für den Regler,
und es wird nach Verifizierung ein End-Trennzeichen gesetzt.
-
Last_Segment_Read ist ein Impuls,
der anzeigt, dass das letzte Segment einer ersten Feldbus-Nachricht
gerade eben von dem Feldbus-FIFO-Empfangsspeicher 46 ausgelesen
worden ist. Der Impuls wird gesetzt, wenn end_ptr_valid wahr ist,
queue_full falsch ist, und der rd_adr-Zeiger 90 end_ptr 96 entspricht.
-
End_ptr_valid ist ein Signal, das
anzeigt, wann Daten von zwei Feldbus-Nachrichten gleichzeitig in
dem FIFO-Empfangsspeicher 46 gespeichert werden. Dieses
Signal wird verwendet, um zu entscheiden, wann die end_ptr_Einstellung
gültig
ist. End_ptr_valid wird genau gesetzt, sobald Rcv_end auftritt und
queue_empty falsch ist. Dieses Signal wird bei Rücksetzung auf falsch gelöscht, oder
falls last_segment_read auftritt, oder falls queue_empty wahr ist,
oder falls Msg_Err aktiv ist.
-
Msg_Err kann ein Fehlerunterbrechungs-Merker
sein, der anzeigt, dass eine zweite Feldbus-Nachricht vollständig empfangen
worden ist, bevor die erste Feldbus-Nachricht vollständig aus dem
Feldbus-FIFO-Empfangsspeicher 46 gelöscht worden ist. Msg_Err wird
gesetzt, wenn End_ptr_valid gesetzt wird und Rcv_end auftritt.
-
Bei Msg_End kann es sich um einen
Unterbrechungs-Merker für
den Regler 36 handeln. Dieser Merker zeigt an, dass das
letzte Bit der ersten Feldbus-Nachricht gelesen worden ist, und
der Beginn der zweiten Feldbus-Nachricht ist bereits in dem Feldbus-FIFO-Empfangsspeicher 46 gespeichert. Msg_End
wird genau gesetzt, wenn Last_segment_read auftritt und queue_empty
falsch ist.
-
6 ist
ein Blockdiagramm, das die für
ein Speicherverfahren von Abschnitten von zumindest zwei Feldbus-Nachrichten
entsprechend einer erfindungsgemäßen Ausführungsform
ausgeführten Schritte
zeigt. Es versteht sich, dass Segmente aus dem FIFO-Empfangsspeicher
bei jedem beliebigen Schritt während
des nachfolgenden Verfahrens ausgelesen werden können.
-
Das Verfahren beginnt bei Block 100,
wenn die Variablen auf vorgewählte
Anfangszustände
initialisiert werden. Die Steuerung geht auf Block 102 über, wenn
die RxA-Leitung einen hohen Pegel erreicht. Bei Block 102 empfängt ein
Feldbus-Kommunikationsregler ein Feldbus-Datensegment. Nach Erhalt
des Feldbus-Datensegments
geht die Steuerung auf Block 104 über, wo das empfangene Segment
in dem FIFO-Empfangsspeicher bei einer Segmentspeicherstelle gespeichert
wird, die durch einen wrt_adr-Zeiger (wie z. B. Zeiger 92)
angezeigt wird; ein Gesamt-FIFO-Empfangszähler (wie z. B. der Zähler 94)
zählt aufwärts, ein
Segmentzähler
(wie z. B. der Zähler 94)
zählt aufwärts, und
ein wrt_adr-Zeiger rückt
vor. Die Steuerung geht dann auf Block 106 über, der
prüft,
ob das empfangene Segment von einem End-Trennzeichen gefolgt wurde,
welches anzeigt, dass das Segment ein letztes Segment einer Feldbus-Nachricht
ist. Falls das empfangene Feldbus-Segment nicht das letzte Segment
ist, dann geht die Steuerung zurück
zu Block 102, der mit dem Empfang eines anderen Segments
beginnt. Falls der Feldbus-Kommunikationsregler während Block 106 erkennt,
dass das empfangene Segment das letzte Segment einer Feldbus-Nachricht
ist, dann geht die Steuerung weiter zu Block 108, welcher
wartet, bis die RxA-Leitung einen hohen Pegel erreicht, bei dem die
Zeitsteuerung dann auf Block 110 übergeht.
-
Bei Block 110 führt ein
Regler, wie z. B. der Feldbus-Kommunikationsregler 34,
eine Überprüfung durch,
um zu sehen, ob der FIFO-Empfangsspeicher leer ist, wie es durch
den Merker (Queue Empty?) angezeigt wird. Falls der FIFO-Empfangsspeicher
leer ist, geht die Steuerung zurück
zu Block 102, welcher mit der Aufsummierung der Feldbus-Nachricht
als erste Nachricht beginnt. Dies erfolgt, da keine anderen Feldbus-Nachrichtenabschnitte
in dem FIFO-Empfangsspeicher vorhanden sind. Falls der Regler 34 erkennt,
dass der FIFO-Empfangsspeicher nicht leer ist, dann geht die Steuerung
weiter zu Block 112, da ein Setzen eines Zeigers, der eine
Grenze zwischen den beiden Feldbus-Nachrichtenabschnitten anzeigt,
erforderlich ist. Bei Block 112 wird ein End_ptr-Zeiger
auf den augenblicklichen Wert des wrt_adr-Zeigers gesetzt. Nach der
Setzung von End_ptr geht die Steuerung auf Block 114 über. Bei
Block 114 wird ein Feldbus-Segment empfangen, nach dessen
Erhalt die Steuerung zu Block 116 weitergeht.
-
Bei Block 116 wird das empfangene
Segment in dem Empfangs-FIFO-Speicher
gespeichert, der wrt_adr-Zeiger rückt vor, und der Gesamt-FIFO-Empfangszähler zählt aufwärts. Die
Steuerung geht dann weiter zu Block 118, der identisch wie
Block 106 funktioniert, um zu überprüfen, ob es sich bei dem empfangenen
Segment um das letzte Segment für
die zweite Feldbus-Nachricht handelt. Falls das empfangene Segment
nicht das leite Segment ist, dann geht die Steuerung zurück zu Block 114,
um ein anderes Segment zu empfangen.
-
Falls der Regler 34 während des
Blocks 118 erkennt, dass das empfangene Segment ein letztes Segment
ist, dann geht die Steuerung weiter zu Block 120. Bei Block 120 führt der
Regler eine Überprüfung durch,
um zu sehen, ob die erste Feldbus-Nachricht aus dem FIFO-Empfangsspeicher
ausgelesen worden ist (und somit entfernt worden ist). Falls die
erste Feldbus-Nachricht aus dem FIFO-Empfangsspeicher ausgelesen
worden ist, kehrt die Steuerung zu Block 108 zurück, um auf
ein weiteres Anfangs-Trennzeichen zu warten. Falls die erste Nachricht
jedoch nicht aus dem FIFO-Empfangsspeicher ausgelesen worden ist,
dann tritt ein Fehler auf, da keine zusätzlichen Ressourcen zur Verfügung stehen,
um noch eine andere Feldbus-Nachrichtengrenze aufzuspüren. Fachleute
in der Technik werden erkennen, dass das vorstehend genannte Verfahren
von einem Computer oder einem anderen Prozessor, der mit einem auf
einem computerlesbaren Medium gespeicherten Computerprogramm programmiert
worden ist, ausgeführt
werden kann.
-
7 ist
ein Zeitdiagramm einer ersten und einer zweiten Feldbus-Nachricht.
Die in 7 gezeigten Zeiten
entsprechen einem Niedriggeschwindigkeits-Feldbus, der eine Datenübertragungsrate von
31,250 Bits/Sekunde bereitstellt. Zum Zwecke der Veranschaulichung
wird davon ausgegangen, dass jedes Feldbus-Segment acht Bits einschließt, so dass
ein gegebenes Segment in 256 Mikrosekunden empfangen werden kann.
Die mit RPS markierten Segmente entsprechen Prüfsummen, die zur Gewährlei stung
der Datensicherheit verwendet werden. Die mit SD markierten Segmente
zeigen Anfangs-Trennzeichen an, während die mit ED bezeichneten
Segmente End-Trennzeichen wiedergeben. Schließlich sind die Anzahl der Segmente
des Zwischennachrichtenabstands und des Dateianfangs-Blocks programmierbar,
obwohl die Dauer der beiden im Allgemeinen je zwei Segmentperioden sind.
Somit muss ein Regler, der in Verbindung mit einem bekannten Feldbus-Kommunikationsregler
arbeitet, auf eine Feldbus-Kommunikationsregler-Unterbrechung innerhalb
der Periode von 5 Datensegmenten oder 1,28 Millisekunden in dem
vorstehend beschriebenen Szenario ansprechen, oder er riskiert, die
Feldbus-Nachricht zu verlieren. Im Gegensatz hierzu muss ein Regler,
der in Verbindung mit einem Feldbus-Kommunikationsregler entsprechend
den erfindungsgemäßen Ausführungsformen
nur auf eine Feldbus-Kommunikationsregler-Unterbrechung innerhalb
einer Mindestperiode von neun Datensegmenten oder 2,30 Millisekunden
ansprechen. Dies liefert eine erhebliche Reduzierung der Prozessor-Gemeinkosten,
insbesondere bei einer hochausgelasteten Feldbusschleife. Die Vorteile
der Erfindung sind von noch größerer Bedeutung,
wenn sich die Feldbus-Übertragungsgeschwindigkeiten
schneller erhöhen
als die Reglergeschwindigkeiten.