DE102009033967A1 - Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit resistenter Abspeicherung von Daten - Google Patents

Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit resistenter Abspeicherung von Daten Download PDF

Info

Publication number
DE102009033967A1
DE102009033967A1 DE102009033967A DE102009033967A DE102009033967A1 DE 102009033967 A1 DE102009033967 A1 DE 102009033967A1 DE 102009033967 A DE102009033967 A DE 102009033967A DE 102009033967 A DE102009033967 A DE 102009033967A DE 102009033967 A1 DE102009033967 A1 DE 102009033967A1
Authority
DE
Germany
Prior art keywords
programming
plc
programmable logic
variables
information exchange
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102009033967A
Other languages
English (en)
Inventor
Stephan Schultze
Wolfgang Paul
Stefan Riedmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102009033967A priority Critical patent/DE102009033967A1/de
Priority to US12/840,765 priority patent/US8612962B2/en
Publication of DE102009033967A1 publication Critical patent/DE102009033967A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13051Display status of I-O in intelligible, easy to understand language
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13142Debugging, tracing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13146Process image blocks have a relation to software function blocks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13148Object oriented programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Abstract

Die Erfindung betrifft ein Verfahren zum Programmieren und/oder zur Diagnose einer speicherprogrammierbaren Steuerung (SPS) mit wenigstens einem speicherprogrammierbaren Funktionsbaustein (2), wobei zum Programmieren ein vorgegebenes Programmiersystem verwendet wird, im Rahmen dieses Programmiersystems Variabeln vorgegeben werden und zum Programmieren Informationsaustauschabläufe verwendet werden, wobei Ergebnisse der Programmierung während wengistens eines Programmiermodus über eine Ausgabeeinrichtung ausgegeben werden und eingegebene Informationen wenigstens teilweise dauerhaft abgespeichert werden.

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Programmieren und zur Diagnose einer speicherprogrammierbaren Steuerung (SPS). Derartige Steuerungen werden in der Automatisierung verwendet, um in Maschinen und Anlagen Verfahrensabläufe zu steuern bzw. um einzelne Antriebe dieser Anlagen anzusteuern. Genauer kann die vorliegende Erfindung im Rahmen des Engineerings von Automationsgeräten bzw. -verbünden, die eine speicherprogrammierbare Steuerung beinhalten, verwendet werden. Beim Programmieren derartiger Steuerungen ist es bekannt, einen bestimmten Fehlersuchmodus (Debugmodus) zur Verfügung zu stellen, bei dem Ein- und Ausgänge mittels einer so genannten Online-Statusanzeige als Zahlenwerte jedoch ohne Bezug zur logischen Funktion der Funktionsbausteine dargestellt werden. Damit ist hier nur eine Darstellung von Zahlenwerten möglich, jedoch keine aufbereitete Darstellung der Funktionalität bzw. auch keine übersichtliche Darstellung.
  • Zum Programmieren derartiger SPS-Steuerungen werden im Stand der Technik SPS Programmiersysteme verwendet. Die Programmierung von speicherprogrammierbaren Steuerungen wird oftmals mittels Programmiersprachen nach IEC 61131-3 durchgeführt (beispielsweise durch ST: Strukturierter Text; FUP: Funktionsplan; KOP: Kontaktplan usw.). Dabei ist auch im Stand der Technik die SPS-Programmierung sehr flexibel und damit können auch im Wesentlichen beliebige Abläufe gesteuert werden.
  • Aus dem Stand der Technik bekannte SPS-Programmiersysteme weisen üblicherweise eine Benutzeroberfläche auf, mit deren Hilfe SPS-Programme und SPS-Funktionsbausteine (FB) in verschiedenen Sprachen bzw. Sprachdialekten erstellt werden können. Dabei ist es üblich, diese Funktionsbausteine zu instanziieren, was bedeutet, dass jeder FB bei seiner Verwendung wie eine Variable einzeln und eigens deklariert und definiert werden muss.
  • Wie oben erwähnt, steht zur Diagnose der erstellten Programme bzw. Funktionsbausteine der Debugmodus zur Verfügung, mit dessen Hilfe im Kontext der Programmieroberfläche der Zustand von SPS-Variablen visualisiert werden kann. Dies erfolgt dabei mit Hilfe einer Statusanzeige, die im Aussehen je nach verwendeter Programmiersprache unterschiedlich ist.
  • Auch ist es dabei üblich, dass sich die SPS-Programme und FBs in einem Deklarationsteil und einem Implementationsteil untergliedern, wobei in dem Deklarationsteil die SPS-Variablen und FB-Instanzen instanziiert werden (Daten) und im Implementationsteil die Funktionalität ausprogrammiert wird (Logik). Unter dem Begriff Instanziieren wird dabei ein Definieren oder Herstellen der jeweiligen Variablen und der Instanzen verstanden.
  • Im Rahmen des erwähnten Debugmodus innerhalb des Programmiersystems können Werte von SPS-Variablen gelesen, geändert und geforct (erzwungen) werden. Unter einem Forcen versteht man dabei das dauerhafte Setzen einer Variablen auf einen vorgebbaren Wert. Weiterhin ermöglicht die erwähnte Statusanzeige im Kontext eines FBs es auch, FB-interne Werte darzustellen, die außerhalb des FBs nicht abrufbar sind. So können beispielsweise interne Zustände eines FBs dargestellt werden.
  • Aus der noch nicht veröffentlichten DE 10 2007 062 453.2 ist ein Verfahren zum Programmieren und/oder zur Diagnose einer speicherprogrammierbaren Steuerung bekannt. Dabei werden Ergebnisse während eines Programmiermodus über eine Anzeigeeinrichtung ausgegeben und die zum Programmieren verwendeten Informationsaustauschabläufe stehen als vordefinierte Informationsaustauschabläufe eines speicherprogrammierbaren Funktionsbausteins zur Verfügung. Damit beschreibt die DE 10 2007 062 453.2 eine Darstellbarkeit von einer dialogbasierten Unterstützung bei der SPS-Programmierung sowie eine Optimierung von Programmparametern. Der Gegenstand der DE 10 2007 062 453.2 , eingereicht am 22.12.2007 beim DPMA durch die vorliegende Anmelderin, wird hiermit durch Bezugnahme vollständig zum Gegenstand auch der vorliegenden Patentanmeldung gemacht.
  • Im Falle 10 2007 062 453.2 tritt jedoch teilweise das Problem auf, dass dort beispielsweise eine Programmierung im Offline-Betrieb nicht möglich ist und die SPS-Variablen nicht änderbar sind. Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die Programmierbarkeit für speicherprogrammierbare Steuerungen zu verbessern. Dies wird erfindungsgemäß durch ein Verfahren nach Anspruch 1 und einer Vorrichtung nach Anspruch 9 erreicht. Vorteilhafte Ausführungsformen und Weiterbildungen sind Gegenstand der Unteransprüche.
  • Bei einem erfindungsgemäßen Verfahren zum Programmieren und/oder zur Diagnose einer speicherprogrammierbaren Steuerung mit wenigstens einem speicherprogrammierbaren Funktionsbaustein wird zum Programmieren ein vorgegebenes Programmiersystem verwendet und im Rahmen dieses Programmiersystems werden Variablen vorgegeben und zum Programmieren weitere Informationsaustauschabläufe verwendet. Erfindungsgemäß werden Ergebnisse der Programmierung während wenigstens eines Programmiermodus über eine Ausgabeeinrichtung ausgegeben und eingegebene Informationen wenigstens teilweise dauerhaft abgespeichert.
  • Im Falle der DE 10 2007 062 453.2 war keine persistente Speicherung von Daten vorgesehen. Es wird damit vorgeschlagen, bestimmte Änderungen persistent, d. h. dauerhaft zu gestalten und dies insbesondere, wenn eine graphische oder textuelle Unterstützung bei der Programmierung von SPS-Programmen bzw. Optimierung von Programmparametern d. h. insbesondere von Ein- und/oder Ausgängen von SPS-Funktionsbausteinen eingesetzt wird. Die vorliegende Erfindung dient dabei insbesondere für das Engineering von Automationsgeräten bzw. Verbünden, die eine speicherprogrammierbare Steuerung beinhalten. Bevorzugte Anwendungsgebiete sind dabei Gebiete der Werkzeugtechnik, der Verpackungstechnik, der Produktionstechnik und dergleichen.
  • Durch die erfindungsgemäße Vorgehensweise wird damit eine Persistenz von durchgeführten Änderungen auch nach einem Reset oder nach einem neuen Booten erreicht. Im Gegensatz zum Stand der Technik sind damit durch Funktionsbausteindialoge eingefügte Änderungen nicht nach dem nachfolgenden Ausschalten verloren und müssen auch nicht von einem SPS-Programmierer manuell in das SPS-Programm eingepflegt werden.
  • Unter dem Begriff Persistenz wird eine dauerhafte Speicherung eines Zustands einer SPS-Instanz, insbesondere inklusive der durchgeführten Änderungen, verstanden.
  • Bei einem vorteilhaften Verfahren sind die besagten Informationsaustauschabläufe dem Funktionsbaustein zugeordnet und stehen als vordefinierte Informationsaustauschabläufe dieses speicherprogrammierbaren Funktionsbausteins zur Verfügung.
  • Bei einem weiteren vorteilhaften Verfahren sind die Ergebnisse der Programmierung durchgeführte Änderungen von Ein- oder Ausgängen des Funktionsbausteins und insbesondere durchgeführte Änderungen von Eingängen des Funktionsbausteins.
  • Bei einem weiteren vorteilhaften Verfahren wird mittels eines Informationsaustauschablaufs wenigstens eine Variable auf einen vorbestimmten Wert festgelegt oder auch der Wert der besagten Variable geändert.
  • Vorteilhaft wird das dauerhafte Abspeichern der eingegebenen Information durch eine Modifikation der Deklaration von Instanzen des Funktionsbausteins bewirkt. Bei diesem Verfahren werden die zu ändernden Parameter bzw. Variablen direkt beim Initialisieren eingelesen. Diese Vorgehensweise ist einerseits vergleichsweise einfach durchzuführen, andererseits ist jedoch eine derartige Änderung nur beim Aufruf oder am Anfang eines Prozesses möglich.
  • SPS-Programme bestehen in der Regel aus einem Deklarationsteil und einem Implementationsteil. Neben der Modifikation der Deklaration von FB-Instanzen kann auch der Implementationsteil modifiziert werden. Hierbei kann der zu modifizierende Abschnitt zum Beispiel eine eigene POU (Program Organization Unit (= Funktionsbaustein, Programm, Funktion)) zur Initialisierung der FB-Instanz sein. Neben einer eigenen Initialisierungs-POU kann auch ein durch geeignete Kommentare kenntlich gemachter Codeabschnitt zur Initialisierung der FB-Instanz verwendet werden, der dann entsprechend modifiziert wird.
  • Bei einem weiteren vorteilhaften Verfahren werden die Ergebnisse der Optimierung der Programmparameter in ein dauerhaftes Speichermedium gespeichert, von wo sie beim Programmstart oder während der Initialisierung des Programms wieder ausgelesen werden. Bei dieser Vorgehensweise wäre es beispielsweise möglich, dass eine Datenbank angelegt wird oder auch ein anderer persistenter Speicher vorgesehen ist. Diese Vorgehensweise erlaubt insbesondere auch Änderungen im Offline-Modus.
  • Bei einer weiteren vorteilhaften Ausführungsform werden wenigstens einige der Informationsaustauschabläufe ausgegeben. Dies bedeutet, dass diese Austauschabläufe dem Benutzer visualisiert werden können, damit dieser bequemer Änderungen durchführen kann. Vorteilhaft sind auch Ergebnisse der Programmierungen im Offline-Betrieb änderbar (was insbesondere durch Einsatz eines dauerhaften Speichermediums möglich ist.).
  • Die vorliegende Erfindung ist weiterhin auf eine Vorrichtung zum Programmieren und zur Diagnose einer speicherprogrammierbaren Steuerung mit wenigstens einem speicherprogrammierbaren Funktionsbaustein gerichtet, wobei zum Programmieren ein vorgegebenes Programmiersystem verwendbar ist und im Rahmen dieses Programmiersystems Variablen vorgegeben werden und zum Programmieren Informationsaustauschabläufe verwendet werden, wobei die Vorrichtung wenigstens eine Informationsausgabeeinheit aufweist, welche die Informationsaustauschabläufe wenigstens teilweise ausgibt. Erfindungsgemäß sind eingegebene Informationen wenigstens teilweise dauerhaft abgespeichert. Unter einem dauerhaften Abspeichern wird dabei insbesondere verstanden, dass die besagten Informationen nicht bei einem Reset des Systems oder bei einem erneuten Booten verloren gehen (z. B. nach einem Aus- und Wiedereinschalten), sondern wieder zur Verfügung stehen.
  • Bei einer vorteilhaften Ausführungsform weist die Vorrichtung wenigstens ein Speichermittel zum dauerhaften Abspeichern von Informationen auf. Dabei kann es sich beispielsweise um eine Datenbank handeln, aber auch um eine separate Speichereinheit. Es wäre jedoch auch möglich, dass die Informationen beim Initialisieren in der Deklaration oder im Implementationsteil vorgegeben werden (durch Übernahme in den SPS-Quellcode). Auch insoweit liegt eine persistente Speicherung dieser Informationen vor.
  • Weitere Vorteile und Ausführungsformen der vorliegenden Erfindung ergeben sich aus den beigefügten Zeichnungen:
  • Darin zeigen:
  • 1 Eine schematische Darstellung eines erfindungsgemäßen Verfahrens nach dem Stand der Technik;
  • 2 eine weitere Darstellung des aus dem Stand der Technik bekannten Verfahrens;
  • 3 eine weitere Darstellung des aus dem Stand der Technik bekannten Verfahrens;
  • 4 eine Darstellung zur Veranschaulichung eines erfindungsgemäßen Verfahrens; und
  • 5 eine weitere Darstellung zur Veranschaulichung des erfindungsgemäßen Verfahrens
  • 1 zeigt eine Darstellung eines Funktionsbausteins 2 dieser Funktionsbaustein weist dabei Eingänge 4 und Ausgänge 14 auf. Daneben ist ein Code 12 vorgesehen sowie ein Speicherbereich 6 für die Eingänge bzw. deren Variablen (VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT) sowie auch ein weiteres Speichermittel 8 für lokale Variablen des Funktionsbausteins FB. Das Bezugszeichen 12 bezieht sich auf einen Code des Funktionsbausteins.
  • Wie in 2 dargestellt, werden beim Aufruf eines Funktionsbausteins 2 zuerst die im Aufruf enthaltenen Eingangsvariablen – hier beispielsweise VAR_INPUT sowie VAR_IN_OUT (hierzu zählen auch Referenzvariablen d. h. Zeigervariablen) – in den internen Speicherbereich 6 des Funktionsbausteins 2 kopiert (Pfeil P1, Schritt I). In einem weiteren Schritt (Schritt II) wird der Funktionsbaustein Code 12 ausgeführt. In einem letzten Schritt (Pfeil P6, Schritt III) werden die Ausgänge mit den Daten der internen Variablen aufgefrischt (VAR_OUTPUT und VAR_IN_OUT).
  • Zu bemerken ist, dass im ersten Schritt auch nur ein Teil aller FB-Eingänge (genauer: VAR_INPUTs) im FB-Aufruf enthalten sein können, d. h. es wird auch nur ein Teil der vorhandenen internen FB-Variablen verändert.
  • Des Weiteren ist von Wichtigkeit, dass die internen FB-Variablen im FB-internen Speicher nur flüchtige Daten sind, diese werden beim nächsten Reset bzw. beim Einschalten der SPS neu mit ihren Datentyp abhängigen Defaultwerten bzw. mit den in der Deklaration hinterlegten Initialisierungswerten vorbesetzt, oder mit im SPS-Programm hinterlegten Initialwerten beschrieben. Genauer kann der ganze FB kann in einer sog. VAR_RETAIN Variablendeklaration instanziiert werden. Dadurch werden alle Variablen (Ein-/Ausgänge, sowie interne Variablen) in einem Retain-Datenspeicher abgelegt.
  • Ein Anwender kann jedoch – nachdem er Änderungen mittels FB-Dialogen durchgeführt hat – diese Änderungen manuell im SPS-Programm einpflegen. Hierzu kann er einerseits die Deklaration der FB-Instanzen verwenden, andererseits kann er bspw. einen speziellen Codeabschnitt zur Initialisierung von Variablen (und damit auch FB-interne Ein-/Ausgänge) verwenden und/oder die Variablen im normalen Programmablauf verändern.
  • Bei dem in der DE 10 2007 062 453.2 beschriebenen Verfahren werden zusätzlich die in 3 dargestellten Informationsaustauschabläufe bzw. Funktionsbausteinsdialoge 20 verwendet. Mit Hilfe dieser Informationsaustauschabläufe 20 ist eine Änderung der Variablen, dargestellt durch die Pfeile P7 und P8, möglich, und ein Lesen dieser Variablen aus dem Speicher 6, wie durch die Pfeile P9 und P10 angedeutet. Die Pfeile P2 und P3 zeigen die Wechselwirkung bei dem Einlesevorgang zwischen dem Speicherbereich 6 und dem FB-Code und die Pfeile P4 und P5 den Austausch zwischen dem FB-Code und dem Speicherbereich 8.
  • Die in der DE 10 2007 062 453.2 beschriebenen Dialoge zur Darstellung und Veränderung von FB-Ein-/Ausgangsvariablen verändern dabei dauerhaft nur die FB-Eingänge (VAR_INPUTs), die beim FB-Aufruf nicht mit angegeben sind, da diese ansonsten beim nächsten FB-Aufruf wieder überschrieben werden würden, d. h. die Dialoge können sinnvoll nur für die FB-Eingänge verwendet werden, die beim Aufruf nicht mit einem Wert oder einer Variablen beschaltet werden, da nur in diesem Fall die über die Dialoge eingestellten Werte nicht überschrieben werden.
  • In dem beschriebenen Stand der Technik sind daher alle mittels FB-Dialogen vorgenommenen Änderungen nicht persistent bzw. werden in der Regel nur im flüchtigen Speicher der SPS durchgeführt. Falls eine derartige Persistenz der Änderung notwendig ist, muss diese manuell von einem SPS-Programmierer eingepflegt werden. Weiterhin ist es bei der in 3 dargestellten Vorgehensweise nur möglich, die FB-Dialoge im Online-Fall zu verwenden (da sie auf Speicher der SPS-Runtime zugreifen).
  • Im Rahmen der Erfindung wird daher vorgeschlagen, dass ein Zustand dieser veränderten FB-Instanzen persistent speicherbar ist. Besonders vorteilhaft sind die besagten FB-Dialoge 20 auch in einem Offline-Fall verwendbar. So ist es insbesondere möglich, dass geänderte Werte in einer SPS-Variablendeklaration automatisch eingefügt bzw. verändert werden oder aber ein Initialisierungsprogramm generiert wird oder mittels einer Datenbank (zum Beispiel als Datei) die zu ändernden Werte gespeichert und bei einem Neustart eingelesen werden. Jede dieser Maßnahmen erlaubt damit eine dauerhafte Abspeicherung der Änderungen und damit insgesamt, die Programmierung zu vereinfachen.
  • 4 zeigt eine erste Maßnahme, um diese beschriebene Persistenz zu erreichen. In diesem Falle wird eine Modifikation der Deklaration von FB-Instanzen durchgeführt.
  • Jede SPS-Variable, und damit auch eine FB-Instanz, besitzt eine Stelle im SPS-Programmier-Tool, an der sie deklariert wird. Diese Stelle ist eindeutig, d. h. jede SPS-Variable kann an genau einer einzigen Stelle Initialisierungsdaten erhalten.
  • Diese Initialisierungsdaten werden von der Logik der FB-Dialoge bspw. beim Beenden der Dialoge oder durch eine Schaltfläche im Dialog in die Deklaration übernommen. Nach dem Ausloggen aus dem SPS-Laufzeitsystem wird die Deklaration der entsprechenden FB-Instanzen automatisch von der Logik der FB-Dialoge geändert. Anschließend ist das SPS-Programm vor dem nächsten Einloggen in das SPS-Laufzeitsystem neu zu compilieren.
  • In dem in 4 dargestellten rechten Fenster 22 wird damit eine Initialisierung der einzelnen Daten ermöglicht. Diese Initialisierung wird bei dem Start der SPS in den internen Speicher des Funktionsbausteins abgerufen. Damit wird bei dieser Ausgestaltung eine Speicherung der Daten über eine entsprechende Initialisierung der Funktionsbausteine aufgerufen. Damit ist hier eine Automatisierung der besagten Änderungen möglich.
  • 5 zeigt eine derartige automatisierte Änderung. Der linke Teil 24 zeigt dabei eine Deklaration vor der Veränderung. Der rechte Teil 26 zeigt die Deklaration nach der Veränderung der automatischen Codegenerierung. Im Einzelnen wurde hier eine Veränderung des Initialisierungswertes von „Setpoint” von 0.0 auf 15.0 durchgeführt. Im Stand der Technik wird diese Initialisierung von einem SPS-Programmierer selbstständig eingefügt. Wie in 5 dargestellt, wurde jedoch hier eine Deklaration nach einer Änderung durch die Logik der FB-Dialoge verändert.
  • Neben dem hier beschriebenen Verfahren ist es jedoch auch möglich, FB-Instanzen zu serialisieren d. h. einen Zustand von Objekten in ein persistentes Speichermedium zu speichern, wie zum Beispiel eine Datei oder einen nvRAM. Der umgekehrte Vorgang, d. h. die Wiederherstellung des Zustandes eines Objekts wird als Deserialisierung bezeichnet.
  • Serialiserung und Deserialiserung sind heute, insbesondere im Rahmen der Erstellung von PC Anwendungsprogrammen, gängige Verfahren zur Bereitstellung persistenter Objekte. Hierzu muss bei neuen Datentypen die Funktionalität zur Serialiserung bzw. Deserialiserung vom Programmierer selbst bereitgestellt werden. Alternativ kann auch auf Bibliotheken zurückgegriffen werden, die diese Funktionalität bereitstellen.
  • Bei SPS-Systemen wird bislang lediglich der Vorgang der Deserialisierung innerhalb des Initialisierungsteils des SPS-Programms verwendet, indem z. B. Maschinenparameter geladen werden.
  • Im Rahmen der vorliegenden Erfindung wird vorgeschlagen, dass die Logik zur Serialisierung und auch zur Deserialisierung automatisch bereitgestellt wird. Weiterhin ist es möglich, dass der SPS-Programmierer diese Funktionalität in seinem SPS-Programm nutzen kann. Weiterhin wird diese Serialisierung nicht nur von dem Objekt selbst, sondern auch von extern für das Objekt durch die FB-Dialoge ausgeführt. Daneben wäre es auch möglich, so genannte Retain-Variablen zu verwenden d. h. solche Variablen, die über (mehrere) Schritte des Programms hinweg aufrechterhalten werden.
  • Wird z. B. im Initialisierungs- und/oder zyklischen Teil des SPS-Programms an einen Eingang eines FBs eine Retain-Variable angeschlossen bzw. wird der FB immer mit derselben Retain-Variablen am entsprechenden Eingang aufgerufen, so kann anstatt der internen FB-Daten auch die angeschlossene Retain-Variable zur persistenten Speicherung verwendet werden.
  • Retain-Variablen sind per Definition persistente Variablen des SPS-Programmiersystems.
  • Die Schwierigkeit bei der Verwendung von Retain-Variablen liegt darin, dass der gesamte SPS-Programmcode nach Aufrufen des FBs durchsucht werden muss und dass jede angeschlossene Retain-Variable durch die FB-Dialoge verändert werden muss. Wird dieselbe Retain-Variable an verschiedenen FBs angeschlossen, erhält man ein schwer zu durchschauendes Verhalten.
  • Bei einem weiteren Verfahren ist es möglich, die persistenten Daten zusätzlich auf der Steuerung abzulegen. Dabei wäre es möglich, auf der Steuerung eine Datei zur Verfügung zu stellen, die zur Abspeicherung dieser Daten dient. Weiterhin wäre auch die Speicherung in einer global vorhandenen und per Definition persistenten SPS-Variable, insbesondere mit definiertem Namen und definierter Struktur, denkbar. Schließlich könnte auch eine Speicherung an einem festen Speicherbereich in der SPS mit einer definierten Struktur vorgenommen werden.
  • Die Datenbank beinhaltet dabei mindestens neben den zu initialisierenden Werten auch eine Referenz auf die FB-Instanz bzw. die zu ändernden FB-Eingänge, dies kann z. B. ein Adresszeiger oder der Variablenname selbst sein. In letzterem Falle muss eine Instanz existieren, die aus dem Variablennamen die entsprechende Speicherzelle ableiten kann (Adressauflösung anhand einer sog. Symboldatei). Die Adresse der Instanz wird vermutlich nicht ausreichen man benötigt Symbolinformationen für jede zu sichernde Variable.
  • Die Daten in der Datenbank/Datei werden dabei von den FB-Dialogen geschrieben und beim SPS-Start durch eine Routine ausgewertet, die dann die entsprechende Funktionalität der Vorbesetzung beinhaltet.
  • Weiterhin wäre es auch möglich, eine vordefinierte Initialisierungs-POU (zugeordnete Programmeinheiten) zu verwenden, welche die Initialisierungen von Variablen vornimmt. Diese POU kann beispielsweise einen definierten Namen besitzen und wird von den FB-Dialogen geparst bzw. entsprechende Zeilen werden geändert. Diese Variante erfordert jedoch, wie auch die Änderung der Deklaration, eine Neuübersetzung des SPS-Programms und ein Herunterladen in die SPS.
  • Weiterhin ist es auch möglich, dass die Funktionen zur Serialisierung und Deserialisierung automatisch bereitgestellt werden.
  • Unter Verwendung der FB-Dialoge kann eine Funktion (oder Aktion) derjenigen POU automatisch hinzugefügt werden, innerhalb derer die zu deserialisierende FB-Instanz deklariert ist. D. h., der SPS-Code wird durch die FB-Dialoge modifiziert. Innerhalb der automatisch hinzugefügten Funktion (oder Aktion) ist ein Code zum Wiederherstellen (deserialisieren) des Zustandes der FB-Instanz hinterlegt. Diese Funktion fügt der Anwender dem Initialisierungsteil seines SPS-Programms hinzu. Bei einem (Neu-)Start der SPS werden im Initialisierungsteil die wiederherzustellenden Daten aus einer Datei, dem nvRAM, einer Datenbank, oder einem Objekt, das Bestandteil der SPS-Laufzeitsystems ist, ausgelesen und der vorherige Zustand der FB-Instanz wieder hergestellt. Die FB-Dialoge wiederum können die vom Benutzer in den FB-Dialogen geänderten Werte in die Datei, das nvRAM, die Datenbankoder in das SPS-Objekt schreiben, so dass beim nächsten (Neu-)Start der SPS die geänderten Werte in der FB-Instanz vorliegen.
  • Grundsätzlich liegen die oben erwähnten Daten im Kontext des Speichers des FBs selbst vor. Dies bedeutet, dass sie prinzipiell nur im Online-Fall ausgelesen, angezeigt und verändert werden, d. h. dann, wenn die Oberfläche mit den FB-Dialogen mit der SPS verbunden ist. Mit Hilfe der beschriebenen Verfahren soll es ermöglicht werden, die Daten auch im Offline-Fall in den FB-Dialogen anzuzeigen und zu verändern.
  • Insoweit sind folgende Fälle zu unterscheiden, nämlich einerseits die oben erwähnte Deklaration bzw. Initialisierungs-POU (oder Initialisierungsabschnitt), und andererseits eine Datenbank auf der Steuerung bzw. die Verwendung von Retain-Variablen. Im Falle einer Änderung der Deklaration bzw. einer Initialisierungs-POU wird der entsprechende Codeteil des SPS-Programms geparst und die entsprechenden Variablenwerte werden in den FB-Dialogen dargestellt. Nachdem eine Änderung durchgeführt wurde, wird der entsprechende Codeteil modifiziert und muss jedoch, wie oben erwähnt, später noch neu übersetzt und in die SPS geladen werden.
  • Bei Verwendung einer Datenbank auf der Steuerung bzw. der Verwendung von Retain-Variablen kann eine Datenbank verwendet werden, die zunächst auf dem Rechner mit der Programmieroberfläche liegt. Die Werte dieser Datenbank können dann auch im Offline-Fall angezeigt und verändert werden. Beim nächsten Online-Gehen wird diese Datenbank mit den entsprechenden Datenbanken in der SPS synchronisiert.
  • Im Falle einer Datenbank in der SPS sind die Daten zu synchronisieren, indem beispielsweise diese auf einer auf der SPS vorhandene Datei überschrieben bzw. diese bei Nichtvorhandensein erzeugt wird. Falls keine Datenbank auf der SPS verwendet wird, werden die Daten in die entsprechenden Retain-Variablen geschrieben.
  • Sämtliche in den Anmeldungsunterlagen offenbarten Merkmale werden als erfindungswesentlich beansprucht, sofern sie einzeln oder in Kombination gegenüber dem Stand der Technik neu sind.
  • Bezugszeichenliste
  • 2
    Funktionsbaustein
    4
    Eingänge
    6
    Speicherbereich
    12
    Code
    14
    Ausgänge
    20
    FB-Dialoge
    22
    Fenster
    24
    linker Teil
    26
    rechter Teil
    P1–P10
    Pfeile
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • - DE 102007062453 [0007, 0007, 0007, 0010, 0034, 0035]
  • Zitierte Nicht-Patentliteratur
    • - IEC 61131-3 [0002]

