AT512963B1 - Programmiervorlage für verteilte Anwendungsprogramme - Google Patents
Programmiervorlage für verteilte Anwendungsprogramme Download PDFInfo
- Publication number
- AT512963B1 AT512963B1 ATA434/2013A AT4342013A AT512963B1 AT 512963 B1 AT512963 B1 AT 512963B1 AT 4342013 A AT4342013 A AT 4342013A AT 512963 B1 AT512963 B1 AT 512963B1
- Authority
- AT
- Austria
- Prior art keywords
- programmable
- module
- programmable logic
- modules
- logic controller
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23261—Use control template library
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
Die Erfindung betrifft eine Programmiervorlage (20A, 21A, 22A, 30A) für die Entwicklung eines auf zwei oder mehr speicherprogrammierbaren Steuerungen (10,11,12) verteilt auszuführenden Anwendungsprogramms (20B, 21B, 22B). Die Programmiervorlage umfasst zwei oder mehr programmierbare Module (201A, 221A, 313A, 314A, 323A, 324A), die in das Anwendungsprogramm integriert und auf einer jeweils zugeordneten speicherprogrammierbaren Steuerung (10,11,12) ausgeführt werden können. Mindestens ein erstes der programmierbaren Module (313A, 314A) ist einer ersten (10) und mindestens ein zweites der programmierbaren Module (323A, 324A) ist einer zweiten (11) der speicherprogrammierbaren Steuerungen zugeordnet ist. Zu einer Steuerungsübergreifenden Koordination des mindestens einen ersten und des mindestens einen zweiten programmierbaren Moduls umfasst die Programmiervorlage eine logische Kommunikationsverbindung (33) zwischen dem mindestens einen ersten und dem mindestens einen zweiten programmierbaren Modul.
Description
PROGRAMMIERVORLAGE FÜR VERTEILTE ANWENDUNGSPROGRAMME Beschreibung [0001] Die vorliegende Erfindung betrifft eine Programmiervorlage für die Entwicklung eines auf zwei oder mehr speicherprogrammierbaren Steuerungen verteilt auszuführenden Anwendungsprogramms.
STAND DER TECHNIK
[0002] Eine Speicherprogrammierbare Steuerung (SPS), englisch Programmable Logic Controller (PLS), ist ein Gerät, das zu Steuerung oder Regelung einer Maschine oder Anlage eingesetzt wird und auf digitaler Basis programmiert wird. Eine SPS hat im einfachsten Fall Eingänge, Ausgänge, ein Betriebssystem (Firmware) und eine Schnittstelle, über die das Anwenderprogramm geladen werden kann. Das Anwenderprogramm legt fest, wie die Ausgänge in Abhängigkeit von den Eingängen geschaltet werden sollen. Das Betriebssystem (Firmware) stellt sicher, dass dem Anwenderprogramm immer der aktuelle Zustand der Eingänge zur Verfügung steht. Anhang dieser Information kann das Anwenderprogramm die Ausgänge so schalten, dass die Maschine oder die Anlage in der gewünschten Weise funktioniert.
[0003] Die Druckschrift US 2008/0034310 A1 beschreibt ein Programm zur grafischen Programmierung speicherprogrammierbarer Steuerungen, wobei verschiedene Symbole verschiedenen Hardwareelementen, beispielsweise Messgeräten (DAQ-Modulen) zugeordnet sein können. Weitere gattungsgemäße Programme sind aus den Druckschriften DE 198 53 205 A1, DE 198 53 205 A1, DE 101 47 166 A1, sowie EP 0 876 647 B1 bekannt.
[0004] Die Anbindung der SPS an die Maschine bzw. Anlage erfolgt mit Sensoren und Aktoren. Die Sensoren sind an die Eingänge der SPS geschaltet und vermitteln der SPS das Geschehen in der Maschine oder Anlage. Beispiele für Sensoren sind z.B. Lichtschranken, Inkrementalgeber, Endschalter oder auch Temperaturfühler, Füllstandssensoren, etc. Die Aktoren sind an den Ausgängen der SPS angeschlossen und bieten die Möglichkeit, die Maschine oder Anlage zu steuern. Beispiele für Aktoren sind Schütze zum Einschalten von Elektromotoren, elektrische Ventile für Hydraulik oder Druckluft, Schalter usw.
[0005] Herkömmliche Anwendungsprogramme sind mit den Sprachmitteln der SPS- Programmiersprache IEC61131-3 programmierbar. Um ihre Entwicklung zu vereinfachen und zu verkürzen, stehen Programmiervorlagen wie z.B. das sogenannte GAT (Generic Application Temp late) von Bosch Rexroth zur Verfügung. Hierbei sind die typischen Gemeinsamkeiten der Anwendungsprogramme (wie z.B. Fehlerbehandlung, Achsbehandlung, Betriebsartenverwaltung oder Zustandsmaschinen) allgemeingültig gelöst. Durch die Programmiervorlage kann sich ein Programmierer des Anwendungsprogramms auf die Besonderheiten seines Programms konzentrieren und muss nur noch die Programmiervorlage an den entsprechend vorgesehenen Stellen mit Programmcode ausfüllen. Hierbei wird er durch dialogbasierte Codegenerierung unterstützt, um beispielsweise neue Module oder Betriebsarten anzulegen und anzupassen. So kann in kurzer Zeit ein gut strukturiertes und übersichtliches Anwendungsprogramm mit vorgetestetem Programmcode entstehen.
[0006] Programmiervorlagen werden im Allgemeinen als offener Beispielcode, teilweise auch in Kombination mit einer Bibliothek mit Basiselementen zur Verfügung gestellt. Funktionelle Erweiterungen an der Programmiervorlage werden über Dialoge, oder per Export/Import und „Copy & Paste“ vorgenommen.
[0007] Heutige Programmiervorlagen sind zumeist modular aufgebaut. Typische Elemente der Programmiervorlagen sind beispielsweise Zustandsautomaten und Maschinenmodule, die über eine Assistenzschnittstelle (z.B. den sogenannten GAT Wizard) hinzugefügt, entfernt und/oder konfiguriert werden können.
[0008] Teilaufgaben eines Gesamtprozesses werden dabei jeweils als funktionale Elemente in einem Softwaremodul abgebildet. Die Module sind autarke, gekapselte Einheiten ohne Kenntnis voneinander. Für den Gesamtprozess müssen die Module jedoch koordiniert Zusammenwirken, was durch eine übergeordnete Einheit sichergestellt wird. Die Koordinierung erfolgt beispielsweise über einen Zustand (z.B. AUTO_PRODUZIEREN). Dieser Zustand wird von einer übergeordneten Einheit aufgrund einer angewählten MaschinenBetriebsart und Eingängen ermittelt und an die Module weitergeleitet. Die Module führen die zu dem Zustand passenden Aktivitäten aus.
[0009] Nach dem heutigen Stand der Technik ist eine Programmiervorlage für Anwendungsprogramme konzipiert, die auf einer einzelnen Steuerung ausgeführt werden. Alle Module sind dabei stets auf der Steuerung vorhanden. Bei großen Maschinen bzw. Anlagen ist es jedoch erforderlich, die Anwendung auf mehrere Steuerungen zu verteilen.
[0010] Ein Beispiel für solch eine Anlage ist eine Druckmaschine, die mehrere Drucktürme umfasst, wobei je Druckturm eine Steuerung eingesetzt wird und jeder Druckturm mehrere Druckwerke (Module) umfasst. Bei Aktivieren des Produktionsbetriebes sollten zum Beispiel alle Drucktürme und die jeweiligen Druckwerke im Zustand „Produzieren“ den Automatikbetrieb annehmen und dabei die zugehörigen Aufgaben ausführen. Für diesen Fall muss ein Anwendungsprogramm eingerichtet sein, eine steuerungsübergreifende Koordination der Module zu gewährleisten.
[0011] Es ist daher wünschenswert, eine Programmiervorlage zur Verfügung zu haben, die es ermöglicht, die Module (steuerungsübergreifend) koordiniert zu betreiben. Für diesen Fall existieren heute keine vorbereiteten generischen Funktionalitäten einer Programmiervorlage.
OFFENBARUNG DER ERFINDUNG
[0012] Erfindungsgemäß wird eine Programmiervorlage mit den Merkmalen des unabhängigen Patentanspruchs vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der Beschreibung.
[0013] Die erfindungsgemäße Programmiervorlage eignet sich für die Entwicklung von Anwendungsprogrammen, die jeweils auf zwei oder mehr speicherprogrammierbaren, durch ein Kommunikationsnetzwerk miteinander verbundenen Steuerungen verteilt ausgeführt werden. Geeignete Kommunikationsnetzwerke können beispielsweise Ethernet, Profinet, Profibus, und Ähnliches sein. Die erfindungsgemäße Programmiervorlage umfasst zwei oder mehr programmierbare Module, die in das jeweils zu programmierende Anwendungsprogramm integriert und auf einer den Modulen jeweils zugeordneten speicherprogrammierbaren Steuerung ausgeführt werden können.
[0014] Mindestens eine erstes der programmierbaren Module ist dabei einer ersten speicherprogrammierbaren Steuerung und mindestens ein zweites der programmierbaren Module einer zweiten speicherprogrammierbaren Steuerung zugeordnet.
[0015] Die programmierbaren Module können, wenn sie auf der ihnen zugeordneten jeweiligen Steuerung ausgeführt werden, beispielsweise der Steuerung von jeweils zugehörigen Maschinenelementen dienen.
[0016] Die erfindungsgemäße Programmiervorlage umfasst eine logische Kommunikationsverbindung zwischen dem mindestens einen ersten und dem mindestens einen zweiten programmierbaren Modul, die einer steuerungsübergreifenden Koordination des mindestens einen ersten und des mindestens einen zweiten programmierbaren Moduls dient.
[0017] Die erfindungsgemäße Programmiervorlage vereinfacht signifikant die Entwicklung von Anwendungsprogrammen, die auf mehrere speicherprogrammierbare Steuerungen verteilt und daher für große Maschinenanlagen geeignet sind. Mit solchen Programmen können dezentral vorhandene Teil-Maschinensteuerungen mittels einer Gesamt-Zustandssteuerung verwaltet werden. Die Erfindung ermöglicht eine Vereinfachung oder Automatisierung der Kommunikation zwischen der Gesamt-Zustandssteuerung und dezentralen Teil-Maschinensteuerungen durch entwickelte Anwendungsprogramme.
[0018] Der Zeitaufwand und die Fehlerhäufigkeit bei der Erstellung von derartigen verteilten Anwendungsprogrammen können durch vordefinierte Funktionalitäten der den unterschiedlichen Steuerungen zugeordneten Module deutlich reduziert werden. Ein Anwender der Programmiervorlage kann die jeweiligen programmierbaren Module in gewohnter Weise ausprogrammieren und hat keinen zusätzlichen Zeitaufwand durch die Verteilung der Elemente.
[0019] Die notwendigen Funktionen zur Vernetzung sind vorzugsweise weitestgehend unsichtbar für den Programmierer in gekapselten Funktionen enthalten. So entstehen übersichtliche Anwendungsprogramme.
[0020] Die erfindungsgemäße Programmiervorlage liegt vorzugsweise als Datenstruktur auf einem Programmiergerät (beispielsweise einem Computer) vor, die einem Anwender insbesondere ein Ausprogrammieren der programmierbaren Module ermöglicht. Beim Erstellen eines Anwendungsprogrammes mit Hilfe der Programmiervorlage werden vorzugsweise auch die programmierbaren Module instanziiert, um dann (nach ihrer Kompilierung) als programmierte Module auf die jeweils zugeordnete Steuerung übertragen zu werden und dort zu operieren. Die logische Kommunikationsverbindung wird dabei vorzugsweise so mittels des Kommunikationsnetzwerks implementiert, durch das die speicherprogrammierbaren Steuerungen verbunden sind, dass eine Kommunikation von auf verschiedenen speicherprogrammierbaren Steuerungen operierenden (z.B. programmierten) Modulen möglich ist.
[0021] Das Anwendungsprogramm kann als ganzes oder in Teilen (z.B. Modulen) nach sei-ner/ihrer Erstellung mit der Programmiervorlage auf die jeweiligen Steuerungen übertragen (und verteilt) werden. Die Übertragung kann jeweils beispielsweise über eine Datenverbindung zwischen dem Programmiergerät und einer oder mehrerer der speicherprogrammierbaren Steuerungen und/oder das Kommunikationsnetzwerk zwischen den speicherprogrammierbaren Steuerungen erfolgen.
[0022] Vorzugsweise umfasst die Programmiervorlage eine Betriebsartenverwaltung, über die ein Anwender Betriebsarten anwählen kann und an die logische Kommunikationsverbindung angeschlossen ist. Damit kann das zu programmierende Anwendungsprogramm variabel für verschiedene Betriebsarten (z.B. manuellen oder automatischen Betrieb) der zu steuernden Maschine oder Maschinenelemente gestaltet werden.
[0023] In einer bevorzugten Ausführungsform umfasst die logische Kommunikationsverbindung ein Mastermodul und ein Slavemodul. Das Mastermodul ist dabei eingerichtet, (nach seiner Übertragung) auf der ersten speicherprogrammierbaren Steuerung zu operieren, wohingegen das Slavemodul dazu eingerichtet ist, (nach seiner Übertragung) auf der zweiten speicherprogrammierbaren Steuerung zu operieren. Dort können das Mastermodul und das Slavemodul vorzugsweise über das die speicherprogrammierbaren Steuerungen verbindende Kommunikationsnetzwerk kommunizieren. Das Slavemodul kann in der Programmiervorlage als Zusatzcode vorhanden sein, der dazu eingerichtet ist, auf die zweite speicherprogrammierbare Steuerung geladen zu werden.
[0024] Master- und Slavemodul ermöglichen es, dass in den Steuerungen jeweils Aufgaben wahrgenommen werden, die der Koordination der verteilten programmierbaren Module und damit der Gesamtsteuerung dienen.
[0025] Mit Hilfe des Master- und des Slavemoduls kann in Bezug auf die Koordination der Module bzw. der speicherprogrammierbaren Steuerungen eine Hierarchie erzeugt werden. Das Mastermodul kann dabei nicht nur dem mindestens einen ersten programmierbaren Modul, sondern auch dem Slavemodul übergeordnet sein, das seinerseits dem mindestens einen zweiten programmierbaren Modul übergeordnet ist. So kann das Slavemodul das mindestens eine zweite Modul per Kommando kontrollieren und/oder dessen Status (ggf. zusammen mit dem Status mindestens eines weiteren Moduls, das dazu eingerichtet ist, auf der zweiten speicherprogrammierbaren Steuerung zu operieren) erfassen und auf einen (ggf. gemeinsamen) Ist-Zustand zu konzentrieren.
[0026] Das Slavemodul kann eingerichtet sein, einen derartigen Ist-Zustand dem Mastermodul mitzuteilen und/oder einen Zielzustand vom Mastermodul an das mindestens eine zweite programmierbare Modul weiterzuleiten. So kann das Slavemodul dem Mastermodul ermöglichen, das mindestens eine zweite programmierbare Modul zu kontrollieren.
[0027] Das Mastermodul kann eingerichtet sein, sich aus Sicht einer übergeordneten Betriebsartenverwaltung wie eine Konzentration aller anderen Module zu verhalten. Vorzugsweise verwaltet das Mastermodul das mindestens eine erste programmierbare Modul (das der ersten speicherprogrammierbaren Steuerung zugeordnet ist) sowie - über das Slavemodul - das mindestens eine zweite programmierbare Modul (das der zweiten speicherprogrammierbaren Steuerung zugeordnet ist).
[0028] Vorzugsweise sind Master- und Slavemodul so eingerichtet, dass eine Initialisierung eines programmierten Anwendungsprogramms von der ersten speicherprogrammierbaren Steuerung koordiniert wird. Dazu wartet die erste speicherprogrammierbare Steuerung (bzw. das Mastermodul) vorteilhafterweise, bis die zweite speicherprogrammierbare Steuerung (und ggf. weitere untergeordnete speicherprogrammierbare Steuerungen) sich angemeldet haben. Alternativ kann eine vorgegebene Wartezeit festgelegt sein. Auch kann eine Deaktivierbarkeit des Warteprozesses implementiert sein. Das Mastermodul kann anschließend die erste und die zweite speicherprogrammierbare Steuerung mit dem Slavemodul und den ersten und zweiten programmierbaren Modulen durch die Initialisierungszustände bis in den Betriebszustand führen.
[0029] Dadurch wird eine schnelle und sichere kontrollierte Initialisierung des Anwendungsprogramms ermöglicht.
[0030] In einer bevorzugten Ausführungsform ist das Slavemodul eingerichtet, seinerseits einige oder alle der für das Mastermodul erwähnten Aufgaben gegenüber einer dritten speicherprogrammierbaren Steuerung zu übernehmen. Auf analoge Weise können Kaskaden aufgebaut werden. Zum Beispiel kann die erste Steuerung programmierbare Module der zweiten Steuerung verwalten, die ihrerseits programmierbare Module einer dritten und/oder vierten Steuerung verwaltet usw..
[0031] So kann eine komplexe, über eine Vielzahl von speicherprogrammierbaren Steuerungen verteilte und koordinierte Anwendungssoftware programmiert werden.
[0032] Der Fall, dass das Slavemodul (auf der zweiten speicherprogrammierbaren Steuerung) und das Mastermodul (auf der ersten speicherprogrammierbaren Steuerung) wechselseitig die oben genannten Aufgaben des jeweils anderen mit übernehmen, führt hingegen zu Rekursionen (z.B. Steuerung A verwaltet Steuerung B, Steuerung B verwaltet Steuerung A), die in praktischen Anwendungen meist nicht sinnvoll. In einer bevorzugten Ausführungsform erkennt die Programmiervorlage eine Rekursion und reagiert darauf, beispielsweise durch Ausgabe einer Fehlermeldung.
[0033] Besonders bevorzugt ist eine Ausführungsform, bei der die Programmiervorlage einem Anwender über eine Assistenzoberfläche (auch englisch als „Wizard“ bezeichnet) bereitgestellt wird, beispielsweise über dialogbasierte Codegenerierung. Die Assistenzoberfläche erleichtert einem Anwender die Erstellung und/oder Modifikation eines Anwendungsprogramms.
[0034] So kann die Assistenzoberfläche über Eingabefelder als Funktionen insbesondere ermöglichen, dass [0035] · der Anwender beim Hinzufügen von Modulen oder der Betriebsartenverwaltung die sen eine Steuerung zuordnen kann (z.B. durch Name, IP-Adresse, ...), und/oder [0036] · dass der Anwender nachträglich über Eingabedialoge eine Steuerungszuordnung der
Module und Betriebsartenverwaltung verändern kann und/oder [0037] · dass eine neue Betriebsart bzw. ein neuer Zustand angelegt, gelöscht oder umbe nannt wird und dass dann steuerungsübergreifend in allen zugeordneten Modulen die zugehörigen Datenstrukturen angepasst werden.
[0038] Vorteilhafterweise kennt die Assistenzoberfläche steuerungsübergreifende Zusammenhänge zwischen den programmierbaren Modulen und einer Betriebsartenverwaltung. Aus diesen Informationen kann die Assistenzoberfläche automatisch vordefinierte Visualisierungen für die Bedienung einer Maschine an Leitständen erzeugen. Eine derartige Visualisierung kann beispielsweise ein Übersichtsbild für die Maschine(n) mit allen Modulen, zugehörigen Achsen und der Betriebsartenverwaltung zur Verfügung stellen. Mit diesem Übersichtsbild können der aktuelle Zustand und Diagnosen der Module angezeigt werden. Bevorzugt ist eine Ausführungsform, bei der die Visualisierung automatisch oder durch eine Eingabe eines Anwenders an Änderungen an einem oder mehreren programmierbaren Modul(en) oder einer Betriebsart angepasst wird.
[0039] Eine solche Darstellung erleichtert Diagnose und Fehlerbehebung, da Störungsort und -meldung sofort sichtbar werden.
[0040] Die Programmiervorlage kann als ausführbare Datenstruktur oder in Form eines Computerprogramm-Quelltextes vorliegen. Geeignete Datenträger zur Bereitstellung der Programmiervorlage bzw. des Computerprogramms sind insbesondere Disketten, Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
[0041] Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
[0042] Die Erfindung ist anhand von Ausführungsbeispielen in den Zeichnungen schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
FIGURENBESCHREIBUNG
[0043] Figur 1 zeigt mehrere Steuerungen, für die entsprechend dem Stand der Technik je weils eine autarke Programmiervorlage vorgesehen ist.
[0044] Figur 2 zeigt beispielhaft eine Ausführungsform der vorliegenden Erfindung.
[0045] Figur 3 zeigt beispielhaft eine Assistenzoberfläche einer Programmiervorlage.
DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
[0046] In Figur 1 ist schematisch dargestellt, wie gemäß dem Stand der Technik Anwendungsprogramme für Maschinenanlagen mit mehreren speicherprogrammierbaren Steuerungen 10,11 und 12 erstellt werden können. Die Steuerungen sind über ein Kommunikationsnetzwerk 13 miteinander verbunden und verfügen jeweils über Ein- und Ausgänge 101,111 bzw. 121. Über sie können Zustände, Betriebsarten, Achsendaten und/oder sonstige Information zwischen der oder den zu steuernde(n) Maschine(n) und der jeweiligen speicherprogrammierbaren Steuerung übermittelt werden.
[0047] Zum Programmieren von Anwendungsprogrammen für die Steuerungen stehen auf einem Programmiergerät 1 Programmiervorlagen 20A, 21A und 22A zur Verfügung, die insbesondere programmierbare Module 201 A, 202A, 221 A, 222A umfassen. Die Programmiervorlagen dienen jeweils dem Erstellen eines Anwendungsprogramms für eine der speicherprogrammierbaren Steuerungen. So wird nach dem Erstellen eines Anwendungsprogramms mit der Programmiervorlage 20A das resultierende Anwendungsprogramm 20B über eine Datenverbindung 15 auf die speicherprogrammierbare Steuerung 12 übertragen. Das Anwendungsprogramm 20B umfasst die über die programmierbaren Module 201 A, 202A der Programmiervorlage 20A erzeugten, programmierten Module 201B und 202B.
[0048] Analog werden mit Hilfe der Programmiervorlagen 21A und 22A erzeugte Anwendungsprogramme 21B bzw. 22B mit den zugehörigen Modulen (insbesondere den mit den Bezugszeichen 221B und 222B bezeichneten Modulen) über die Datenverbindung 15 auf die speicherprogrammierbaren Steuerungen 11 bzw. 12 übertragen .
[0049] Die Anwendungsprogramme für die verschiedenen speicherprogrammierbaren Steuerungen 10,11 und 12 werden somit separat mit jeweils einer zugehörigen Programmiervorlage erzeugt.
[0050] In Figur 2 ist schematisch eine Ausführungsform der erfindungsgemäßen Programmiervorlage 30A gezeigt, mit der ein auf zwei speicherprogrammierbare Steuerungen 10 und 11 verteiltes Anwendungsprogramm erstellt werden kann. Analog zum in Figur 1 dargestellten Fall haben diese Steuerungen jeweils Ein- und/Ausgänge 101,111 und sind durch ein Kommunikationsnetzwerk 13 miteinander verbunden.
[0051] Die Programmiervorlage 30A ist als zweiteilig mit Teilen 31OA und 320A dargestellt. Der Teil 31 OA umfasst Elemente, die nach dem Ausprogrammieren des Anwendungsprogramms als dessen Teil 31 OB über die Datenleitung 15 an die speicherprogrammierbare Steuerung 10 übertragen und von dieser ausgeführt werden. Analog umfasst der Teil 320A Elemente, die als Anwendungsprogrammteil 320B an die speicherprogrammierbare Steuerung 11 übermittelt und von dieser ausgeführt werden.
[0052] Der Programmiervorlagenteile 31 OA und 320A umfassen je eine Betriebsartenverwaltung 311 bzw. 321 zur Koordination der programmierbaren Module 313A und 314A bzw. 323A, 324A, 325A (bzw. auf Steuerungsseite für die Anwendungprogrammteile 31 OB und 320B zur Koordination der programmierten Module 313B, 314B bzw. 323B, 324B, 325B) im Hinblick auf Betriebsarten der zu steuernden Maschine(n).
[0053] Die programmierbaren Module 313A, 314A, 323A, 324A und 325A sind durch eine logische Kommunikationsverbindung 33 miteinander verbunden. Diese Kommunikationsverbindung umfasst im Programmiervorlagenteil 31 OA ein Mastermodul 312 und im Programmiervorlagenteil 320A ein Slavemodul 322. Das Mastermodul 312 ist eingerichtet, auf der speicherprogrammierbaren Steuerung 10 zu operieren, wohingegen das Slavemodul 322 dazu eingerichtet ist, auf der speicherprogrammierbaren Steuerung 11 zu operieren. Dabei können Mastermodul und Slavemodul die oben beschriebenen Aufgaben übernehmen und über das Kommunikationsnetzwerk 13, das für die Realisierung der logischen Kommunikationsverbindung 33 auf den Steuerungen genutzt werden kann, miteinander kommunizieren. Auf diese Weise kann ein mit der Programmiervorlage 30A erstelltes Anwendungsprogramm in Teilen 31 OB und 320B auf die Steuerungen 10 und 11 verteilt werden und dort koordiniert ausgeführt werden.
[0054] Figur 3 zeigt schematisch eine Assistenzoberfläche 3, mit der einem Anwender eine erfindungsgemäße Programmiervorlage bereitgestellt werden kann. Über Eingabefelder 41, 42, 43, 44 kann ein Anwender dialogbasiert programmierbare Module programmieren, beispielsweise indem er gewünschte Eigenschaften oder Funktionen eines programmierbaren Moduls in dem zu programmierenden Anwendungsprogramm festlegt. Alternativ oder zusätzlich kann er beispielsweise Betriebsarten, Zustände und/oder programmierbare Module hinzufügen, ändern und/oder löschen.
Claims (12)
- Patentansprüche 1. Programmiervorlage (20A, 21 A, 22A, 30A) für die Entwicklung eines auf zwei oder mehr speicherprogrammierbaren Steuerungen (10, 11, 12) verteilt auszuführenden Anwendungsprogramms (20B, 21B, 22B, 31 OB, 320B), wobei die zwei oder mehr speicherprogrammierbaren Steuerungen durch ein Kommunikationsnetzwerk (13) miteinander verbunden sind, wobei die Programmiervorlage zwei oder mehr programmierbare Module (201 A, 202A, 221 A, 222k, 313A, 314A, 323A, 324A, 325A) umfasst, die in das Anwendungsprogramm integriert und auf einer jeweils zugeordneten speicherprogrammierbaren Steuerung (10, 11, 12) ausgeführt werden können, wobei mindestens ein erstes der programmierbaren Module (313A, 314A) einer ersten (10) der speicherprogrammierbaren Steuerungen zugeordnet ist; mindestens ein zweites der programmierbaren Module (323A, 324A, 325A) einer zweiten (11) der speicherprogrammierbaren Steuerungen zugeordnet ist; und wobei die Programmiervorlage zu einer steuerungsübergreifenden Koordination des mindestens einen ersten und des mindestens einen zweiten programmierbaren Moduls eine logische Kommunikationsverbindung (33) zwischen dem mindestens einen ersten und dem mindestens einen zweiten programmierbaren Modul umfasst, wobei die logische Kommunikationsverbindung ein Mastermodul (312) und ein Slavemodul (322) umfasst, wobei das Mastermodul dazu eingerichtet ist, auf der ersten speicherprogrammierbaren Steuerung zu operieren, und wobei das Slavemodul dazu eingerichtet ist, auf der zweiten speicherprogrammierbaren Steuerung zu operieren, wobei das Slavemodul (322) dazu eingerichtet ist das zweite programmierbare Modul zu kontrollieren, und wobei das Mastermodul (312) dazu eingerichtet ist, sich aus Sicht einer übergeordneten Betriebsartenverwaltung wie eine Konzentration von den zwei oder mehr programmierbaren Modulen (313A, 314A, 323A, 324A, 325A) zu verhalten.
- 2. Programmiervorlage gemäß Anspruch 1, wobei das Mastermodul (312) dazu eingerichtet ist, auf der ersten speicherprogrammierbaren Steuerung (10) operierend mit dem Slavemodul (322) zu kommunizieren und vorzugsweise das mindestens eine zweite programmierbare Modul zu verwalten; und/oder operierend mit dem mindestens einen ersten programmierbaren Modul (313A, 314A) zu kommunizieren und vorzugsweise ein oder mehrere Eigenschaften, beispielsweise den Status, des ersten programmierbaren Moduls zu erfassen.
- 3. Programmiervorlage gemäß einem der Ansprüche 1 oder 2, wobei das Slavemodul (322) dazu eingerichtet ist, den Status des mindestens einen zweiten programmierbaren Moduls zu erfassen und dem Mastermodul mitzuteilen.
- 4. Programmiervorlage gemäß einem der Ansprüche 1 bis 3, die zwei oder mehr zweite programmierbare Module (323A, 324A, 325A) umfasst, die der zweiten speicherprogrammierbaren Steuerung (11) zugeordnet sind, wobei das Slavemodul dazu eingerichtet ist, den jeweiligen Status der zweiten programmierbaren Module zu erfassen, zu einem gemeinsamen Ist-Zustand zusammenzufassen und diesen dem Mastermodul (3 12) mitzuteilen.
- 5. Programmiervorlage gemäß einem der Ansprüche 1 bis 4, wobei mindestens ein drittes der programmierbaren Module einer dritten speicherprogrammierbaren Steuerung zugeordnet ist, wobei die logische Kommunikationsverbindung das mindestens eine dritte programmierbare Modul mit dem mindestens einen ersten und/oder dem mindestens einen zweiten programmierbaren Modul verbindet, und/oder wobei die logische Kommunikationsverbindung eine Verbindung zwischen dem Slavemodul und einem weiteren Slavemodul umfasst, wobei das weitere Slavemodul dazu eingerichtet ist, auf der dritten speicherprogrammierbaren Steuerung zu operieren.
- 6. Programmiervorlage gemäß Anspruch 5, wobei das Slavemodul dazu eingerichtet ist, mit dem weiteren Slavemodul zu kommunizieren und vorzugsweise das mindestens eine dritte programmierbare Modul zu verwalten und/oder mit dem mindestens einen zweiten programmierbaren Modul zu kommunizieren und vorzugsweise ein oder mehrere Eigenschaften, beispielsweise den Status, des mindestens einen zweiten programmierbaren Moduls zu erfassen.
- 7. Programmiervorlage gemäß einem der Ansprüche 1 bis 6, wobei das Slavemodul eine vorzugsweise durch einen Anwender auswählbare Funktion umfasst, im Falle eines lokalen Fehlers auf der zweiten speicherprogrammierbaren Steuerung diesen Fehler dem Mastermodul zu melden.
- 8. Programmiervorlage gemäß einem der Ansprüche 1 bis 7, wobei das Mastermodul dazu eingerichtet ist, einen Abbruch einer Verbindung zum Slavemodul zu erkennen und jeweils darauf zu reagieren, vorzugsweise durch Verzögern eines Steuerungsantriebes, Umschalten auf eine lokale Zustandsmaschine oder Ignorieren des Abbruchs und/oder wobei das Slavemodul dazu eingerichtet ist, einen Abbruch einer Verbindung zum Mastermodul zu erkennen und jeweils daraufzu reagieren, vorzugsweise durch Verzögern eines Steuerungsantriebes, Umschalten auf eine lokale Zustandsmaschine oder Ignorieren des Abbruchs.
- 9. Programmiervorlage gemäß einem der Ansprüche 1 bis 8, wobei jede speicherprogrammierbare Steuerung auf einer eigenen autarken Steuerungshardware implementiert ist.
- 10. Programmiervorlage gemäß einem der Ansprüche 1 bis 9, die dazu eingerichtet ist, bei einem Anlegen, Löschen oder Umbenennen eines Zustands oder einer Betriebsart eines oder mehrerer der programmierbaren Module automatisch jeweils zugehörige Datenstrukturen in einem oder mehreren anderen der zwei oder mehr programmierbaren Module anzupassen.
- 11. Programmiervorlage gemäß einem der Ansprüche 1 bis 10, die einem Anwender über eine Assistenzoberfläche (3) bereitgestellt wird, wobei die Assistenzoberfläche Eingabefelder (41, 42, 43, 44) umfasst, mit denen eines oder mehrere der programmierbaren Module und/oder eine Betriebsartenverwaltung zur Programmiervorlage hinzugefügt, aus ihr gelöscht und/oder umbenannt werden kann; und/oder eines oder mehrere der programmierbaren Module zu einer jeweiligen speicherprogrammierbaren Steuerung zugeordnet werden kann; und/oder eine Zuordnung eines oder mehrerer der programmierbaren Module zu einer jeweiligen speicherprogrammierbaren Steuerung geändert werden kann.
- 12. Programmiervorlage gemäß einem der Ansprüche 1 bis 11, die dazu eingerichtet ist, bei einer Initialisierung eines mit der Programmiervorlage entwickelten Anwendungsprogramms die zweite speicherprogrammierbare Steuerung mit dem Slavemodul und dem mindestens einen zweiten programmierbaren Modul zu veranlassen, Initialisierungsdaten an den Mastermodul zu übermitteln, und die erste speicherprogrammierbare Steuerung zu veranlassen, anschließend an das Übermitteln der Initialisierungsdaten die erste und die zweite speicherprogrammierbare Steuerung und deren zugeordnete programmierbare Module durch Initialisierungszustände in den Betriebszustand zu führen. Hierzu 3 Blatt Zeichnungen
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102012010537A DE102012010537A1 (de) | 2012-05-29 | 2012-05-29 | Programmiervorlage für verteilteAnwendungsprogramme |
Publications (3)
Publication Number | Publication Date |
---|---|
AT512963A2 AT512963A2 (de) | 2013-12-15 |
AT512963A3 AT512963A3 (de) | 2014-08-15 |
AT512963B1 true AT512963B1 (de) | 2015-10-15 |
Family
ID=49579031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ATA434/2013A AT512963B1 (de) | 2012-05-29 | 2013-05-27 | Programmiervorlage für verteilte Anwendungsprogramme |
Country Status (3)
Country | Link |
---|---|
US (1) | US9507334B2 (de) |
AT (1) | AT512963B1 (de) |
DE (1) | DE102012010537A1 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102012025228A1 (de) | 2012-12-21 | 2014-06-26 | Robert Bosch Gmbh | Steuerungsübergreifende Energieverwaltung in einer Anlage |
JP6533170B2 (ja) * | 2016-02-25 | 2019-06-19 | ファナック株式会社 | プログラマブルコントローラ及びこれを備えるシステム |
CN109790619A (zh) * | 2016-09-22 | 2019-05-21 | Cic纳米技术公司 | 原子层沉积室 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19853205A1 (de) * | 1998-11-18 | 2000-06-15 | Siemens Ag | Verfahren zur Steuerung technischer Prozesse |
EP0876647B1 (de) * | 1996-01-25 | 2001-10-31 | Siemens Aktiengesellschaft | Graphische bedienoberfläche zur programmierung von speicherprogrammierbaren steuerungen |
DE10147166A1 (de) * | 2001-09-25 | 2003-04-24 | Siemens Ag | System und Verfahren zur Programmierung eines Automatisierungssystems basierend auf Impulsdiagrammen |
US20080034310A1 (en) * | 2006-08-04 | 2008-02-07 | Kodosky Jeffrey L | Diagram That Visually Indicates Targeted Execution |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5168441A (en) * | 1990-05-30 | 1992-12-01 | Allen-Bradley Company, Inc. | Methods for set up and programming of machine and process controllers |
US5392207A (en) * | 1993-08-20 | 1995-02-21 | Allen-Bradley Company, Inc. | Programmable motion controller with graphical programming aid |
US5530643A (en) * | 1993-08-24 | 1996-06-25 | Allen-Bradley Company, Inc. | Method of programming industrial controllers with highly distributed processing |
US5812394A (en) * | 1995-07-21 | 1998-09-22 | Control Systems International | Object-oriented computer program, system, and method for developing control schemes for facilities |
US6076117A (en) * | 1995-11-13 | 2000-06-13 | Billings; Roger E. | Packet merging hub system for sequentially merging received data in a network hub into data packets before broadcasting to a plurality of destination computers |
US6115747A (en) * | 1995-11-13 | 2000-09-05 | Roger E. Billings | Computer network interface that merges remote data received from other computers with local data before transmitting the merged data to a network |
US5936547A (en) * | 1997-07-15 | 1999-08-10 | Ameritech Corporation | System and method for providing user-selected information to a paging-capable device |
US6282699B1 (en) * | 1999-02-23 | 2001-08-28 | National Instruments Corporation | Code node for a graphical programming system which invokes execution of textual code |
US6445963B1 (en) * | 1999-10-04 | 2002-09-03 | Fisher Rosemount Systems, Inc. | Integrated advanced control blocks in process control systems |
WO2001067192A2 (en) * | 2000-03-06 | 2001-09-13 | Siemens Technology-To-Business Center Llc | Programming automation by demonstration |
US6618628B1 (en) * | 2000-10-05 | 2003-09-09 | Karl A. Davlin | Distributed input/output control systems and methods |
DE10113917B4 (de) * | 2001-03-21 | 2019-05-23 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung von Steuereinheiten |
US7058899B2 (en) * | 2001-06-20 | 2006-06-06 | National Instruments Corporation | System and method for creating a graphical program based on a pre-defined program process |
US6819960B1 (en) * | 2001-08-13 | 2004-11-16 | Rockwell Software Inc. | Industrial controller automation interface |
CA2357939A1 (en) * | 2001-09-27 | 2003-03-27 | Alcatel Canada Inc. | Master-slave communications system and method for a network element |
US7191053B2 (en) * | 2001-12-21 | 2007-03-13 | Astroflex Inc. | Remote starting system for a vehicle |
US7043311B2 (en) * | 2003-02-18 | 2006-05-09 | Fisher-Rosemount Systems, Inc. | Module class objects in a process plant configuration system |
JP4372110B2 (ja) * | 2006-02-10 | 2009-11-25 | エヌイーシーコンピュータテクノ株式会社 | データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法 |
US8612870B2 (en) * | 2006-08-04 | 2013-12-17 | National Instruments Corporation | Graphically specifying and indicating targeted execution in a graphical program |
US8312098B2 (en) * | 2006-11-09 | 2012-11-13 | Abbott Medical Optics Inc. | Serial communications protocol for safety critical systems |
US7778713B2 (en) * | 2007-02-27 | 2010-08-17 | Rockwell Automation Technologies, Inc. | Construction of an industrial control system using multiple instances of industrial control engines |
US8612886B2 (en) * | 2007-09-28 | 2013-12-17 | Rockwell Automation Technologies, Inc. | Sequential function chart (SFC) online editing without reset |
US8255065B2 (en) * | 2008-05-05 | 2012-08-28 | Siemens Aktiengesellschaft | Mobile function block for a PLC based distributed control system |
EP2251755A3 (de) * | 2009-05-12 | 2012-06-27 | Siemens Aktiengesellschaft | Verfahren zum Betrieb einer automatisierten Anlage zur industriellen Prozess- und/oder Fertigungsautomatisierung |
US8670859B2 (en) * | 2009-07-09 | 2014-03-11 | Siemens Industry, Inc. | Methods and apparatus for an improved motor control center |
DE102009053620A1 (de) * | 2009-11-17 | 2011-05-19 | Ziehl-Abegg Ag | Kommunikationsüberwachung für einen Außenläufermotor |
US8959447B1 (en) * | 2011-10-28 | 2015-02-17 | Englobal Corporation | Method of controling a plurality of master control stations |
-
2012
- 2012-05-29 DE DE102012010537A patent/DE102012010537A1/de not_active Withdrawn
-
2013
- 2013-05-27 AT ATA434/2013A patent/AT512963B1/de not_active IP Right Cessation
- 2013-05-28 US US13/903,355 patent/US9507334B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0876647B1 (de) * | 1996-01-25 | 2001-10-31 | Siemens Aktiengesellschaft | Graphische bedienoberfläche zur programmierung von speicherprogrammierbaren steuerungen |
DE19853205A1 (de) * | 1998-11-18 | 2000-06-15 | Siemens Ag | Verfahren zur Steuerung technischer Prozesse |
DE10147166A1 (de) * | 2001-09-25 | 2003-04-24 | Siemens Ag | System und Verfahren zur Programmierung eines Automatisierungssystems basierend auf Impulsdiagrammen |
US20080034310A1 (en) * | 2006-08-04 | 2008-02-07 | Kodosky Jeffrey L | Diagram That Visually Indicates Targeted Execution |
Also Published As
Publication number | Publication date |
---|---|
AT512963A3 (de) | 2014-08-15 |
US9507334B2 (en) | 2016-11-29 |
AT512963A2 (de) | 2013-12-15 |
US20130325145A1 (en) | 2013-12-05 |
DE102012010537A1 (de) | 2013-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2012201B1 (de) | Verfahren zum Programmieren einer Sicherheitssteuerung | |
DE102008055660B4 (de) | Verfahren und Vorrichtung zum Zugreifen auf ein Funktionsmodul eines Automatisierungssystems | |
EP2422243B1 (de) | Sicherheitssteuerung zum steuern einer automatisierten anlage und verfahren zum erstellen eines anwenderprogramms für eine sicherheitssteuerung | |
EP1182528B1 (de) | Industrielle Steuerung auf der Basis verteilbarer Technologischer Objekte | |
EP2098926B1 (de) | Verfahren und Vorrichtung zum Programmieren und/oder Konfigurieren einer Sicherheitssteuerung | |
DE102007026678A1 (de) | Verfahren zum Austausch eines defekten Feldgerätes gegen ein neues Feldgerät in einem über digitalen Feldbus kommunizierenden System, insbesondere Automatisierungssystem | |
DE112006000988T5 (de) | Wechselrichter und Programmiervorrichtung für denselben | |
WO2018036708A1 (de) | Gateway und verfahren zur anbindung eines datenquellensystems an ein it-system | |
DE10343963A1 (de) | Bereitstellung von Diagnoseinformationen | |
AT512963B1 (de) | Programmiervorlage für verteilte Anwendungsprogramme | |
DE202008017893U1 (de) | Vorrichtung zum Programmieren und/oder Konfigurieren einer Sicherheitssteuerung | |
EP2226693A1 (de) | Programmiergerät zur Projektierung einer Kommunikationsverbindung zwischen Automatisierungskomponenten in einer industriellen Automatisierungsanordnung | |
WO2010121798A1 (de) | System und verfahren zum verteilen von projektdaten einer sicherheitssteuerung einer automatisierten anlage auf die steuerungskomponenten | |
EP1643679B1 (de) | Konfiguration von Baugruppen in Automatisierungssystemen | |
EP2557464B1 (de) | Verfahren zum Betrieb eines Automatisierungssystems | |
EP2216696B1 (de) | Verfahren und Kommunikationssystem zum Konfigurieren eines einen Logikbaustein enthaltenden Kommunikationsmoduls | |
DE10055168A1 (de) | Industrielle Steuerung auf der Basis verteilbarer Technologischer Objekte | |
WO2002067064A2 (de) | Verfahren und vorrichtung zur durchführung der funktionalitätsprüfung sowie funktionalitätsprüfung eines technischen aggregates | |
EP1495381A1 (de) | Messeinrichtung f r die prozesstechnik und betriebsverfahren f r eine messeinrichtung | |
EP1550269A2 (de) | Kommunikationssystem | |
LU500646B1 (de) | Technik zur Bereitstellung einer Diagnosefunktionalität für eine auf einer speicherprogrammierbaren Steuerung basierenden Anwendung | |
DE102009017816A1 (de) | Verfahren zum Parametrieren von Betriebsmitteln | |
DE102008052913A1 (de) | Verfahren zur Projektierung einer busorientierten programmierbaren Elektroinstallation | |
DE10215121A1 (de) | Verfahren zum Projektieren und/oder Betreiben einer Automatisierungseinrichtung | |
EP1584998A1 (de) | Verfahren zur Projektierung einer busorientierten programmierbaren Elektroinstallation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM01 | Lapse because of not paying annual fees |
Effective date: 20200527 |