DE102007046965A1 - Dynamische Modifikationsfunktionsblöcke zur Verwendung in einem Prozesssteuerungssystem - Google Patents

Dynamische Modifikationsfunktionsblöcke zur Verwendung in einem Prozesssteuerungssystem Download PDF

Info

Publication number
DE102007046965A1
DE102007046965A1 DE102007046965A DE102007046965A DE102007046965A1 DE 102007046965 A1 DE102007046965 A1 DE 102007046965A1 DE 102007046965 A DE102007046965 A DE 102007046965A DE 102007046965 A DE102007046965 A DE 102007046965A DE 102007046965 A1 DE102007046965 A1 DE 102007046965A1
Authority
DE
Germany
Prior art keywords
function block
machine
block
dynamic
function
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.)
Pending
Application number
DE102007046965A
Other languages
English (en)
Inventor
Marina Austin Sokolova
Marty J. Cedar Park Lewis
Larry Oscar Round Rock Jundt
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.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
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 Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of DE102007046965A1 publication Critical patent/DE102007046965A1/de
Pending legal-status Critical Current

Links

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
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
    • 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/13004Programming 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/13101Function block instance, only one function block exists, several instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

Es werden dynamische Modifikationsfunktionsblöcke zur Verwendung in einem Prozesssteuerungssystem offenbart. Gemäß einem Aspekt wird ein beispielhafter Funktionsblock auf einem maschinenlesbaren Medium zur Verwendung in einem Prozesssteuerungssystem gespeichert. Der beispielhafte Funktionsblock umfasst einen Basisfunktionsblock, der eine Maschine veranlasst, einen Algorithmus auszuführen, der mit dem Prozesssteuerungssystem assoziiert ist, und wenigstens ein Attribut, das sich im Basisfunktionsblock befindet und das die Maschine veranlasst, wenigstens einen dynamischen Modifikationsfunktionsblock zu löschen oder zu instantiieren.