Claims (10)

  1. Verfahren zum Programmieren und/oder zur Diagnose einer speicherprogrammierbaren Steuerung (SPS) mit wenigstens einem speicherprogrammierbaren Funktionsbaustein (2), wobei zum Programmieren ein vorgegebenes Programmiersystem verwendet wird, im Rahmen dieses Programmiersystems Variablen vorgegeben werden und zum Programmieren Informationsaustauschabläufe verwendet werden, dadurch gekennzeichnet, dass Ergebnisse der Programmierung während wenigstens eines Programmiermodus über eine Ausgabeeinrichtung ausgegeben werden und eingegebene Informationen wenigstens teilweise dauerhaft abgespeichert werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Informationsaustauschabläufe dem Funktionsbaustein (2) zugeordnet sind und als vordefinierte Informationsaustauschabläufe dieses speicherprogrammierbaren Funktionsbausteins zur Verfügung stehen.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Ergebnisse der Programmierung durchgeführte Änderungen von Ein- oder Ausgängen (4, 14) des Funktionsbausteins (2) sind.
  4. Verfahren nach wenigstens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass mittels eines Informationsaustauschablaufs (2) wenigstens eine Variable auf einen vorbestimmten Wert festgelegt wird.
  5. Verfahren nach wenigstens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass das dauerhafte Abspeichern der eingegebenen Informationen durch eine Modifikation der Deklaration von Instanzen des Funktionsbausteins und/oder eine Implementation (Codeabschnitt, Initialisierungs-POU) bewirkt wird.
  6. Verfahren nach wenigstens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass Ergebnisse der Programmierung in ein dauerhaftes Speichermedium gespeichert werden.
  7. Verfahren nach wenigstens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass wenigstens einige der Informationsaustauschabläufe ausgegeben werden.
  8. Verfahren nach wenigstens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass Ergebnisse der Programmierung auch im Offline-Betrieb änderbar sind.
  9. Vorrichtung zum Programmieren und/oder zur Diagnose einer speicherprogrammierbaren Steuerung (SPS) mit wenigstens einem speicherprogrammierbaren Funktionsbaustein (2), wobei zum Programmieren ein vorgegebenes Programmiersystem verwendbar ist, und im Rahmen dieses Programmiersystems Variabeln vorgegeben werden und zum Programmieren Informationsaustauschabläufe verwendet werden, mit wenigstens einer Informationsausgabeeinheit, welche die Informationsaustauschabläufe wenigstens teilweise ausgibt, dadurch gekennzeichnet, dass eingegebene Informationen wenigstens teilweise dauerhaft abgespeichert sind.
  10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass die Vorrichtung ein Speichermittel zum dauerhaften Abspeichern von Informationen aufweist.
