-
Erfindungsgebiet
-
Die vorliegende Erfindung betrifft ein Symboltabellen-Erzeugungsverfahren bezüglich eines Programms, das in einer programmierbaren Logiksteuerung in einer industriellen Automatisierungsumgebung ausgeführt wird, ein Kommunikationsverfahren mit einer peripheren Ausrüstung durch eine programmierbare Logiksteuerung, und eine programmierbare Logiksteuerung.
-
HINTERGRUND
-
In modernen Manufaktureinrichtungen werden automatisierte Prozesse oft durch eine Low-Level-Automatisierung und eine Prozesssteuerung und eine Überwachung von Systemen gesteuert. Low-Level-Automatisierungssysteme können dedizierte Robotervorrichtungen oder andere automatisierte Systeme enthalten, die durch programmierbare Logiksteuerungen (PLC: Programmable Logic Controller) gesteuert oder überwacht werden. Verschiedene Erfassungsvorrichtungen und Instrumente können verwendet werden, um derartige Prozesse zu überwachen, wie z. B. Systeme maschinellen Sehens, Barcode-Leser, Temperatursensoren usw.
-
1 stellt eine herkömmliche industrielle Automatisierungsumgebung oder Produktionssystem 100 dar. Periphere Ausrüstungen 101 sind mit einer PLC 102 über ein Netzwerk 103 verbunden. Die PLC 102 führt ein Stufenprogramm aus, um verschiedene Vorrichtungen zu steuern. Ein Administrator kann auf einen Zustand der Ausführung oder ein Resultat der verschiedenen Vorrichtungen zugreifen, indem über die peripheren Ausrüstungen 101 die PLC 102 abgefragt wird. Beispiele einer derartigen peripheren Ausrüstung sind z. B. SCADA (engl. Supervisory Control and Data Acquisition) Systeme, Mensch-Maschinen-Schnittstellen (HMI: Human Machine Interface) Systeme, eine Nutzer-Anwendung, die an einem Computer läuft, usw. Die PLC ist mit einem Strommodul und einem Netzwerk-Modul gekoppelt, wodurch die PLC-Information an die periphere Ausrüstung kommuniziert wird.
-
Eine „Vorrichtung”, wie hier verwendet, enthält physikalische Vorrichtungen, die mit der PLC verknüpft sind und durch diese gesteuert werden. Sensoren, Schalter, Relais, usw. sind einige Beispiele der Vorrichtungen, auf die in dieser Offenbarung verwiesen wird. Eine „Vorrichtung” gemäß der vorliegenden Offenbarung, ist jedoch nicht auf eine physikalische Vorrichtung begrenzt. Eine Vorrichtung kann ebenfalls auf interne Elemente verweisen, wie z. B. Register, interne Relais, usw., denen eine Speicheradresse in dem PLC zugewiesen ist. Eine Vorrichtung kann ebenfalls auf Software-Elemente verweisen, die über einen gemeinsamen zugänglichen Speicher mit der PLC kommunizieren können.
-
Wenn die peripheren Ausrüstungen die PLC abfragen, gibt die Abfrage eine Vorrichtung in der Steuerung an, die die periphere Ausrüstung überwachen möchte. Eine Abfrage kann z. B. wie „Ist die Vorrichtung X an/aus” ausgebildet sein.
-
Zusammenfassung
-
Technisches Problem
-
Es kann sein, dass derartige Abfragen durch eine Steuerung nicht verstanden werden, wenn die Steuerung High-Level-Sprachprogramme ausführt, welche Vorrichtungen nicht erkennt. Eine Steuerung, die High-Level-Sprachprogramme ausführt, z. B. ein Programm, das in C geschrieben ist, erkennt Variablennamen und physikalische Adressen der Variablennamen in dem Speicher der Steuerung anstelle von Vorrichtungsnamen. Wenn eine derartige Steuerung, die High-Level-Sprachprogramme ausführt, in einem existierenden Produktionssystem installiert wird, sind existierende periphere Ausrüstungen nicht in der Lage, mit der Steuerung zu kommunizieren.
-
Kunden, die jedoch neue Steuerungen verwenden möchten, die High-Level-Sprachprogramme ausführen können, da High-Level-Sprachprogramme leichter zu verwenden und aufrechterhalten sind, und Programmierer bevorzugen, High-Level-Sprachprogramme über Stufenprogramme zu verwenden. Eine potenzielle jedoch unzureichende Lösung für das Problem würde in der Verwendung einer teuren Middleware zwischen der Steuerung und der peripheren Ausrüstung bestehen.
-
Folglich besteht ein Bedarf an einem System, das das oben stehende Problem der Kommunikation zwischen älteren peripheren Ausrüstungen und neueren Steuerungen lösen kann.
-
Beispielhafte Ausführungsformen der vorliegenden Erfindung adressieren zumindest die oben stehenden Probleme und/oder Nachteile und andere Nachteile, die nicht oben erläutert wurden. Es ist nicht erforderlich, dass die vorliegende Erfindung die oben erläuterten Nachteile löst, und eine beispielhafte Ausführungsform der vorliegenden Erfindung kann keine der oben aufgelisteten Probleme lösen.
-
Lösung des Problems
-
Es wird ein beispielhaftes Verfahren zum Erzeugen einer Symboltabelle für eine programmierbare logische Steuerung bereitgestellt, die High-Level-Sprachprogramme ausführt. Das Verfahren enthält einen Schritt Lesen des High-Level-Sprachprogramms und einer Assoziationstabelle, die Beziehungen zwischen Vorrichtungen, gesteuert durch die programmierbare logische Steuerung, und Variablennamen in dem High-Level-Sprachprogramm spezifiziert; einen Schritt zum Kompilieren und Verknüpfen des High-Level-Sprachprogramms der Assoziationstabelle zum Bestimmen einer physikalischen Adresse für jeden der Variablennamen und der entsprechenden Vorrichtungen; einen Schritt zum Erzeugen der Symboltabelle, die die physikalische Adresse für jede der Vorrichtungen definiert, durch das Kompilieren und Verknüpfen; und einen Schritt zum Speichern der Symboltabelle in dem Speicher der programmierbaren logischen Steuerung.
-
Eine beispielhafte programmierbare logische Steuerung, die das High-Level-Sprachprogramm ausführt, und die Symboltabelle speichert, ist ebenfalls bereitgestellt.
-
Ein beispielhaftes Verfahren zum Kommunizieren zwischen einer peripheren Ausrüstung und einer programmierbaren logischen Steuerung, die das High-Level-Sprachprogramm ausführt, ist darüber hinaus ebenfalls bereitgestellt. Das Verfahren enthält einen Schritt zum Empfangen einer Anforderung zum Lesen oder Schreiben für eine Vorrichtung, die durch die programmierbare logische Steuerung gesteuert wird, wobei die Anforderung von der peripheren Ausrüstung empfangen wird, einen Schritt zum Lesen einer Symboltabelle zum Bestimmen einer physikalischen Adresse an einen Speicher der programmierbaren logischen Steuerung für die Vorrichtung, und einen Schritt zum Lesen von der bestimmten physikalischen Adresse oder zum Schreiben in die bestimmte physikalische Adresse.
-
Vorteilhafte Effekte der Erfindung
-
Ein Symboltabellen-Erzeugungsverfahren, ein Kommunikationsverfahren mit einer peripheren Ausrüstung, und eine programmierbare logische Steuerung gemäß der vorliegenden Erfindung führen zu einem Effekt, wonach eine programmierbare logische Steuerung, die High-Level-Sprachprogramme ausführen kann, leicht mit existierenden peripheren Ausrüstungen kommunizieren kann.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Diagramm zur Darstellung einer herkömmlichen industriellen Automatisierungsumgebung oder einem Produktionssystem.
-
2 ist ein Diagramm zur Darstellung der Kompilierung dreier unterschiedlicher Programme und deren Organisation in einem physikalischen Speicher nach der Kompilierung und Verknüpfung gemäß einem herkömmlichen Verfahren.
-
3 ist ein Diagramm zur Darstellung eines Kompilierens von drei unterschiedlichen Programmen und deren Organisation in einem physikalischen Speicher nach der Kompilierung und Verknüpfung gemäß einer beispielhaften Ausführungsform.
-
4 ist ein Diagramm zur Darstellung einer Symboltabelle und einer Speicherorganisation der Steuerung gemäß einer beispielhaften Ausführungsform.
-
5 ist ein Diagramm zur Darstellung eines beispielhaften Verfahrens zum Erzeugen einer Symboltabelle.
-
6 ist ein Diagramm zur Darstellung eines beispielhaften Verfahrens zur Behandlung einer Datenlese- oder Schreibanforderung an die Steuerung von den peripheren Ausrüstungen.
-
7 ist ein Diagramm zur Darstellung eines beispielhaften Verfahrens zur Handhabung einer Datenlese- oder Schreibanforderung an die Steuerung von den peripheren Ausrüstungen.
-
8 ist ein Diagramm zur Darstellung einer beispielhaften Konfiguration für die Steuerung.
-
BESCHREIBUNG DER AUSFÜHRUNGSFORM
-
Eine Ausführungsform eines Symboltabellen-Erzeugungsverfahrens, eines Kommunikationsverfahrens mit einer peripheren Ausrüstung, und eine programmierbare Logiksteuerung gemäß der vorliegenden Erfindung wird im Folgenden in Bezug auf die Zeichnungen detailliert erläutert. Diese Erfindung ist nicht auf diese Ausführungsform beschränkt.
-
Ausführungsform
-
In der folgenden Beschreibung werden gleiche Bezugszeichen in den Zeichnungen für gleiche Elemente verwendet, selbst in unterschiedlichen Zeichnungen. Die in der Beschreibung definierten Gegenstände, wie z. B. eine detaillierte Konstruktion bzw. Ausbildung und Elemente, werden zur Unterstützung eines vollständigen Verständnisses der Erfindung bereitgestellt. Die vorliegende Erfindung kann jedoch ohne diese speziell definierten Gegenstände ausgeführt werden. Wohl bekannte Funktionen und Ausbildungen werden darüber hinaus nicht detailliert beschrieben, da diese die Erfindung mit einem unnötigen Detail belegen würde.
-
Eine beispielhafte Ausführungsform der vorliegenden Offenbarung löst das in dem Hintergrund-Abschnitt erwähnte Problem, in dem eine Assoziationstabelle bereitgestellt wird, die jede der Vorrichtungen mit deren entsprechenden Variablennamen abgebildet. Bevor jedoch eine Beschreibung der beispielhaften Ausführungsform angegeben wird, ist ein Verständnis eines Kompilationsprozesses eines High-Level-Anwendungsprogramms erforderlich.
-
Ein Kompilator kompiliert ein High-Level-Sprachprogramm (auch als ein „High-Level-Programm” bezeichnet) in ein Objektmodul. Das heißt, dass der Kompilator einen High-Level-Programmquellencode in einen Assembler-Code wandelt, der durch die zugrunde liegende Hardware (z. B. ein Pipelined-Prozessor) verstanden wird. Ein Linker allokiert physikalische Adressen für jede der Objektdateien und Variablen, die in dem High-Level-Programm deklariert sind. Der Linker bzw. Verbinder erzeugt ferner eine Symboltabelle, die jede der Variablen zu deren jeweiligen physikalischen Adressen in dem Speicher der Steuerung (ein PLC wird hier als eine Steuerung bezeichnet) abbildet. 2 stellt ein Kompilieren von drei unterschiedlichen Programmen und deren Organisation in einem physikalischen Speicher nach der Kompilierung und dem Verlinken dar. Wie aus 2 ersichtlich, erzeugt der Linker eine Symboltabelle 201 zum Abbilden jeder der Variablen zu deren jeweiligen physikalischen Adresse in dem Steuerspeicher.
-
Gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung wird eine Assoziationstabelle 301 während der Kompilierung bereitgestellt. Die Assoziationstabelle 301 wird durch den Entwickler oder Ingenieur bereitgestellt, der das High-Level-Programm entwickelt. Das Kompilieren- und Verknüpfungsverfahren ist in 3 erläutert, und ein Unterschied zwischen der herkömmlichen Technik und der beispielhaften Ausführungsform ist das Vorhandensein der Assoziationstabelle 301 während der Kompilierung. Eine Symboltabelle 2 wird als Ergebnis des Kompilierungs- und Verknüpfungsverfahrens erzeugt. Wie aus 3 ersichtlich erhält diese Symboltabelle 302 eine Entsprechung zwischen Vorrichtungsnamen, Variablen (deklariert in dem High-Level-Programm), und physikalischen Adressen im Speicher.
-
Die Symboltabelle 302 enthält Spalten 311, 312, 313, 314, 315 und 316. Die Spalte 311 bestimmt den Vorrichtungsnahmen (Vorrichtungsspeichername), die Spalte 312 bestimmt die Vorrichtungsnummer (Vorrichtungs#), die Spalte 313 bestimmt den Datentyp oder die Dateneinheit, die Spalte 314 bestimmt Informationsmenge für den Datentyp gemäß Spalte 313, und die Spalte 315 bestimmt die mit den Vorrichtungen assoziierten Variablennamen. Wie aus der Symboltabelle 302 ersichtlich, wird die Vorrichtung D200 (bestimmt eine Temperatur, gemessen durch einen Temperatursensor der Steuerung) in dem High-Level-Programm durch eine Variable „Temperature_in_system” bezeichnet. Der Variable „Temperature_in_system” wurde ferner eine bestimmte physikalische Adresse (#Adresse 3) in dem Steuerspeicher zugewiesen, wie in Spalte 316 ersichtlich, in der physikalischen Adressen in der neuen Steuerung geschrieben werden.
-
4 stellt eine Speicherorganisation der Steuerung nach der Kompilierung und Verknüpfung dar. Wie aus 4 ersichtlich, ist die Symboltabelle 302 in dem Speicher der Steuerung gespeichert.
-
5 stellt ein Verfahren zum Erzeugen einer Symboltabelle dar, die eine Entsprechung zwischen Vorrichtungsnamen, Variablennamen und physikalischen Adressen speichert. Im Schritt S501 werden ein High-Level-Programm(e) und eine Assoziationstabelle (wie z. B. 301) durch den Kompilator gelesen. Der Kompilator erzeugt Assemblersprachendateien für jedes der High-Level-Programm(e) und die Assoziationstabelle. Im Schritt S502 heißt der Linker physikalische Adressen jeder der Variablen zu, die in dem (den) High-Level-Programm(en) deklariert sind, und erzeugt die Symboltabelle 302 durch ein Auslesen der Assoziationstabelle und des kompilierten High-Level-Programms. Im Schritt 503 speichert der Kompilator die erzeugte Symboltabelle 302 in dem Speicher der Steuerung.
-
Es ist möglich, ein High-Level-Sprachverarbeitungswerkzeug (ein Programmierwerkzeug 400) außerhalb der Steuerung 102 bereitzustellen, die High-Level-Sprachprogramme kompiliert und verknüpft und die Objektdateien und Symboldateien erzeugt. Das heißt, dass das Programmierwerkzeug 400 die in 5 dargestellten Prozesse ausführt. Das Programmierwerkzeug 400 kann als Eingabe die Assoziationstabelle 301 und die High-Level-Programme empfangen, und die Symboltabelle 302 ausgeben, die dann an die Steuerung heruntergeladen wird. Das Programmierwerkzeug kompiliert und verknüpft Source-Programme, kompiliert und verknüpft bzw. verbindet die Assoziationstabelle für Vorrichtungen und Variablennamen, und erzeugt die Symboltabelle. Das heißt, dass das Programmierwerkzeug 400 eine Ausführungsdatei mit der Symboltabelle 302 präpariert, und die ausführbare Datei an die PLC herunterlädt.
-
Eine detaillierte Beschreibung des Verknüpfungsprozesses, der durch das Programmierwerkzeug 400 durchgeführt wird, wird nun mit Bezug auf 3 bereitgestellt. Das Programmierwerkzeug 400 enthält einen High-Level-Sprachprogrammkompilator 401, der ein High-Level-Sprachsourceprogramm 21 kompiliert, das in das Programmierwerkzeug 400 eingegeben wird. Das High-Level-Sprachsourceprogramm 21 ist ein Programm, das in einer High-Level-Programmiersprache geschrieben ist. Der High-Level-Sprachprogrammkompilierer 201 gibt ein Objektmodul 24 aus (Objektdatei 24). Die Objektdatei 24 entspricht dem High-Level-Sprachsourceprogramm 21. Die Objektdatei 24 enthält Maschinenanweisungscodes, die von Quellcodes des High-Level-Sprachsourceprogramm 21 und einer symbolischen Information kompiliert werden, die Variablen wiedergibt, die in dem High-Level-Sprachsourceprogramm 21 verwendet werden.
-
Das Programmierwerkzeug 400 enthält ferner eine Bibliothek 402, die die Objektdatei 24 und andere Objektdateien integriert, um eine Nutzerbibliothek 26 zu erzeugen. Ein Linker 403, der in dem Programmierwerkzeug 400 enthalten ist, verlinkt bzw. verknüpft die Objektdatei 24, die Nutzerbibliothek 26 und eine High-Level-Sprachprogramm-Standardbibliothek 27 und erzeugt ein Lastmodul 29 und die Symboltabelle 302. Die High-Level-Sprachprogramm-Standardbibliothek 27 enthält Maschinenanweisungscodes für oft verwendete Unterroutinen. Die High-Level-Sprachprogramm-Standardbibliothek 27 wird durch den Provider des High-Level-Sprachprogrammkompilators 401 bereitgestellt. Ein Nutzer kann jedoch ebenfalls seine eigenen Standardbibliotheken präparieren. Die Symboltabelle 302 enthält Arrays oder Listen von Definitionen von Beziehungen unter Vorrichtungen, Variablen und physikalischen Adressen.
-
Im Folgenden wird ein Verfahren beschrieben, wie eine Daten-Leseanforderung an die Steuerung 102 von den peripheren Ausrüstungen 101 verhandelt wird. Im Schritt 601 empfängt eine Steuerung eine Anforderung für eine Information an einer Vorrichtung, die in der Steuerung enthalten ist, oder durch die Steuerung gesteuert wird. Die Anforderung kann einer Anforderung zum Lesen bzw. Auslesen des Status einer bestimmten Vorrichtung sein. Im Schritt S602 liest die Steuerung die Symboltabelle 302 vom Speicher. Im Schritt S603 bestimmt die Steuerung physikalische Adressen für die Vorrichtung von der Symboltabelle 302. Im Schritt S604 liest die Steuerung die Daten, die an den physikalischen Adressen im Speicher gespeichert sind, und sendet die ausgelesene Information im Schritt S605 an die anfordernde periphere Ausrüstung.
-
Ein separates Programm kann in der Steuerung gespeichert werden, die die Symboltabelle ausliest und dann die physikalischen Adressen von dem Speicher der Steuerung ausliest.
-
Im Folgenden wird ein Verfahren zum Behandeln einer Datenschreibanforderung an die Steuerung 102 von den peripheren Ausrüstungen 101 beschrieben. Im Schritt S701 empfängt eine Steuerung eine Anforderung zum Schreiben von Daten an eine Vorrichtung, die in der Steuerung enthalten ist oder durch die Steuerung gesteuert wird. Im Schritt S702 liest die Steuerung die Symboltabelle 302 vom Speicher. Im Schritt S703 bestimmt die Steuerung physikalische Adressen für die Vorrichtung von Symboltabelle 302. Im Schritt S704 schreibt die Steuerung die Daten an den ausgelesenen physikalischen Ort im Speicher.
-
8 stellt eine beispielhafte Konfiguration einer Steuerung 800 (Steuerung 102) dar, die den Prozess gemäß 6 und 7 ausführt. Die Steuerung 800 enthält eine Anforderungsempfangseinheit 801, die eine Anforderung von einer peripheren Ausrüstung empfängt und den Inhalt der Anforderung bestimmt. Eine Symboltabellen-Leseeinheit 802 liest die Symboltabelle 302, die in dem Speicher der Steuerung gespeichert ist. Eine physikalische Adressenlese-/Schreibeinheit 803 liest/schreibt Daten in eine Speicherposition der Steuerung auf Grundlage der Symboltabelle 302 und der empfangenen Anforderungen.
-
Der Speicher der Steuerung kann aus einer nicht beschränkenden Liste von Speichermedien ausgebildet sein, dass das Folgende enthält: eine elektrische Verbindung, die einen oder mehrere Drähte aufweist, eine tragbare Computerdiskette, wie z. B. eine Floppy-Disk, Magnetband oder jedes andere magnetische Medium, eine Festplatte, ein RAM (eng. Random Access Memory), ein ROM (engl. Read-only Memory), ein EPPEROM (engl. Erasable Programmable Read-only Memory oder Flash-Memory), eine Speicherkarte, jeder andere Speicherchip oder Speichermodul, eine optische Faser, eine tragbare CD-Rom (engl. Compact Disc Read-only Memory), jedes andere optische Medium, Lochkarten, Lochstreifen, jedes andere physikalische Medium mit einem Lochmuster, oder jedes andere Medium, aus dem ein Computer/Steuerung eine geeignete Kombination des oben Stehenden auslesen kann.
-
Ferner kann jede der Anforderungsempfangseinheit 801, Symboltabellen-Leseeinheit 802 und physikalische Adressenlese-/Schreibeinheit 803 unter Verwendung eines Prozessors implementiert sein.
-
Die oben erläuterten beispielhaften Ausführungsformen stellen eine neue Steuerung bereit, die High-Level-Programme ausführt und ebenfalls Anforderungen zum Lesen oder Schreiben in Vorrichtungen von peripheren Ausrüstungen verarbeiten kann, die einen Vorrichtungsnamen in deren Anforderung bereitstellen. Die neue Steuerung liest die Symboltabelle aus und wandelt einen Vorrichtungsnahmen in eine physikalische Adresse, von der gelesen werden kann oder in die geschrieben werden kann. Die neue Steuerung kann somit Anforderungen eines Datenzugriffs von einer peripheren Ausrüstung behandelt, ohne dass es einer Middleware oder der Aktualisierung der peripheren Ausrüstungen der peripheren Ausrüstungen bedarf. Die Symboltabelle kann extern durch ein Programmierwerkzeug präpariert werden, und durch das Programmierwerkzeug in die Steuerung heruntergeladen werden.
-
Das Programmierwerkzeug 400 kann einen Prozessor enthalten, wie z. B. eine anwendungs-spezifische integrierte Schaltung, einen digitalen Signalprozessor, usw., der die Aufgaben des High-Level-Sprachprogrammkompilators 401, der Bibliothek 402 und des Linkers bzw. Verbinders 403 durchführt. Das Programmierwerkzeug 400 kann ferner eine geeignete Einheit zum Kommunizieren mit der PLC enthalten. Das Programmierwerkzeug 400 kann z. B. über einen USB (engl. Universal Serial Bus) mit der PLC kommunizieren.
-
Jeder der in den 5–7 beschriebenen Prozesse kann ferner durch einen Spezialrechner implementiert werden, der gemäß Anweisungen arbeitet, die an einem konkreten Computer-lesbaren Speichermedium gespeichert sind.
-
Die oben stehenden beispielhaften Ausführungsformen sind lediglich beispielhaft und dienen nicht zur Beschränkung der vorliegenden Erfindung. Die vorliegende Lehre kann ohne weiteres für andere Vorrichtungstypen angewendet werden. Die Beschreibung der beispielhaften Ausführungsformen der vorliegenden Erfindung dient ferner lediglich zur Darstellung, und nicht zur Beschränkung des Umfangs der Ansprüche, und viele Alternativen, Modifikationen und Variationen sind dem Fachmann ersichtlich.
-
Bezugszeichenliste
-
- 21
- High-Level-Sprachquellenprogramm
- 24
- Objektdatei
- 26
- Nutzerbibliothek
- 27
- High-Level-Sprachprogramm-Standardbibliotheken
- 29
- Lastmodul
- 100
- Produktionssystem
- 101
- Periphere Ausrüstung
- 102, 800
- Steuerung
- 103
- Netzwerk
- 201, 302
- Symboltabelle
- 301
- Assoziationstabelle
- 311 bis 316
- Spalte
- 400
- Programmierwerkzeug
- 401
- High-Level-Sprachprogrammkompiler
- 402
- Bibliothek
- 403
- Linker
- 801
- Anforderungsempfangseinheit
- 802
- Symboltabellen-Leseeinheit
- 803
- physikalische Adressenlese-/Schreibeinheit