Description

  • GEBIET DER OFFENBARUNG
  • Die vorliegende Offenbarung betrifft im Allgemeinen ein Prozesssteuerungssystem und insbesondere dynamische Modifikationsfunktionsblöcke zur Verwendung in einem Prozesssteuerungssystem.
  • HINTERGRUND
  • Prozesssteuerungssysteme, wie beispielsweise jene, die in chemischen, Erdöl- oder anderen Prozessen verwendet werden, umfassen normalerweise eine oder mehr zentrale Prozesssteuereinrichtungen, die über analoge, digitale oder kombinierte Analog/Digitalbusse mit wenigstens einem Host- oder Bediener-Arbeitsplatz und mit einer oder mehr Feldvorrichtungen kommunikativ verbunden sind. Feldvorrichtungen, die zum Beispiel Gerätesteuerungen, Ventile, Ventilstellungsregler, Schalter und Sender (z.B. Temperatur-, Druck- und Durchflussfühler) sein können, führen Funktionen innerhalb des Prozesssteuerungssystems aus, wie beispielsweise Öffnen oder Schließen von Ventilen und Messen von Prozessparametern. Eine zentrale Prozesssteuereinrichtung empfängt Signale, die Prozessmessungen darstellen, die von den Feldvorrichtungen durchgeführt wurden, und/oder andere Informationen in Bezug auf die Feldvorrichtungen, verwendet diese Informationen, um eine Steuerroutine zu implementieren, und erzeugt Steuersignale, die über die Busse oder andere Übertragungsleitungen an die Feldvorrichtungen übermittelt werden, um den Betrieb des Prozesssteuerungssystems zu steuern.
  • In letzter Zeit gibt es in der Prozesssteuerungsindustrie die Tendenz zur Verwendung von digitaler Steuerung und Kommunikation zwischen Feldvorrichtungen, Steuereinrichtungen und anderen Einheiten, die ein Prozesssteuerungssystem bilden. Als Teil dieser Tendenz zur digitalen Steuerung und Kommunikation wurde eine Anzahl von digitalen, sowie kombinierten analogen und digitalen offenen Standardübertragungsprotokollen entwickelt, um die Zusammenarbeit zwischen Feldvorrichtungen und Steuereinrichtungen zu ermöglichen. Zum Beispiel werden solche Übertragungsprotokolle, wie etwa HART®, PROFIBUS, WORLDFIP, Device-Net, CANTM und FOUNDATION Fieldbus (im Folgenden „Fieldbus"), heutzutage sehr häufig verwendet, um schnellere und informationsreichere Übertragungen zwischen Feldvorrichtungen und Steuereinrichtungen zu ermöglichen. Insbesondere können die zuvor erwähnten Übertragungsprotokolle es ermöglichen, dass neben Steuerparametern und anderen steuerungsbezogenen Informationen oder Daten zum Beispiel Konfigurationsinformationen, sowie andere Typen von Informationen zwischen Feldvorrichtungen und zwischen Feldvorrichtungen und Steuereinrichtungen übertragen werden. Außerdem ermöglichen die Standardisierung und die offene Beschaffenheit (d.h. nicht urheberrechtlich geschützte Beschaffenheit) der mit diesen Übertragungsprotokollen assoziierten Standards eine problemlose Integration von Vorrichtungen verschiedener Hersteller in ein einzelnes Prozesssteuerungssystem, wodurch der Austausch von Vorrichtungen vereinfacht wird, eine bessere Auswahl von Feldvorrichtungen zur Implementierung einer bestimmten Anwendung ermöglicht wird usw.
  • Viele der zuvor erwähnten digitalen oder kombinierten analogen und digitalen Übertragungsprotokolle ermöglichen die Implementierung von verteilten Steuerschemas. Insbesondere stellen diese Übertragungsprotokolle häufig einen Rahmen oder eine Architektur bereit, die Feldvorrichtungen befähigt, direkt miteinander zusammenzuarbeiten, um eine Prozesssteuerungsanwendung oder einen Teil einer Prozesssteuerungsanwendung ohne das erforderliche Eingreifen einer zentralen Prozesssteuereinrichtung auszuführen. Solch eine Dezentralisierung der Ausführung der Steuerung kann die Entwicklung von Prozesssteuerroutinen vereinfachen, den mit einer zentralen Steuereinrichtung verbundenen Kommunikations- und Verarbeitungsaufwand verringern, die Geschwindigkeit erhöhen, mit der Informationen durch Vorrichtungen, welche die Informationen benötigen, empfangen werden, und demnach die Fähigkeit der empfangenden Vorrichtungen, schneller geeignete Maßnahmen auf der Basis der empfangenen Informationen zu ergreifen, verbessern usw.
  • Einige der digitalen oder kombinierten analogen und digitalen Übertragungsprotokolle, die verteilte Steuerung ermöglichen, verwenden einen Basisbaustein oder ein Softwarekonstrukt, das allgemein als Funktionsblock bezeichnet wird. Im Allgemeinen können Funktionsblöcke (müssen aber nicht) unter Verwendung einer höheren Maschinensprache (z.B. C, C++ usw.) erzeugt werden, die, wenn (z.B. über einen Prozessor) ausgeführt, einen oder mehr Algorithmen oder Folgen von Operationen ausführen. Es gibt mehrere Typen von Funktionsblöcken, wobei jeder Funktionsblocktyp normalerweise einen spezifischen Teil oder Abschnitt einer Prozesssteuerroutine implementiert. Im Allgemeinen implementieren Funktionsblöcke Eingabe-, Steuer-, Ausgabe-, sowie andere Funktionen innerhalb eines Prozesssteuerungssystems und können in Steuereinrichtungen und/oder Feldvorrichtungen, die über das ganze Prozesssteuerungssystem verteilt sind, heruntergeladen und instantiiert werden. Zum Beispiel kann ein Analogeingang- oder AI-Funktionsblock in einem Fühler oder einem Sender instantiiert werden, der so konfiguriert ist, dass er einen Prozessparameter (z.B. eine Temperatur, einen Durchfluss usw.) misst, ein Proportional-Integral-Derivativ- oder PID-Funktionsblock kann in einer Steuereinrichtung instantiiert werden, die mit dem Fühler oder Sender, der den AI-Funktionsblock ausführt, in Verbindung stehen kann, ein Analogausgang- oder AO-Funktionsblock kann in einer anderen Feldvorrichtung, wie beispielsweise einem Ventil, instantiiert werden, die auf die Steuereinrichtung anspricht und die einen oder mehr vom AI-Funktionsblock gemessene Parameter beeinflusst. Demnach können auf diese Weise Funktionsblöcke verschiedenen Typs in Feldvorrichtungen und Steuereinrichtungen instantiiert und über Übertragungswege entlang eines Datenbusses, -netzes oder anderer Kommunikationsmedien miteinander verbunden werden, um Regelkreisfunktionen und/oder alle anderen gewünschten Funktionen eines Prozesssteuerungsschemas auszuführen.
  • In der Vergangenheit waren Funktionsblöcke im Allgemeinen von statischer Beschaffenheit, weshalb das Verhalten der Blöcke oder die von den Blöcken durchgeführten Operationen nicht leicht geändert werden konnten, sobald sie in einer Steuereinrichtung oder einer anderen Prozesssteuervorrichtung konfiguriert und instantiiert waren. Folglich musste bei einer Aufrüstung, Erweiterung oder sonstigen Änderung des Betriebs eines Funktionsblocks normalerweise ein neuer Funktionsblock erzeugt werden. Um einen neuen Funktionsblock in einem Prozesssteuerungssystem zu installieren und zu verwenden, musste das Prozesssteuerungssystem oder wenigstens ein Teil davon normalerweise außer Betrieb gesetzt und neu konfiguriert werden (z.B. der neue Funktionsblock musste kompiliert und auf eine Steuereinrichtung, Feldvorrichtung(en) usw. heruntergeladen werden). Außerdem ist es in Fällen, in welchen Funktionsblöcke Erweiterungen oder Fähigkeiten umfassen können, die in einer Prozesssteuerungsanwendung nicht gebraucht, selten verwendet oder nur vorübergehend benötigt werden, im Allgemeinen nicht effizient (z.B. hinsichtlich der Systemressourcen, wie beispielsweise Speicher-, Prozessornutzung usw.), Funktionsblöcke statisch zu instantiieren, die alle möglichen Erweiterungen oder Fähigkeiten enthalten, ungeachtet dessen, ob diese Erweiterungen oder Fähigkeiten tatsächlich benötigt werden oder wie oft diese Erweiterungen oder Fähigkeiten durch die Vorrichtungen verwendet werden, in welchen die Funktionsblöcken gespeichert und/oder instantiiert sind und ausgeführt werden.
  • KURZDARSTELLUNG
  • Gemäß einem Aspekt umfasst ein Prozesssteuerungssystem, das eine Mehrzahl von Feldvorrichtungen steuern kann, einen beispielhaften Funktionsblock, der einen Basisfunktionsblock umfasst, der so ausgelegt ist, dass er einen dynamischen Modifikationsfunktionsblock instantiiert oder löscht. Insbesondere umfasst ein beispielhaftes Verfahren zum Modifizieren des Betriebs des Funktionsblocks das Ablegen des Funktionsblocks in einem Speicher, das das Ablegen wenigstens eines modifizierbaren Attributs, das mit dem Basisfunktionsblock verbunden ist, im Speicher umfasst. Das beispielhafte Verfahren umfasst auch das Setzen des modifizierbaren Attributs auf einen ersten Wert, um einen dynamischen Modifikationsfunktionsblock im Speicher zu instantiieren, oder auf einen zweiten Wert, um einen dynamischen Modifikationsfunktionsblock aus dem Speicher zu löschen. Außerdem umfasst das beispielhafte Verfahren das Setzen des modifizierbaren Attributs, nachdem der Basisfunktionsblock kompiliert und im Speicher abgelegt wurde.
  • Gemäß einem anderen Aspekt wird ein beispielhafter Funktionsblock auf einem maschinenlesbaren Medium zur Verwendung in einem Prozesssteuerungssystem gespeichert. Der beispielhafte Funktionsblock umfasst einen Basisfunktionsblock, der eine Maschine veranlasst, einen Algorithmus auszuführen, der mit dem Prozesssteuerungssystem assoziiert ist, und wenigstens ein Attribut, das sich im Basisfunktionsblock befindet und das die Maschine veranlasst, wenigstens einen dynamischen Modifikationsfunktionsblock zu instantiieren oder zu löschen. Der dynamische Modifikationsfunktionsblock ist so konfiguriert, dass er einen Algorithmus ausführt, um die Fähigkeit des Basisfunktionsblocks zu ändern, aufzurüsten oder zu erweitern.
  • Gemäß einem weiteren Aspekt ist ein beispielhafter dynamischer Modifikationsfunktionsblock eines Funktionsblocks so ausgelegt, dass er eine Maschine veranlasst, einen Basisfunktionsblock des Funktionsblocks in einer Prozesssteuerroutine zu modifizieren. Der beispielhafte dynamische Modifikationsfunktionsblock wird auf der Basis von wenigstens einem Attribut des Basisfunktionsblocks instantiiert oder gelöscht. Außerdem weist der Funktionsblock eine Schnittstelle auf, um Daten zwischen dem Basisfunktionsblock und dem dynamischen Modifikationsfunktionsblock zu übermitteln.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das ein beispielhaftes Prozesssteuerungssystem veranschaulicht.
  • 2 ist ein Blockdiagramm eines beispielhaften Systems, das verwendet werden kann, um die hierin beschriebenen beispielhaften Herstellungsgeräte, -verfahren und -Produkte zu implementieren.
  • 3 ist ein Blockdiagramm eines beispielhaften Funktionsblocks, der einen beispielhaften Basisfunktionsblock, einen Modifikationsfunktionsblock und dynamische Modifikationsfunktionsblöcke umfasst.
  • 4 ist ein Blockdiagramm einer beispielhaften Tabelle zur Abbildung von dynamischen Modifikationsfunktionsblocken.
  • 5 ist ein Blockdiagramm einer beispielhaften Instantiierung eines Funktionsblocks mit einem dynamischen Modifikationsfunktionsblock.
  • 6 ist ein Blockdiagramm eines beispielhaften Namensraums und Index eines Funktionsblocks mit einem dynamischen Modifikationsfunktionsblock.
  • 7 ist ein Ablaufdiagramm eines beispielhaften Prozesses, der verwendet werden kann, um die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke zu instantiieren und/oder zu löschen.
  • 8 ist eine schematische Darstellung eines beispielhaften Verarbeitungssystems, das verwendet werden kann, um die hierin beschriebenen Verfahren und Geräte zu implementieren.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es ist zu erwähnen, dass, obwohl im Folgenden beispielhafte Geräte und Systeme beschrieben werden, die neben anderen Komponenten Software und/oder Firmware umfassen, die auf Hardware ausgeführt werden, solche Systeme lediglich der Veranschaulichung dienen und nicht als beschränkend anzusehen sind. Zum Beispiel wird in Betracht gezogen, dass irgendeine oder alle dieser Hardware-, Software- und Firmwarekomponenten ausschließlich in Hardware, ausschließlich in Software oder in irgendeiner Kombination von Hardware und Software verwirklicht werden könnten. Demgemäß ist für Durchschnittsfachleute offensichtlich, dass, obwohl im Folgenden beispielhafte Geräte und Systeme beschrieben werden, die bereitgestellten Beispiele nicht die einzige Art und Weise darstellen, solche Geräte und Systeme zu implementieren.
  • Ein Ansatz, um der Art und Weise, in welcher die Fähigkeiten und der Betrieb von Funktionsblöcken modifiziert, erweitert, ausgebaut, aufgerüstet oder auf eine andere Weise geändert werden können, mehr Flexibilität zu verleihen, ist in US-Patent Nr. 6,510,351 beschrieben, dessen gesamte Offenbarung durch Bezugnahme hierin aufgenommen wird. Wie in diesem Patent dargelegt, können der Betrieb oder die Fähigkeiten eines Basis- oder Ursprungsfunktionsblocks durch Bereitstellen von Zeigern (z.B. Speicheradressen) im Basisfunktionsblock derart geändert werden, dass die Zeiger so gesetzt werden können, dass sie die Steuerung veranlassen, sich zu einem oder mehr Modifikationsfunktionsblöcke zu verzweigen. In einigen Fällen kann ein Basisfunktionsblock mehrere Zeiger enthalten, um eine Verzweigung zu verschiedenen Abschnitten (z.B. verschiedenen Algorithmen oder Routinen) eines einzelnen Modifikationsfunktionsblocks zu bewirken und/oder eine Verzweigung zu mehreren verschiedenen Funktionsblöcken zu bewirken. Demnach kann die Ausführung eines Basisfunktionsblocks zur Verzweigung zu einem Modifikationsfunktionsblock, der Ausführung von Operationen im Zusammenhang mit diesem Modifikationsfunktionsblock und der anschließenden Rückgabe der Kontrolle an den Basisfunktionsblock durch den Modifikationsfunktionsblock führen. Bestimmte Daten und/oder Parameter können zwischen den Basis- und Modifikationsfunktionsblöcken übermittelt werden, um den Modifikationsfunktionsblock zu befähigen, seine Operationen durchzuführen und/oder die Art und Weise zu ändern, in welcher der Basisfunktionsblock arbeitet oder Informationen verarbeitet.
  • Der zuvor erwähnte Modifikationsfunktionsblock ist jedoch nicht voll dynamisch, da der Modifikationsfunktionsblock erzeugt und instantiiert wird, wenn der Funktionsblock erzeugt wird, und demnach wird der lokale Speicher verbraucht, der zum Speichern des Basisfunktionsblocks und des Modifikationsfunktionsblocks erforderlich ist. Das heißt, die Erzeugung des Funktionsblocks erfordert die Erzeugung des Modifikationsfunktionsblocks, unabhängig davon, ob die Erweiterungen oder Änderungen, die durch den Modifikationsfunktionsblock bereitgestellt werden, verwendet werden oder nicht. Außerdem begrenzt der Datenaustausch über die Schnittstelle durch Parameterübergabe die Menge von Daten, die ausgetauscht werden können, und erhöht die Anzahl von Zyklen und infolgedessen die Zeit, die zur Übermittlung von Daten benötigt wird. Ferner stellt der Modifikationsfunktionsblock keine Parameter bereit, die außerhalb des Modifikationsfunktionsblocks dargestellt werden können, da die Parameter des Modifikationsfunktionsblocks nicht auf jene des Basisfunktionsblocks abgebildet werden.
  • Die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke können verwendet werden, um die Fähigkeit eines anderen Funktionsblocks, der hierin als Basisfunktionsblock bezeichnet wird, zu ändern, aufzurüsten oder zu erweitern. Außerdem besitzt ein Benutzer mit den hierin beschriebenen dynamischen Modifikationsfunktionsblocken die Fähigkeit, einen Algorithmus auszuführen, der mit dem dynamischen Modifikationsfunktionsblock verbunden ist, und außerdem einen dynamischen Modifikationsfunktionsblock und Daten, die mit einem dynamischen Modifikationsfunktionsblock verbunden sind, zu instantiieren und aus dem lokalen Speicher zu löschen. Demnach können die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke im Gegensatz zu bekannten Modifikationsblöcken während der Laufzeit (z.B. während das Prozesssteuerungssystem in Betrieb ist oder läuft) und/oder zu jedem Zeitpunkt vor der Laufzeit, wie beispielsweise beim Download, instantiiert werden. Außerdem können die dynamischen Modifikationsfunktionsblöcke während der Laufzeit gelöscht oder vor der Laufzeit nicht instantiiert werden.
  • Bei Verwendung der hierin beschriebenen dynamischen Modifikationsfunktionsblöcke bleibt der Basisfunktionsblock normalerweise unverändert, mit Ausnahme des Falls, wenn er die Fähigkeit besitzt, es einem Benutzer zu ermöglichen, dynamische Modifikationsfunktionsblöcke über ein oder mehr Attribute im Basisfunktionsblock zu instantiieren und/oder zu löschen. Tatsächlich befähigen die hierin beschriebenen Modifikationsfunktionsblöcke einen Benutzer, die Fähigkeit oder den Betrieb einer Basisfunktionsblocks zu modifizieren, erweitern oder auf eine andere Weise zu ändern, indem ein Attribut des Basisfunktionsblocks geändert wird, das normalerweise für den Betrieb der Prozesssteuerroutine erforderlich ist und das oft instantiiert bleiben muss, um die Ausführung der Prozesssteuerroutine zu ermöglichen. Die Fähigkeit, die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke leicht hinzuzufügen und/oder zu löschen, kann dazu dienen, die Geschwindigkeit erheblich erhöhen, mit welcher erweiterte Steuerungsfähigkeiten für Prozesssteuerungssysteme entwickelt werden können. Außerdem muss der Benutzer nur dann den Aufwand für den Basisstationsblock erhöhen und einen lokalen Gerätespeicher verwenden, wenn der Benutzer eine bestimmte Anwendung hat, welche die Merkmale verwendet, die durch den/die dynamischen Modifikationsfunktionsblock oder -blöcke bereitgestellt werden. Das heißt, der Benutzer oder Bediener kann den Aufwand des Systems durch Nichtinstantiieren oder Löschen eines bereits instantiierten dynamischen Modifikationsfunktionsblocks reduzieren, wenn die hinzugefügte Funktionalität, die durch den dynamischen Modifikationsfunktionsblock bereitgestellt wird, nicht gebraucht wird.
  • 1 ist ein Blockdiagramm eines beispielhaften Prozesssteuerungssystems 10, das die hierin beschriebenen Geräte und Verfahren mit dynamischen Modifikationsfunktionsblöcken verwendet. Wie in 1 dargestellt, umfasst das Prozesssteuerungssystem 10 eine Steuereinrichtung 12, eine Bedienungsstation 14, eine aktive Anwendungsstation 16 und eine Reserveanwendungsstation 18, die allesamt über einen Bus oder ein lokales Netz (LAN) 20, das allgemein als Anwendungssteuerungsnetz (ACN) bezeichnet wird, kommunikativ verbunden sein können. Die Bedienungsstation 14 und die Anwendungsstation 16 können unter Verwendung einer oder mehr Workstations oder irgendwelcher anderen geeigneten Computersysteme oder Verarbeitungseinheiten implementiert sein. Zum Beispiel könnte die Anwendungsstation 16 unter Verwendung von Personalcomputern mit nur einem Prozessor, Ein- oder Mehrprozessor-Workstations usw. implementiert sein. Außerdem kann das LAN 20 unter Verwendung jedes gewünschten Kommunikationsmediums und Übertragungsprotokolls implementiert sein. Zum Beispiel kann das LAN 20 auf einem fest verdrahteten oder drahtlosen Ethernet-Übertragungsschema basieren, das allgemein bekannt ist und demnach hierin nicht näher beschrieben wird. Für Durchschnittsfachleute ist jedoch offensichtlich, dass jedes andere geeignete Kommunikationsmedium und Übertragungsprotokoll verwendet werden könnte. Außerdem, obwohl nur ein einziges LAN dargestellt ist, können mehr als ein LAN und eine geeignete Kommunikationshardware in der Anwendungsstation 16 verwendet werden, um redundante Übertragungswege zwischen der Anwendungsstation 16 und der Steuereinrichtung 12 bereitzustellen.
  • Die Steuereinrichtung 12 kann über einen Datenbus 28 und eine Eingabe/Ausgabe- oder I/O-Vorrichtung 30 mit einer Vielzahl von intelligenten Feldvorrichtungen 22, 24 und 26 verbunden sein. Die I/O-Vorrichtung 30 stellt eine oder mehr Schnittstellen für die Steuereinrichtung 12 und alle anderen Vorrichtungen bereit, die an den Datenbus 28 angeschlossen sind (z.B. die intelligenten Feldvorrichtungen 22 bis 26 usw.), um mittels Signalen, die durch diese Schnittstellen gesendet und empfangen werden, miteinander zu kommunizieren. Zum Beispiel kann die I/O-Vorrichtung 30 durch jeden Typ aktueller oder zukünftiger Standardschnittstellen, wie beispielsweise eine externe Speicherschnittstelle, einen seriellen Anschluss, einen Universaleingang/-ausgang oder jeden Typ aktueller oder zukünftiger Kommunikationsvorrichtungen, wie beispielsweise ein Modem, eine Netzwerkkarte usw., implementiert sein. Der Datenbus 28 kann jede physikalische Anordnung sein, die eine logische Übertragungsfunktionalität bereitstellt, wie beispielsweise parallele elektrische Busse mit Mehrfachanbindungen, bitweisen seriellen Verbindungen, sowohl parallelen als auch bitweisen seriellen Verbindungen, Switched-Hub-Verbindungen, eine Multidrop-Topologie, eine Liniennetztopologie usw.
  • Die intelligenten Feldvorrichtungen 22 bis 26 können Fieldbus-konforme Ventile, Stellglieder, Fühler usw. sein, in welchem Fall die intelligenten Feldvorrichtungen 22 bis 26 unter Verwendung des allgemein bekannten Fieldbus-Protokolls über den Datenbus 28 kommunizieren. Natürlich könnten stattdessen auch andere Typen von intelligenten Feldvorrichtungen und Übertragungsprotokollen verwendet werden. Zum Beispiel könnten die Feldvorrichtungen 22 bis 26 stattdessen Profibus- oder HART-konforme Vorrichtungen sein, die unter Verwendung der allgemein bekannten Profibus- und HART-Übertragungsprotokolle kommunizieren. Zusätzliche I/O-Vorrichtungen (ähnlich der I/O-Vorrichtung 30 oder identisch damit) können mit der Steuereinrichtung 12 verbunden sein, um zusätzlichen Gruppen von intelligenten Feldvorrichtungen, welche Fieldbus-Vorrichtungen, HART-Vorrichtungen usw. sein können, zu ermöglichen, mit der Steuereinrichtung 12 zu kommunizieren.
  • Die zentrale Prozesssteuerroutine, die sich in der Steuereinrichtung 12 befindet, empfängt Eingaben von den Feldvorrichtungen 22 bis 26, führt Berechnungen und andere Aktivitäten, die mit der Steuerroutine verbunden sind, durch und sendet über die I/O-Vorrichtung 30 Befehle an die Feldvorrichtungen 22 bis 26, um jegliche gewünschte Steuerung des beispielhaften Prozesssteuerungssystems 10 zu implementieren. Im Allgemeinen führt die zentrale Prozesssteuerroutine Berechnungen und andere Aktivitäten, die mit der Steuerroutine assoziiert sind, unter Verwendung von Funktionsblöcken durch. Der dezentrale Prozesssteuerungsabschnitt des Prozesssteuerungsnetzes 10 (d.h. der Abschnitt, der dem Bus 28 in 1 zugeordnet ist) kann in Verbindung mit oder anstelle der Steuerung, die von der Steuereinrichtung 12 durchgeführt wird, seine eigene Prozesssteuerroutine auf eine dezentrale Weise implementieren. Obwohl sich die Steuereinrichtung 12 an die mit dem Bus 28 verbundenen Vorrichtungen 22 bis 26 ankoppeln und eine gewisse Kontrolle darüber ausüben kann, können diese Vorrichtungen demnach auch Steuerfunktionen oder Funktionsblöcke speichern und ausführen, um eine verteilte Steuerung zu implementieren.
  • Die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke können verwendet werden, um die Fähigkeit oder den Betrieb jedes Funktionsblocks oder anderen Funktionselements, das sich in der Steuereinrichtung 12, in der I/O-Vorrichtung 30, in jeder der Feldvorrichtungen 22 bis 26 in 1 oder in jeder anderen Vorrichtung innerhalb des Prozesssteuerungssystems 10 befindet, zu modifizieren, zu erweitern oder auf eine andere Weise zu ändern. Obwohl die dynamischen Modifikationsfunktionsblöcke hierin als im Fieldbus-Protokoll implementiert beschrieben werden, können sie demnach stattdessen in jedem anderen Steuerungs- oder Übertragungsprotokoll implementiert werden, einschließlich jener, die mit irgendwelchem Steuereinrichtungs- oder Übertragungsprotokoll assoziiert sind, die heute verwendet oder in Zukunft entwickelt werden.
  • Zusätzlich zu den intelligenten Feldvorrichtungen 22 bis 26 können ein oder mehr nichtintelligente Feldvorrichtungen 32 und 34 kommunikativ mit der Steuereinrichtung 12 verbunden sein. Die nichtintelligenten Feldvorrichtungen 32 und 34 können zum Beispiel herkömmliche 4-20-Milliampere (mA)- oder 0-10-Volt-Gleichstrom (VDC)-Vorrichtungen sein, die mit der Steuereinrichtung 12 über jeweilige fest verdrahtete Verbindungen 36 und 38 kommunizieren.
  • Die Steuereinrichtung 12 kann zum Beispiel eine DeltaVTM-Steuereinrichtung sein, die von Fisher-Rosemount Systems, Inc. und Emerson Process ManagementTM vertrieben wird. Es könnte stattdessen jedoch irgendeine andere Steuereinrichtung verwendet werden. Außerdem obwohl in 1 nur eine Steuereinrichtung dargestellt ist, könnten zusätzliche Steuereinrichtungen jedes gewünschten Typs oder jeder gewünschten Kombination von Typen an das LAN 20 angeschlossen werden. In jedem Fall kann die Steuereinrichtung 12 eine oder mehr Prozesssteuerroutinen durchführen, die mit dem Prozesssteuerungssystem 10 assoziiert sind und die durch einen Systemtechniker oder einen anderen Systembediener unter Verwendung der Bedienungsstation 14 erzeugt wurden und die in die Steuereinrichtung 12 heruntergeladen und darin instantiiert wurden.
  • 2 veranschaulicht ein beispielhaftes System 200, das zum Beispiel verwendet werden kann, um das beispielhafte Prozesssteuerungssystem 10 und insbesondere durch die beispielhafte Steuereinrichtung 12 mit der I/O-Vorrichtung 30, dem Datenbus 28 und den Feldvorrichtungen 22 bis 26 in 1 zu implementieren. Das beispielhafte System 200 umfasst einen Steuerungsteilsystemplaner 202, ein Steuermodul 204 und Funktionsblöcke 206. Normalerweise ist der Steuerungsteilsystemplaner 202, der sich in der beispielhaften Steuereinrichtung 12 in 1 befinden kann, als eine Softwareanwendung implementiert, welche die Operationen oder Prozesse des Steuermoduls 204 in einer vorbestimmten Reihenfolge zusammen mit irgendwelchen anderen Steuermodulen, die durch den Steuerungsteilsystemplaner 202 gesteuert werden können, ausführt. Zum Beispiel kann der Steuerungsteilsystemplaner 202 das Steuermodul 204 auf einem Regelkreis ausführen. Mit anderen Worten steuert oder koordiniert der Steuerungsteilsystemplaner 202 den Betrieb von mehreren Steuermodulen (nicht dargestellt) zusätzlich zum Steuermodul 204. Steuermodule enthalten normalerweise Steuerroutinen, die instantiiert und ausgeführt werden können, um Steuerfunktionen oder Aktivitäten in Verbindung mit den jeweiligen Betriebsbereichen, Geräten usw. auszuführen. Genauer gesagt, können die Steuermodule 204 mit einem oder mehr Einheiten von physikalischen Geräten oder Vorrichtungen verbunden sein, und sie können demnach verwendet werden, um die Geräte oder Vorrichtungen (z.B. die Feldvorrichtungen 22 bis 26 in 2) zu überwachen und/oder zu steuern.
  • Außerdem können die Steuermodule 204 aus weiteren Objekten und Teilobjekten zusammengesetzt sein. Für Erörterungszwecke werden solche Objekte und Teilobjekte im Folgenden jedoch nur in Verbindung mit dem Steuermodul 204 beschrieben. Das Steuermodul 204 besteht aus kommunikativ miteinander verbundenen Funktionsblöcken 206, welche Objekte in einem objektorientierten Programmierungsprotokoll sind, die Funktionen innerhalb des Steuerungsschemas auf der Basis von Eingaben ausführen und Ausgaben an andere Funktionsblöcke innerhalb des Steuerungsschemas übermitteln. Das Steuermodul 204 kann mit einer Steuereinrichtung (z.B. der Steuereinrichtung 12 in 1) verbunden sein, und in einigen Fällen kann eine Feldvorrichtung (z.B. die Feldvorrichtungen 22 bis 26 in 1) das Steuermodul 204 oder einen Abschnitt davon speichern und ausführen.
  • Das Steuermodul 204 und seine Funktionsblöcke 206 können mit einem oder mehr Attributen assoziiert sein, die Parameter sein können, wie zum Beispiel Eingangsvariable, Ausgangsvariable oder dergleichen, die mit den physikalischen und/oder Steuerbedingungen innerhalb eines Prozesssteuerungsteilsystems assoziiert sind. Außerdem kann jeder der Funktionsblöcke 206 mit einem oder mehr Attributen assoziiert sein. Die Funktionsblöcke 206, die im Folgenden ausführlich beschrieben werden, können jeweils eine oder mehr mathematische Funktionen (z.B. Summierungsoperationen, Multiplikationsoperationen, Divisionsoperationen usw.), logische Funktionen, Ausdrücke (z.B. logische ODER, UND usw.), Steuerfunktionen, Schnittstellen, Abgleichfunktionen oder irgendwelche anderen gewünschten Funktionen innerhalb eines Prozesssteuerungssystems enthalten.
  • Die Funktionsblöcke 206 bestehen aus Software und/oder irgendeinem anderen Typ von Logik, um Eingansparameter gemäß einem spezifizierten Algorithmus und einem internen Satz von Steuerparametern zu verarbeiten. Auf diese Weise kann jeder der Steuerblöcke 206 Ausgangsparameter erzeugen, die zur Verwendung durch das Steuermodul 204 verfügbar sind, andere Funktionsblöcke oder irgendeine andere Software, programmierbare Vorrichtung usw., die mit den Funktionsblöcken 206 kommunikativ verbunden sind. Insbesondere können die Eingangsparameter eines der Funktionsblöcke 206 mit den Ausgangsparametern eines oder mehrerer anderer der Funktionsblöcke 206 oder anderer Funktionsblöcke außerhalb des Steuermoduls 204 und des Steuerungsteilsystemplaners 202 verknüpft werden. Die Parameter, die mit den Funktionsblöcken 206 assoziiert sind, können den gesamten Anwendungsprozess (z.B. Herstellungs-ID, Gerätetyp usw.), betreffen, Steuerfunktionen (z.B. PID-Steuereinrichtung, Analogeingang usw.) einbeziehen und/oder eine Schnittstelle zu Fühlern, wie beispielsweise Temperaturfühlern, Druckfühlern, Durchflussfühlern usw. darstellen.
  • Jeder der Funktionsblöcke 206 wird durch eine eindeutige Kennzeichnung identifiziert, die durch einen Benutzer vergeben werden kann. Außerdem werden die Parameter jedes Funktionsblocks durch Objektbeschreibungen dargestellt, die definieren, wie die Parameter im ganzen Prozesssteuerungssystem übermittelt werden. Demnach werden viele Parameter im System durch Bezugnahme auf ihre Kennzeichnung (d.h. die Kennzeichnung für den Funktionsblock, der mit dem Parameter assoziiert ist) und den Parameternamen eindeutig identifiziert. Während der Laufzeit werden, nachdem der Funktionsblock unter Verwendung der entsprechenden Eingangswerte ausgeführt ist, seine Ausgaben (d.h. Ausgangswerte) aktualisiert und dann an die anderen Funktionsblöcke 206 und/oder irgendeine andere Vorrichtung des Prozesssteuerungssystems gesendet, die diese Ausgaben liest (z.B. sich daran anschließt oder anbindet). Die Funktionsblöcke 206 können sich in derselben Feldvorrichtung und/oder in verschiedenen Vorrichtungen des Prozesssteuerungssystems befinden.
  • Normalerweise kann beim Verwenden bekannter Technologien eine Modifikation oder eine Änderung am Algorithmus irgendeines der Funktionsböcke 206 erfordern, dass das beispielhafte System 200 aktualisiert wird, indem zum Beispiel der Steuerungsteil systemplaner 202 angehalten wird, der dann Anrufe an das Steuermodul 204 und alle anderen Steuermodule, die durch den Steuerungsteilsystemplaner 202 abgerufen oder angerufen werden, einstellt. Dann kann ein Benutzer einen oder mehr der Funktionsblöcke 206 modifizieren, um die jeweiligen Algorithmen des einen oder der mehreren Funktionsböcke 206 zu ändern. Mit den hierin beschriebenen dynamischen Modifikationsfunktionsblöcken jedoch kann ein Benutzer einen Algorithmus erzeugen, um die Fähigkeit oder den Betrieb eines oder mehrerer der Funktionsblöcke 206 zu modifizieren, zu erweitern oder auf eine andere Weise zu ändern, und den Algorithmus des dynamischen Modifikationsfunktionsblocks oder der dynamischen Modifikationsfunktionsblöcke während der Laufzeit instantiieren. Demnach ermöglichen es die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke, das System 200 zu aktualisieren oder zu modifizieren, ohne den Steuerungsteilsystemplaner 202 anzuhalten. Folglich müssen Anrufe an das Steuermodul 204 und alle anderen Steuermodule, die durch den Steuerungsteilsystemplaner 202 angerufen werden, nicht eingestellt werden. Demgemäß ermöglichen die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke Modifikationen am beispielhaften System, die sonst Unterbrechungen oder eine andere derartige Beendigung der Operationen von Feldvorrichtungen und/oder Prozesssteuerungssystemen erfordert haben würden. Demgemäß verhindern die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke solche Unterbrechungen oder Beendigungen, die erhebliche Herstellungskosten und -zeit bedingen können, während sie Modifikationen, Erweiterungen oder andere Änderungen an der Fähigkeit oder dem Betrieb eines Prozesssteuerungssystems ermöglichen.
  • 3 stellt einen beispielhaften Funktionsblock 300 dar, der eine beispielhafte Funktionsblockdefinition 302, einen beispielhaften Basisfunktionsblock 304, einen beispielhaften Modifikationsfunktionsblock 306 und beispielhafte dynamische Modifikationsfunktionsblöcke 308 und 309 umfasst. Die beispielhafte Funktionsblockdefinition 302 stellt Definitionen und Attribute bereit, um den beispielhaften Funktionsblock 300 zu erzeugen, und weist die Daten für den beispielhaften Basisfunktionsblock 304, den beispielhaften Modifikationsfunktionsblock 306 und die beispielhaften dynamischen Modifikationsfunktionsblöcke 308 und 309 zu.
  • Wie im Folgenden in Verbindung mit 4 ausführlich beschrieben, wird die beispielhafte Funktionsblockdefinition 302 beim Download (z.B. auf eine Feldvorrichtung heruntergeladen) erzeugt, um Speicher- und Indexobjekte (z.B. den beispielhaften Basisfunktionsblock 304, den beispielhaften Modifikationsfunktionsblock 306 und die beispielhaften dynamischen Modifikationsfunktionsblöcke 308 und 309) zuzuweisen. Wie gezeigt, wird die beispielhafte Funktionsblockdefinition 302 erzeugt, um die Definition und die Objektdaten (z.B. Algorithmus und Datenblock) zu instantiieren, welche die Ausführung des beispielhaften Basisfunktionsblocks 304 und des beispielhaften Modifikationsfunktionsblocks 306 ermöglichen. Außerdem wird die beispielhafte Funktionsblockdefinition 302 beim Download erzeugt, um die Definitionen für die dynamischen Modifikationsfunktionsblöcke 308 und 309 zu instantiieren, aber nur die Objektdaten (z.B. Algorithmus und Datenblock), welche die Ausführung des beispielhaften dynamischen Modifikationsfunktionsblocks 308 ermöglichen, und nicht den Datenblock für den dynamischen Modifikationsfunktionsblock 309.
  • Bekanntlich kann der Modifikationsfunktionsblock 306 verwendet werden, um die Fähigkeit des Basisfunktionsblocks 304 zu ändern, aufzurüsten oder zu erweitern. Der Basisfunktionsblock 304 enthält eine Softwareroutine oder einen Algorithmus, der einen oder mehr Sätze von Anweisungen aufweist, die durch einen Prozessor in einer Feldvorrichtung, Steuereinrichtung usw. auszuführen sind. Außerdem enthält der Basisfunktionsblock 304 einen oder mehr Datenblöcke, die in einem lokalen Speicher abgelegt sind und die Eingangsdaten sein können, die dem Algorithmus zur Verfügung gestellt werden, oder Ausgangsdaten, die durch den Algorithmus erzeugt werden, der mit dem Basisfunktionsblock 304 assoziiert ist. Außerdem umfasst der Basisfunktionsblock 304 einen Verzweigungspunkt 310, der verwendet wird, um eine erweiterte Fähigkeit bedingt zu implementieren, die durch den Modifikationsfunktionsblock 306 bereitgestellt wird, der einen Algorithmus, der aus einer Reihe von Anweisungen besteht, und Daten, die im lokalen Speicher abgelegt sind, aufweist.
  • Der Verzweigungspunkt 310 wird im Allgemeinen im Basisfunktionsblock 304 erzeugt, wenn der Funktionsblock 300 erzeugt wird, und er kann aktualisiert werden, nachdem der Funktionsblock 304 kompiliert ist. Die Inhalte des Verzweigungspunkts 310 sind so gesetzt, dass sie einen Zeiger auf eine Einsprungstelle 312 des Algorithmus im Modifikationsfunktionsblock 306 oder auf die nächste Codezeile des Algorithmus im Basisfunktionsblock 304 enthalten. Demnach kann ein Benutzer den Wert des Zeigers ändern, um die Ausführung eines oder mehrerer Algorithmen, die mit dem Modifikationsfunktionsblock 306 assoziiert sind, zu aktivieren/deaktivieren, um dadurch die Fähigkeit des Basisfunktionsblocks 304 zu ändern, aufzurüsten oder zu erweitern. Der Zeiger am Verzweigungspunkt 310 kann eine Adresse sein, welche die Adresse des Modifikationsfunktionsblocks 306 im Speicher, die Adresse irgendeines Teils des Algorithmus des Modifikationsfunktionsblocks 306, den Namen oder eine andere Kennung des Modifikationsfunktionsblocks 306 angibt, oder er kann jede andere Bearbeitungs- oder Verzweigungseinrichtung sein, die verwendet wird, um die Kontrolle an den Modifikationsfunktionsblock 306 zu übergeben.
  • Wenn die Kontrolle an den Modifikationsfunktionsblock 306 übergeben wird, werden bestimmte vordefinierte Daten an den Modifikationsfunktionsblock 306 übermittelt oder ihm zur Verfügung gestellt, und der Modifikationsfunktionsblock 306 verwendet oder ändert diese Daten während der Ausführung seines Algorithmus oder seiner Algorithmen. Die Daten können durch eine feste oder vordefinierte Schnittstelle 314 bereitgestellt werden, die normalerweise Parameter und/oder Datenwerte zur Verwendung durch den Modifikationsfunktionsblock 306, wohin die Kontrolle innerhalb des Basisfunktionsblocks 304 zurückgegeben werden soll, und/oder jegliche andere Daten oder Informationen enthält, die zur Ausführung des Algorithmus des Modifikationsfunktionsblocks 306 benötigt werden, um die Kontrolle zu übernehmen, auszuführen und die Kontrolle an den Basisfunktionsblock 304 zurückzugeben.
  • Die Schnittstelle 314 kann als ein vordefinierter Abschnitt eines Speichers innerhalb einer Vorrichtung implementiert sein, sie kann innerhalb des Basisfunktionsblocks 304 oder des Modifikationsfunktionsblocks 306 vorgesehen sein, oder sie kann auf irgendeine andere Weise bereitgestellt sein. Danach implementiert der Modifikationsfunktionsblock 306 den Algorithmus, der nach den Daten handelt, die über die Schnittstelle 314 bereitgestellt werden, eine Rücksprunganweisung 316 gibt die Kontrolle an einen vorbestimmten Punkt im Algorithmus des Basisfunktionsblocks 304 zurück, der eine Anweisung unmittelbar nach dem Verzweigungspunkt 310 sein kann oder der durch die Schnittstelle 314 in irgendeiner Weise so definiert werden kann, dass er eine andere Position des Algorithmus im Basisfunktionsblock 304 ist. Die Rücksprunganweisung 316 kann jeder gewünschte Typ von Rücksprunganweisung sein, wie beispielsweise eine GOTO- oder eine END LOOP-Anweisung, und/oder sie kann in Abhängigkeit vom Codetyp, der im Modifikationsfunktionsblock 306 verwendet wird, jede andere Form annehmen. Außerdem gibt der Modifikationsfunktionsblock 306 bestimmte Daten über die Schnittstelle 314 zurück, welche dieselbe Schnittstelle oder eine andere Schnittstelle sein kann als die, die verwendet wird, um die Kontrolle und/oder Daten an den Modifikationsfunktionsblock 306 zu senden.
  • Da der Basisfunktionsblock 304 und der Modifikationsfunktionsblock 306 zusammen erzeugt werden, wenn der Funktionsblock 300 erzeugt wird, wird der lokale Speicher verbraucht, der zum Speichern des Modifikationsblocks 306 benötigt wird, unabhängig davon ob die Funktionalität des Modifikationsfunktionsblocks 306 verwendet wird oder nicht. Mit anderen Worten erfordert die Erzeugung des Funktionsblocks 300 die Erzeugung des Modifikationsfunktionsblocks 306. Außerdem begrenzt der Datenaustausch über die Schnittstelle durch Parameterübergabe die Menge an Daten, die ausgetauscht werden können, und erhöht die Anzahl von Zyklen und infolgedessen die Zeit, die zur Übermittlung von Daten benötigt wird. Außerdem stellt der Modifikationsfunktionsblock 306 keine Parameter bereit, die außerhalb des Modifikationsfunktionsblocks 306 dargestellt werden können, da die Parameter des Modifikationsfunktionsblocks 306 nicht auf jene des Basisfunktionsblocks 304 abgebildet werden.
  • Im Gegensatz zum Modifikationsfunktionsblock 306 können die dynamischen Modifikationsfunktionsblöcke 308 und 309 verwendet werden, um die Fähigkeit des Basisfunktionsblocks 304 dynamisch zu ändern, aufzurüsten oder zu erweitern. Genauer gesagt, besitzt ein Benutzer beim Verwenden der dynamischen Modifikationsfunktionsblöcke 308 und 309 die Fähigkeit, den Algorithmus oder die Algorithmen von dynamischen Modifikationsfunktionsblöcken und Datenblöcke, die mit dem Algorithmus oder den Algorithmen assoziiert sind, vom lokalen Speicher zu instantiieren/löschen (z.B. den dynamischen Modifikationsfunktionsblock 308 zu löschen und den dynamischen Modifikationsfunktionsblock 309 zu instantiieren). Im Gegensatz zum Modifikationsfunktionsblock 306 kann der dynamische Modifikationsfunktionsblock 309 während der Laufzeit und/oder zu jedem Zeitpunkt vor der Laufzeit, wie beispielsweise beim Download, instantiiert werden. Ähnlich kann der dynamische Modifikationsfunktionsblock 308 während der Laufzeit gelöscht oder vor der Laufzeit nicht instantiiert werden. Obwohl nur die dynamischen Modifikationsfunktionsblöcke 308 und 309 dargestellt sind, kann jede Anzahl von dynamischen Modifikationsfunktionsblocken im Funktionsblock 300 implementiert werden. Wie gezeigt, wird der dynamische Modifikationsfunktionsblock 308 außerhalb der Ausführung des Basisfunktionsblocks 304 ausgeführt. Konkret kann der dynamische Modifikationsfunktionsblock 308 vor und/oder nach der Ausführung des Basisfunktionsblocks 304 ausgeführt werden. Wenn instantiiert, haben die dynamischen Modifikationsfunktionsblöcke 308 und 309 jeweils einen Algorithmus, der aus einer Reihe von Anweisungen besteht, und Datenblöcke im lokalen Speicher, um die Fähigkeit des Basisfunktionsblocks 304 zu ändern, aufzurüsten oder zu erweitern. Wenn instantiiert, kann der dynamische Modifikationsfunktionsblock 309 außerdem vor und/oder nach der Ausführung des Basisfunktionsblocks 304 und/oder des dynamischen Modifikationsfunktionsblocks 308 ausgeführt werden.
  • Wie gezeigt, enthält der Basisfunktionsblock 304 ein oder mehr Attribute 311, die so konfiguriert sind, dass sie schreibgeprüft werden, um die dynamischen Modifikationsfunktionsblöcke 308 und 309 zu instantiieren und/oder zu löschen. Wie im Folgenden in Verbindung mit 4 erörtert, werden das/die Attribut(e) 311 auf die Funktionsblockdefinition 302 und insbesondere die Definitionen abgebildet, um die dynamischen Modifikationsfunktionsblöcke 308 und 309 zu instantiieren und/oder zu löschen. Zum Beispiel kann ein Benutzer den dynamischen Modifikationsfunktionsblock 309 durch Ändern des Attributs oder der Attribute 311 des Basisfunktionsblocks 304, welche dann während der Ausführung des Basisfunktionsblocks 304 schreibgeprüft werden, instantiieren. Ähnlich kann ein Benutzer den dynamischen Modifikationsfunktionsblock 308 durch Ändern des Attributs oder der Attribute 311, welche dann während der Ausführung des Basisfunktionsblocks 304 schreibgeprüft werden, löschen. Im Beispiel in 3 ist der dynamische Modifikationsfunktionsblock 308 durch das/die Attribut(e) 311 aktiviert, und daher setzt das Steuermodul (z.B. das Steuermodul 204 in 2) die Ausführung des dynamischen Modifikationsfunktionsblocks 308 an. Wenn keine Änderung an dem Attribut oder den Attributen 311 vorgenommen werden, aktiviert die Schreibprüfungsfunktion des Basisfunktionsblocks 304 die Weiterausführung des Basisfunktionsblocks 304.
  • Der dynamische Modifikationsblock 308 enthält eine Einsprungstelle 318, welche nach der Instantiierung des dynamischen Modifikationsfunktionsblocks 308 in der Funktionsblockdefinition 302 gespeichert wird. Die Einsprungstelle 318 wird in der Funktionsblockdefinition 302 als Zeiger gespeichert, der eine Adresse sein kann, welche die Adresse des dynamischen Modifikationsfunktionsblocks 308 im Speicher, die Adresse irgendeines Teils des Algorithmus des dynamischen Modifikationsfunktionsblocks 308, den Namen oder eine andere Kennung des dynamischen Modifikationsfunktionsblocks 308 angibt, oder der jede beliebige andere Bearbeitungs- oder Verzweigungseinrichtung sein kann, die verwendet wird, um die Kontrolle an den dynamischen Modifikationsfunktionsblock 308 zu übergeben. Demnach ruft ein Planer (z.B. der Steuerungsteilsystemplaner 202 in 2) die Ausführung des Algorithmus des dynamischen Modifikationsfunktionsblocks 308 an der Einsprungstelle 318 auf. Wenn der dynamische Modifikationsfunktionsblock 308 seinen Algorithmus implementiert, gibt eine Anweisung 320 die Kontrolle an den Planer zurück. Die Anweisung 320 kann jeder gewünschte Typ von Anweisung sein, um einen Block von Anweisungen zu beenden, und/oder sie kann in Abhängigkeit vom Codetyp, der in den dynamischen Modifikationsfunktionsblöcken 308 und 309 verwendet wird, jede andere Form annehmen. Demnach wird der dynamische Modifikationsfunktionsblock 308 durch den Planer außerhalb der Ausführung des Basisfunktionsbocks 304 abgerufen oder angerufen.
  • Wie außerdem in 3 dargestellt, weist der Funktionsblock 300 Schnittstelle(n) 322 auf, die verwendet werden können, um Daten zwischen dem Basisfunktionsblock 304 und dem dynamischen Modifikationsfunktionsblock 308 (und/oder dem dynamischen Modifikationsfunktionsblock 309) auszutauschen. Die Schnittstelle(n) 322 können mehrere Schnittstellen sein, wie beispielsweise eine Schreibschnittstelle, um Daten in den Basisfunktionsblock 304 zu schreiben, und eine separate Leseschnittstelle, um Daten aus dem Basisfunktionsblock 304 auszulesen. Die Schnittstelle(n) können als ein registrierter Rückruf implementiert sein, um Datenobjekte in den Basisfunktionsblock 304 zu schreiben. Zum Beispiel kann der dynamische Modifikationsfunktionsblock 308 ein Attribut und/oder einen Datenzeiger an die Schnittstelle(n) 322 übermitteln, um den registrierten Rückruf zu veranlassen, in den Basisfunktionsblock 304 zu schreiben. Ähnlich kann der dynamische Modifikationsfunktionsblock 309, wenn instantiiert, ein Attribut und/oder einen Datenzeiger an die Schnittstelle(n) 322 übergeben, um den registrierten Rückruf 6 aufzurufen, in den Basisfunktionsblock 304 zu schreiben. Die Schnittstelle(n) 322 können auch eine Adresse bereitstellen, welche die Adresse von Datenobjekten im Speicher des Basisfunktionsblocks 304 angibt, einen Index zu einer Adresse von Datenobjekten im Speicher des Basisfunktionsblocks 304, oder sie können irgendeine andere Implementierung sein, um Datenobjekte zwischen Funktionsblöcken auszulesen und/oder einzuschreiben.
  • Obwohl der dynamische Modifikationsfunktionsblock 308 mit nur einer Einsprungstelle 318 und nur einer Rücksprunganweisung 320 dargestellt ist, können die dynamischen Modifikationsfunktionsblöcke mit der Ausführung und oder Rückgabe der Kontrolle an einer Anzahl von Punkten im Algorithmus des dynamischen Modifikationsfunktionsblocks 308 beginnen. Zum Beispiel können die Einsprungstelle 318 und die Rücksprunganweisung 320 so gesetzt werden, dass sie verschiedene Teile oder Unterroutinen des Algorithmus im dynamischen Modifikationsfunktionsblock 308 aufrufen, um dadurch verschiedene Erweiterungen am Algorithmus bereitzustellen, der mit dem Basisfunktionsblock 304 assoziiert ist.
  • Es ist offensichtlich, dass die hierin beschriebenen dynamischen Modifikationsfunktionsblöcke 308 und 309 für jeden Zweck oder in jeder Weise verwendet werden können, um einen Basisfunktionsblock 304 entweder zu jeder Zeit oder zu ausgewählten Zeitpunkten zu ändern, zu modifizieren oder aufzurüsten, um erweiterte Fähigkeiten für jeden Typ von Basisfunktionsblock 304 (z.B. Eingabe-, Ausgabe- oder Steuerfunktionsblock) bereitzustellen. Demnach kann zum Beispiel ein dynamischer Modifikationsfunktionsblock (z.B. die dynamische Modifikationsfunktionsblöcke 308 und 309) verwendet werden, um eine adaptive Verstärkung, Verstärkungs Planung, Totzeitausgleich usw. in einem Basisfunktionsblock 304 zu implementieren, oder einem Basisfunktionsblock 304 jede andere erweiterte oder modifizierte Fähigkeit zu verleihen. Wenn außerdem die dynamischen Modifikationsfunktionsblöcke 308 und 309 mit einer Benutzerschnittstelle kommunikativ verbunden sind, kann die Benutzerschnittstelle automatisch ein oder mehr Attribute darstellen, die mit dem dynamischen Modifikationsfunktionsblock 309 nach der Instantiierung assoziiert sind. Umgekehrt kann die Benutzerschnittstelle automatisch ein oder mehr Attribute entfernen, die mit dem dynamischen Modifikationsfunktionsblock 308 nach der Löschung assoziiert sind.
  • Ebenso versteht sich, dass der Basisfunktionsblock 304 und die dynamischen Modifikationsfunktionsblöcke 308 und 309 in irgendeinem Speicher oder irgendwelchen Speichern einer Vorrichtung oder innerhalb irgendeines Speichers oder irgendwelcher Speicher, die mit einem Prozessor verbunden sind, der diese Funktionsblöcke ausführt, abgelegt werden können, wie beispielsweise in einem Direktzugriffspeicher („RAM"), einem Festspeicher („ROM"), einem löschbaren programmierbaren Festspeicher („EPROM") oder einem elektrisch löschbaren programmierbaren Festspeicher („EEPROM"), auf einer Festplatte oder einem Plattenlaufwerk oder in jedem anderen geeigneten Speicher, auf den ein Prozessor zugreifen kann. Ebenso können diese Funktionsblöcke, abgelegt auf jedem gewünschten Typ von Speicher, wie beispielsweise einer Magnetplatte, einer optischen Speicherplatte (z.B. einer CD oder einer Laserplatte), einem magnetischen oder optischen Band oder jedem anderen maschinenlesbaren Speichermedium, einem Benutzer verkauft oder auf eine andere Weise zur Verfügung gestellt werden. Außerdem können die hierin beschriebenen Basis- und dynamischen Modifikationsfunktionsblöcke einem Benutzer als einzelne Einheit (z.B. auf demselben Speicher abgelegt) oder als getrennte Einheiten (z.B. in getrennten Speichern abgelegt) zur Verfügung gestellt werden.
  • Funktionsblöcke enthalten normalerweise Wrapper-Deskriptoren, die einen Satz von Regeln und Eigenschaften (z.B. Namen, IDs, Schnittstelleneinsprungstellen, Flags, Standardwerte usw.) bilden, welche zum Beispiel verwendet werden können, um die Funktionsblockdefinition 302 in 3 zu instantiieren. Die Wrapper-Deskriptoren werden zwischen der Laufzeitsteuerung und dem Basisfunktionsblock gemeinsam genutzt, um dieselben Beziehungen für die Interpretation und die Benutzerkonfiguration bereitzustellen. Insbesondere kann eine Steuereinrichtung diese Wrapper-Deskriptoren verwenden, um Downloadskripts und Dienststeuerungsobjekte zu analysieren. Außerdem ist jedes Attribut des Funktionsblocks mit einer eindeutigen Attribut-ID (z.B. einem ganzzahligen Wert) definiert. Für einen Basisfunktionsblock mit einem dynamischen Modifikationsfunktionsblock wird der dynamische Modifikationsfunktionsblock durch ein bestimmtes Attribut (z.B. das/die Attribut(e) 311 in 3) gesteuert und ist daher mit einer bestimmten Attribut-ID assoziiert.
  • 4 stellt eine beispielhafte Tabelle 400 zur Abbildung von dynamischen Modifikationsfunktionsblöcken dar, um ein Attribut oder Attribute 402 eines Basisfunktionsblocks mit Zeigern 404 mit dynamischen Modifikationsfunktionsblock-Deskriptoren 406 zu assoziieren, die sich zum Beispiel in der beispielhaften Funktionsblockdefinition 302 in 2 befinden können. Die beispielhafte Tabelle 400 zur Abbildung von dynamischen Modifikationsfunktionsblöcken enthält eine Attributkennung „MOD_ADAPT", die mit einem Zeiger „DYN_MOD_PNTR" mit dem Deskriptor eines bestimmten dynamischen Modifikationsfunktionsblocks 408 von dynamischen Modifikationsfunktionsblock-Deskriptoren 406 assoziiert ist. Obwohl textlich dargestellt, ist für Durchschnittsfachleute offensichtlich, dass solche Textbeschreibungen alternativ oder zusätzlich durch Adressen, Codes und/oder anderen Bezeichnungen implementiert werden können. Demnach kann eine Schreibprüfungsfunktion am Attribut „MOD_ADAPT" individuell auf die jeweiligen dynamischen Modifikationsfunktionsblock-Deskriptoren 408, 410 und 412 abbilden, die mit einer Vielzahl von dynamischen Modifikationsfunktionsblöcken assoziiert sind. Zum Beispiel kann ein anderer Zeiger, der mit einem zweiten dynamischen Modifikationsfunktionsblock assoziiert ist, in der Tabelle 400 zur Abbildung von dynamischen Modifikationsfunktionsblöcken gespeichert und mit der Attributkennung „MOD_ADAPT" assoziiert werden, um den dynamischen Modifikationsfunktionsblock-Deskriptor 410 zu lokalisieren.
  • 5 stellt eine beispielhafte Funktionsblockinstantiierung 500 während eines Downloads auf eine Vorrichtung (z.B. Erzeugen einer Instanz der Objekte, die mit dem Funktionsblock im lokalen Speicher assoziiert sind) dar, wobei das Funktionsblockdefinitionsobjekt 540 (z.B. die Funktionsblockdefinition 302 in 3) und das Funktionsblockobjekt (z.B. der Basisfunktionsblock 304, der Modifikationsfunktionsbock 306 und der dynamische Modifikationsfunktionsblock 308 in 3) instantiiert werden. In der beispielhaften Funktionsblock-Downloadinstantiierung 500 zeigen die Pfeile die Bildungsbeziehung der beispielhaften Funktionsblockinstantiierung 500 an (d.h. der Pfeil zeigt auf das definierende Objekt). Wie in 5 dargestellt, stellt demnach der Basisfunktionsblock-Wrapper-Deskriptor 512 einen Satz von Regeln und Eigenschaften für den Basisfunktionsblock bereit, der Modifikationsfunktionsblock-Wrapper-Deskriptor 514 stellt einen Satz von Regeln und Eigenschaften für den Modifikationsfunktionsblock bereit, und der/die Wrapper-Deskriptor(en) 516 des dynamischen Modifikationsfunktionsblocks stellen einen Satz von Regeln und Eigenschaften für den dynamischen Modifikationsfunktionsblock oder die dynamischen Modifikationsfunktionsblöcke (z.B. der Blöcke 308 und 309 in 3) bereit. Von den jeweiligen Wrapper-Deskriptoren 512 bis 516 zählt die beispielhafte Funktionsblockinstantiierung 500 die Attribute und speichert Eigenschaften lokal zwischen, um die zusammengesetzte Wrapper-Definition 520 zu erzeugen. Der beispielhafte zusammengesetzte Wrapper 520 stellt einem Benutzer eine Liste von dynamischen Modifikationsfunktionsblöcken zur Verfügung, die mit dem/den zu instantiierenden dynamischen Modifikationsfunktionsblock-Wrapper-Deskriptor(en) 516 assoziiert sind (z.B. den dynamischen Modifikationsfunktionsblöcken 308 und 309 in 3). Aus dem zusammengesetzten Wrapper 520 wird die Funktionsblockdefinition 530 gebildet, welche die Attribute der Funktionsblöcke bereitstellt. Die Funktionsblockdefinition 530 definiert die Speicherkapazität, die den Teilblockdaten, wie beispielsweise Basisfunktionsblockdaten 552 und Modifikationsfunktionsblockdaten 554, zuzuweisen ist. Im Falle der Modifikationsfunktionsblockdaten 554 definiert die Funktionsblockdefinition 530 die Speicherkapazität für solche Teilblockdaten, wie beispielsweise die Modifikationsfunktionsblockdaten 554.
  • Für die beispielhafte Funktionsblockinstantiierung 500 enthält die Funktionsblockdefinition 530 ein Attribut mit einem Wert, der durch einen Benutzer vor dem Download definiert wird und der bestimmt, ob die dynamischen Modifikationsfunktionsblockdaten 556 instantiiert werden sollen. Demnach wird beim Download nicht unnötigerweise Speicherkapazität verbraucht, wenn ein Benutzer die Erweiterungen oder Änderungen nicht wünscht, die durch den Algorithmus des dynamischen Modifikationsfunktionsblocks bereitgestellt werden. Wie bereits erwähnt, wird zwar die Definition des dynamischen Modifikationsfunktionsblocks instantiiert, aber nicht der Speicher für die dynamischen Modifikationsfunktionsblockdaten 556. Demnach kann der Benutzer den Wert des Attributs in der Funktionsblockdefinition 530 ändern, um den dynamischen Modifikationsfunktionsblock zur Laufzeit oder zu jeder Zeit zwischen Download und Laufzeit zu instantiieren.
  • Nach der Instantiierung eines Funktionsblocks mit einem dynamischen Modifikationsfunktionsblock speichern Initialisierungsanruf(e) im Funktionsblock Variable mit spezifischen Anfangswerten, welche aus einem Downloadskript bestimmt werden können und/oder von einem oder mehr Attributen, die in den Wrapper-Deskriptoren 512 bis 516 bereitgestellt sind, kopiert werden können. Außerdem kann die Initialisierung direkt für eine Steuereinrichtung (z.B. die Steuereinrichtung 12 in 1) durchgeführt werden, die möglicherweise keine getrennte Konfigurationsdatenbank benötigt. Die Schnittstelle der Attribute des Funktionsblocks wird ebenfalls ausgelöst (z.B. Schnittstelle(n) 322 in 3), wobei die Schnittstelle eine registrierte Rückruffunktion verwenden kann, um Daten zwischen einem dynamischen Modifikationsfunktionsblock und einem Basisfunktionsblock auszutauschen, wie zuvor in Verbindung mit 3 erörtert.
  • 6 stellt einen beispielhaften Namensraum 600 eines Funktionsblocks mit drei dynamischen Modifikationsfunktionsblöcken dar, die aktiviert sind. Der beispielhafte Namensraum 600 enthält einen statischen Sektor 610, der die Attribute hält, die während der Instantiierung aktiviert werden (z.B. Attribute, die mit dem Basisfunktionsblock und dem Modifikationsfunktionsblock assoziiert sind), und einen dynamischen Sektor 620, der die Attribute für einen ersten dynamischen Modifikationsfunktionsblock 622, einen zweiten dynamischen Modifikationsfunktionsblock 624 und einen dritten dynamischen Modifikationsfunktionsblock 626 enthält. Wie bereits erwähnt, kann ein Benutzer jeden der dynamischen Modifikationsfunktionsblöcke, die mit den Attributen 622 bis 626 assoziiert sind, instantiieren oder löschen, und demnach kann sich der dynamische Attributsektor 620 ändern. Wenn sich der dynamische Attributsektor 620 ändert, werden die Indizes (d.h. der Index von einer bestimmten Adresse) im dynamischen Sektor 620 ungültig. Zum Beispiel kann der Benutzer den ersten und den zweiten Modifikationsfunktionsblöcke löschen, was die jeweiligen Attribute 622 und 624 des ersten dynamischen Modifikationsfunktionsblocks und des zweiten Modifikationsblocks 624 entfernt und die Attribute des dritten dynamischen Modifikationsfunktionsblocks 626 in dem beispielhaften Namensraum 600 nach oben bewegt.
  • Wenn sich der Namensraum eines Funktionsblocks bei der Instantiierung eines dynamischen Modifikationsfunktionsblocks ändert, erzeugt die Ausführung und/oder Instantiierung eines Funktionsblocks mit einem dynamischen Modifikationsfunktionsblock einen Schlüsselmechanismus, um alle Attribute des dynamischen Modifikationsfunktionsblocks abzubilden, die durch einen Client (z.B. andere Funktionsblöcke) abgebildet werden können. Im Allgemeinen wird ein Zugriff auf ein Attribut in einem Funktionsblock von einem Client durch eine. Adresse im Namensraum und einen Index abgebildet.
  • Wie zuvor in Verbindung mit 6 beschrieben, ändert sich der Namensraum eines Funktionsblocks bei der Aktivierung oder Deaktivierung eines dynamischen Modifikationsfunktionsblocks. Um ungültige Bezugnahmen auf Attribute zu vermeiden, wird daher ein Schlüsselmechanismus bereitgestellt, der sich in einem Steuermodul (z.B. dem Steuermodul 204 in 2) befinden kann. Der Schlüsselmechanismus speichert einen oder mehr Schlüssel (z.B. einen Zeigerwert, einen Indexwert, eine Befehlsadresse, einen eindeutigen Wert oder irgendeine Kombination davon) für einen entsprechenden dynamischen Modifikationsfunktionsblock oder entsprechende dynamische Modifikationsfunktionsblöcke, die an einen Client oder Clients übermittelt werden, wenn sich der/die Client(s) an ein Attribut im dynamischen Sektor (z.B. dem dynamischen Sektor 620) des Funktionsblocks anbinden. Wenn ein dynamischer Modifikationsfunktionsblock instantiiert oder gelöscht wird, aktualisiert der Funktionsblock, der mit dem dynamischen Modifikationsfunktionsblock verbunden ist, den/die Schlüssel im Schlüsselmechanismus.
  • Wenn demnach ein Client auf ein Attribut im Funktionsblock und insbesondere auf ein Attribut, das mit einem dynamischen Modifikationsfunktionsblock assoziiert ist, zugreift, vergleicht der Client den Schlüssel vom letzten Zugriff mit dem aktuellen Schlüssel in der Tabelle. Wenn der Anbindeschlüssel und der aktuelle Schlüssel übereinstimmen, wird dem Client Zugang gewährt. Alternativ muss sich der Client erneut an das Attribut anbinden, wenn der Anbindeschlüssel nicht passt.
  • Natürlich können dynamische Modifikationsfunktionsblöcke unter Verwendung jedes externen Prozesssteuerungsübertragungsprotokolls (neben dem Fieldbus-Protokoll) implementiert werden, und sie können verwendet werden, um mit jedem Typ von Funktionsblock zu kommunizieren, einschließlich jedes Funktionsblocks, der ähnlich oder gleich wie irgendeiner der verschiedenen Funktionsblöcke ist, die durch das Fieldbus-Protokoll ausdrücklich identifiziert und unterstützt werden. Es ist außerdem zu erwähnen, dass, obwohl der dynamische Modifikationsfunktionsblock in einer Ausführungsform hiervon ein Fieldbus-„Funktionsblock” ist, die Verwendung des Ausdrucks „Funktionsblock" hierin nicht darauf beschränkt ist, was das Fieldbus-Protokoll als einen Funktionsblock identifiziert, sondern stattdessen jeden anderen Typ von Block, Programm, Hardware, Firmware usw. umfasst, der mit irgendeinem Typ von Steuerungssystem und/oder Übertragungsprotokoll verbunden ist, die verwendet werden können, um irgendeine Prozesssteuerroutinenfunktion zu implementieren, und die ein vordefiniertes Setup oder Protokoll aufweisen, um anderen solchen Funktionsblöcken Informationen oder Daten zur Verfügung zu stellen. Obwohl Funktionsblöcke normalerweise die Form von Objekten innerhalb einer objektorientierten Programmierumgebung annehmen, muss dies demnach nicht der Fall sein, sondern es können stattdessen auch andere logische Einheiten verwendet werden, um bestimmte Steuerungsfunktionen (einschließlich Ein- und Ausgabe) innerhalb einer Prozesssteuerungsumgebung auszuführen.
  • 7 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 700 zum Löschen und/oder Instantiieren eines dynamischen Modifikationsfunktionsblocks während der Laufzeit, wie beispielsweise der dynamischen Modifikationsfunktionsblocke 308 und 309 in 3, veranschaulicht. Die Operationen die in Verbindung mit dem Prozess beschrieben werden, der in 7 veranschaulicht ist, können unter Verwendung von maschinenlesbaren Anweisungen, Codes, Software usw. implementiert werden, die auf einem maschinenlesbaren Medium gespeichert und zugänglich sind. Solch ein maschinenlesbares Medium umfasst, ohne darauf beschränkt zu sein, optische Speichervorrichtungen, magnetische Speichervorrichtungen, permanente Festkörperspeicher und nicht-permanente Festkörperspeicher. Außerdem können einige oder alle Operationen manuell durchgeführt werden, und/oder es kann die Reihenfolge der Operationen geändert werden, und/oder es können einige der Operationen modifiziert oder eliminiert werden. Ähnlich können einige oder alle der Operationen jedes Blocks iterativ durchgeführt werden. Die Operationen, die in 7 veranschaulicht sind, können von der beispielhaften Steuereinrichtung 12 und/oder den Feldvorrichtungen 22 bis 26 in 1 durchgeführt werden.
  • Der beispielhafte Prozess 700 beginnt durch das Ausführen eines Algorithmus in einem Basisfunktionsblock (z.B. dem Basisfunktionsblock 304 in 3) (Block 702). Während der Ausführung des Basisfunktionsblocks in Block 702 wird eine Schreibprüfungsfunktion an einem bestimmten Attribut oder bestimmten Attributen des Basisfunktionsblocks ausgeführt, um festzustellen, ob mit dem Instantiieren oder Löschen eines dynamischen Modifikationsfunktionsblocks weiter gemacht werden soll (Block 704). Wenn die Schreibprüfungsfunktion bestimmt, dass keine Änderung des Attributs oder der Attribute des Basisfunktionsblocks vorliegt (Block 704), kehrt der beispielhafte Prozess 700 zu Block 702 zurück und fährt mit der Ausführung des Basisfunktionsblocks fort. Wenn die Schreibprufungsfunktion eine Änderung des Attributs oder der Attribute des Basisfunktionsblocks feststellt (Block 704), bestimmt der beispielhafte Prozess 700, entweder einen neuen dynamischen Modifikationsfunktionsblock zu instantiieren oder einen bestehenden zu löschen (Block 706).
  • Wenn der beispielhafte Prozess 700 (bei Block 706) durch eine bestimmte Änderung am Attribut oder an Attributen des Basisfunktionsblocks (z.B. eine bestimmte Änderung an einer booleschen Variablen, einem Flagwert oder irgendeinem anderen auf eine Änderung des logischen Zustands hinweisenden Attribut) in Block 706 bestimmt, einen bestehenden dynamischen Modifikationsfunktionsblock zu löschen, identifiziert der beispielhafte Prozess 700 den zu löschenden dynamischen Modifikationsfunktionsblock zum Beispiel durch Verwenden einer eindeutigen Attribut-ID und/oder eines Zeigers auf einen Index (Block 708). Nach dem Identifizieren des zu löschenden dynamischen Modifikationsfunktionsblocks löscht der Prozess 700 den Datenblock, der mit dem identifizierten dynamischen Modifikationsfunktionsblock assoziiert ist, aus dem Speicher (Block 710). Der beispielhafte Prozess 700 geht dazu über, die Attribute im dynamischen Attributraum zu aktualisieren, indem er die Attribute entfernt, die mit dem gelöschten dynamischen Modifikationsfunktionsblock assoziiert sind, und die Schlüssel im Schlüsselmechanismus aktualisiert, die mit dem Attribut oder den Attributen assoziiert sind, die ihrerseits mit dem gelöschten dynamischen Modifikationsfunktionsblock assoziiert sind (Block 712). Der beispielhafte Prozess 700 entfernt dann die Ausführung des gelöschten dynamischen Modifikationsfunktionsblocks aus dem Planer (Block 714) und beendet die Ausführung des Prozesses 700 und/oder gibt die Kontrolle an einen Aufrufprozess zurück.
  • Wenn der beispielhafte Prozess 700 durch eine bestimmte Änderung am Attribut oder an Attributen des Basisfunktionsblocks (z.B. eine bestimmte Änderung an einer booleschen Variablen, einem Flagwert oder irgendeinem anderen auf eine Änderung des logischen Zustands hinweisenden Attribut) bestimmt, einen neuen dynamischen Modifikationsfunktionsblock zu instantiieren (Block 706), identifiziert der beispielhafte Prozess 700 den zu instantiierenden dynamischen Modifikationsfunktionsblock zum Beispiel durch Verwenden einer eindeutigen Attribut-ID und/oder eines Zeigers auf einen Index (Block 716). Nach dem Identifizieren des zu instantiierenden dynamischen Modifikationsfunktionsblocks in Block 716 erzeugt der beispielhafte Prozess 700 den Datenblock im Speicher, der mit dem identifizierten dynamischen Modifikationsfunktionsblock assoziiert ist (Block 718). Der beispielhafte Prozess 700 geht dazu über, die Attribute im dynamischen Attributraum zu aktualisieren, indem er die Attribute hinzufügt, die mit dem instantiierten dynamischen Modifikationsfunktionsblock assoziiert sind, und die Schlüssel im Schlüsselmechanismus aktualisiert, die mit dem Attribut oder den Attributen assoziiert sind, die mit dem instantiierten dynamischen Modifikationsfunktionsblock assoziiert sind (Block 720). Der beispielhafte Prozess 700 initialisiert dann alle Variablen, die mit dem dynamischen Modifikationsfunktionsblock assoziiert sind (Block 722). Außerdem fügt der Prozess 700 die Ausführung des instantiierten dynamischen Modifikationsfunktionsblocks zum Planer hinzu (Block 724) und beendet die Ausführung des Prozesses 700 und/oder gibt die Kontrolle an einen Aufrufprozess zurück.
  • 8 ist eine schematische Darstellung einer beispielhaften Prozessorplattform 800, die verwendet und/oder programmiert werden kann, um die beispielhafte Steuereinrichtung 12, die Feldvorrichtungen 22 bis 26 und die Anwendungsstation 16 in 1 zu implementieren. Zum Beispiel kann die Prozessorplattform 800 durch einen oder mehr Ein- und/oder Mehrpfad-Universalprozessoren, -kerne, -mikrokontroller usw. implementiert sein. Die Prozessorplattform 800 kann auch durch einen oder mehr Rechengeräte implementiert sein, die irgendwelche aus einer Vielfalt von gleichzeitig ausführenden Einpfad- und/oder Mehrpfad-Prozessoren, -kernen, -mikrokontroller usw. enthalten.
  • Die Prozessorplattform 800 des Beispiels in 8 umfasst wenigstens einen programmierbaren Universalprozessor 805. Der Prozessor 805 führt codierte Anweisungen 810 aus, die im Hauptspeicher des Prozessors 805 (z.B. in einem RAM 815) vorhanden sind. Die codierten Anweisungen 810 können verwendet werden, um die Operationen auszuführen, die in den beispielhaften Prozessen dargestellt sind, die in Verbindung mit 2, 3, 4 und 7 beschrieben wurden. Der Prozessor 805 kann jeder Typ von Verarbeitungseinheit sein, wie beispielsweise ein Prozessorkern, ein Prozessor und/oder ein Mikrokontroller. Der Prozessor 805 steht über einen Bus 825 mit dem Hauptspeicher (der einen ROM 820 und den RAM 815 umfasst) in Verbindung. Der RAM 815 kann durch einen dynamischen Direktzugriffspeicher („DRAM"), einen synchronen Direktzugriffspeicher („SDRAM") und/oder jeden anderen Typ von RAM-Vorrichtung implementiert sein, und der ROM kann durch einen Flash-Speicher und/oder jeden anderen gewünschten Typ von Speichervorrichtung implementiert sein.
  • Der Zugriff auf den Speicher 815 und 820 kann durch eine Speichersteuereinrichtung (nicht dargestellt) gesteuert werden. Der Hauptspeicher (der den ROM 820 und den RAM 815 umfasst) kann verwendet werden, um die beispielhaften Prozesse, Attribute und andere solche speicherbaren Daten in Verbindung mit 2 bis 7 zu speichern.
  • Die Prozessorplattform 800 umfasst auch eine Schnittstellenschaltung 830. Die Schnittstellenschaltung 830 kann durch jeden Typ von Schnittstellenstandard implementiert sein, wie beispielsweise eine Externspeicherschnittstelle, einen seriellen Anschluss, einen Universaleingang/-ausgang usw. Eine oder mehr Eingabevorrichtungen 835 und eine oder mehr Ausgabevorrichtungen 840 können an die Schnittstelleschaltung 830 angeschlossen sein.
  • Wenigstens einige der zuvor beschriebenen beispielhaften Verfahren und/oder Geräte sind durch ein oder mehr Software- und/oder Firmwareprogramme implementiert, die auf einem Prozessor laufen. Es können jedoch auch zweckbestimmte Hardwareimplementierungen, die, ohne darauf beschränkt zu sei, anwendungsspezifische integrierte Schaltungen, programmierbare Logikanordnungen und andere Hardwarevorrichtungen umfassen, aufgebaut werden, um einige oder alle der hierin beschriebenen beispielhaften Verfahren und/oder Geräte entweder ganz oder teilweise zu implementieren. Außerdem können auch alternative Softwareimplementierungen, die, ohne darauf beschränkt zu sein, eine verteilte Verarbeitung oder eine komponenten-/objektverteilte Verarbeitung, eine parallele Verarbeitung oder eine Verarbeitung mit virtueller Maschine umfassen, verwendet werden, um die hierin beschriebenen beispielhaften Verfahren und/oder Geräte zu implementieren.
  • Es ist auch zu erwähnen, dass die hierin beschriebenen beispielhaften Software- und/oder Firmwareimplementierungen auf einem materiellen Speichermedium abgelegt werden können, wie beispielsweise einem magnetischen Medium (z.B. einer Magnetplatte oder einem Magnetband); einem magnetooptischen oder optischen Medium, wie beispielsweise einer optischen Speicherplatte; oder einem Festkörpermedium, wie beispielsweise einer Speicherkarte oder einer anderen Baueinheit, die eine oder mehr (permanente) Festspeicher, Direktzugriffspeicher oder andere (nicht-permanente) wiederbeschreibbare Speicher beherbergt; oder einem Signal, das Maschinenbefehle enthält. Eine digitale Datei, die an eine E-Mail angehängt wird, oder ein anderes Informationsarchiv oder ein Satz von Archiven wird als ein Verteilungsmedium angesehen, das einem materiellen Speichermedium entspricht. Demgemäß können die hierin beschriebene beispielhafte Software und/oder Firmware auf einem materiellen Speichermedium oder einem Verteilungsmedium, wie beispielsweise den zuvor beschriebenen oder Nachfolge-Speichermedien abgelegt werden.
  • Es versteht sich von selbst, dass, soweit die zuvor dargelegte Spezifikation beispielhafte Komponenten und Funktionen unter Bezugnahme auf bestimmte Standards und Protokolle beschreibt, der Rahmen dieses Patents nicht auf solche Standards und Protokolle beschränkt ist. Solche Standards werden periodisch durch schnellere oder wirksamere Entsprechungen mit derselben allgemeinen Funktionalität ersetzt. Demgemäß sind Nachfolgestandards und -protokolle mit denselben Funktionen Entsprechungen, die durch dieses Patent berücksichtigt sind und in den Rahmen der beiliegenden Ansprüche aufgenommen werden.
  • Es ist außerdem zu erwähnen, dass, obwohl dieses Patent beispielhafte Systeme offenbart, die auf Hardware ausgeführte Software oder Firmware umfassen, solche Systeme nur der Veranschaulichung dienen und nicht als einschränkend anzusehen sind. Zum Beispiel wird in Betracht gezogen, dass einige oder alle dieser Hardware- und Softwarekomponenten ausschließlich in Hardware, ausschließlich in Software, ausschließlich in Firmware oder irgendeiner Kombination von Hardware, Firmware und/oder Software verwirklicht werden könnten. Obwohl die zuvor dargelegte Spezifikation beispielhafte Herstellungssysteme, -verfahren und -produkte beschrieb, ist demgemäß für Durchschnittsfachleute offensichtlich, dass die Beispiele nicht die einzige Art und Weise zur Implementierung solcher Herstellungssysteme, -verfahren und -produkte darstellen. Obwohl hierin bestimmte beispielhafte Herstellungsverfahren, -geräte und -produkte beschrieben wurden, ist der Schutzumfang dieses Patents nicht darauf beschränkt. Im Gegenteil erstreckt sich dieses Patent auf alle Herstellungsverfahren, -geräte und -produkte, die entweder wörtlich oder gemäß dem Entsprechungsprinzip auf angemessene Weise in den Rahmen der angehängten Ansprüche fallen.

Claims (38)

  1. Verfahren zum Modifizieren eines Betriebs eines Funktionsblocks, der einen Basisfunktionsblock umfasst, der so ausgelegt ist, dass er einen dynamischen Modifikationsfunktionsblock instantiiert oder löscht, wobei das Verfahren umfasst: Ablegen des Funktionsblocks in einem Speicher einer Maschine; und Ablegen wenigstens eines modifizierbaren Attributs, das mit dem Basisfunktionsblock assoziiert ist, im Speicher, wobei das modifizierbare Attribut auf einen ersten Wert gesetzt werden kann, um die Maschine zu veranlassen, einen dynamischen Modifikationsfunktionsblock im Speicher zu instantiieren, oder auf einen zweiten Wert, um die Maschine zu veranlassen, einen dynamischen Modifikationsfunktionsblock aus dem Speicher zu löschen.
  2. Verfahren nach Anspruch 1, wobei der Funktionsblock Funktionsblock [sic!] mit einem Prozesssteuerungssystem assoziiert ist, das eine Prozesssteuerroutine unter Verwendung einer Vielzahl von kommunikativ verbundenen Funktionsblöcken ausführt.
  3. Verfahren nach Anspruch 2, wobei jeder der Vielzahl von kommunikativ verbundenen Funktionsblöcken wenigstens ein Ausgangssignal an einen oder mehrere andere der Vielzahl von kommunikativ verbundenen Funktionsblöcken übermittelt und wenigstens ein Eingangssignal von einem oder mehreren anderen der Vielzahl von kommunikativ verbundenen Funktionsblöcken empfängt.
  4. Verfahren nach Anspruch 1, wobei der dynamische Modifikationsfunktionsblock eine Reihe von maschinenlesbaren Anweisungen umfasst, die auf einem maschinenlesbaren Medium gespeichert sind und die, wenn ausgeführt, die Maschine veranlassen, einen Algorithmus auszuführen, der mit einem Prozesssteuerungssystem assoziiert ist.
  5. Verfahren nach Anspruch 4, wobei der Algorithmus wenigstens eine von einer Steuerfunktion, einer Selbstabgleichfunktion oder einer Schnittstellenfunktion ist.
  6. Verfahren nach Anspruch 1, wobei ein Instantiieren des dynamischen Modifikationsfunktionsblocks ein zeitliches Steuern der Maschine umfasst, um einen Satz von maschinenlesbaren Anweisungen, die mit dem dynamischen Modifikationsfunktionsblock assoziiert sind, vor oder nach dem Ausführen eines Satzes von maschinenlesbaren Anweisungen, die mit dem Basisfunktionsblock assoziiert sind, auszuführen.
  7. Verfahren nach Anspruch 1, wobei das modifizierbare Attribut auf einen dritten Wert gesetzt werden kann, um die Maschine zu veranlassen, einen Algorithmus auszuführen, der mit dem Basisfunktionsblock assoziiert ist.
  8. Verfahren nach Anspruch 1, wobei die Maschine einen Prozessor umfasst, der sich in einer Feldvorrichtung befindet.
  9. Verfahren nach Anspruch 1, wobei die Maschine eine Schreibprüfungsfunktion ausführen soll, um den Wert des modifizierbaren Attributs zu identifizieren.
  10. Verfahren nach Anspruch 1, wobei das modifizierbare Attribut auf den ersten Wert oder den zweiten Wert gesetzt werden kann, nachdem der Basisfunktionsblock kompiliert und im Speicher abgelegt wurde.
  11. Verfahren nach Anspruch 1, ferner umfassend das Setzen des modifizierbaren Attributs auf einen dritten Wert durch die Maschine, nachdem die Maschine den dynamischen Modifikationsfunktionsblock aus dem Speicher löscht oder den dynamischen Modifikationsfunktionsblock im Speicher instantiiert, wobei der dritte Wert die Maschine veranlasst, einen Algorithmus auszuführen, der mit einem Prozesssteuerungssystem assoziiert ist.
  12. Verfahren nach Anspruch 1, ferner umfassend das Umsetzen des modifizierbaren Attributs vom ersten Wert auf den zweiten Wert, wenn der Basisfunktionsblock in einer Prozesssteuerroutine arbeitet, um die Prozesssteuerroutine zu ändern.
  13. Verfahren nach Anspruch 1, wobei das Speichern des Funktionsblocks im Speicher ein Instantiieren eines dynamischen Modifikationsblocks umfasst.
  14. Verfahren nach Anspruch 13, wobei ein Instantiieren des dynamischen Modifikationsfunktionsblocks ein zeitliches Steuern der Maschine umfasst, um eine Reihe von maschinenlesbare Anweisungen, die mit dem dynamischen Modifikationsfunktionsblock assoziiert sind, vor oder nach einer Reihe von maschinenlesbaren Anweisungen, die mit dem Basisfunktionsblock assoziiert sind, auszuführen.
  15. Funktionsblock, der auf einem maschinenlesbaren Medium gespeichert ist, zur Verwendung in einem Prozesssteuerungssystem, umfassend: einen Basisfunktionsblock mit einer ersten Reihe von maschinenlesbaren Anweisungen, die auf dem maschinenlesbaren Medium gespeichert sind und die, wenn ausgeführt, eine Maschine veranlassen, einen Algorithmus auszuführen, der mit dem Prozesssteuerungssystem assoziiert ist; und wenigstens ein Attribut, das sich in der ersten Reihe von maschinenlesbaren Anweisungen befindet, wobei das Attribut die Maschine veranlasst, wenigstens eines von einem Löschen oder Instantiieren wenigstens eines dynamischen Modifikationsfunktionsblocks durchzuführen.
  16. Funktionsblock nach Anspruch 15, wobei der dynamische Modifikationsfunktionsblock eine zweite Reihe von maschinenlesbaren Anweisungen umfasst, die auf dem maschinenlesbaren Medium gespeichert sind und die, wenn ausgeführt, die Maschine veranlassen, einen zweiten Algorithmus auszuführen, der mit dem Prozesssteuerungssystem assoziiert ist
  17. Funktionsblock nach Anspruch 16, wobei der zweite Algorithmus wenigstens eine von einer Steuerfunktion, einer Selbstabgleichfunktion oder einer Schnittstellenfunktion ist.
  18. Funktionsblock nach Anspruch 15, wobei das Prozesssteuerungssystem eine Prozesssteuerroutine unter Verwendung einer Vielzahl von kommunikativ miteinander verbundenen Funktionsblöcken ausführt.
  19. Funktionsbock nach Anspruch 18, wobei jeder der Vielzahl von kommunikativ miteinander verbundenen Funktionsblöcken wenigstens ein Ausgangssignal an einen oder mehrere andere der Vielzahl von kommunikativ miteinander verbundenen Funktionsblöcken übermittelt und wenigstens ein Eingangssignal von einem oder mehreren anderen der Vielzahl von kommunikativ miteinander verbundenen Funktionsblöcken empfängt.
  20. Funktionsbock nach Anspruch 15, ferner umfassend eine Schnittstelle, um Daten zwischen dem Basisfunktionsblock und dem wenigstens einen dynamischen Modifikationsfunktionsblock zu übergeben.
  21. Funktionsblock nach Anspruch 20, wobei die Schnittstelle eine registrierte Rückruffunktion umfasst, um Datenwerte in den Basisfunktionsblock zu schreiben.
  22. Funktionsblock nach Anspruch 20, wobei die Schnittstelle Datenwerte umfasst, die von dem wenigstens einen dynamischen Modifikationsfunktionsblock zu lesen sind.
  23. Funktionsblock nach Anspruch 20, wobei die Schnittstelle Speicheradresswerte enthält, die mit den Datenwerten assoziiert sind, die von dem wenigstens einen dynamischen Modifikationsfunktionsblock zu lesen sind.
  24. Funktionsblock nach Anspruch 15, wobei das Attribut ferner die Maschine veranlasst, den Algorithmus auszuführen, der mit dem Prozesssteuerungssystem assoziiert ist, ohne den dynamischen Modifikationsfunktionsblock zu instantiieren oder zu löschen.
  25. Funktionsblock nach Anspruch 15, wobei das wenigstens eine Attribut modifizierbar ist, nachdem der Basisfunktionsblock kompiliert und in einem maschinenlesbaren Speicher abgelegt wurde, welcher der Maschine zugeordnet ist.
  26. Funktionsblock nach Anspruch 15, wobei die Maschine einen Prozessor umfasst, der sich in einer Feldvorrichtung befindet, die einen Speicher aufweist, um die maschinenlesbaren Anweisungen abzulegen.
  27. Funktionsblock nach Anspruch 15, wobei der Funktionsblock eine maschinenlesbare Anweisung enthält, die, wenn ausgeführt, die Maschine veranlasst, eine Schreibprüfungsfunktion durchzuführen, um den Wert des wenigstens einen Attributs zu identifizieren.
  28. Funktionsblock nach Anspruch 15, wobei der Funktionsblock eine maschinenlesbare Anweisung enthält, die, wenn ausgeführt, die Maschine veranlasst, nach dem Löschen oder Instantiieren des wenigstens einen dynamischen Modifikationsfunktionsblocks Schlüssel zu modifizieren, die mit jeweiligen Attributen des wenigstens einen dynamischen Modifikationsfunktionsblocks assoziiert sind.
  29. Funktionsblock nach Anspruch 28, wobei die jeweiligen der Schlüssel wenigstens einen Teil wenigstens eines von einem Indexwert oder einer Speicheradresse umfassen.
  30. Funktionsblock nach Anspruch 28, wobei die Schlüssel jeweilige Werte umfassen, die von einem Client, der dem Prozesssteuerungssystem zugeordnet ist, vor dem Lesen der jeweiligen Attribute des dynamischen Modifikationsfunktionsblocks zu prüfen sind.
  31. Dynamischer Modifikationsfunktionsblock eines Funktionsblocks, ausgelegt, um einen Satz von maschinenlesbaren Anweisungen auszuführen, die, wenn ausgeführt, eine Maschine veranlassen, einen Basisfunktionsblock des Funktionsblocks in einer Prozesssteuerroutine zu modifizieren, wobei der dynamische Modifikationsfunktionsblock auf der Basis wenigstens eines Attributs des Basisfunktionsblocks zu instantiieren oder zu löschen ist.
  32. Dynamischer Modifikationsfunktionsblock nach Anspruch 31, wobei der Satz von maschinenlesbaren Anweisungen wenigstens eine von einer Steuerfunktion, einer Selbstabgleichfunktion oder einer Schnittstellenfunktion umfasst.
  33. Dynamischer Modifikationsfunktionsblock nach Anspruch 31, wobei der Funktionsblock ferner eine Schnittstelle umfasst, um Daten zwischen dem Basisfunktionsblock und dem dynamischen Modifikationsfunktionsblock zu übermitteln.
  34. Dynamischer Modifikationsfunktionsblock nach Anspruch 33, wobei die Schnittstelle eine registrierte Rückruffunktion umfasst, um Datenwerte in den Basisfunktionsblock zu schreiben.
  35. Dynamischer Modifikationsfunktionsblock nach Anspruch 33, wobei die Schnittstelle Datenwerte umfasst, die vom dynamischen Modifikationsfunktionsblock zu lesen sind.
  36. Dynamischer Modifikationsfunktionsblock nach Anspruch 33, wobei die Schnittstelle Speicheradresswerte enthält, die mit Datenwerten assoziiert sind, die vom dynamischen Modifikationsfunktionsblock zu lesen sind.
  37. Dynamischer Modifikationsfunktionsblock nach Anspruch 31, wobei das Attribut modifizierbar ist, nachdem der Basisfunktionsblock kompiliert und in einem maschinenlesbaren Speicher, welcher der Maschine zugeordnet ist, abgelegt wurde.
  38. Dynamischer Modifikationsfunktionsblock nach Anspruch 31, wobei die Maschine einen Prozessor umfasst, der sich in einer Feldvorrichtung befindet, die einen Speicher aufweist, um die maschinenlesbaren Anweisungen abzulegen.
DE102007046965A 2006-10-02 2007-10-01 Dynamische Modifikationsfunktionsblöcke zur Verwendung in einem Prozesssteuerungssystem Pending DE102007046965A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/537,839 2006-10-02
US11/537,839 US7561930B2 (en) 2006-10-02 2006-10-02 Dynamic modifier function blocks for use in a process control system

Publications (1)

Publication Number Publication Date
DE102007046965A1 true DE102007046965A1 (de) 2008-04-24

Family

ID=39226679

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007046965A Pending DE102007046965A1 (de) 2006-10-02 2007-10-01 Dynamische Modifikationsfunktionsblöcke zur Verwendung in einem Prozesssteuerungssystem

Country Status (6)

Country Link
US (1) US7561930B2 (de)
JP (1) JP5291912B2 (de)
CN (1) CN101158869B (de)
DE (1) DE102007046965A1 (de)
GB (1) GB2442592B (de)
HK (2) HK1115769A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2498155A1 (de) * 2011-03-11 2012-09-12 Siemens Aktiengesellschaft Verfahren zur Erkennung von Änderungen an SW-Schnittstellen und zum automatischen Anpassungen dieser Schnittstellen in einer Automatisierungsslösung
DE102015103881A1 (de) * 2015-03-17 2016-09-22 Endress + Hauser Wetzer Gmbh + Co. Kg Verfahren zur Datenübertragung

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006027012A1 (de) * 2006-06-08 2007-12-13 Endress + Hauser Process Solutions Ag Verfahren zum Austausch eines Feldgerätes der Automatisierungstechnik
CN101611358B (zh) * 2007-02-14 2011-10-05 西门子公司 为自动化***更换结构组件的方法
JP4919995B2 (ja) * 2008-03-13 2012-04-18 株式会社東芝 制御システム、制御装置および制御方法
US9256219B2 (en) * 2009-08-11 2016-02-09 Fisher-Rosemount Systems, Inc. System configuration using templates
US9535413B2 (en) * 2010-02-12 2017-01-03 Rockwell Automation Technologies, Inc. Automatic device parameter binding method and system
US9135395B2 (en) 2011-04-29 2015-09-15 Rockwell Automation Technologies, Inc. Element specific variable translation
US8849429B2 (en) * 2011-05-09 2014-09-30 General Electric Company System and method for block instantiation
US9772617B2 (en) * 2011-06-30 2017-09-26 General Electric Company Systems and methods for function block instantiation
US9213329B2 (en) * 2012-10-25 2015-12-15 Honeywell Gmbh System and method for vendor release independent reusable customized function block libraries
JP6134390B2 (ja) * 2013-01-15 2017-05-24 ヒューレット パッカード エンタープライズ デベロップメント エル ピーHewlett Packard Enterprise Development LP 動的ファームウェア更新
DE102015106116A1 (de) * 2015-04-21 2016-10-27 Phoenix Contact Gmbh & Co. Kg Verfahren und Steuereinrichtung zur flexiblen Prozesssteuerung
US10438144B2 (en) 2015-10-05 2019-10-08 Fisher-Rosemount Systems, Inc. Method and apparatus for negating effects of continuous introduction of risk factors in determining the health of a process control system
US10671038B2 (en) 2016-07-15 2020-06-02 Fisher-Rosemount Systems, Inc. Architecture-independent process control
US10387238B2 (en) * 2016-09-22 2019-08-20 Rockwell Automation Technologies, Inc. Industrial control program sequence monitoring
US10401816B2 (en) * 2017-07-20 2019-09-03 Honeywell International Inc. Legacy control functions in newgen controllers alongside newgen control functions
US10447078B2 (en) 2017-10-02 2019-10-15 Fisher-Rosemount Systems, Inc. Smart function block for integration of PLCS into a control system and methods for the same
KR102659832B1 (ko) * 2019-03-05 2024-04-22 삼성전자주식회사 데이터 저장 장치 및 시스템
JP7380635B2 (ja) * 2021-04-09 2023-11-15 横河電機株式会社 プログラム修正支援装置及びプログラム修正支援方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0310304A (ja) * 1989-06-08 1991-01-17 Fuji Electric Co Ltd プログラム制御システム
JPH05224963A (ja) * 1991-09-10 1993-09-03 Internatl Business Mach Corp <Ibm> リアルタイムシステム用プロセス制御システム
JP2003233502A (ja) * 1999-01-13 2003-08-22 Sony Corp 演算処理装置及びオブジェクト間通信の管理方法
US6510351B1 (en) * 1999-03-15 2003-01-21 Fisher-Rosemount Systems, Inc. Modifier function blocks in a process control system
US6415418B1 (en) * 1999-08-27 2002-07-02 Honeywell Inc. System and method for disseminating functional blocks to an on-line redundant controller
US6510353B1 (en) 1999-11-04 2003-01-21 Fisher-Rosemount Systems, Inc. Determining tuning parameters for a process controller from a robustness map
US7822495B2 (en) * 2002-04-15 2010-10-26 Fisher-Rosemount Systems, Inc. Custom function blocks for use with process control systems
JP2006079280A (ja) * 2004-09-08 2006-03-23 Sony Corp 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
US8381198B2 (en) * 2005-08-15 2013-02-19 Sony Ericsson Mobile Communications Ab Systems, methods and computer program products for safety checking executable application programs in a module

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2498155A1 (de) * 2011-03-11 2012-09-12 Siemens Aktiengesellschaft Verfahren zur Erkennung von Änderungen an SW-Schnittstellen und zum automatischen Anpassungen dieser Schnittstellen in einer Automatisierungsslösung
DE102015103881A1 (de) * 2015-03-17 2016-09-22 Endress + Hauser Wetzer Gmbh + Co. Kg Verfahren zur Datenübertragung

Also Published As

Publication number Publication date
JP2008090846A (ja) 2008-04-17
HK1163268A1 (en) 2012-09-07
GB2442592B (en) 2011-09-14
GB0719220D0 (en) 2007-11-14
US7561930B2 (en) 2009-07-14
HK1115769A1 (en) 2008-12-05
CN101158869B (zh) 2012-01-04
CN101158869A (zh) 2008-04-09
JP5291912B2 (ja) 2013-09-18
GB2442592A (en) 2008-04-09
US20080189526A1 (en) 2008-08-07

Similar Documents

Publication Publication Date Title
DE102007046965A1 (de) Dynamische Modifikationsfunktionsblöcke zur Verwendung in einem Prozesssteuerungssystem
DE10012258B4 (de) Selbst-Abstimmung in einer verteilten Prozeß-Regelumgebung
DE69414609T2 (de) Informationsanzeigesystem zur aktiven redundanten rechnergestützten prozesssteuerung
DE69704624T2 (de) System und verfahren für dynamische datenreferenz in einer generischen datenaustauschumgebung
DE10012249A1 (de) Modifikationsfunktionsblöcke in einem Prozeßsteuerungssystem
EP2325708B1 (de) Echtzeit-Laufzeitsystem und Funktionsmodul für ein solches Laufzeitsystem
DE112004001775T5 (de) Verfahren und Vorrichtung zur Bereitstellung von automatischen Software-Updates
DE102006062478B4 (de) Verfahren zum Betreiben eines objektbasierten Konfigurationssystems für Feldgeräte der Automatisierungstechnik
DE102010036914A1 (de) Systemkonfiguration unter Verwendung von Vorlagen
DE102007046572A1 (de) Flexible Eingabe-/Ausgabegeräte zur Verwendung in Prozesssteuerungssystemen
DE10011661A1 (de) Prozeßsteuersystem mit Prozeßsteuerroutinen unter Verwendung von indirekter Referenzierung
DE10049025A1 (de) Process control configuration system for use with an AS-inferface device network
DE102007040823A1 (de) Editier- und Berichts-Tool für Grafische Programmiersprachenobjekte
DE102008010864A1 (de) Verfahren zum Betreiben eines Feldgerätes
EP3128383A1 (de) Feldgerät
DE102018110020A1 (de) Verfahren zum Erzeugen eines auf einem Testgerät ausführbaren Modells eines technischen Systems und Testgerät
DE4104568A1 (de) Verfahren und vorrichtung zur programmverarbeitung
EP1653308B1 (de) System und Verfahren zur Speicherung und Bereitstellung von Informationen
EP1821165B1 (de) Nutzung von Variablen in mehreren Automatisierungssystemen
EP3995960A1 (de) Computer programm zum austausch von daten zwischen programmmodulen
DE102008023873A1 (de) Verfahren zum Betrieb eines Antriebssystems
EP3850443B1 (de) Verfahren zur integration von daten von assets einer technischen anlage in eine plattform, digitale plattform und computerprogrammprodukt
WO2016087585A1 (de) Verfahren zur nachverfolgbaren programmierung und konfigurierung eines geräts
DE102019217520A1 (de) Verfahren zur modularen Anpassung einer programmierbaren Steuerung
EP2787403A1 (de) Verfahren zum automatischen Erstellen eines Automatisierungsprogramms aus einer technologischen Beschreibung einer Automatisierungslösung

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20120104

R016 Response to examination communication
R016 Response to examination communication