DE102009033967A 2009-07-21 2009-07-21 Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit resistenter Abspeicherung von Daten Ceased DE102009033967A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102009033967A DE102009033967A1 (de) 2009-07-21 2009-07-21 Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit resistenter Abspeicherung von Daten
US12/840,765 US8612962B2 (en) 2009-07-21 2010-07-21 Method for programming a memory-programmable controller with resistant storage of data in memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009033967A DE102009033967A1 (de) 2009-07-21 2009-07-21 Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit resistenter Abspeicherung von Daten

Publications (1)

Publication Number Publication Date
DE102009033967A1 true DE102009033967A1 (de) 2011-01-27

Family

ID=43383912

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009033967A Ceased DE102009033967A1 (de) 2009-07-21 2009-07-21 Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit resistenter Abspeicherung von Daten

Country Status (2)

Country Link
US (1) US8612962B2 (de)
DE (1) DE102009033967A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904373B2 (en) 2011-08-30 2014-12-02 Samir Gehani Method for persisting specific variables of a software application
WO2014095947A1 (en) * 2012-12-21 2014-06-26 Koninklijke Philips N.V. Electronic devices for, a system for and a method of controlling one of the electronic devices
CN104461155A (zh) * 2014-12-24 2015-03-25 京东方科技集团股份有限公司 一种内嵌式触控显示屏及显示装置
JP6866663B2 (ja) * 2016-02-05 2021-04-28 富士電機株式会社 プログラマブルコントローラシステム、プログラマブルコントローラ、支援装置、hci装置、二重化プログラマブルコントローラシステム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999028794A2 (de) * 1997-11-26 1999-06-10 Moeller Gmbh Kleinsteuerung
WO2000072097A2 (de) * 1999-05-25 2000-11-30 Siemens Aktiengesellschaft Verfahren zur erzeugung eines steuerbausteins und steuerbaustein
DE19946739A1 (de) * 1999-09-29 2001-05-10 Siemens Ag Verfahren zum Erstellen eines Anwendungsprogrammes für ein Automatisierungsgerät
DE10128158A1 (de) * 2001-06-11 2003-01-02 Siemens Ag Programmierwerkzeug und Programmierverfahren
DE10242916A1 (de) * 2002-09-16 2004-03-25 Siemens Ag System zur Bereitstellung eines Standard-Frameworks für Automatisierungsgeräte
DE10327614A1 (de) * 2003-06-18 2005-01-20 Siemens Ag Vorrichtung und Verfahren zur Programmierung und/oder Ausführung von Programmen für industrielle Automatisierungssysteme
DE102007062453A1 (de) 2007-12-22 2009-06-25 Robert Bosch Gmbh Verfahren zum Programmieren und/oder Diagnostizieren einer speicherprogrammierbaren Steuerung

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276811A (en) * 1989-06-30 1994-01-04 Icom, Inc. Method for emulating programmable logic controller by exchanging information between debug program which emulates I/O devices and ladder logic program
FR2805425B1 (fr) * 2000-02-21 2003-09-19 Schneider Automation Systeme de communication entre un automate programmable serveur et une machine cliente
US7054694B2 (en) * 2001-05-30 2006-05-30 Yokogawa Electric Corporation Process control system
DE10251503A1 (de) * 2002-11-04 2004-06-09 Endress + Hauser Flowtec Ag, Reinach Verfahren zur Offline-Parametrierung eines Feldgerätes der Prozessautomatisierungstechnik
WO2006083876A2 (en) * 2005-02-01 2006-08-10 Intelliject, Llc Devices, systems, and methods for medicament delivery
US7881812B2 (en) * 2005-09-29 2011-02-01 Rockwell Automation Technologies, Inc. Editing and configuring device
US7574417B1 (en) * 2006-09-28 2009-08-11 Rockwell Automation Technologies, Inc. Self configuration of embedded historians
JP4853370B2 (ja) * 2007-04-24 2012-01-11 株式会社明電舎 プログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法
JP2010049484A (ja) * 2008-08-21 2010-03-04 Okuma Corp プログラマブル・ロジック・コントローラのプログラム編集装置
US8352905B2 (en) * 2008-09-30 2013-01-08 Rockwell Automation Technologies, Inc. Application builder for industrial automation
US8255875B2 (en) * 2008-09-30 2012-08-28 Rockwell Automation Technologies, Inc. Application builder for industrial automation
US8359573B2 (en) * 2008-09-30 2013-01-22 Rockwell Automation Technologies, Inc. Application builder for industrial automation
US20100082133A1 (en) * 2008-09-30 2010-04-01 Ics Triplex Isagraf Inc. Application builder for industrial automation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999028794A2 (de) * 1997-11-26 1999-06-10 Moeller Gmbh Kleinsteuerung
WO2000072097A2 (de) * 1999-05-25 2000-11-30 Siemens Aktiengesellschaft Verfahren zur erzeugung eines steuerbausteins und steuerbaustein
DE19946739A1 (de) * 1999-09-29 2001-05-10 Siemens Ag Verfahren zum Erstellen eines Anwendungsprogrammes für ein Automatisierungsgerät
DE10128158A1 (de) * 2001-06-11 2003-01-02 Siemens Ag Programmierwerkzeug und Programmierverfahren
DE10242916A1 (de) * 2002-09-16 2004-03-25 Siemens Ag System zur Bereitstellung eines Standard-Frameworks für Automatisierungsgeräte
DE10327614A1 (de) * 2003-06-18 2005-01-20 Siemens Ag Vorrichtung und Verfahren zur Programmierung und/oder Ausführung von Programmen für industrielle Automatisierungssysteme
DE102007062453A1 (de) 2007-12-22 2009-06-25 Robert Bosch Gmbh Verfahren zum Programmieren und/oder Diagnostizieren einer speicherprogrammierbaren Steuerung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEC 61131-3

