-
Die
vorliegende Erfindung betrifft eine Automatisierungseinrichtung,
die mit einer Verbindung vom USB-Typ (Universal Serial Bus) für den Anschluss
einer oder mehrerer entfernter Einrichtungen ausgestattet ist.
-
Immer
mehr Endgeräte
oder Einrichtungen vom Typ PC sind mit Verbindungen vom Typ USB ausgestattet,
welche den Anschluss entfernter Einrichtungen vereinfachen und sehr
viel größere Durchsätze anbieten
als die üblichen
seriellen Verbindungen. Außerdem
ermöglicht
es diese Verbindung, das Durchlassband in Abhängigkeit von den Kommunikationserfordernissen
aufzuteilen. Die durch diese Verbindung erbrachten Erweiterung und Flexibilität dürfen aber
den Echtzeitbetrieb der sie verwendenden Automatisierungseinrichtungen
nicht stören.
-
Eine
Automatisierungseinrichtung bezeichnet nachfolgend einen programmierbaren
Automaten, eine Überwachungs/Steuerstation,
eine digitale Steuerung, oder jede andere Einrichtung, die ein Anwendungsprogramm
enthalten und ausführen
kann mit dem Ziel, eine oder mehrere Überwachungs- und/oder Steuerfunktionen
der ganzen oder eines Teils einer Automatisierungsanwendung durchzuführen, die
zum Beispiel zum Gebiet der industriellen Automatisierungen, der
Gebäude-Automatisierungen
oder der Überwachungen/Steuerungen
der elektrischen Verteilernetze gehören.
-
Die
Verwendung einer solchen Art von Verbindung bei einer Automatisierungseinrichtung
würde die
Verbesserung der Übertragungsgeschwindigkeit
der Daten zwischen dieser Automatisierungseinrichtung und entfernten
Einrichtungen, wie zum Beispiel Peripheriegeräten, Endgeräten, Programmierungs- Diagnose-, Überwachungssystemen,
anderen Automatisierungseinrichtungen und ähnlichen erlauben. Dies würde auch
die Lösung
der Kommunikationsprobleme mit der Welt der Computer von der Art PC
ermöglichen.
Die üblichen
seriellen Verbindungen werden nämlich
softwaregesteuert, und das zeitliche Verhalten wird von anderen
Softwareprogrammen verändert,
deren Ausführung
eine höhere
Priorität
aufweist, wie zum Beispiel die Antivirus-Softwareprogramme, die
Bildschirmschoner, usw. Bei einem USB-Netz wird die Verbindungsschicht,
die dem Niveau 2 des Kommunikationsmodells OSI entspricht, von einem
ihr gewidmeten Hardwarebauteil verwaltet, daher wird ihr Betrieb
unabhängig
von den anderen Softwareaufgaben, die in der Einrichtung durchgeführt werden.
-
Diese
Verwendung würde
vorteilhafterweise auch die Anpassung der Standard-Verbindungsmittel der
Welt der PC-Computer an die Automatisierungseinrichtungen erlauben,
was den Anschluss erleichtern und somit die Kosten der Implementierung
reduzieren würde.
-
Der
bei einer USB-Verbindung verfügbare große Durchsatz
darf aber den Betrieb des Anwendungsprogramms der Automatisierungseinrichtung nicht
stören.
Wenn das schwache Durchlassband der asynchronen seriellen Verbindungen
einen Fluss ohne Einwirkung auf den Echtzeitbetrieb der Automatisierungseinrichtung
induziert, so ist dies bei einer sehr schnellen Verbindung nicht
mehr der Fall. Es wird also unbedingt notwendig, den eingehenden Fluss
an die Echtzeit-Erfordernisse und – Zwänge der überwachten Anwendung anzupassen.
-
Das
Problem tritt hauptsächlich
beim Empfang von Nachrichten auf. Die statische Zuweisung eines
Durchlassbands würde
durch eine Verringerung seines Reaktionsvermögens zu einer beträchtlichen
Verringerung der Leistungen des Systems führen. Um auf augenblickliche
Erfordernisse zum Beispiel der Regelung reagieren zu können, müssten nämlich Kommunikationskanäle reserviert
werden, die die meiste Zeit ungenutzt wären. Auch muss der zulässige Durchsatz
am Endgerätanschluss einer Automatisierungseinrichtung
in Abhängigkeit
von den Anwendungszwängen
kalibriert werden. Die Anzahl von pro Zyklus – Zeiteinheit der Anwendung – am Endgerätanschluss
der Automatisierungseinrichtung zulässigen Nachrichten hängt vom
Modell der Automatisierungseinrichtung ab. Ein Modell hoher Qualität, das voluminöse Anwendungen
verwaltet, muss nämlich
einen wesentlich größeren Durchsatz gewährleisten
können
als ein Modell geringerer Qualität,
insbesondere um den Erfordernissen der Überwachungsprogramme zu entsprechen.
Außerdem können die
Durchsätze
je nach den Automatisierungsanwendungen variieren, da die Anzahl
von pro Sekunde durchgeführten
Zyklen eines Anwendungsprogramms in einer Automatisierungseinrichtung auch
mit der Art der Anwendung zusammenhängt. Zum Beispiel bei einer
Automatisierungsanwendung, die die Überwachung/Steuerung einer
Maschine betrifft, liegt die Zykluszeit im Allgemeinen unter 10
ms, während
diejenige einer Regelanwendung eher in der Größenordnung von 100 ms liegt.
Im letzteren Fall ist die Anzahl der pro Zeiteinheit verarbeiteten Nachrichten
also niedriger.
-
Die
Druckschrift
US 6,219,033 beschreibt
einen Computer, der mittels einer Verbindung vom Typ USB mit einer
Mensch-Maschine-Schnittstelle verbunden werden kann. Die Druckschrift US2002/0133239
beschreibt einen programmierbaren Automaten, der einen Verbinder
vom Typ USB aufweist. Diese beiden Druckschriften liefern aber keine
Einzelheiten über
die in einer Automatisierungseinrichtung eingesetzten Mittel zum
Verwalten der Störungen,
die von den USB-Verbindungen im Betrieb eines Anwendungsprogramms
verursacht werden, das von einer solchen Automatisierungseinrichtung
durchgeführt
wird.
-
Es
ist also ein Ziel der Erfindung, die Verwendung einer USB-Verbindung
bei einer Automatisierungseinrichtung vorzuschlagen, die Mittel
aufweist, um die Störung
des Betriebs des Echtzeit-Anwendungsprogramms zu vermeiden, das
in der Automatisierungseinrichtung durchgeführt wird.
-
Dieses
Ziel wird durch eine Automatisierungseinrichtung erreicht, die ein
Echtzeit-Anwendungsprogramm ausführt,
um eine oder mehrere Überwachungs-
oder Steuerungsfunktionen in einer Automatisierungsanwendung durchzuführen, mit
einem Arbeitsspeicher und einem USB-Verbinder, der über eine USB-Bus-Steuerschaltung
mit einem internen Bus der Automatisierungseinrichtung verbunden ist.
Die Automatisierungseinrichtung weist eine Software-Task auf, die
dazu bestimmt ist, den Fluss der auf dem USB-Verbinder zwischen
der Automatisierungseinrichtung und entfernten Einrichtungen ausgetauschten
Kommunikationen den Eigenschaften des in der Automatisierungseinrichtung
durchgeführten
Anwendungsprogramms unterzuordnen. Die Software-Task nutzt eine
erste variable Speicherzone des Arbeitsspeichers, die als Empfangsstapel
für Eingangsrahmen
und als Empfangsstapel für
Ausgangsnachrichten bezeichnet wird, wobei die Größe der ersten
Speicherzone durch Konstruktion für den Empfangsstapel von Eingangsrahmen
und durch Parametrierung für
den Empfangsstapel von Ausgangsnachrichten definiert wird.
-
Gemäß einer
Besonderheit wird die Software-Task periodisch von einer Zeitbasis
der Automatisierungseinrichtung aktiviert und verarbeitet den Sendebereich,
indem sie einen Rahmenkonstruktormodul auslöst.
-
Gemäß einer
weiteren Besonderheit wird die Software-Task beim Empfang einer Kommunikationsnachricht
durch eine Unterbrechung ausgelöst, die
von der USB-Bus-Steuerschaltung
kommt, und weist einen Konstruktormodul von für das Anwendungsprogramm bestimmten
Nachrichten nach Synchronisation durch die Zeitbasis der Automatisierungseinrichtung
auf.
-
Gemäß einer
weiteren Besonderheit konvertiert der Nachrichtenkonstruktor USB-Rahmen
in Nachrichten, die im Format des Betriebssystems der Automatisierungseinrichtung
ausgedrückt
und für
die Anwendung verständlich
sind, und umgekehrt für
den Rahmenkonstruktor.
-
Die
Software-Task nutzt eine zweite variable Speicherzone des Arbeitsspeichers
der Automatisierungseinrichtung, die als Sendestapel für Ausgangsrahmen
und als Sendestapel für
Eingangsnachrichten bezeichnet wird, wobei die Größe der zweiten
variablen Speicherzone durch Konstruktion für den Sendestapel von Ausgangsrahmen
und durch Parametrierung für
den Sendestapel von Eingangsnachrichten zugeordnet wird.
-
Gemäß einer
weiteren Besonderheit weist die Software-Task einen Parametrierungsmodul auf, der
eine Softwarefunktion der Parametrierung der Speicherzonen enthält, die
als Sendestapel von Eingangsnachrichten und als Empfangsstapel von
Ausgangsnachrichten verwendet werden.
-
Gemäß einer
weiteren Besonderheit weist die Software-Task einen Verwaltungsmodul der zum Anwendungsprogramm
eingehenden Nachrichten und einen Verwaltungsmodul der vom Anwendungsprogramm
kommenden, ausgehenden Nachrichten auf.
-
Gemäß einer
weiteren Besonderheit begrenzt der Verwaltungsmodul der eingehenden Nachrichten
die Anzahl von zu Beginn eines Zyklus des Anwendungsprogramms gelesenen
Nachrichten auf einen bestimmten Wert (zum Beispiel vier Nachrichten
pro Zyklus für
ein Modell einer Automatisierungseinrichtung mittlerer Qualität).
-
Gemäß einer
weiteren Besonderheit weist die Automatisierungseinrichtung einen
Treiber auf, der zu Beginn des Zyklus des Anwendungsprogramms das
Lesen der eingehenden Nachrichten auslöst und am Ende des Zyklus des
Anwendungsprogramms und vor dem Beginn des folgenden Zyklus das
Schreiben der ausgehenden Nachrichten auslöst.
-
Weitere
Besonderheiten und Vorteile der Erfindung gehen klarer aus der nachfolgenden
Beschreibung in Verbindung mit einer darstellenden, aber nicht einschränkenden
Ausführungsform
der Erfindung hervor, die in den beiliegenden Zeichnungen dargestellt
ist. Es zeigen:
-
1 das
Schaltbild einer Kommunikationsarchitektur einer gemäß der Erfindung
definierten Automatisierungseinrichtung,
-
2 schematisch
ein Beispiel einer Architektur einer solchen Automatisierungseinrichtung.
-
Die
Erfindung wird in Verbindung mit den 1 und 2 beschrieben.
Die Erfindung betrifft eine Automatisierungseinrichtung, die mit
einem nicht in 1 dargestellten Verbinder (81, 2) vom
Typ USB ausgestattet ist, der mit einer oder mehreren entfernten
externen Einrichtungen über eine
Verbindung (95, 1) kommuniziert. Dieser Verbinder
(81) vom Typ USB ist mit einer USB-Bus-Steuerschaltung
(8) verbunden. Diese USB-Bus-Steuerschaltung (8)
kommuniziert mit dem internen Bus (9) der Automatisierungseinrichtung, am
Eingang über
die Verbindung (91), am Ausgang über die Verbindung (92)
der internen Busleitung (9) der Automatisierungseinrichtung.
Der klassische Aufbau einer Automatisierungseinrichtung ist in 2 dargestellt
und besteht allgemein aus einer Zentraleinheit (63), die
aus einem oder mehreren Prozessoren besteht, einem Festspeicher
(65) vom nicht veränderbaren
Typ ROM oder vom veränderbaren
Typ FLASH-PROM, der nachfolgend als Festspeicher bezeichnet wird.
Dieser Festspeicher (65) enthält das Konstruktorprogramm,
das Betriebssystem (operating system, OS) genannt wird. Dieses Konstruktorprogramm
wird allgemein in einer für
den Konstruktor spezifischen Sprache ausgedrückt. Die Automatisierungseinrichtung
weist auch einen Arbeitsspeicher (64) auf, der wie der
Festspeicher (65) über
die interne Busleitung (9) mit der Zentraleinheit (63)
kommuniziert. Ein Eingangs-Ausgangs-Verwaltungsprogramm (66) der
Automatisierungseinrichtung ist ebenfalls mit dem internen Bus (9)
verbunden und kommuniziert mit der Zentraleinheit (63).
Der Arbeitsspeicher (64) enthält in einer ersten Zone das
vom Benutzer entwickelte Echtzeitprogramm der Anwendung (70),
das nachfolgend Anwendungsprogramm genannt wird, in einer zweiten
Zone die Daten, insbesondere die Bilder der Zustände der Koppler und die Konstanten
bezüglich
des vom Benutzer entwickelten Anwendungsprogramms.
-
Es
wird daran erinnert, dass das Anwendungsprogramm von der Zentraleinheit
(63) ausgeführt
wird und die Aufgabe hat, die Überwachung und/oder
die Steuerung einer Automatisierungsanwendung mit Hilfe von Eingängen-Ausgängen durchzuführen, die
vom Verwaltungsprogramm der Eingänge-Ausgänge (66)
und vom Anwendungsprogramm gesteuert werden. Das vom Konzeptor/Benutzer
ausgearbeitete Anwendungsprogramm wird üblicherweise in einer oder
mehreren graphischen Automatisierungssprachen geschrieben, die insbesondere
Kontaktdiagramme (Ladder Diagram), sequentielle Funktionsdiagramme
(Sequential Function Chart), die auch Grafcet genannt werden, Funktionsblöcke (Function
Block Description) und/oder Befehlslisten IL (Instruction List)
integrieren.
-
Zusätzlich zu
den Eigeninformationen der Automatisierungsanwendung, die aus dem
Anwendungsprogramm, den im Arbeitsspeicher (64) gespeicherten
Daten und Eingängen-Ausgängen bestehen,
beschreibt die Erfindung die Möglichkeit,
variable Speicherzonen (693, 694) des Arbeitsspeichers
(64) zuzuordnen. Eine erste variable Speicherzone (693)
ermöglicht
es, einen FIFO-Stapel
(642) zum Empfang von Ausgangsnachrichten und einen FIFO-Stapel
(643) zum Empfang von Eingangsrahmen zu erstellen, und
eine zweite variable Speicherzone (694) ermöglicht es,
einen FIFO-Stapel (641) zum Senden von Eingangsnachrichten
und einen FIFO-Stapel (644) zum Senden von Ausgangsrahmen
zu erstellen. Die Größe der ersten
Speicherzone (693) wird durch Konstruktion für den Stapel
(643) zum Empfang von Eingangsrahmen und durch Parametrierung
für den
Stapel (642) zum Empfang von Ausgangsnachrichten definiert.
Die Größe der zweiten
Speicherzone (694) wird durch Konstruktion für den Stapel
(644) zum Senden von Ausgangsrahmen und durch Parametrierung
für den
Stapel (641) zum Senden von Eingangsnachrichten definiert.
Die Größen der
Rahmensende- und -empfangsstapel (643, 644) werden
also vom Konstruktor der Automatisierungseinrichtung festgelegt,
zum Beispiel in Abhängigkeit
vom Modell der Automatisierungseinrichtung. Eine Parametrierung
durch den Benutzer ermöglicht es
dagegen, die Größen der
Nachrichtensende- und -empfangsstapel (641, 642)
zu definieren, zum Beispiel in Abhängigkeit vom Typ einer überwachten
Automatisierungsanwendung.
-
Zusätzlich zu
den klassischen Komponenten eines Betriebssystems einer Standard-Automatisierungseinrichtung
weist der ROM-Speicher oder der PROM-Speicher eine gewisse Anzahl
von Softwaremodulen auf, deren Funktionen nachfolgend erläutert werden.
-
Ein
erster Modul (60) hat die Aufgabe eines Abtast-Treibers oder -Verwaltungsprogramms
(englisch "scan
manager").
-
Ein
zweiter Modul (62) zur Verwaltung der Unterbrechungen (englisch: "interrupt manager") verwaltet die von
der USB-Bus-Steuerschaltung (8) kommenden Unterbrechungen.
-
Ein
dritter Modul (61) verwaltet die Zeitbasis des Systems
(englisch "system
time base") und
löst die
Aktivierung eines Softwaremoduls (1) zur Verarbeitung der
USB-Nachrichtenübermittlung
aus, der hauptsächlich
einen Nachrichtenkonstruktormodul (11) (englisch "message builder") für die eingehenden
Kommunikationen und einen Rahmenkonstruktormodul (12) (englisch: "frame builder") für die ausgehenden
Kommunikationen aufweist. Diese Module (11, 12)
werden im Festspeicher (65) gespeichert und sind Teil des
Betriebssystems (OS). Der Nachrichtenkonstruktormodul (11)
und der Rahmenkonstruktormodul (12) passen je die eingehenden
Rahmen an das Format von für
das Anwendungsprogramm bestimmten Nachrichten und umgekehrt die
vom Anwendungsprogramm kommenden Nachrichten an, die dazu bestimmt
sind, am Ausgang in Rahmen umgewandelt und dann zum USB-Bus gesendet
zu werden.
-
Der
Treiber (60), der mit dem Anwendungsprogramm (70)
dialogisiert, erzeugt am Ende jedes Zyklus des Anwendungsprogramms
ein Signal (51) des Endes des Abtastvorgangs (englisch: "end scan"). Dieses Signal
(51) ermöglicht
es, einen Verwaltungsprogrammmodul (32) von ausgehenden Nachrichten
(englisch: "outgoing
messages manager")
auszulösen,
der die Informationen empfängt, die
den Stapel (642) zum Empfang von zu sendenden Ausgangsnachrichten
füllen
sollen. Um die Kohärenz
der Nachrichten zu garantieren, sendet außerdem der Treiber (60)
zu Beginn jedes Zyklus des Anwendungsprogramms ein Signal (41)
des Abtastbeginns (englisch: "begin
scan"), das einen
Verwaltungsprogrammmodul (31) für eingehende Nachrichten (englisch: "incoming messages
manager") auslöst, um die Übertragung
der vom Stapel (641) zum Senden von Eingangsnachrichten
kommenden Nachrichten zum Anwendungsprogramm (70) zu ermöglichen.
Die Verwaltungsprogrammmodule für eingehende
Nachrichten (31) und ausgehende Nachrichten (32)
sind Teil des Betriebssystems (05), das im Festspeicher
(65) der Automatisierungseinrichtung gespeichert ist.
-
Wie
in 1 gezeigt, dient so der Stapel (643)
zum Empfang von Eingangsrahmen als Pufferspeicher zwischen der USB-Bus-Steuerschaltung
(8) und dem Nachrichtenkonstruktor (11), und der
Stapel (641) zum Senden von Eingangsnachrichten dient als
Pufferspeicher zwischen dem Nachrichtenkonstruktor (11)
und dem Verwaltungsprogramm (31) der eingehenden Nachrichten.
Auch dient der Stapel (642) zum Empfang von Ausgangsnachrichten
als Pufferspeicher zwischen dem Verwaltungsprogramm (32)
der ausgehenden Nachrichten und dem Rahmenkonstruktor (12),
und der Stapel (644) zum Senden von Ausgangsrahmen dient
als Pufferspeicher zwischen dem Rahmenkonstruktor (12)
und der USB-Bus-Steuerschaltung
(8).
-
Ein
vierter Parametrierungsmodul (67) weist eine Softwarefunktion
des Parametrierens auf, die es einem Benutzer ermöglicht,
einen vorbestimmten Grenzwert der Anzahl von Nachrichten zu konfigurieren,
die am Anfang eines Zyklus des Anwendungsprogramms (70)
vom Speicher der Automatisierungseinrichtung empfangen werden können. Dieser Grenzwert
bestimmt insbesondere die Größe der dem
Stapel (641) zum Senden von Eingangsnachrichten zugeteilten
Speicherzone. Der Parametrierungsmodul (67) liefert diese
Information an den Verwaltungsprogrammmodul (31) der eingehenden Nachrichten,
um es ihm zu ermöglichen,
die Anzahl von am Anfang des Zyklus zu empfangenden Nachrichten
zu begrenzen. Auch ist der Parametrierungsmodul (67) ebenfalls
in der Lage, es einem Benutzer zu erlauben, einen vorbestimmten
Grenzwert der Anzahl von Nachrichten zu konfigurieren, die am Ende des
Zyklus des Anwendungsprogramms (70) gesendet werden können. Dieser
Grenzwert bestimmt insbesondere die Größe der dem Stapel (642)
zum Empfang von Ausgangsnachrichten zugeteilten Speicherzone.
-
Der
Modul zur Verarbeitung der USB-Nachrichtenübermittlung
(1) wird periodisch, zum Beispiel alle Millisekunden, ausgelöst. Dieser
Modul gewährleistet
zwei Hauptfunktionen: Fragmentierung/Defragmentierung der USB-Rahmen
und Regelung des Durchsatzes. Die Defragmentierung besteht darin, USB-Rahmen mit 64 Bytes
in Nachrichten umzuwandeln, die für das Anwendungsprogramm verständlich sind,
und umgekehrt. Die Fragmentierung besteht darin, für das Anwendungsprogramm
verständliche Nachrichten
in USB-Rahmen mit
64 Bytes umzuwandeln.
-
Eine
Nachricht weist allgemein mehrere Rahmen auf. Wenn die Task der
Verarbeitung der USB-Nachrichtenübermittlung
aktiviert ist, beginnt sie damit, den Sendebereich zu verarbeiten,
um interne Speicherressourcen freizugeben. Der von der Automatisierungseinrichtung
erzeugte Fluss ist nämlich
im Allgemeinen wesentlich geringer als die Empfangskapazitäten der
entfernten Einrichtungen, die über
Kommunikationsmittel vom Typ USB verfügen. Die Empfangsphase beginnt
mit einem Test des verfügbaren
Platzes im Stapel (641) zum Senden von Eingangsnachrichten.
Wenn es keinen Platz gibt, um mindestens eine Nachricht im Stapel
(641) zu speichern, beendet der Nachrichtenkonstruktor
(11) seine Verarbeitung, ohne den Stapel (643)
zum Empfang von Eingangsrahmen zu entstapeln. Wenn es Platz gibt,
um mindestens eine Nachricht im Stapel (641) zu speichern,
entstapelt der Nachrichtenkonstruktor (11) den Stapel (643)
und wandelt die USB-Rahmen in eine Eingangsnachricht um, die im Stapel
(641) gespeichert wird.
-
Die
Flussüberwachung
ist also dem Treiber-Softwaremodul (60) untergeordnet,
der der internen Zeitbasis (61) der Automatisierungseinrichtung untergeordnet
ist, und wird durch ein Signal des Unterbrechungs-Verwaltungs programms
(62) ausgelöst.
Die Nachrichten werden vom Nachrichtenkonstruktor (11)
konstruiert und nur dann defragmentiert, wenn Arbeitsspeicher-Ressourcen
(64) zur Verfügung
stehen, und die Verwaltung der Zonen von FIFO-Stapeln (641 bis 644)
des Arbeitsspeichers (64) ist dem Anwendungsprogramm (70)
untergeordnet.
-
Die
USB-Bus-Steuerschaltung (8) arbeitet autonom über Unterbrechungen,
die entweder durch die Ankunft eines Rahmens oder durch das Ende
des Sendens des vorhergehenden Rahmens ausgelöst werden. Der für eine Kommunikation
vom Typ USB übliche
Mechanismus der negativen Bestätigung wird
automatisch aktiviert, wenn alle Ressourcen in Empfangsrichtung
besetzt sind. Diese negative Bestätigung wird von der USB-Bus-Steuerschaltung (8) gesendet,
wenn eine durch die Ankunft eines Rahmens ausgelöste Unterbrechung nicht vom
Modul (1) der Verarbeitung der USB-Nachrichtenübermittlung (wenn der FIFO-Stapel
(643) zum Empfang von Eingangsrahmen voll ist) und dem
Treiber (60) verarbeitet werden konnte. Es ist dann die
Aufgabe des nicht dargestellten Senders, ein Verhalten anzunehmen, das
mit den für
die Verbindung (95) zulässigen Durchsätzen kohärent ist,
zum Beispiel durch kurzfristige Verringerung der Anforderungen.