Also Published As

Publication number Publication date
US20110022785A1 (en) 2011-01-27
US8612962B2 (en) 2013-12-17

Similar Documents

Publication Publication Date Title
EP1723513B1 (de) Verfahren zur konfiguration eines computerprogramms
DE69720821T2 (de) Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle
EP2009525B1 (de) Testvorrichtung zum Testen wenigstens eines elektronischen Steuerungssystems und Verfahren dazu
EP2330469B1 (de) Verfahren und Entwicklungsumgebung zur Erzeugung eines ausführbaren Gesamtsteuerungsprogramms
WO2007006671A1 (de) Verfahren und softwaresystem zur konfiguration eines modularen systems
EP2407842B1 (de) Verfahren zur Inbetriebnahme von Maschinen oder Maschinen einer Maschinenserie und Projektierungssystem
DE102017211433A1 (de) Verfahren zum Durchführen eines Funktionstests eines Steuergeräts in einem Hardware-in-the-Loop-Test, HIL-Test, sowie HIL-Prüfstand und Steuergerät
DE102016011020A1 (de) Kontaktplan-Überwachungsvorrichtung mit der Fähigkeit, zusätzlich eine Betriebssituation einer CNC in einem Kommentar anzuzeigen
DE102009033967A1 (de) Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit resistenter Abspeicherung von Daten
DE102005025520A1 (de) Verfahren zur modellbasierten Diagnose eines mechatronischen Systems
DE102010039021B4 (de) Verfahren zur Rekonfiguration von Softwareparametern in einem Mikrocontroller sowie Mikrocontroller und Steuergerät
DE102018111930A1 (de) Verfahren zum Bearbeiten eines Softwareprojekts
DE102017215044B4 (de) Verfahren zum Wechseln auf eine Firmware-Version auf einem elektrischen Steuergerät für ein Antriebssystem, elektrisches Steuergerät und Antriebssystem
EP1862901A1 (de) Eingabe von Programm-Anweisungen bei imperativen Programmiersprachen
DE10211426B4 (de) Verfahren zur Durchführung eines Updates von Software-Programmen oder Software-Programmteilen
EP2367084A1 (de) Verfahren für die Konfigurierung einer Steuerungseinrichtung einer industriellen Automatisierungsanordnung und Komponente für eine industrielle Automatisierungsanordnung
WO1997009661A1 (de) Verfahren zum erzeugen und abspeichern eines aus befehlen bestehenden anwenderprogramms für eine speicherprogrammierbare steuerung und betriebsverfahren für eine speicherprogrammierbare steuerung
EP1947567A2 (de) Verfahren und Vorrichtung zum automatischen Testen von modellbasierten Funktionen
DE102020127824A1 (de) Integrierte Simulationscode- und Produktionscodegenerierung
DE102017214610B4 (de) Verfahren zum Überprüfen von zumindest einer Fahrzeugfunktion sowie Prüfvorrichtung
EP1505399B1 (de) Verfahren zum Erzeugen von Testdaten zum Austesten der Funktionsfähigkeit einer datenverarbeitenden Schaltung
EP1299802B1 (de) Elektronisches system zur entwicklung von software und ein verfahren zum zugriff auf interne daten der software
DE102004039884A1 (de) Verfahren und System zur Beschreibung und Ausführung automatischer Tests
DE102010012307B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verfahrensablaufs für eine speicherprogrammierbare Steuerung
DE102012111665A1 (de) Verfahren zum Betreiben eines Feldbusprotokoll-fähigen Feldgerätes

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R016 Response to examination communication
R003 Refusal decision now final