DE102007046570A1 - Verfahren und Vorrichtung zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem - Google Patents

Verfahren und Vorrichtung zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem Download PDF

Info

Publication number
DE102007046570A1
DE102007046570A1 DE102007046570A DE102007046570A DE102007046570A1 DE 102007046570 A1 DE102007046570 A1 DE 102007046570A1 DE 102007046570 A DE102007046570 A DE 102007046570A DE 102007046570 A DE102007046570 A DE 102007046570A DE 102007046570 A1 DE102007046570 A1 DE 102007046570A1
Authority
DE
Germany
Prior art keywords
schedule
function
block
sub
start time
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.)
Withdrawn
Application number
DE102007046570A
Other languages
English (en)
Inventor
Alper T. Austin Enver
Kenneth D. Austin Krivoshein
John Michael Lucas
Ram Austin Ramachandran
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 DE102007046570A1 publication Critical patent/DE102007046570A1/de
Withdrawn 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/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], computer integrated manufacturing [CIM]
    • G05B19/41865Total 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], computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • 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], computer integrated manufacturing [CIM]
    • 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/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32248Create schedule from elementary operations from database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

Offengelegt werden beispielhafte Verfahren und Vorrichtung zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem. Eine offengelegte beispielhafte Vorrichtung weist eine erste Schnittstelle auf, konfiguriert, eine einer Prozesssteuerungsroutine zugeordnete erste Funktion zu identifizieren. Die beispielhafte Vorrichtung weist weiterhin einen Unter-Zeitplangenerator auf, konfiguriert, einen dem ersten Zeitraum zugeordneten Unter-Zeitplan zu erzeugen. Der erste Unter-Zeitplan gibt eine erste Ausführungszeit an, zu der die erste Funktion auszuführen ist. Die beispielhafte Vorrichtung weist weiterhin einen Zeitplangenerator auf, der konfiguriert ist, einen einem zweiten Zeitraum zugeordneten Zeitplan auf der Grundlage zweier Instanzen des ersten Unter-Zeitraums zu bilden. Der Zeitplan gibt die erste Ausführungszeit und eine zweite Ausführungszeit, zu denen die erste Funktion auszuführen ist, an.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Offenlegung bezieht sich allgemein auf Prozesssteuerungssysteme und spezifischer auf Verfahren und Vorrichtungen zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem.
  • HINTERGRUND DER ERFINDUNG
  • Prozesssteuerungssysteme der Art, wie sie in Prozessen in der Chemie-, Petroleum- und anderen Industrien eingesetzt werden, weisen typischerweise eine oder mehrere zentrale Prozesssteuerungen auf, die über analoge, digitale oder kombinierte analoge/digitale Busse mit mindestens einer Host- oder Bedienerstation und einem oder mehreren Feldgeräten kommunikativ verbunden sind. Die Feldgeräte, bei denen es sich beispielsweise um Ventile, Ventilsteller, Schalter und Geber (beispielsweise Temperatur-, Druck- und Strömungsgeschwindigkeitssensoren) handeln kann, erfüllen innerhalb des Prozesses bestimmte Funktionen wie beispielsweise Öffnen oder Schließen von Ventilen und Messung von Prozessparametern. Die Prozesssteuerung empfängt Signale, die von den Feldgeräten durchgeführte Prozessmessungen und/oder andere Informationen im Zusammenhang mit den Feldgeräten repräsentieren, verwendet diese Information zur Durchführung einer Steuerungsroutine und erzeugt im Anschluss daran Steuersignale, die über die Busse oder andere Kommunikationsleitungen zu den Feldgeräten übertragen werden, um den Ablauf des Prozesses zu steuern. Die von den Feldgeräten und Steuerungen kommenden Informationen können einer oder mehreren Anwendungen zur Verfügung gestellt werden, die von der Bedienerstation ausgeführt werden, damit ein Bediener gewünschte Funktionen in Bezug auf den Prozess durchführen kann. Hierbei kann es sich beispielsweise um die Betrachtung des aktuellen Status des Prozesses, eine Änderung des Prozessablaufs etc. handeln.
  • Prozesssteuerungssystemanwendungen weisen in der Regel Prozesssteuerungsroutinen auf, die konfiguriert werden können, in einem Prozesssteuerungssystem verschiedene Funktionen oder Operationen auszuführen. Beispielsweise können Prozesssteuerungsroutinen verwendet werden, um Ventile, Motoren, Kessel, Heizungen etc. zu steuern. Prozesssteuerungsroutinen können auch verwendet werden, um Feldgeräte, Module, Anlagenbereiche etc. zu überwachen und einem Prozesssteuerungssystem zugeordnete Informationen zu sammeln. Für die Implementierung von Prozesssteuerungsroutinen verwendete Feldgeräte sind typischerweise miteinander und mit einer Prozesssteuerung über einen Datenbus verbunden. Datenbusse haben beschränkte Ressourcen einschließlich einer beschränkten Bandbreite, die Feldgeräten und Prozesssteuerung zur Verfügung stehen, um einander Informationen zu kommunizieren. Um zu gewährleisten, dass auf dem Datenbus ausreichend Zeit zur Verfügung steht, damit alle Feldgeräte und Steuerungen ihre jeweiligen Funktionen ausführen und Informationen zwischen diesen kommunizieren, werden Zeitpläne erzeugt, um anzugeben, wann die Steuerungen und die Feldgeräte ihre jeweiligen Funktionen ausführen sollten.
  • ZUSAMMENFASSUNG
  • Offengelegt werden beispielhafte Vorrichtungen und Verfahren zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem. Nach einem Beispiel weist eine beispielhafte Vorrichtung eine erste Schnittstelle auf, konfiguriert, eine einer Prozesssteuerungsroutine zugeordnete erste Funktion zu identifizieren. Die beispielhafte Vorrichtung weist weiterhin einen Unter-Zeitplan generator auf, konfiguriert, einen dem ersten Zeitraum zugeordneten Unter-Zeitplan zu erzeugen. Der erste Unter-Zeitplan gibt eine erste Ausführungszeit an, zu der die erste Funktion auszuführen ist. Die beispielhafte Vorrichtung weist weiterhin einen Zeitplangenerator auf, der konfiguriert ist, einen einem zweiten Zeitraum zugeordneten Zeitplan auf der Grundlage zweier Instanzen des ersten Unter-Zeitraums zu bilden. Der Zeitplan gibt die erste Ausführungszeit und eine zweite Ausführungszeit, zu denen die erste Funktion auszuführen ist, an.
  • Nach einem weiteren Beispiel beinhaltet ein beispielhaftes Verfahren das Erzeugen einer ersten Anzahl von Startzeit-Offsets, die eine Anzahl von Ausführungen einer ersten Funktion während eines einem ersten Zeitraum zugeordneten ersten Unter-Zeitplan angeben. Das beispielhafte Verfahren beinhaltet auch das Erzeugen einer zweiten Anzahl von Startzeit-Offsets, die eine Anzahl von Ausführungen einer zweiten Funktion während des ersten Unter-Zeitplans angeben. Die erste Anzahl von Startzeit-Offsets ist von der zweiten Anzahl von Startzeit-Offsets verschieden. Das beispielhafte Verfahren beinhaltet auch das Erzeugen eines einem zweiten Zeitraum zugeordneten Zeitplans auf der Grundlage zweier Instanzen des ersten Unter-Zeitplans.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines beispielhaften Prozesssteuerungssystems.
  • 2 zeigt grafische Benutzerschnittstellen-(GUI-)Darstellungen der Funktionsblöcke, die in dem beispielhaften Prozesssteuerungssystem in 1 zur Implementierung einer Prozesssteuerungsroutine verwendet werden, sowie Verbindungen zwischen den Funktionsblöcken.
  • 3 ist eine beispielhafte Blockverbindungskonfiguration, die verschiedenen Feldgeräten des Prozesssteuerungssystems in 1 zugeordnete Funktionsblöcke über einen Kommunikationsbus verbindet.
  • 4 ist ein beispielhaftes Ausführungssequenzdiagramm, das die Zeitsteuerungsbeziehungen zwischen Ausführungen einiger der Funktionsblöcke in 1 und 2 während zwei aufeinander folgender Ausführungen einer 500-Millisekunden-Schleife zeigt.
  • 5 ist ein weiteres beispielhaftes Ausführungssequenzdiagramm, das die Zeitsteuerungsbeziehungen zwischen Ausführungen einiger der Funktionsblöcke in 1 und 2 während zwei aufeinander folgender Ausführungen einer 2000-Millisekunden-Schleife zeigt.
  • 6 ist ein beispielhaftes Ausführungssequenzdiagramm, das entsprechend bekannten Verfahren zur Ausführung von Funktionsblöcken implementiert ist, die unterschiedliche Blockabtastraten aufweisen und Feldgeräten zugeordnet sind, die kommunikativ mit demselben Kommunikationsbus wie das beispielhafte Prozesssteuerungssystem in 1 verbunden ist.
  • 7 ist ein beispielhaftes Ausführungssequenzdiagramm, das entsprechend den hierin beschriebenen beispielhaften Verfahren und Vorrichtungen implementiert ist, um Funktionsblöcke in die Lage zu versetzen, mit ihren Blockabtastraten und jeweiligen Schleifenausführungszeiträumen ausgeführt zu werden.
  • 8 ist eine beispielhafte Rundungstabelle, die verwendet werden kann, um Blockrohausführungszeiträume von Funktionsblöcken aufzurunden.
  • 9 ist eine beispielhafte Tabelle 900 von Anzahlen von Startzeit-Offsets, die die Anzahl der von den Funktionsblöcken aus 1 und 2 benötigten Startzeit-Offsets zur Ausführung während jeweiliger Unter-Zeitpläne zeigt.
  • 10 zeigt eine weitere beispielhafte Funktionsblockkonfiguration, in der eine Mehrzahl von Feldgeräten kommunikativ mit einem Kommunikationsbus eines Prozesssteuerungssystems verbunden und konfiguriert sind, jeweilige Funktionsblöcke auszuführen.
  • 11 zeigt eine weitere beispielhafte Tabelle 1100 von Anzahlen von Startzeit-Offsets, die die Anzahl der Startzeiten zeigt, die für jeden Funktionsblock der beispielhaften Funktionsblockkonfiguration aus 10 benötigt werden.
  • 12 ist ein weiteres beispielhaftes Ausführungssequenzdiagramm, das einen den Funktionsblöcken in 10 zugeordneten Zeitplan zeigt, der mittels der hierin beschriebenen Verfahren und Vorrichtungen erzeugt wird.
  • 13 ist eine beispielhafte objektorientierte Softwareausführungsumgebung, die die Beziehungen zwischen für die Feldgeräte in 1 repräsentativen Objekten, den Funktionsblöcken in 1 und den den Funktionsblöcken entsprechenden Startzeit-Offsets zeigt.
  • 14 ist eine weitere beispielhafte objektorientierte Softwareausführungsumgebung, die die Beziehungen zwischen für die Feldgeräte in 10 repräsentativen Objekten, den Funktionsblöcken in 10 und den den Funktionsblöcken entsprechenden Startzeit-Offsets zeigt.
  • 15 zeigt eine beispielhafte Art und Weise, auf die die Startliste in 14, die einem Funktionsblock in 10 zugeordnet ist, von einem Bedienrechner in ein entsprechendes Feldgerät in 10 kopiert wird.
  • 16 zeigt eine beispielhafte objektorientierte Programmierungsumgebung, die eine Mehrzahl von Klassen 1602a–i aufweist, die konfiguriert sind, die Zeitpläne in 7 und 12 mittels der hierin beschriebenen Verfahren und Vorrichtungen zu erzeugen.
  • 17 ist ein detailliertes Blockdiagramm einer beispielhaften Vorrichtung, die verwendet werden kann, um Zeitpläne nach den hierin beschriebenen Verfahren und Vorrichtungen zu erzeugen.
  • 18 ist ein Flussdiagramm eines beispielhaften Verfahrens, das verwendet werden kann, um die beispielhafte Vorrichtung in 17 zur Erzeugung von Zeitplänen entsprechend der hierin enthaltenen Beschreibung zu implementieren.
  • 19 ist ein Flussdiagramm eines beispielhaften Verfahrens, das in Verbindung mit dem beispielhaften Verfahren in 18 implementiert werden kann, um die Anzahl der von Funktionsblöcken benötigten Startzeit-Offsets zu bestimmen.
  • 20 ist ein Flussdiagramm eines beispielhaften Verfahrens, das in Verbindung mit dem beispielhaften Verfahren in 18 implementiert werden kann, um Unter-Zeitpläne und einen Zeitplan auf der Grundlage der erzeugten Unter-Zeitpläne zu erzeugen.
  • 21 ist ein Flussdiagramm eines beispielhaften Verfahrens, das in Verbindung mit dem beispielhaften Verfahren in 20 implementiert werden kann, um Startzeit-Offset-Werte für einen Funktionsblock zu bestimmen.
  • 22 ist ein beispielhaftes Funktionsausführungs- und Datenübertragungssequenzdiagramm des Zeitplans in 12.
  • 23 ist ein Blockdiagramm eines beispielhaften Prozessorsystems, das zur Realisierung der in dieser Patentschrift beschriebenen beispielhaften Systeme und Verfahren verwendet werden kann.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgenden Ausführungen beschreiben zwar beispielhafte Vorrichtungen und Systeme, die unter anderem Komponenten, Software und/oder Firmware aufweisen, die auf Hardware laufen, jedoch ist zu bedenken, dass diese Systeme lediglich veranschaulichenden Charakter besitzen und nicht als einschränkend zu betrachten sind. So ist es beispielsweise denkbar, dass alle diese Hardware-, Software- und Firmwarekomponenten ausschließlich in Hardware, ausschließlich in Software oder in jeder Kombination aus Hardware und Software ausgeführt werden könnten. Während die folgenden Dar stellungen mithin beispielhafte Vorrichtungen und Systeme beschreiben, erkennt der technisch Versierte sofort, dass die aufgeführten Beispiele nicht die einzige Art und Weise für die Realisierung derartiger Vorrichtungen und Systeme darstellen.
  • Bekannte Techniken, die zum Erzeugen von Zeitplänen zum Ausführen von Funktionsblöcken durch Prozesssteuerungen und Feldgeräte in einem Prozesssteuerungssystem verwendet werden, beinhalten typischerweise die zeitliche Ablaufplanung aller demselben Kommunikationsbus (beispielsweise einem Kommunikationsbus, der die Feldgeräte und Steuerungen, die mit der Ausführung der Funktionsblöcke beauftragt sind, kommunikativ verbindet) zugeordneten Funktionsblöcke, um mit der Rate des am langsamsten ausführenden Funktionsblocks auszuführen. Daher verlangen bekannte Techniken eine Vergrößerung der Blockausführungszeiträume (beispielsweise eine Verlangsamung der Funktionsblockausführungsraten) relativ schneller ausführender Funktionsblöcke, um an die Blockausführungszeiträume des am langsamsten ausführenden Funktionsblocks angepasst zu sein, sodass die kleineren Ausführungszeiträume (d.h. schnellere Ausführungsraten) einiger Funktionsblöcke nicht vorteilhaft genutzt werden können, um ein Prozesssteuerungssystem zu implementieren.
  • Im Gegensatz zu einigen bekannten, für die Implementierung von Zeitplänen für die Ausführung von Funktionsblöcken verwendeten Techniken können die hierin beschriebenen beispielhaften Verfahren und Vorrichtungen verwendet werden, um Zeitpläne für die Ausführung von Funktionsblöcken zu erzeugen, die auf ihren jeweiligen Funktionsblockausführungszeiträumen basieren, ohne die Funktionsblockausführungszeiträume wesentlich vergrößern zu müssen, um an die Funktionsblockausführungszeiträume anderer Funktionsblöcke angepasst zu sein, die demselben Kommunikationsbus zugeordnet sind (beispielsweise Kommunikation über diesen). Eine Ausführung einiger Funktionsblöcke mit einer größeren Geschwindigkeit als andere, langsamere Funktionsblöcke, die demselben Kommunikationsbus zugeordnet sind, kann vorteilhaft sein. Wenn beispielsweise ein Druckmessungsfunktionsblock und ein Ventilsteuerungsfunktionsblock demselben Kommunikationsbus zugeordnet sind, kann es vorteilhaft sein, den Druckmessungsfunktionsblock mit einem kürzeren Zeitraum (beispielsweise mit einer schnelleren Rate) auszuführen, während eine Ausführung des Ventilsteuerungsfunktionsblocks mit einem kürzeren Zeitraum nicht sonderlich vorteilhaft sein mag.
  • Entsprechend kann der Funktionsblockausführungszeitraum eines Druckmessungsfunktionsblock kürzer sein als der Funktionsblockausführungszeitraum des Ventilsteuerungsfunktionsblocks. Die Verwendung der bekannten Techniken zur zeitlichen Ablaufplanung der Funktionsblockausführungen würde es erfordern, dass der Druckmessungsfunktionsblock mit demselben, langsameren Zeitraum des Ventilsteuerungsfunktionsblocks ausgeführt wird. Daher kann der Druckmessungsfunktionsblock möglicherweise höherfrequente Druckschwankungen in einem Prozess nicht erfassen. Im Gegensatz versetzt die Verwendung der hierin beschriebenen beispielhaften Verfahren und Vorrichtungen zum Erzeugen von Zeitplänen zur Ausführung von Funktionsblöcken mit ihren jeweiligen Blockausführungsraten den Druckmessungsfunktionsblock in die Lage, mit einem kürzeren Zeitraum (beispielsweise mit einer schnelleren Ausführungsrate) als der Ventilsteuerungsfunktionsblock ausgeführt zu werden. Der Druckmessungsfunktionsblock kann mithin Druckmessungen häufiger (beispielsweise mit einer relativ hohen Auflösung) erfassen, um beispielsweise höherfrequente Druckschwankungen (beispielsweise Zacken, Spitzen oder andere relativ hochfrequente Druckschwankungen) zu erfassen, die andernfalls mittels bekannter Techniken zur zeitlichen Ablaufplanung von Funktionsblöcken nicht erfasst oder verarbeitet würden.
  • Die Verwendung der Ausführungsraten der jeweiligen Funktionsblöcke zum Erzeugen von Zeitplänen auf die hierin beschriebene Weise ermöglicht die zeitliche Ablaufplanung einer Mehrzahl von Prozessschleifen, die von Feldgeräten oder Steuerungen auszuführen sind, die kommunikativ mit demselben Kommunikationsbus verbunden sind, während gleichzeitig gewährleistet ist, dass die Prozessschleifen mit ihren jeweiligen Schleifenausführungszeiträumen ausgeführt werden können. Einem kürzeren Schleifenausführungszeitraum (beispielsweise einer schnelleren Schleifenausführungsrate) zugeordnete Prozessschleifen können somit relativ schneller ausgeführt werden als Prozessschleifen, die längere Schleifenausführungszeiträume (beispielsweise langsamere Schleifenausführungsraten) aufweisen. Auf diesen Weise brauchen im Gegensatz zu einigen bekannten Verfahren, die zum Erzeugen von Zeitplänen für die Ausführung von Funktionsblöcken angewendet werden, die Schleifenausführungszeiträume aller demselben Kommunikationsbus zugeordneten Schleifen nicht gleich der längsten Schleifenausführung gemacht zu werden.
  • Wie in 1 dargestellt, umfasst ein beispielhaftes Prozesssteuerungssystem 100, das zur Implementierung der hierin beschriebenen beispielhaften Verfahren und Vorrichtungen verwendet werden kann, einen Bedienrechner 102 (beispielsweise eine Anwendungsstation, eine Bedienerstationen etc.) sowie eine Steuerung 106, die beide über einen Bus oder ein lokales Netzwerk (LAN) 108, das allgemein als Anwendungssteuerungsnetzwerk (ACN) bezeichnet wird, kommunikativ verbunden sein können. Das LAN 108 kann mit jedem gewünschten Kommunikationsmedium und -protokoll realisiert werden. So kann das LAN 108 beispielsweise auf einem festverdrahteten oder drahtlosen Ethernet-Kommunikationssystem basieren, das bestens bekannt ist und daher hierin nicht ausführlicherer beschrieben wird. Für den technisch Versierten ist jedoch sofort ersichtlich, dass auch jedes andere geeignete Kommunikationsmedium und -protokoll verwendet werden kann. Darüber hinaus ist zwar ein einzelnes LAN dargestellt, jedoch können mehr als ein LAN und geeignete Kommunikationshardware innerhalb des Bedienrechners 102 verwendet werden, um redundante Kommunikationspfade zwischen dem Bedienrechner 102 und einem jeweiligen ähnlichen Bedienrechner (nicht dargestellt) zur Verfügung zu stellen.
  • Der Bedienrechner 102 kann konfiguriert werden, Operationen in Verbindung mit einer oder mehreren Informationstechnologieanwendungen, benutzerinteraktiven Anwendungen und/oder Kommunikationsanwendungen durchzuführen. So kann beispielsweise der Bedienrechner 102 so konfiguriert werden, dass er Operationen in Verbindung mit prozesssteuerungsbezogenen Anwendungen und Kommunikationsanwendungen durchführt, die den Bedienrechner 102 und die Steuerung 106 in die Lage versetzen, mit anderen Geräten oder Systemen über alle gewünschten Kommunikationsmedien (beispielsweise drahtlos, festverdrahtet etc.) und -protokolle (beispielsweise HTTP, SOAP etc.) zu kommunizieren. Der Bedienrechner 102 kann mittels jedes geeigneten Computersystems oder Verarbeitungssystems (beispielsweise des Prozessorsystems 2310 in 23) implementiert werden. Beispielsweise könnte der Bedienrechner 102 mittels eines Ein-Prozessor-Personal Computers, Einzel- oder Mehr-Prozessor-Bedienrechnern etc. implementiert werden.
  • Die Steuerung 106 kann eine oder mehrere Prozesssteuerungsroutinen ausführen, die von einem Systemingenieur oder einem anderen Systembediener mittels des Bedienrechners 102 oder eines beliebigen Bedienrechners erzeugt wurden und die in die Steuerung 106 heruntergeladen und in dieser instantisiert wurden. Bei der Steuerung 106 kann es sich beispielsweise um eine Steuerung DeltaVTM handeln, die von Fisher-Rosemount Systems, Inc., und Emerson Process ManagementTM vertrieben wird, handeln. Statt dessen könnte jedoch jede andere Steuerung verwendet werden. Während in 1 zwar nur eine einzelne Steuerung dargestellt ist, können jedoch zusätzliche Steuerungen jedes gewünschten Typs oder in jeder Kombination von Typen mit dem LAN 108 verbunden werden.
  • Die Steuerung 106 kann über einen digitalen Datenbus 114 und ein Eingabe-/Ausgabe-(E/A-)Gerät 116 mit einer Mehrzahl von Feldgeräten 112a–c verbunden werden. Während der Ausführung einer Prozesssteuerungsroutine kann die Steuerung 106 mit den Feldgeräten 112a–c Informationen (beispielsweise Befehle, Konfigurationsinformationen, Messungsinformationen, Statusinformationen etc.) austauschen. Beispielsweise kann die Steuerung 106 mit einer Prozesssteuerungsroutine versehen sein, die, wenn sie von der Steuerung 106 ausgeführt wird, die Steuerung 106 veranlasst, Befehle an die Feldgeräte 112a–c zu senden, die die Feldgeräte 112a–c veranlassen, spezifizierte Operationen (beispielsweise eine Messung durchführen, ein Ventil öffnen/schließen etc.) auszuführen und/oder Informationen (beispielsweise Messungsdaten) über den digitalen Datenbus 114 zu kommunizieren.
  • Um die Feldgeräte 112a–c innerhalb des Prozesssteuerungssystems 100 zu identifizieren, ist jedes der Feldgeräte 112a–c mit einem eindeutigen Physisches-Geräte-Tag (PDT) versehen (beispielsweise speichert es dieses). Beispielsweise ist das Physische-Geräte-Tag des ersten Feldgeräts 112a PDT1, das Physische-Geräte-Tag des zweiten Feldgeräts 112b PDT2 und das Physische-Geräte-Tag des dritten Feldgeräts 112c PDT3. In dem dargestellten Beispiel weisen die Feldgeräte 112a–c einen ersten Druckgeber 112a, einen zweiten Druckgeber 112b und eine digitale Ventilsteuerung (DVC) 112c auf. Es können jedoch beliebige andere Typen von Feldgeräten (beispielsweise Ventile, Stellglieder, Sensoren etc.) in Verbindung mit den hierin beschriebenen beispielhaften Verfahren und Vorrichtungen verwendet werden.
  • In dem dargestellten Beispiel sind die Feldgeräte 112a–c Feldbuskompatible Geräte, die konfiguriert sind, über den digitalen Bus 114 mittels des bestens bekannten Feldbus-Protokolls zu kommunizieren. Nach dem Feldbus-Standard ist der digitale Datenbus 114 ein digitaler, Zwei-Wege-, Multidrop-Kommunikationsbus, der konfiguriert ist, kommunikativ mit Messungs- und Steuerungsgeräten (beispielsweise den Feldgeräten 112a–c) verbunden zu sein. Die Feldgeräte 112a–c sind als kommunikativ mit dem digitalen Bus 114 in einer Multidrop-Konfiguration verbunden dargestellt. Der digitale Datenbus 114 oder ähnliche Datenbusse können alternativ verwendet werden, um Feldgeräte kommunikativ mit dem E/A-Gerät 116 mittels einer Punkt-zu-Punkt-Konfiguration zu verbinden, in der einem Feldgerät die exklusive Nutzung eines digitalen Datenbusses zur Kommunikation mit dem E/A-Gerät 116 gewährt wird. In alternativen beispielhaften Implementierungen können die Verfahren und Vorrichtungen mit anderen Typen von Feldgeräten (beispielsweise Profibus- oder HART-kompatiblen Geräten, die über den Datenbus 114 mittels der bestens bekannten Profibus- und HART-Kommunikationsprotokolle kommunizieren), die Feldbus-kompatible Geräte aufweisen können oder nicht, verwendet werden. Der digitale Datenbus 114 wird hierin auch als Segment bezeichnet. Ein Segment ist ein Feldbus-Begriff, der einen physischen Bus beschreibt, der in seiner charakteristischen Impedanz abgeschlossen ist. In dem in 1 dargestellten Beispiel bildet der digitale Datenbus 114 ein Segment. Die hierin beschriebenen beispielhaften Verfahren und Vorrichtungen können in Verbindung mit einem einzelnen Segment (beispielsweise dem digitalen Datenbus 114) oder zwei oder mehr Segmenten (beispielsweise dem digitalen Datenbus 114 und einem oder mehreren digitalen Datenbussen), die mittels Übertragern verbunden sind, um einen längeren logischen Bus zu bilden, implementiert werden.
  • In dem dargestellten Beispiel ist das E/A-Gerät 116 mittels einer E/A-Untersystemschnittstelle implementiert, die es ermöglicht, die Steuerung 106 und die Feldgeräte 112a–c mit anderen Feldgeräten zu verbinden, die das Feldbus-Protokoll oder anderen Typen von Kommunikationsprotokollen (beispielsweise das Profibus-Protokoll, das HART-Protokoll etc.) verwenden können. Beispielsweise kann das E/A-Gerät 116 ein oder mehrere Gateways aufweisen, die zwischen dem Feldbus-Protokoll und anderen Kommunikationsprotokollen übersetzen. Mit der Steuerung 106 können zusätzliche E/A-Geräte (ähnlich dem E/A-Gerät 116 bzw. identisch mit diesem) verbunden werden, um zusätzliche Gruppen von Feldgeräten in die Lage zu versetzen, mit der Steuerung 106 zu kommunizieren.
  • Das beispielhafte Prozesssteuerungssystem 100 soll einen Typ eines Systems veranschaulichen, innerhalb dessen die weiter unten ausführlicher beschriebenen beispielhaften Verfahren und Vorrichtungen vorteilhaft eingesetzt werden können. Die hierin beschriebenen beispielhaften Verfahren und Vorrichtungen können, falls dies gewünscht ist, jedoch auch vorteilhaft in anderen Systemen von größerer oder geringerer Komplexität als das in 1 gezeigte beispielhafte Prozesssteuerungssystem 100 und/oder in Systemen, die in Verbindung mit Prozesssteuerungsaktivitäten, Unternehmensmanagementaktivitäten, Kommunikationsaktivitäten etc. zum Einsatz gelangen, eingesetzt werden.
  • In dem in 1 dargestellten Beispiel ist ein Modul 120 an dem Bedienrechner 102 konfiguriert, eine Prozesssteuerungsroutine zu definieren, die von der Steuerung 106 und/oder den Feldgeräten 112a–c auszuführen ist. Das Modul 120 weist eine Mehrzahl von Funktionsblöcken 122a–e auf, die Funktionen definieren, die von den Feldgeräten 112a–c auszuführen sind, um die Prozesssteuerungsroutine zu implementieren. Die Funktionen können die Feldgeräte 112a–c veranlassen, Messwerte (beispielsweise Druckwerte, Temperaturwerte, Durchflusswerte, Spannungswerte, Stromwerte etc.) zu erfassen, Algorithmen oder Berechnungen (beispielsweise Integrationen, Differenzierungen, Additionen, Subtraktionen etc.) auszuführen, Mess-, Steuer- und Regelgeräte zu steuern (beispielsweise Ventile zu öffnen/schließen, Ofeneinstellungen, Kesseleinstellungen etc.) oder beliebige andere Funktionen auszuführen. In dem dargestellten Beispiel speichern die Feldgeräte 112a–c Funktionen, die durch jeweils einen der Funktionsblöcke 122a–e in Form maschinenausführbarer Anweisungen definiert sind, und führen diese Funktionen aus. In anderen beispielhaften Implementierungen kann das Modul 120 anstatt oder zusätzlich zu einem oder mehreren der Funktionsblöcke 122a–e mit Funktionsblöcken versehen sein, die Funktionen repräsentieren, die von der Steuerung 106 anstatt einem der Feldgeräte 112a–c ausgeführt werden.
  • Der Bedienrechner 102 kann auch verwendet werden, um ein anderes Modul 124 zu konfigurieren, das einen oder mehrere Funktionsblöcke (nicht dargestellt) aufweist, die von den Feldgeräten 112a–c und/oder der Steuerung 106 ausgeführt werden. Obwohl zwei Module (die Module 120 und 124) dargestellt sind, können an dem Bedienrechner 102 mehr Module konfiguriert werden, die zusätzliche Funktionsblöcke aufweisen, die von der Steuerung 106 und/oder den Feldgeräten 112a–c auszuführen sind. Das andere Modul/die anderen Module kann/können verwendet werden, um andere Prozesssteuerungsroutinen zu implementieren und/oder um eine Prozesssteuerungsroutine in Verbindung mit den Modulen 120 und 124 zu implementieren.
  • In dem dargestellten Beispiel weisen die Funktionsblöcke 122a–e einen ersten Analogeingabe-(AI1-)Funktionsblock 122a, einen ersten Proportional-/Integral-/Differential-(PID1-)Funktionsblock 122b, einen zweiten Analogeingabe-(AI2-)Funktionsblock 122c, einen PID2-Funktionsblock 122d und einen Analogausgabe-(AO1-)Funktionsblock 122e auf. Der AI1-Funktionsblock 122a und der PID1-Funktionsblock 122b definieren von dem Feldgerät 112a auszuführende Funktionen. Der AI2-Funktionsblock 122c definiert eine von dem Feldgerät 112b auszuführende Funktion. Der PID2-Funktionsblock 122d und der AO1-Funktionsblock 122e definieren von dem Feldgerät 112c auszuführende Funktionen. In alternativen beispielhaften Implementierungen können andere Typen von Funktionsblöcken anstatt oder zusätzlich zu den Funktionsblöcken 122a–e verwendet werden.
  • 2 zeigt grafische Benutzerschnittstellen-(GUI-)Darstellungen der Funktionsblöcke 122a–e. Die Funktionsblöcke 122a–e können von einem Anwender (beispielsweise einem Ingenieur, einem Bediener etc.) mittels einer auf einer grafischen Benutzerschnittstelle basierten Konstruktionssoftwareanwendung miteinander verbunden werden, die beispielsweise von dem Bedienrechner 102 ausgeführt wird. Wie in 2 dargestellt, weist jeder der Funktionsblöcke 122a–e eine oder mehrere Eingaben und/oder eine oder mehrere Ausgaben auf. Das Verbinden der Eingaben und/oder Ausgaben der Funktionsblöcke 122a–e definiert die Prozesssteuerungsroutine des Moduls 120 (1). Die Verbindungen zwischen den Funktionsblöcken 122a–e werden hierin als Funktionsblockverbindungsdrähte bezeichnet. In dem dargestellten Beispiel ist ein Ausgang des AI1-Funktionsblocks 122a mit einem Eingang des PID1- Funktionsblocks 122b verbunden; Ausgänge des PID1-Funktionsblocks 122b und des AI2-Funktionsblocks 122c sind mit Eingängen des PID2-Funktionsblocks 122d verbunden und ein Ausgang des PID2-Funktionsblocks 122d ist mit einem Eingang des AO1-Funktionsblocks 122e verbunden.
  • Unter kurzer Bezugnahme auf 3 ist eine beispielhafte Funktionsblockverbindungskonfiguration 202 (d.h. die Verbindungskonfiguration 202) für Beispielzwecke vorgesehen, um eine Art und Weise zu zeigen, auf die ein Ausgang 204 des AI2-Funktionsblocks 122c mit einem Eingang 206 des PID2-Funktionsblocks 122d verbunden werden kann, um ein Kommunizieren von Informationen von dem AI2-Funktionsblock 122c zu dem PID2-Funktionsblock 122d zu ermöglichen. Ein Verbindungsprozess erzeugt die Verbindungskonfiguration 202 auf der Grundlage der Verbindungen zwischen Funktionsblöcken (beispielsweise der Funktionsblöcke 122a–e in 1 und 2). Ein Verbindungsprozess kann beispielsweise von dem Bedienrechner 102 zu jeder Zeit ausgeführt werden, wenn eine neue Funktionsblockverbindung (beispielsweise die Verbindung zwischen dem Ausgang 204 und dem Umgang 206) hergestellt wird, um die Funktionsblöcke in die Lage zu versetzen, Informationen entsprechend den Verbindungen zwischen den Funktionsblöcken auszutauschen.
  • Der Verbindungsprozess ist konfiguriert, Verbindungen innerhalb von Geräten zu erzeugen, um Kommunikationen innerhalb von Geräten zu ermöglichen, und Verbindungen zwischen Geräten, um Kommunikationen zwischen Geräten zu ermöglichen. Eine Verbindung innerhalb eines Geräts definiert eine Verbindung zwischen zwei Funktionsblöcken, die demselben Gerät zugeordnet sind. Beispielsweise definiert eine Verbindung innerhalb eines Geräts eine Verbindung zwischen dem AI1-Funktionsblock 122a (1 und 2) und dem PID1-Funktionsblock 122b (1 und 2), da die von den Funktionsblöcken 122a und 122b definierten Funktionen von demselben Gerät (dem Feldgerät 112a in 1) ausgeführt werden. Eine Verbindung zwischen Geräten definiert eine Verbindung zwischen einem Funktionsblock in einem Feldgerät und einem Funktionsblock in einem anderen Feldgerät, der die Feldgeräte veranlasst, über einen Kommunikationsbus (beispielsweise den digitalen Datenbus 114 in 1) zu kommunizieren, der die beiden Feldgeräte kommunikativ verbindet. Beispielsweise definiert eine Verbindung zwischen Geräten die Verbindung zwischen dem AI2- Funktionsblock 122c (13) und dem PID2-Funktionsblock 122d, da die dem AI2-Funktionsblock 122c zugeordnete Funktion von dem Feldgerät 112b (1) ausgeführt wird und die dem PID2-Funktionsblock 122d zugeordnete Funktion von dem Feldgerät 112c (1) ausgeführt wird.
  • In dem in 3 dargestellten Beispiel erzeugt ein Verbindungsprozess eine Verbindungskonfiguration zwischen Geräten, um den AI2-Funktionsblock 122c mit dem PID2-Funktionsblock 122d zu verbinden. Zu Beginn erzeugt der Verbindungsprozess ein Gerät-zu-Gerät-Linkobjekt 208 (beispielsweise ein Verbindungsobjekt zwischen Geräten), das Informationen enthält, um den Ausgang 204 mit dem Eingang 206 zu verbinden. In einer alternativen beispielhaften Implementierung, die verwendet wird, um demselben Gerät zugeordnete Funktionsblöcke zu verbinden, würde der Verbindungsprozess ein (nicht dargestelltes) Verbindungsobjekt innerhalb eines Geräts erzeugen. In der beispielhaften Verbindungskonfiguration 202 in 3 erzeugt der Verbindungsprozess sodann einen Herausgeber-Link 210, ordnet den Herausgeber-Link 210 dem Ausgang 204 zu und verbindet den Herausgeber-Link 210 mit dem Gerät-zu-Gerät-Linkobjekt 208. Auch erzeugt der Verbindungsprozess einen Abonnenten-Link 212, ordnet den Abonnenten-Link 212 dem Eingang 206 zu und verbindet den Abonnenten-Link 212 mit dem Gerät-zu-Gerät-Linkobjekt 208.
  • Der Verbindungsprozess erzeugt auch eine virtuelle Herausgeber-Kommunikationsressource (VCR) 214 und einen Abonnenten VCR 216. Eine VCR führt (oder bewahrt) die Identität einer Verbindung zwischen Funktionsblöcken, sodass jede Kommunikation zwischen den Funktionsblöcken mittels der VCR-Identität erfolgen kann. In dem dargestellten Beispiel ordnet die Herausgeber-VCR 214 eine eindeutige Identifikation 218 des AI2-Funktionsblocks 122c dem Herausgeber-Link 210 zu und die Abonnenten-VCR 216 ordnet eine eindeutige Identifikation 220 des PID2-Funktionsblocks 122d dem Abonnenten-Link 212 zu. Allgemein ermöglichen Herausgeber/Abonnenten-VCRs (beispielsweise die Herausgeber- und Abonnenten-VCRs 214 und 216) gepufferte Kommunikationen zwischen Funktionsblöcken einschließlich One-to-Many-Broadcast-Kommunikationen (beispielsweise sendet ein Funktionsblock Informationen an viele Funktionsblöcke). In dem dargestellten Beispiel kommuniziert (oder veröffentlicht) der AI2-Funktionsblock 122c, nachdem er neue Daten erzeugt hat, die Daten über den Ausgang 204 des PID2-Funktionsblocks 122d. Der PID2-Funktionsblock 122d ist ein Abonnent für den Ausgang 204 und empfängt somit die über den Ausgang 204 herausgegebenen Daten.
  • Wie in 2 dargestellt, sind die Funktionsblöcke 122a–e gekoppelt oder verbunden, um Schleifen zu bilden. Insbesondere ist ein Ausgang des AO1-Funktionsblocks 122e mit einem Eingang des PID2-Funktionsblocks 122d gekoppelt oder verbunden, um eine PID2-AO1-Schleife 232 zu bilden. Weiterhin ist ein Ausgang des PID2-Funktionsblocks 122d mit einem Eingang des PID1-Funktionsblocks 122b verbunden, um eine PID1-PID2-Schleife 234 zu bilden. In dem dargestellten Beispiel wird die PID1-PID2-Schleife 234 weniger oft (beispielsweise weist sie eine längere Schleifenausführungszeit oder eine niedrigere Schleifenausführungsrate auf) ausgeführt als die PID2-AO1-Schleife 232.
  • Der Schleifenausführungszeitraum der Schleife 232 basiert auf den Blockabtastraten (BSR) der Funktionsblöcke 122c–e und der Schleifenausführungszeitraum der Schleife 234 basiert auf den Blockabtastraten der Funktionsblöcke 122a–b. Eine Blockabtastrate definiert, wie oft ein Funktionsblock Informationen an einen anderen Funktionsblock kommuniziert oder herausgibt. Wenn beispielsweise das Feldgerät 112a den AI1-Funktionsblock 122a ausführt und alle 2000 ms Informationen auf dem digitalen Datenbus 114 herausgibt, beläuft sich die Blockabtastrate des AI1-Funktionsblocks 122a auf 2000 ms. Die Menge der Zeit, die für ein Feldgerät (oder eine Steuerung) erforderlich ist, um einen jeweiligen Funktionsblock auszuführen, wird hierin als Blockausführungszeit bezeichnet. Wenn beispielsweise das Feldgerät 112a 20 Millisekunden (ms) benötigt, um den AI1-Funktionsblock 122a auszuführen, beläuft sich die Blockausführungszeit des AI1-Funktionsblocks 122a auf 20 ms. Die den Funktionsblöcken 122a–e jeweils zugeordneten Blockausführungszeiten tE1, tE2, tE3, tE4 und tE5 sind beispielhaft in 4 und 5 dargestellt. Die Blockabtastraten sind typischerweise von Funktionsblock zu Funktionsblock unterschiedlich. In dem dargestellten Beispiel sind die den Funktionsblöcken 122a und 122b zugeordneten Blockabtastraten kleiner als die den Funktionsblöcken 122c–e zugeordneten Blockabtastraten. Daher wird die PID1-PID2-Schleife 234 weniger häufig (beispielsweise mit einer langsameren Schleifenrate, einer längeren Schleifenperiodizität etc.) als die PID2-AO1-Schleife 232 ausgeführt.
  • In 4 zeigt ein beispielhaftes Ausführungssequenzdiagramm 400 die Zeitablaufbeziehungen zwischen Ausführungen der Funktionsblöcke 122c–e während zweier aufeinander folgender Schleifenausführungen der Schleife 232 in 2. Die Ausführungen des AI2-Funktionsblocks 122c sind durch die Referenznummer 402, die Ausführungen des PID2-Funktionsblocks 122d durch die Referenznummer 404 und die Ausführungen des AO1-Funktionsblocks 122e durch die Referenznummer 406 bezeichnet. Ein Makrozyklus wird hierin verwendet, um eine einzelne Ausführung einer Schleife (beispielsweise eine einzelne Ausführung der Schleife 232) zu bezeichnen. Die Menge der für die Ausführung einer Schleife erforderlichen Zeit basiert typischerweise auf dem Funktionsblock in der Schleife, die die am wenigsten häufige Blockabtastrate aufweist. In bekannten Systemen muss jeder einem Makrozyklus zugeordnete Funktionsblock während dieses Makrozyklus lediglich ein Mal ausgeführt werden. Beispielsweise ist in 4 jeder der Funktionsblöcke 122c–e so dargestellt, dass er während eines Makrozyklus 408, der eine Periode von 500 Millisekunden aufweist, lediglich ein Mal ausgeführt wird. In bekannten Systemen müssen Feldgeräte am selben Segment (beispielsweise die Feldgeräte 112a–c an dem digitalen Datenbus 114) ihre jeweiligen Funktionsblöcke auf der Grundlage desselben Makrozyklus ausführen. Dies bedeutet, dass bekannte Konstruktionsrichtlinien bekannter Systeme die Ausführung verschiedener Makrozyklen auf einem einzelnen Segment (beispielsweise dem digitalen Datenbus 114) untersagen. Wenn ein anderer Funktionsblock mit einer weniger häufigen Abtastrate (beispielsweise einer Abtastrate von zwei Sekunden) in die Schleife 232 eingeführt wird, muss die Periode des Makrozyklus 408 erhöht werden, um die einmalige Ausführung sämtlicher Funktionsblöcke (beispielsweise der Funktionsblöcke 122c–e und des zusätzlichen, eine Abtastrate von zwei Sekunden aufweisenden Funktionsblocks) während des Makrozyklus 408 zu beinhalten.
  • In 5 zeigt ein weiteres beispielhaftes Ausführungssequenzdiagramm 500, das die Zeitablaufbeziehungen zwischen Ausführungen der Funktionsblöcke 122a–b während zweier aufeinander folgender Schleifenausführungen der Schleife 234 in 2 darstellt. Die Ausführungen des AI1-Funktionsblocks 122a sind durch die Referenznummer 502 und die Ausführungen des Funktionsblocks 122b sind durch die Referenznummer 504 angegeben. Die Schleife 234 wird relativ weniger häufig als die Schleife 232 ausgeführt, da die Funktionsblöcke 122a–b eine weniger häufige Blockabtastrate als die Funktionsblöcke 122c–e aufweisen. In dem dargestellten Beispiel weist ein der Schleife 234 zugeordneter Makrozyklus 502 eine Dauer von 2000 Millisekunden auf, um die weniger häufige Ausführung der Schleife 234 zu beinhalten.
  • 6 zeigt ein beispielhaftes Ausführungssequenzdiagramm 600, das entsprechend bekannten Methoden für die Ausführung von verschiedene Blockabtastraten aufweisenden Funktionsblöcken (beispielsweise der Funktionsblöcke 122a–e in 12, 4 und 5) auf demselben Segment (beispielsweise dem digitalen Datenbus 114) implementiert ist. Insbesondere wird entsprechend bekannten Verfahren, um die Funktionsblöcke 122a–e auf demselben Segment (beispielsweise dem digitalen Datenbus 114) auszuführen, ein eine Periode von 2000 ms aufweisender Makrozyklus 602 auf der Grundlage der langsamsten Blockabtastrate der Funktionsblöcke 122a–e ausgewählt. Auf diese Weise wird jeder der Funktionsblöcke 122a–e ein Mal in jedem Makrozyklus 602 ausgeführt. Um die beispielhafte Ausführungssequenz 600 zu implementieren, werden die Blockabtastraten der Funktionsblöcke 122c–e verkleinert, um den Schleifenausführungszeitraum der Schleife 232 gleich dem Schleifenausführungszeitraum der Schleife 234 zu machen.
  • Zwar ermöglicht die Verkleinerung der Blockabtastraten der Funktionsblöcke 122c–e die Ausführung der Funktionsblöcke 122c–e und der Funktionsblöcke 122a–b auf demselben Segments, jedoch verhindert die Verkleinerung der Blockabtastraten der Funktionsblöcke 122c–e die Ausführung der Funktionsblöcke 122c–e mit einer höheren Geschwindigkeit als die Blockabtastraten der Funktionsblöcke 122a–b. In einigen Implementierungen kann die Ausführung der Funktionsblöcke 122c–e mit einer höheren Geschwindigkeit als den Blockausführungsperioden der Funktionsblöcke 122a–b vorteilhaft sein. Wenn beispielsweise der AI2-Funktionsblock 122c das Feldgerät 112b (1) veranlasst, eine Druckmessung zu erfassen, versetzt die Ausführung des AI2-Funktionsblocks 122c in Abständen von 500 ms, wie in 4 dargestellt, das Feldgerät 112b in die Lage, auf dem digitalen Datenbus 114 eine Mehrzahl von Druckmessungen mit relativ hoher Auflösung (beispielsweise hoher Granularität) zu erfassen und herauszugeben. Eine häufigere Erfassung von Druckmessungen (beispielsweise bei relativ hoher Auflösung), wie in 4 dargestellt, versetzt das Feldgerät 112b beispielsweise in die Lage, Zacken, Spitzen oder anderes relativ hochfrequentes, im 500-ms-Bereich auftretendes Druckverhalten zu erfassen. Im Gegensatz dazu hindert eine Verlangsamung der Blockabtastrate des AI2-Funktionsblocks 122c, um die beispielhafte Ausführungssequenz 600 mittels bekannter Verfahren zu erzeugen, das Feldgerät 112b daran, Zacken, Spitzen oder anderes relativ hochfrequentes, im Bereich unter 2000 ms auftretendes Druckverhalten zu erfassen.
  • Im Gegensatz zu bekannten Verfahren, die verwendet werden, um die beispielhafte Ausführungssequenz 600 zu erzeugen, um multiple Schleifen auf einem einzelnen Segment auszuführen, indem die Schleifenausführungszeiträume sämtlicher Schleifen gleich gesetzt wurden, ermöglichen die hierin beschriebenen beispielhaften Verfahren und Vorrichtungen die zeitliche Ablaufplanung multipler, unterschiedliche Schleifenausführungszeiträume aufweisender Schleifen auf demselben Segment. Wie in 7 dargestellt, versetzt ein nach den hierin beschriebenen beispielhaften Verfahren und Vorrichtungen implementiertes beispielhaftes Ausführungssequenzdiagramm 700 die Schleifen 232 und 234 in 24 in die Lage, entsprechend ihren jeweiligen Schleifenausführungszeiträumen ausgeführt zu werden. Auf diese Weise können schnellere Blockabtastraten aufweisende Funktionsblöcke mit einer höheren Rate ausgeführt werden als Funktionsblöcke auf demselben Segment, die niedrigere Blockabtastraten aufweisen.
  • Um eine Ausführung der Schleifen 232 und 234 mit ihren jeweiligen Raten auf dem digitalen Datenbus 114 zu ermöglichen, erzeugen die hierin beschriebenen beispielhaften Verfahren und Vorrichtungen einen Zeitplan 702 (d.h. einen Funktionsblockausführungszeitplan), der in 7 als eine Mehrzahl der Funktionsblock Ausführungen 402, 404, 406, 502 und 504 der Funktionsblöcke 122a–e dargestellt ist. In dem dargestellten Beispiel weist der Zeitplan eine mit dem Zeitpunkt t0 beginnende Zeitplan-Startzeit 704 auf. Jede der Funktionsblockausführungen 402, 404, 406, 502 und 504 beginnt mit einem jeweiligen Startzeit-Offset (beispielsweise einem Offset) gegenüber der Zeitplan-Startzeit 704. Ein beispielhafter Startzeit-Offset 706 ist in 7 dargestellt, um zu zeigen, wann eine der Funktionsblockausführungen 402 des AI2-Funktionsblocks 122c relativ zu der Zeitplan-Startzeit 704 beginnt.
  • Der Zeitplan 700 wird auf der Grundlage von Blockabtastraten der Funktionsblöcke 122a–e und einem Modulausführungszeitraum (TME) des Moduls 120 bestimmt. Der Modulausführungszeitraum (TME) ist gleich dem inversen Wert der langsamsten oder am wenigsten häufigen Blockabtastrate, die einem Funktionsblock (beispielsweise einem der Funktionsblöcke 122a–e) in dem Modul 120 zugeordnet ist. Beispielsweise beläuft sich der Modulabtastzeitraum (TME) des Moduls 120 auf 2000 ms, da der AI1-Funktionsblock 122a und der PID1-Funktionsblock 122b Blockabtastraten von 1 scan / 2000 ms aufweisen können, die langsamer sind als die Blockabtastraten von 1 scan / 500 ms der Funktionsblöcke 122c–e in dem Modul 120.
  • Die hierin beschriebene beispielhaften Verfahren und Vorrichtungen sind konfiguriert, einen oder mehrere Startzeit-Offsets für jeden Funktionsblock (beispielsweise jeden der Funktionsblöcke 122a–e) zu erzeugen. Die Anzahl der Startzeit-Offsets für einen Funktionsblock wird auf der Grundlage eines Blockrohausführungszeitraums (TBRE) des betreffenden Funktionsblocks und des langsamsten Blockrohausführungszeitraums (TSBE) bestimmt, der dem Feldgerät zugeordnet ist, das konfiguriert ist, diesen Funktionsblock auszuführen. Ein Blockrohausführungszeitraum (TBRE) definiert die Länge der Zeit zwischen Ausführungen eines Funktionsblocks ungeachtet des Zeitplans (beispielsweise des Zeitplans 702 in 7) und kann entsprechend der nachstehenden Gleichung 1 bestimmt werden. TBRE = TME × FBSR Gleichung 1
  • Wie in der vorstehenden Gleichung 1 gezeigt, wird der Blockrohausführungszeitraum (TBRE) für einen bestimmten Funktionsblock durch Multiplikation des Modulausführungszeitraums (TME) des den Funktionsblock enthaltenden Moduls mit einem Blockabtastratenfaktor (FBSR) des Funktionsblocks bestimmt. Der Blockabtastratenfaktor (FBSR) ist gleich der Anzahl der Modulausführungszeiträume (TME) zwischen den Startzeiten zweier aufeinander folgender Ausführungen eines Funktionsblocks und kann mittels der nachstehenden Gleichung 2 bestimmt werden.
  • Figure 00200001
  • Wenn unter Bezugnahme auf die vorstehende Gleichung 2 und 7 der Modulausführungszeitraum (TME) des Moduls 120 (1) 2000 ms beträgt und der Funktionsblock 122a konfiguriert ist, alle 2000 ms ausgeführt zu werden (BSR = 2000 ms), ist der Blockabtastratenfaktor (FBSR) des AI1-Funktionsblocks 122a gleich eins, da zwischen den Starts zweier aufeinander folgender Ausführungen des AI1-Funktionsblocks 122a eine Modulausführungszeit (TME) vergeht. In 7 ist der AI2-Funktionsblock 122c als alle 500 ms (BSR = 500 ms) ausgeführt dargestellt. Daher ist der Blockabtastratenfaktor (FBSR) des AI2-Funktionsblock 122c gleich einem Viertel (0,25) da lediglich ein Viertel des Modulausführungszeitraums (TME) zwischen den Starts zweier aufeinander folgender Ausführungen des AI2-Funktionsblocks 122c vergeht.
  • Wenn erneut unter Bezugnahme auf die obige Gleichung 1 der Modulausführungszeitraum (TME) des Moduls 120 sich auf 2000 ms beläuft und der Blockabtastratenfaktor (FBSR) des AI1-Funktionsblocks 122a gleich eins ist, ist der Blockrohausführungszeitraum (TBRE) des AI1-Funktionsblocks 122a gleich 2000 ms, was besagt, dass der AI1-Funktionsblock 122a alle 2000 ms ausgeführt wird. Der Blockrohausführungszeitraum (TBRE) des AI2-Funktionsblocks 122c ist jedoch gleich 500 ms, da der Blockabtastratenfaktor (FBSR) des AI2-Funktionsblocks 122c ein Viertel beträgt (beispielsweise 500 ms (TBRE) = 2000 ms (TME) × ¼(FBSR)).
  • Nachdem der Blockrohausführungszeitraum (TBRE) auf der Grundlage der obigen Gleichung 1 bestimmt wurde, wird der Blockrohausführungszeitraum (TBRE) auf der Grundlage der Rundungstabelle 800 in 8 aufgerundet. Der Blockrohausführungszeitraum (TBRE) wird aufgerundet, um zu gewährleisten, dass Funktionsblockausführungen (beispielsweise die Funktionsblockausführungen 402, 404, 406, 502 und 504 in 7) nach mehreren Wiederholungen des Zeitplans 702 (7) nicht zeitlich außer Tritt fallen, und um die Anzahl der Startzeit-Offsets (QS) zu bestimmen, die für jeden Funktionsblock auf der Grundlage gerundeter Grenzen des Blockrohausführungszeitraums (RTBRE) erforderlich sind. Wie in der Rundungstabelle 800 gezeigt, wird, wenn der Blockrohausführungszeitraum (TBRE) eines Funktionsblocks zwischen 0 und 500 ms liegt, der Blockrohausführungszeitraum (TBRE) auf den gerundeten Blockrohausführungszeitraum (RTBRE) aufgerundet. Gleichermaßen wird, wenn der Blockrohausführungszeitraum (TBRE) eines Funktionsblocks zwischen 500 und 1000 ms oder zwischen 1000 ms und 2000 ms oder mehr als 2000 ms beträgt, der Blockrohausführungszeitraum (TBRE) auf einen gerundeten Blockrohausführungszeitraums-(RTBRE-)Wert von 1000 ms, 2000 ms oder 4000 ms aufgerundet.
  • In 7 ist der Zeitplan 702 mittels der Unter-Zeitpläne 710 und 712 implementiert. In dem dargestellten Beispiel weist der Unter-Zeitplan 710 einen Zeitraum von 500 ms auf und ist einer Schleifenausführung der Schleife 232 in 2 und 4 zugeordnet. Der Unter-Zeitplan 712 weist einen Zeitraum von 2000 ms auf und ist einer Schleifenausführung der Schleife 234 in 2 und 5 zugeordnet. Während des Erzeugens des Zeitplans 702 wird der Unter-Zeitplan 710 zuerst erzeugt und wird sodann, wie in 7 dargestellt, drei Mal repliziert, um den 2000-ms-Zeitplan 702 auszufüllen. Nach dem Erzeugen des Unter-Zeitplans 710 wird der Unter-Zeitplan mit dem nächst kürzeren Zeitraum (beispielsweise der Unter-Zeitplan 712) erzeugt. Nach dem Erzeugen der Unter-Zeitpläne 710 und 712 werden die Unter-Zeitpläne 710 und 712 fusioniert, um dem Zeitplan 702 zu erzeugen.
  • Wie in 7 dargestellt, erfolgt während des Unter-Zeitplans 710 jede der Ausführungen 402, 404 und 406 ein Mal. Daher benötigt jeder der Funktionsblöcke 122c–e lediglich einen Startzeit-Offset für den Unter-Zeitplan 710. Auch wird während des Unter-Zeitplans 712 jeder der Funktionsblöcke 122a–b lediglich ein Mal ausgeführt. Daher benötigt jeder der Funktionsblöcke 122a–b lediglich einen Startzeit-Offset für den Unter-Zeitplan 712.
  • Die Anzahl der Startzeit-Offsets (QS) (beispielsweise des Startzeit-Offsets 706) für einen Unter-Zeitplan (beispielsweise den Unter-Zeitplan 710 oder den Unter-Zeitplan 712), die von einem Funktionsblock (beispielsweise einem der Funktionsblöcke 122a–e in 1 und 2) benötigt werden, wird auf der Grundlage des gerundeten Blockrohausführungszeitraums (RTBRE) des Funktionsblocks und des langsamsten gerundeten Blockrohausführungszeitraums (RTSRE) bestimmt, die dem Feldgerät (beispielsweise einem der Feldgeräte 112a–c in 1), das den Funktionsblock ausführt, zugeordnet sind. Die Anzahl der Startzeit-Offsets (QS) für einen Funktionsblock kann mittels der nachstehenden Gleichung 3 bestimmt werden.
  • Figure 00230001
  • Wie in der obigen Gleichung 3 gezeigt, wird die Anzahl der Startzeit-Offsets (Qs) für einen Funktionsblock bestimmt, indem der langsamste gerundete Blockrohausführungszeitraum (RTSRE), der dem den Funktionsblock ausführenden Feldgerät zugeordnet ist, durch den gerundeten Blockrohausführungszeitraum (RTBRE) des Funktionsblocks geteilt wird.
  • Die Verwendung der Gleichung 3 zur Bestimmung der Anzahl der Startzeit-Offsets (Qs) für den PID2-Funktionsblock 122d beinhaltet zuerst die Bestimmung des langsamsten gerundeten Blockrohausführungszeitraums (RTSRE), der dem den PID2-Funktionsblock 122d ausführenden Feldgerät 112c zugeordnet ist. In dem dargestellten Beispiel sind die PID2- und AO1-Funktionsblöcke 122d–e die einzigen von dem Feldgerät 112c ausgeführten Funktionsblöcke. Daher ist der langsamste gerundete Blockrohausführungszeitraum (RTSRE), der dem Feldgerät 112c zugeordnet ist, gleich dem gerundeten Blockrohausführungszeitraum (RTBRE) eines der Funktionsblöcke 122d–e, die den langsameren gerundeten Blockrohausführungszeitraum (RTBRE) aufweisen. Da die gerundeten Blockrohausführungszeiträume (RTBRE) der Funktionsblöcke 122d–e gleich 500 ms sind, wird der langsamste gerundete Blockrohausführungszeitraum (RTSRE) gleich 500 ms gesetzt.
  • Nach der Bestimmung des langsamsten gerundeten Blockrohausführungszeitraums (RTSRE), der dem Feldgerät 112c zugeordnet ist, kann Gleichung 3 verwendet werden, um die Anzahl der Startzeit-Offsets (Qs) zu bestimmen, die für den PID2-Funktionsblock 122d benötigt werden, indem 500 ms (der langsamste gerundete Blockrohausführungszeitraum (RTSRE), der dem Feldgerät 112c zugeordnet ist) durch 500 ms (den gerundeten Blockrohausführungszeitraum (RTBRE) des PID2-Funktionsblocks 122d) geteilt wird. Die Divisionsoperation ergibt, dass die Anzahl der Startzeit-Offsets (Qs), die von dem PID2-Funktionsblock 122d benötigt wird, um in dem Unter-Zeitplan 710 ausgeführt zu werden, eins beträgt.
  • Eine beispielhafte Tabelle 900 von Anzahlen von Startzeit-Offsets in 9 zeigt die Anzahl von Startzeit-Offsets (Qs), die von den Funktionsblöcken 122a–b zur Ausführung während des Unter-Zeitplans 712 in 7 benötigt werden, und die Anzahl von Startzeit-Offsets (Qs), die von den Funktionsblöcken 122c–e zur Ausführung während des Unter-Zeitplans 710 in 7 benötigt werden. Die Tabelle 900 von Anzahlen von Startzeit-Offsets zeigt auch den Blockabtastratenfaktor (FBSR), die Blockrohausführungszeiträume (TBRE) und die gerundeten Blockrohausführungszeiträume (RTBRE).
  • 10 zeigt eine weitere beispielhafte Funktionsblockkonfiguration 1000, in der eine Mehrzahl von Feldgeräten 1012a–c kommunikativ mit einem digitalen Datenbus 1014 verbunden ist, um ein Prozesssteuerungssystem auf der Grundlage der Funktionsblöcke 1022a–e eines Moduls 1020 zu implementieren. Im Gegensatz zu den Funktionsblöcken 122a–e in 1 und 2, die lediglich einen Startzeit-Offset benötigen, wie in Tabelle 900 der Anzahl von Startzeit-Offsets in 9 dargestellt, benötigen einige der in 10 dargestellten Funktionsblöcke 1022a–e eine Mehrzahl von Startzeit-Offsets, wie nachstehend beschrieben. Die Mehrzahl von Feldgeräten 1012a–c sind den Feldgeräten 112a–c in 1 ähnlich oder mit diesen identisch und der digitale Datenbus 1014 ist dem digitalen Datenbus 114 in 1 ähnlich oder mit diesem identisch. Wie in 10 dargestellt, führt das Feldgerät 1012a Funktionen aus, die von einem AI11-Funktionsblock 1022a, einem AI12-Funktionsblock 1022c und einem AO11-Funktionsblock 122e definiert sind, das Feldgerät 1012b führt eine Funktion aus, die von einem PID12-Funktionsblock 1022b definiert ist, und ein Feldgerät 1012c führt eine Funktion aus, die von einem PID13-Funktionsblock 1022d definiert ist.
  • Der AI11-Funktionsblock 1022a ist dem AI1-Funktionsblock 122a in 1 und 2 ähnlich oder mit diesem identisch, der PID12-Funktionsblock 1022b ist dem PID1-Funktionsblock 122b in 1 and 2 ähnlich oder mit diesem identisch, der AI12-Funktionsblock 1022c ist dem AI2-Funktionsblock 122c in 1 und 2 ähnlich oder mit diesem identisch, der PID13-Funktionsblock 1022d ist dem PID2-Funktionsblock 122d in 1 und 2 ähnlich oder mit diesem identisch und der AO11-Funktionsblock 1022e ist dem AO1-Funktionsblock 122e in 1 und 2 ähnlich oder mit diesem identisch. Beispielsweise sind die Blockabtastraten des AI11-Funktionsblocks 1022a und des PID12- Funktionsblocks 1022b gleich 2000 ms. Auch sind die Blockabtastraten für die Funktionsblöcke 1022c–e gleich 500 ms. Auch wenn nicht dargestellt, sind die Verbindungen zwischen den Funktionsblöcken 1022a–e identisch mit den Verbindungen zwischen den in 2 dargestellten Funktionsblöcken 122a–e.
  • Eine weitere beispielhafte Tabelle 1100 von Anzahlen von Startzeit-Offsets in 11 zeigt die Anzahl der Startzeit-Offsets (QS) für jeden der Funktionsblöcke 1022a–e (10), wie diese auf der Grundlage ihrer jeweiligen Blockabtastratenfaktoren (FBSR), Blockrohausführungszeiträume (TBRE) und gerundeten Blockrohausführungszeiträume (RTBRE) bestimmt wurden. Der Blockrohausführungszeitraum (TBRE) für jeden der Funktionsblöcke 1022a–e wird auf der Grundlage der obigen Gleichung 1 bestimmt, die ihrerseits auf den Blockabtastratenfaktoren (FBSR) und dem Modulausführungszeitraum (TME) des Moduls 1020 basiert. Jeder der Blockrohausführungszeiträume (TBRE) wird sodann gerundet, um den gerundeten Blockrohausführungszeitraum (RTBRE) für jeden der Funktionsblöcke 1022a–e zu bestimmen.
  • Die Anzahl der Startzeit-Offsets (QS) für jeden der Funktionsblöcke 1022a–e wird sodann auf der Grundlage der obigen Gleichung 3 bestimmt. Wie in 11 dargestellt, bezeichnet die Referenznummer 1102 die Anzahl der Startzeit-Offsets (Qs) gleich vier für den AI12-Funktionsblock 1022c (PDT11/FFAI12). Um die Anzahl der Startzeit-Offsets (QS) für den AI12-Funktionsblock 1022c zu bestimmen, wird zuerst der langsamste gerundete Blockausführungzeitraum (RTSRE), der dem Feldgerät 1012a zugeordnet ist, bestimmt. In dem in 10 dargestellten Beispiel ist das Feldgerät 1012a konfiguriert, den AI11-Funktionsblock 1022a, den AI12-Funktionsblock 1022c und den AO11-Funktionsblock 1022e auszuführen. Der langsamste gerundete Blockrohausführungszeitraum (RTSRE) ist daher der langsamste des gerundeten Blockrohausführungszeitraums (RTBRE) des AI11-Funktionsblocks 1022a, des gerundeten Blockrohausführungszeitraums (RTBRE) des AI12-Funktionsblocks 1022c und des gerundeten Blockrohausführungszeitraums (RTBRE) des AO11-Funktionsblocks 1022e. Wie in 11 dargestellt, beläuft sich der gerundete Blockrohausführungszeitraum (RTBRE) des AI11-Funktionsblocks 1022a (PDT11/FFAI11) auf 2000 ms, der gerundete Blockrohausführungszeitraum (RTBRE) des AI12-Funktionsblocks 1022c (PDT11/FFAI12) auf 500 ms und der gerundete Blockrohausführungszeitraum (RTBRE) des AO11-Funktionsblocks 1022c (PDT11/FFAO11) auf 500 ms. Entsprechend beläuft sich der langsamste gerundete Blockrohausführungszeitraum (RTSRE), der dem Feldgerät 1012a zugeordnet ist, auf 2000 ms. Nach der obigen Gleichung 3 wird, um die Anzahl der Startzeit-Offsets (QS) zu bestimmen, die von dem AI12-Funktionsblock 1022c benötigt wird, der Wert von 2000 ms (der gerundete Blockrohausführungszeitraum (RTBRE) des AI12-Funktionsblocks 1022c) durch 500 ms (den langsamsten gerundeten Blockrohausführungszeitraum (RTSRE), der dem Feldgerät 1012a zugeordnet ist) geteilt, um einen Wert von vier zu berechnen, wie durch die Referenznummer 1102 bezeichnet.
  • Die Tabelle 1100 zeigt auch, dass die Anzahl der Startzeit-Offsets (QS), die von dem AI11-Funktionsblock 1022a benötigt wird (PDT11/FFAI11), gleich eins ist, wie von der Referenznummer 1104 bezeichnet. In dem dargestellten Beispiel weisen der AI11-Funktionsblock 1022a einen Startzeit-Offset und der AI12-Funktionsblock 1022c vier Startzeit-Offsets auf, da der gerundete Blockrohausführungszeitraum (RTBRE) des AI11-Funktionsblocks 1022a (2000 ms) gleich dem langsamsten gerundeten Blockrohausführungszeitraum (RTSRE) ist, der dem Feldgerät 1012a zugeordnet ist (2000 ms), während der gerundete Blockrohausführungszeitraum (RTBRE) des AI12-Funktionsblocks 1022c (500 ms) vier Mal kleiner ist als der langsamste gerundete Blockrohausführungszeitraum (RTSRE), der dem Feldgerät 1012a zugeordnet ist (2000 ms). Das Feldgerät 1012b muss somit den AI12-Funktionsblock 1022c für jede Ausführung des AI11-Funktionsblocks 1022a vier Mal ausführen.
  • 12 ist ein weiteres beispielhaftes Ausführungssequenzdiagramm 1200, das einen Zeitplan 1202 (d.h. einen Funktionsblockausführungszeitplan) und die Ausführungen 1204, 1206, 1208, 1210 und 1212 der jeweiligen Funktionsblöcke 1022a–e (10) zeigt. Der Zeitplan 1202 wird mittels eines 500-ms-Unter-Zeitplans 1214, der dem PID2-Funktionsblock 1022d zugeordnet ist, und eines 2000-ms-Unter-Zeitplans 1216, der den Funktionsblöcken 1022a–c und 1022e zugeordnet ist, erzeugt. Wie dargestellt, wird der 500-ms-Unter-Zeitplan 1214 vier Mal während des Zeitplans 1202 wiederholt und der 2000-ms-Unter-Zeitplan 1216 erfolgt ein Mal während des Zeitplans 1202.
  • Entsprechend Tabelle 1100 in 11 weisen innerhalb des 2000-ms-Unter-Zeitplans 1216 der AI11-Funktionsblock 1022a einen Startzeit-Offset (den Startzeit-Offset t0), der AI12-Funktionsblock 1022c vier Startzeit-Offsets (die Startzeit-Offsets t1, t5, t9 und t11), der AO11-Funktionsblock 1022e vier Startzeit-Offsets (die Startzeit-Offsets t3, t7, t11 und t15) und der PID12-Funktionsblock 1022b einen Startzeit-Offset (den Startzeit-Offset t1) auf. Ebenfalls entsprechend Tabelle 1100 in 11 weist innerhalb des 500-ms-Unter-Zeitplans 1214 der PID13-Funktionsblock 1022d einen Startzeit-Offset (den Startzeit-Offset t2) auf.
  • Die Startzeit-Offsets eines Funktionsblocks können entsprechend der nachstehenden Gleichung 4 bestimmt werden. ts = NSeq × TBRE + tDA Gleichung 4
  • Wie oben in Gleichung 4 dargestellt, wird ein Startzeit-Offset (tS) für einen Funktionsblock bestimmt, indem eine Sequenzzahl (NSeq) eines aktuellen, zu berechnenden Startzeit-Offsets mit dem Blockrohausführungszeitraum (TBRE) für den Funktionsblock multipliziert und das resultierende Produkt zu einer Datenverfügbarkeitszeit (tDA) des Funktionsblocks addiert wird. Die Sequenzzahl (Nseq) bezieht sich auf eine bestimmte Ausführungsinstanz eines Funktionsblocks während eines Unter-Zeitplans (beispielsweise eines der Unter-Zeitpläne 710 oder 712 in 7). In 12 weist beispielsweise das AI12-Funktionsmodul 1022c während des 2000-ms-Unter-Zeitplans 1216 vier Ausführungsinstanzen (d.h. eine Zahl von Startzeit-Offsets (QS) gleich vier und die Sequenzzahlen (Nseq) null bis drei) auf. Die Datenverfügbarkeitszeit (tDA) des Funktionsblocks bezieht sich auf die Zeit während eines Blockrohausführungszeitraums (TBRB) eines Funktionsblocks, während derer für die Ausführung des Funktionsblocks erforderliche Daten von einem anderen Funktionsblocks zur Verfügung gestellt werden. Beispielsweise wird die Datenverfügbarkeitszeit (tDA) eines ersten Funktionsblocks auf der Grundlage der Zeit, zu dem Daten von einem zweiten Funktionsblock einem den ersten Funktionsblock ausführenden Feldgerät zur Verfügung stehen (beispielsweise wenn die Daten auf dem digitalen Datenbus 1014 veröffentlicht werden). Wenn der erste Funktionsblock keine Daten von dem zweiten Funktionsblock oder einem beliebigen anderen Funktionsblock benötigt, damit ein Feldgerät den ersten Funktionsblock ausführt, wird die Datenverfügbarkeitszeit (tDA) des ersten Funktionsblocks auf null gesetzt. Wenn weiterhin beispielsweise der Blockrohausführungszeitraum (TBRE) eines Funktionsblocks 500 ms beträgt und diesem Daten von einem weiteren Funktionsblock bei 125 ms gegenüber dem Start des 500-ms-Blockrohausführungszeitraums (TBRE) zur Verfügung gestellt werden, beläuft sich die Datenverfügbarkeitszeit (tDA) des Funktionsblocks auf 125 ms.
  • Unter Bezugnahme auf Gleichung 4 und die Ausführungen 1206 des AI12-Funktionsblocks 1022c können die Offset-Startzeiten (tS) t1, t5, t9 und t11 wie folgt bestimmt werden. Wenn sich der Blockrohausführungszeitraum, (TBRE) des AI12-Funktionsblocks 1022c auf 500 ms beläuft, beträgt die Zahl der Startzeit-Offsets (Qs) vier (d.h. Sequenzzahlen (Nseq) null bis drei) während des 2000-ms-Unter-Zeitplans 1216, wie in 12 dargestellt, da der Unter-Zeitplan-Ausführungszeitraum des 2000-ms-Unter-Zeitplans 1216, geteilt durch den 500-ms-Blockrohausführungszeitraum (TBRE) des AI12-Funktionsblocks 1022c gleich vier ist. Weiterhin beläuft sich die Datenverfügbarkeitszeit (tDA) des AI12-Funktionsblocks 1022c auf 125 ms. Daher ist unter Anwendung der obigen Gleichung 4 der der ersten Sequenzzahl (NSEQ entsprechende Startzeit-Offset (ts) t1 gleich 125 ms, der der zweiten Sequenzzahl (NSEQ) entsprechende Startzeit-Offset (tS) t5 ist gleich 625 ms, der der dritten Sequenzzahl (NSEQ) entsprechende Startzeit-Offset (tS) (ts) t9 ist gleich 1125 ms und der der ersten Sequenzzahl (NSEQ) entsprechende Startzeit-Offset (tS) t11 ist gleich 1625 ms.
  • 13 ist eine beispielhafte objektorientierte Softwareausführungsumgebung 1300, die die Beziehungen zwischen für die Feldgeräte 112a–c in 1 repräsentativen Objekten, den Funktionsblöcken 122a–e in 1 und den den Funktionsblöcken 122a–e entsprechenden Startzeit-Offsets zeigt. Ein dem Feldgerät 112a in 1 entsprechendes PDT1-Geräteobjekt ist an ein FFAI1-Funktionsobjekt 1304a und ein FFPID1-Funktionsobjekt 1304b gebunden. Das FFAI1-Funktionsobjekt 1304a entspricht dem AI1-Funktionsblock 122a in 1 und das FFPID1-Funktionsobjekt 1304b entspricht dem PID1-Funktionsblock 122b in 1. Ein dem Feldgerät 112b in 1 entsprechendes PDT2-Geräteobjekt 1302b ist an einen dem AI2-Funktionsblock 122b (1) entsprechenden FFAI2-Funktionsblock 1304c und ein dem PID2-Funktionsblock 122c (1) entsprechendes FFPID2-Funktionsobjekt 1304d gebunden. Ein dem Feldgerät 112c in 1 entsprechendes PDT3-Geräteobjekt 1302c ist an einen dem AO1-Funktionsblock 122e (1) entsprechenden FFAO1-Funktionsblock 1304e gebunden.
  • Entsprechend Tabelle 900 der Anzahlen von Startzeit-Offsets in 9 weist jedes der Funktionsobjekte 1304a–e jeweils eine Mehrzahl von Startzeit-Offsets 1306a–e auf, wie in 13 dargestellt. Jeder der Startzeit-Offsets kann mittels einer Datenstruktur in einem Speicher (beispielsweise einem Speicher des Bedienrechners 102 in 1) gespeichert werden. In dem in 13 dargestellten Beispiel speichert eine beispielhafte, dem Startzeit-Offset 1306 entsprechende Startzeit-Offset-Datenstruktur 1310 den Startzeit-Offset im Format FBS {Sequenzzahl, Indexwert, Startzeit-Offset}. In dem Beispiel bezieht sich die Sequenzzahl auf eine bestimmte Ausführungsinstanz eines Funktionsblocks während eines Unter-Zeitplans (beispielsweise eines der Unter-Zeitpläne 710 oder 712 in 7); der Indexwert kann verwendet werden, um den Startzeit-Offset einem jeweiligen Funktionsblock zuzuweisen und der Startzeit-Offset bezieht sich auf die Startzeit-Offsets (beispielsweise den Startzeit-Offset 1306b) eines jeweiligen Funktionsblocks.
  • 14 ist eine weitere beispielhafte objektorientierte Softwareausführungsumgebung 1400, die die Beziehungen zwischen für die Feldgeräte 1012a–c in 10 repräsentativen Objekten, den Funktionsblöcken 1022a–e in 10 und den den Funktionsblöcken 1022a–e entsprechenden Startzeit-Offsets zeigt. Ein dem Feldgerät 1012a in 10 entsprechendes PDT11-Geräteobjekt 1402a ist an einen dem AI11-Funktionsblock 1022a (10) entsprechenden FFAI11-Funktionsblock 1404a, ein dem AI2-Funktionsblock 1022c (1) entsprechendes FFAI12-Funktionsobjekt 1404b und ein dem AO11-Funktionsblock 1022e in 10 entsprechendes FFA011-Funktionsobjekt 1404c gebunden. Ein dem Feldgerät 1012b in 10 entsprechendes PDT12-Geräteobjekt 1402b ist an einen dem PID12-Funktionsblock 1022b (1) entsprechenden FFPID12-Funktionsblock 1404c gebunden. Ein dem Feldgerät 1012c in 10 entsprechendes PDT13-Geräteobjekt 1402c ist an einen dem PID13-Funktionsblock 1022d (1) entsprechenden FFPID13-Funktionsblock 1404d gebunden.
  • Entsprechend Tabelle 1100 der Anzahlen von Startzeit-Offsets in 11 weist jedes der Funktionsobjekte 1404a–e jeweils einen oder mehrere einer Mehrzahl von Startzeit-Offsets 1406a–k auf, wie in 14 dargestellt. Eine dem FFA011-Funktionsobjekt 1404c entsprechende beispielhafte Startzeit-Offset-Datenstruktur 1410 speichert eine die Startzeit-Offsets 1406f–i aufweisende Startliste 1412. Unter Bezugnahme auf die Offset-Datenstruktur 1410 und das beispielhafte Ausführungssequenzdiagramm 1200 in 12 ist der Startzeit-Offset 1406f einer Sequenzzahl eins und einem Startzeit-Offset t3 zugeordnet, der Startzeit-Offset 1406g ist einer Sequenzzahl zwei und einem Startzeit-Offset t7 zugeordnet, der Startzeit-Offset 1406h ist einer Sequenzzahl drei und einem Startzeit-Offset t11 zugeordnet und der Startzeit-Offset 1406i ist einer Sequenzzahl vier und einem Startzeit-Offset t15 zugeordnet.
  • 15 stellt eine beispielhafte Art und Weise dar, auf die die dem AO11-Funktionsblock 1022e (10) zugeordnete Startliste 1412 (14) von dem Bedienrechner 102 (1) in das Feldgerät 1012a (10) kopiert wird. Der Bedienrechner 102 lädt Startzeit-Offsets (beispielsweise die Startzeit-Offsets 1406f–i) aufweisende Startlisten (beispielsweise die Startliste 1412) in die Feldgeräte 1012a–c herunter, um die Feldgeräte 1012a–c in die Lage zu versetzen, ihre jeweiligen den Funktionsblöcken 1022a–e (10) entsprechenden Funktionen während des Zeitplans 1202 in 12 zu fort geplanten Zeiten auszuführen. Wie in 15 dargestellt, speichert der Bedienrechner 102 die Module 1020 aus 10 einschließlich des AO11-Funktionsblocks 1022e. Obwohl nicht dargestellt, speichert der Bedienrechner 102 auch die anderen Funktionsblöcke 1022a–d in 10. In dem dargestellten Beispiel speichert der Bedienrechner 102 die die Startzeit-Offsets 1406f–i aus 8 aufweisende Startliste 1412. Obwohl nicht dargestellt, speichert der Bedienrechner 102 auch die den Funktionsblöcken 1022a–d entsprechenden Startlisten.
  • 15 zeigt weiterhin das Feldgerät 1012a aus 10, einen Port 1504 aufweisend, der konfiguriert ist, das Feldgerät 1012a kommunikativ mit dem digitalen Datenbus 1014 zu verbinden. Der Port 1504 ist mit dem dem digitalen Datenbus 1014 zugeordneten Zeitplan 1202 (12) versehen. Insbesondere gibt der Zeitplan 1202 dem Port 1504 die Dauer des Zeitplans (beispielsweise 2000 ms) und die Zeiten, zu denen sämtliche anderen, kommunikativ mit dem digitalen Datenbus 1014 verbundenen Feldgeräte (beispielsweise die Feldgeräte 1012a–c) konfiguriert sind, ihre jeweiligen Funktionen (beispielsweise den Funktionsblöcken 1022a–d in 10 entsprechende Funktionen) auszuführen.
  • In dem dargestellten Beispiel speichert das Feldgerät 1012a eine dem AO11-Funktionsblock 1022e entsprechende und als AO-Feldfunktions-(FF-)Block 1506 bezeichnete AO-Funktion. Selbstverständlich kann das Feldgerät 1012a mehr Funktionen einschließlich beispielsweise eines in 10 dargestellten, dem AI11-Funktionsblock 1022a entsprechenden AI-Feldfunktionsblocks speichern. Der AO11-Funktionsblock 1022e, der AO-Feldfunktionsblock 1506 und die Startliste 1414 speichern einen Indexwert 1508, der den AO11-Funktionsblock 1022e und den AO-Feldfunktionsblock 1506 den Startzeit-Offsets 1406f–i in der Startliste 1414 zuweist (beispielsweise tastet). Nachdem ein Zeitplanerzeugungsprozess in dem Bedienrechner 102 oder der Steuerung 106 in 1 die Startzeit-Offsets 1406f–i bestimmt und die Startzeit-Offsets 1406f–i in der Startliste 1414 gespeichert hat, kommuniziert der Bedienrechner 102 oder die Steuerung 106 die die Startzeit-Offsets 1406f–i enthaltende Startliste 1414 über den digitalen Datenbus 1014 an das Feldgerät 1012a. Wie in 15 dargestellt, speichert das Feldgerät 1012a sodann die Startliste 1414. Das Feldgerät 1012a verwendet sodann die Startzeit-Offsets 1406f–i, um zu bestimmen, wann der AO-Feldfunktionsblock 1506 zu den geeigneten Zeiten entsprechend dem Zeitplan 1202 auszuführen ist. Obwohl nicht dargestellt, speichert das Feldgerät 1012a auch die den AI11- und AI12-Funktionsblöcken 1022a und 1022c (10) entsprechenden Startlisten.
  • 16 zeigt eine beispielhafte objektorientierte Programmierungsumgebung 1600, die eine Mehrzahl von Klassen 1602a–i aufweist, die konfiguriert sind, Zeitpläne (beispielsweise die Zeitpläne 702 und 1202 in 7 und 12) mittels der hierin beschriebenen Verfahren und Vorrichtungen zu erzeugen. Eine Dbs-Schnittstellengeräteklasse 1602a wird zur Verfügung gestellt, um Informationen mit Feldgeräten (beispielsweise den Feldgeräten 112a–c in 1 oder den Feldgeräten 1012a–c in 10) oder Feldgeräteobjekten (beispielsweise den Feldgeräteobjekten 1302a–c in 13 oder den Feldgeräteobjekten 1402a–c in 14) auszutauschen. Beispielsweise kann die Dbs-Schnittstellengeräteklasse 1602a mit einer Mehrzahl von Funktionen oder Verfahren versehen sein, die konfiguriert sind, mit Feldgeräten oder Feldgeräteobjekten zu kommunizieren. Eine beispielhafte Funktion der Dbs-Schnittstellengeräteklasse 1602a ruft Blockabtastraten oder Blockrohausführungszeiträume (TBRE) ab, die jedem der Feldgeräte 112a–c oder 1012a–c zugeordnet sind.
  • Eine Dbs-Schnittstellenmodulklasse 1602b wird zur Verfügung gestellt, um Informationen mit einem Modul oder Modulobjekt (beispielsweise dem Modul 120 in 1 oder dem Modul 1020 in 10) auszutauschen, das ein oder mehrere Feldgeräte (beispielsweise die Feldgeräte 112a–c in 1 oder die Feldgeräte 1012a–c in 10) aufweist, für die ein Zeitplan (beispielsweise der Zeitplan 702 in 7 oder der Zeitplan 1202 in 12) zu erzeugen ist. Eine beispielhafte Funktion oder ein Verfahren der Dbs-Schnittstellenmodulklasse 1602b kann konfiguriert werden, die Ausführungsreihenfolge von Funktionsblöcken (beispielsweise der Funktionsblöcke 122a–e in 1 und 2) von einem Modul (beispielsweise dem Modul 120 in 1) abzurufen, das durch Verbindungen zwischen Funktionsblöcken definiert ist (beispielsweise die Verbindungen zwischen den in 2 dargestellten Funktionsblöcken 122a–e), die mittels einer Steuerungssystem-Konstruktionsschnittstelle in Form einer grafischen Benutzerschnittstelle spezifiziert sind.
  • Eine Dbs-Zeitplan-Basisvorlagenklasse 1602c wird zur Verfügung gestellt, um Basisvorlagen von Zeitplänen (beispielsweise eine Basisvorlage zum Erzeugen des Zeitplans 702 in 7 oder eine Basisvorlage zum Erzeugen des Zeitplans 1202 in 12) abzurufen und/oder zu erzeugen. Die Basisvorlagen von Zeitplänen stellen den Basis- oder grundlegenden Rahmen zur Verfügung, der zum Erzeugen von Zeitplänen erforderlich ist. Beispielsweise kann eine Basisvorlage eines Zeitplans Regeln aufweisen, die der zeitlichen Ablaufplanung von Funktionsblöcken zugeordnet sind, und/oder die Basisvorlage kann Default-Parameter (beispielsweise Zeitplanzeitraum, Ausführungen pro Zeitplanzeitraum etc.) spezifizieren. In einigen beispielhaften Implementierungen kann eine Basisvorlage für einen Zeitplan beispielsweise aus einer (nicht dargestellten) Zeitplan-Basisvorlagen-Datenbank in dem Bedienrechner 102 abgerufen werden.
  • Eine Dbs-Zeitplanklasse 1602d wird zur Verfügung gestellt, um auf die hierin beschriebene Weise Zeitpläne (beispielsweise den Zeitplan 702 in 7, den Zeitplan 1202 in 12 oder jeden anderen Zeitplan) zu erzeugen. Eine Dbs-Unter- Zeitplanklasse 1602e wird zur Verfügung gestellt, um auf die hierin beschriebene Weise Unter-Zeitpläne (beispielsweise die Unter-Zeitpläne 710 und 712 in 7, die Unter-Zeitpläne 1214 und 1216 in 12 oder beliebige andere Unter-Zeitpläne) zu erzeugen. Eine Dbs-Unter-Zeitplan-Basisvorlagenklasse 1602f wird zur Verfügung gestellt, um Basisvorlagen von Unter-Zeitplänen (beispielsweise Basisvorlagen zum Erzeugen der Unter-Zeitpläne 710 und 712 in 7 oder Basisvorlagen zum Erzeugen der Unter-Zeitpläne 1214 und 1216 in 12) abzurufen und/oder zu erzeugen. Die Basisvorlagen von Unter-Zeitplänen stellen den Basis- oder grundlegenden Rahmen zur Verfügung, der zum Erzeugen von Unter-Zeitplänen erforderlich ist. In einigen beispielhaften Implementierungen kann die Basisvorlage für einen Unter-Zeitplan beispielsweise aus einer (nicht dargestellten) Unter-Zeitplan-Basisvorlagen-Datenbank in dem Bedienrechner 102 abgerufen werden.
  • Eine Dbs-Zwangsdatensequenzklasse 1602g kann zur Verfügung gestellt werden, um Zeitplänen zugeordnete Zwangsdatensequenzen zu konfigurieren. Eine Zwangsdatensequenz gibt vor, wann ein Feldgerät (beispielsweise eines der Feldgeräte 112a–c in 1 oder eines der Feldgeräte 1012a–c in 10) anderen Feldgeräten seine Daten (beispielsweise Messungsinformationen, Statusinformationen etc.) kommunizieren oder veröffentlichen soll. In dem dargestellten Beispiel gewährleistet die Dbs-Zwangsdatensequenzklasse 1602g, dass Zwangsdatenbefehle von einer Steuerung (beispielsweise der Steuerung 106) den Feldgeräten übermittelt werden, nachdem diese in den Zeitplänen (beispielsweise den Zeitplänen 710 und 1202 in 7 und 12) angegebene Funktionsblöcke ausgeführt haben.
  • Eine Dbt-Zeitplan-Basisvorlagenklasse 1602h und eine Dbt-Zeitplanklasse 1602i stellen temporären Arbeitsraum zur Verfügung, in dem ein Zeitplan (beispielsweise einer der Zeitpläne 702 oder 1202 oder jeder andere Zeitplan) während eines Prozesses der Zeitplanerzeugung und vor dem Veröffentlichen des Zeitplans gegenüber den Feldgeräten zu erzeugen ist.
  • 17 ist ein detailliertes Blockdiagramm einer beispielhaften Vorrichtung 1700, die verwendet werden kann, um Zeitpläne nach den hierin beschriebenen Verfahren zu erzeugen. Die beispielhafte Vorrichtung 1700 kann mittels des Bedien rechners 102 (1), der Steuerung 106 (1) oder jeder gewünschten Kombination von Hardware, Firmware, und/oder Software implementiert werden. So können beispielsweise einer oder mehrere Schaltkreise, diskrete Halbleiterkomponenten oder passive elektronische Komponenten verwendet werden. Zusätzlich oder alternativ können einige oder alle der Blöcke der beispielhaften Vorrichtung 1700 oder Teile davon mittels Anweisungen, Code und/oder anderer Software und/oder Firmware etc. implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das bei Ausführung beispielsweise durch ein Prozessorsystem (beispielsweise das in 23 dargestellte Prozessorsystem 2310) die in den Flussdiagrammen in 1821 dargestellten Operationen ausführt. In einer beispielhaften Softwareimplementierung können die Blöcke der nachstehend beschriebenen beispielhaften Vorrichtung verwendet werden, um die vorstehend in Verbindung mit in 16 beschriebenen objektorientierten Programmierungsklassen 1602a–g zu implementieren.
  • Die beispielhafte Vorrichtung 1700 ist mit einer Feldgeräteschnittstelle 1702 versehen, die konfiguriert ist, Informationen mit Feldgeräten (beispielsweise den Feldgeräten 112a–c in 1 oder den Feldgeräten 1012a–c in 10) auszutauschen. Beispielsweise kann die Feldgeräteschnittstelle 1702 Blockabtastraten oder Blockrohausführungszeiträume (TBRE) abrufen, die jedem der Feldgeräte 112a–c oder 1012a–c zugeordnet sind.
  • Die beispielhafte Vorrichtung 1700 ist weiterhin mit einer Modulschnittstelle 1704 versehen, die konfiguriert ist, mit einem ein oder mehrere Feldgeräte (beispielsweise die Feldgeräte 112a–c in 1 oder die Feldgeräte 1012a–c in 10) aufweisenden Modul Informationen auszutauschen, für die ein Zeitplan (beispielsweise der Zeitplan 702 in 7 oder der Zeitplan 1202 in 12) zu erzeugen ist. Beispielsweise kann die Modulschnittstelle 1704 konfiguriert werden, die Ausführungsreihenfolge von Funktionsblöcken (beispielsweise der Funktionsblöcke 122a–e in 1 und 2) aus einem Modul (beispielsweise dem Modul 120 in 1) abzurufen, das durch Verbindungen von Funktionsblöcken definiert ist, die mittels einer Steuerungssystem-Konstruktionsschnittstelle in Form einer grafischen Benutzerschnittstelle (beispielsweise die Verbindungen zwischen den in 2 dargestellten Funktionsblöcken 122a–e) spezifiziert sind.
  • Die beispielhafte Vorrichtung 1700 ist weiterhin mit einer Zeitplan-Basisvorlagenschnittstelle 1706 versehen, die konfiguriert ist, Basisvorlagen von Zeitplänen (beispielsweise eine Basisvorlage zur Erzeugung des Zeitplans 702 in 7 oder eine Basisvorlage zur Erzeugung des Zeitplans 1202 in 12) abzurufen und/oder zu erzeugen. In einer beispielhaften Implementierung ruft die Zeitplan-Basisvorlagenschnittstelle 1706 Basisvorlagen von Zeitplänen aus einer Zeitplan-Basisvorlagendatenbank in dem Bedienrechner 102 beispielsweise auf der Grundlage der Anzahl und des Typs der Funktionsblöcke (beispielsweise der Funktionsblöcke 122a–e in 1 und 1022a–e in 10) in einem Modul (beispielsweise dem Modul 120 in 1 oder dem Modul 1020 in 10) ab.
  • Die beispielhafte Vorrichtung 1700 ist weiterhin mit einem Zeitplangenerator 1708 versehen, der konfiguriert ist, um auf die hierin beschriebene Weise Zeitpläne (beispielsweise den Zeitplan 702 in 7, den Zeitplan 1202 in 12 oder jeden anderen Zeitplan) zu erzeugen. Zusätzlich ist die beispielhafte Vorrichtung 1700 mit einem Unter-Zeitplangenerator 1710 versehen, der konfiguriert ist, auf die hierin beschriebene Weise Unter-Zeitpläne (beispielsweise die Unter-Zeitpläne 710 und 712 in 7, die Unter-Zeitpläne 1214 und 1216 in 12 oder beliebige andere Unter-Zeitpläne) zu erzeugen. Um Basisvorlagen von Unter-Zeitplänen zu erzeugen oder abzurufen, ist die beispielhafte Vorrichtung 1700 mit einer Unter-Zeitplan-Basisvorlagenschnittstelle 1712 versehen.
  • Die beispielhafte Vorrichtung 1700 ist weiterhin mit einem Zwangsdatensequenzgenerator 1714 versehen, der konfiguriert ist, Zeitplänen zugeordnete Zwangsdatensequenzen zu erzeugen. Wenn beispielsweise der Zeitplangenerator 1708 die Erzeugung eines Zeitplans (beispielsweise eines der Zeitpläne 702 (7) oder 1202 (12)) abgeschlossen hat, kann der Zwangsdatensequenzgenerator 1714 eine Zwangsdatensequenz für diesen Zeitplan erzeugen, um zu gewährleisten, dass eine Steuerung (beispielsweise die Steuerung 106 in 1) Zwangsdatenbefehle an Feldgeräte sendet, nachdem diese in dem Zeitplan angegebene Funktionsblöcke ausgeführt haben. Auf diese Weise werden von Feldgeräten erzeugte Daten (beispielsweise Messungsinformationen, Statusinformationen, Berechnungsergebnisse etc.) anderen Feldgeräten kommuniziert oder veröffentlicht, die die Daten benötigen, um andere Operationen auszuführen.
  • Die beispielhafte Vorrichtung 1700 ist zusätzlich mit einer Konfigurierungsschnittstelle 1716 versehen, die konfiguriert ist, Informationen, Befehle etc. von einer auf einer grafischen Benutzerschnittstelle basierten Konstruktionssoftwareanwendung (beispielsweise der zum Verbinden der in 2 dargestellten Funktionsblöcke 122a–e verwendeten, auf einer grafischen Benutzerschnittstelle basierten Konstruktionssoftwareanwendung) zu empfangen, die verwendet wird, um Prozesssteuerungsverläufe durch Hinzufügen, Entfernen und Verbinden von Funktionsblöcken (beispielsweise der Funktionsblöcke 122a–e in 1 und 2 und der Funktionsblöcke 1022a–e in 12) zu konstruieren. Wenn beispielsweise ein Anwender eine Verbindung zwischen zwei Funktionsblöcken ändert, sendet die auf einer grafischen Benutzerschnittstelle basierte Konstruktionssoftwareanwendung eine Benachrichtigung bezüglich der Änderung sowie die Änderung beschreibende Informationen (beispielsweise Ausgang von Funktionsblock A mit Eingang von Funktionsblock B verbunden) an die Konfigurierungsschnittstelle 1716. Zusätzlich ist die Konfigurierungsschnittstelle 1716 konfiguriert, auf Datenstrukturen oder Datenbanken in dem Bedienrechner 102 oder in jedem anderen Prozessorsystem zuzugreifen, das mit dem LAN 108 in 1 verbunden ist, um Konfigurationsinformationen des Prozesssteuerungssystems (beispielsweise verbindliche Regeln für den digitalen Datenbus, Grenzen des digitalen Datenbusses etc.) abzurufen.
  • Die beispielhafte Vorrichtung 1700 ist weiterhin mit einem Rohausführungszeitraumbestimmer 1718 versehen, um Blockrohausführungszeiträume (TBRE) entsprechend der obigen Gleichung 1 zu bestimmen. Die beispielhafte Vorrichtung 1700 ist weiterhin mit einem Runder 1720 versehen, um Blockrohausführungszeiträume (TBRE) entsprechend den in der Rundungstabelle 800 in 8 dargestellten Rundungswerten zu runden. Zusätzlich ist die beispielhafte Vorrichtung 1700 mit einem Startzeit-Offset-Bestimmer 1722 versehen, der konfiguriert ist, Anzahlen von Startzeit-Offsets (QS) und Startzeit-Offset-Werte (tS) für Funktionsblöcke zu erzeugen. Beispielsweise kann der Startzeit-Offset-Bestimmer 1721 konfiguriert werden, die vorstehend in Verbindung mit den Gleichungen 3 und 4 beschriebenen Berechnungen auszuführen. Weiterhin ist die beispielhafte Vorrichtung 1700 mit einem Blockabtastratenbestimmer 1724 versehen, um die Blockabtastratenfaktoren (FBSR) von Funktionsblöcken (beispielsweise der Funktionsblöcke 122a–e in 1 und 2 und der Funktionsblöcke 1022a–e in 10) zu bestimmen. Beispielsweise kann der Blockabtastratenfaktorbestimmer 1724 einen Blockabtastratenfaktor (FBSR) auf der Grundlage der obigen Gleichung 2 bestimmen. Um Werte zu vergleichen, ist die beispielhafte Vorrichtung 1700 mit einem Komparator 1726 versehen. Der Komparator 1726 kann beispielsweise verwendet werden, um den einem Feldgerät zugeordneten langsamsten Blockrohausführungszeitraum (TSBE) durch Vergleich der dem Gerät zugeordneten Blockrohausführungszeiträume (TBRE) und Bestimmung, welcher der langsamste ist, zu bestimmen.
  • 1821 sind Flussdiagramme beispielhafter Verfahren, die verwendet werden können, um die beispielhafte Vorrichtung 1700 in 17 zu implementieren. In einigen beispielhaften Implementierungen können die beispielhaften Methoden in 1821 mittels maschinenlesbarer Anweisungen implementiert werden, die ein Programm zur Ausführung durch einen Prozessor (beispielsweise den in dem beispielhaften Prozessorsystem 2310 in 23 dargestellten Prozessor 2312) umfassen. Das Programm kann in Software ausgeführt werden, die auf einem greifbaren Medium wie beispielsweise einer CD-ROM, einer Floppy Disk, einer Festplatte, einer Digital Versatile Disk (DVD) oder einem dem Prozessor 2312 zugeordneten Speicher gespeichert und/oder in Firmware und/oder dedizierter Hardware auf bestens bekannte Weise ausgeführt ist. Obwohl weiterhin das beispielhafte Programm unter Bezugnahme auf die in 1821 dargestellten Flussdiagramme beschrieben wird, erkennt der Sachkundige problemlos, dass viele andere Verfahren der Implementierung der beispielhaften Vorrichtung 1700 in 17 alternativ verwendet werden können. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden und/oder einige der beschriebenen Blöcke können verändert, eliminiert oder kombiniert werden.
  • Zum Zwecke der Diskussion werden die Flussdiagramme in 1821 nachstehend in Verbindung mit dem Zeitplan 1202 in 12 beschrieben. Die in Verbindung mit dem Flussdiagrammen in 1821 beschriebenen beispielhaften Verfahren können jedoch verwendet werden, um jeden anderen Zeitplan einschließlich beispielsweise des Zeitplans 702 in 7 zu erzeugen.
  • Wie in 18 dargestellt, bestimmt in einem beispielhaften Verfahren zum Erzeugen von Zeitplänen (beispielsweise der Zeitpläne 702 und 1202 in 7 und 12 oder jedes anderen Zeitplan zur zeitlichen Planung von Ausführungen von Funktionsblöcken innerhalb eines Prozesssteuerungssystems) die Konfigurierungsschnittstelle 1716, ob ein neues Modul (beispielsweise das Modul 1020 in 10) erzeugt wurde oder ob eine Konfiguration eines vorhandenen Moduls geändert wurde (Block 1802). Wenn die Konfigurierungsschnittstelle 1716 feststellt, dass ein neues Modul nicht hinzugefügt und dass ein vorhandenes Modul nicht geändert wurde, verbleibt die Steuerung bei dem Block 1802, bis die Konfigurierungsschnittstelle 1716 feststellt, dass ein neues Modul hinzugefügt oder dass ein vorhandenes Modul geändert wurde.
  • Wenn die Konfigurierungsschnittstelle 1716 feststellt, dass ein neues Modul hinzugefügt oder dass die Konfiguration eines vorhandenen Moduls geändert wurde (Block 1802), bestimmt die Konfigurierungsschnittstelle 1716, ob ein Zeitplan entsprechend bekannten Verfahren zu erzeugen ist (Block 1804). Beispielsweise kann die Konfigurierungsschnittstelle 1716 aus einer in dem Bedienrechner 102 (1) gespeicherten Datenstruktur einen Zeitplantypdeskriptor abrufen. Ein beispielhafter, entsprechend bekannten Verfahren erzeugter Zeitplan ist vorstehend in Verbindung mit 6 beschrieben. Wenn die Konfigurierungsschnittstelle 1716 feststellt, dass bekannte Verfahren anzuwenden sind, um einen Zeitplan zu erzeugen, endet das beispielhafte Verfahren in 18.
  • Wenn die Konfigurierungsschnittstelle 1716 feststellt, dass bekannte Verfahren nicht anzuwenden sind, um einen Zeitplan zu erzeugen, verifiziert die Konfigurierungsschnittstelle 1716, dass die Modulkonfiguration keine verbindlichen Regeln verletzt (Block 1806). Die verbindlichen Regeln geben an, ob eine bestimmte Modulkonfiguration gültig ist. Wenn beispielsweise einer der Funktionsblöcke 1022a–e in Modul 1020 in 10 nicht einem der Feldgeräte 1012a–c oder einem anderen Feldgeräte zugeordnet ist oder wenn einer der Funktionsblöcke 1022a–e nicht ordnungsgemäß verbunden ist, ist das Modul 1020 nicht für eine Zeitplanerzeugung gültig. In dem dargestellten Beispiel empfängt die Konfigurierungsschnittstelle 1716 eine Verifizierung von einer Verifikationsfunktion in einer Prozesssteuerungssystem-Konstruktionssoftwareanwendung, die die Modulkonfiguration anhand verbindlicher Regeln prüft. Wenn die Konfigurierungsschnittstelle 1716 feststellt, dass die Modulkonfiguration nicht gültig ist (Block 1808), endet das beispielhafte Verfahren in 18.
  • Wenn die Konfigurierungsschnittstelle 1716 feststellt, dass die Modulkonfiguration gültig ist (Block 1808), werden die Funktionsblockverbindungen zwischen den Funktionsblöcken 1022a–e in 10 an den digitalen Datenbus 1014 (10) und aneinander (Block 1810) angebunden. Beispielsweise können die Funktionsblockverbindungen auf die vorstehend in Verbindung mit 3 beschriebene Weise angebunden werden. Die beispielhafte Vorrichtung 1700 bestimmt sodann die Anzahl der Startzeit-Offsets (QS) für jeden der Funktionsblöcke 1022a–e (10) (Block 1812). Der Betrieb des Blocks 1812 kann mittels des nachstehend in Verbindung mit 19 beschriebenen beispielhaften Verfahrens implementiert werden.
  • Nachdem die beispielhafte Vorrichtung 1700 die Anzahl der Startzeit-Offsets (QS) bestimmt hat, ruft die Konfigurierungsschnittstelle 1716 die Grenzen des digitalen Datenbusses 1014 ab (Block 1814). Beispielsweise kann die Konfigurierungsschnittstelle 1716 einen Zeitwert abrufen, der den längstmöglichen Zeitplan definiert, der auf dem digitalen Datenbus 1014 laufen kann. Die Konfigurierungsschnittstelle 1716 kann die Grenzen beispielsweise aus einer Datenbank der Eigenschaften des digitalen Datenbusses in dem Bedienrechner 102 oder in der Steuerung 106 abrufen. Die Zeitplan-Basisvorlagenschnittstelle 1706 (17) ruft sodann beispielsweise aus einer Zeitplanvorlagendatenbank in dem Bedienrechner 102 eine Zeitplan-Basisvorlage (Block 1816) ab. Die beispielhafte Vorrichtung 1700 erzeugt sodann, wie nachstehend detailliert in Verbindung mit dem beispielhaften Verfahren in 20 beschrieben, den Zeitplan 1202 (12) (Block 1818). Nachdem die beispielhafte Vorrichtung 1700 den Zeitplan 1202 erzeugt hat, wird die Steuerung wieder an eine aufrufende Funktion oder einen Prozess zurückgegeben und das beispielhafte Verfahren in 18 wird beendet.
  • In 19 zeigt das dargestellte Flussdiagramm ein beispielhaftes Verfahren, das verwendet werden kann, um den Block 1812 in 18 zu implementieren, um die Anzahl der Startzeit-Offsets (QS) für jeden der Funktionsblöcke 1022a–e (10) zu bestimmen. Zuerst ruft die Modulschnittstelle 1704 den Modulausführungszeitraum (TME) des Moduls 1020 in 10 ab (Block 1902). Die Modulschnittstelle 1704 wählt sodann ein dem Modul 1020 zugeordnetes Feldgerät aus (Block 1904) (beispielsweise eines der Feldgeräte 1022a–e). Beispielsweise kann die Modulschnittstelle 1704 feststellen, welchen Feldgeräten (beispielsweise den Feldgeräten 1012a–c) die Funktionsblöcke 1022a–e zugeordnet sind, und eines dieser Feldgeräte auswählen, indem beispielsweise ein Feldgeräteobjekt (beispielsweise eines der Feldgeräteobjekte 1402a–c in 14) ausgewählt wird. Zum Zwecke der Diskussion wählt an Block 1904 die Modulschnittstelle 1704 das Feldgerät 1012a in 10 aus. In einer objektorientierten Programmierungsumgebung wählt die Modulschnittstelle 1704 das Feldgerät 1012a aus, indem sie das Feldgeräteobjekt 1402a in 14 auswählt.
  • Die Modulschnittstelle 1704 wählt sodann einen Funktionsblock (beispielsweise einen der Funktionsblöcke 1022a, 1022c oder 1022e) aus, der dem ausgewählten Feldgerät 1012a zugeordnet ist (Block 1906). Für Zwecke der Diskussion wählt die Modulschnittstelle 1704 den AI12-Funktionsblock 1022c in 10 an Block 1906 aus. In einer objektorientierten Programmierungsumgebung wählt die Modulschnittstelle 1704 den AI12-Funktionsblock 1022c aus, indem sie das FFAI12-Funktionsblockobjekt 1404b in 14 auswählt. Der Blockabtastratenfaktorbestimmer 1724 (17) bestimmt sodann den Blockabtastratenfaktor (FBSR) des ausgewählten AI12-Funktionsblocks 1022c (Block 1908). Beispielsweise kann der Blockabtastratenfaktorbestimmer 1724 den Modulausführungszeitraum (TME) des Moduls 1020 und den Blockabtastratenfaktor (BSR) des AI12-Funktionsblocks 1022c von der Modulschnittstelle 1704 erhalten und den Blockabtastratenfaktor (FBSR) des AI12-Funktionsblocks 1022c mittels der obigen Gleichung 2 bestimmen.
  • Der Rohausführungszeitraumbestimmer 1718 (17) bestimmt sodann den Blockrohausführungszeitraum (TBRE) des AI12-Funktionsblocks 1022c (Block 1910). Beispielsweise kann der Rohausführungszeitraumbestimmer 1718 die obige Gleichung 1 verwenden, um den Blockrohausführungszeitraum (TBRE) des AI12-Funktionsblocks 1022c auf der Grundlage des Modulausführungszeitraums (TME) des Moduls 1020 und des Blockabtastratenfaktors (BSR) des AI12-Funktionsblocks 1022c zu bestimmen. Der Runder 1720 (17) rundet sodann den Blockrohausführungszeitraum (TBRE) des AI12-Funktionsblocks 1022c auf der Grundlage der Rundungstabelle 800 in 8 auf einen gerundeten Blockrohausführungszeitraum (RTBRE) (Block 1912).
  • Die Modulschnittstelle 1704 bestimmt sodann, ob das Modul 1020 einen weiteren Funktionsblock enthält, der dem ausgewählten Feldgerät 1012a zugeordnet ist (Block 1914). Wenn die Modulschnittstelle 1704 feststellt, dass das Modul 1020 einen weiteren Funktionsblock enthält, der dem ausgewählten Feldgerät 1012a zugeordnet ist (Block 1914), wird die Steuerung an den Block 1906 zurückgegeben und die Modulschnittstelle 1704 wählt den nächsten Funktionsblock (beispielsweise einen der Funktionsblöcke 1022a und 1022e) aus, der dem Feldgerät 1012a zugeordnet ist. Wenn andernfalls die Modulschnittstelle 1704 feststellt, dass das Modul 1020 keinen weiteren Funktionsblock enthält, der dem ausgewählten Feldgerät 1012a zugeordnet ist (wenn beispielsweise die gerundeten Blockrohausführungszeiträume (RTBRE) für sämtliche der Funktionsblöcke 1022a, 1022c und 1022e innerhalb des Moduls 1020, das dem Feldgerät 1012a zugeordnet ist, bestimmt wurden), bestimmt der Komparator 1726 sodann den langsamsten Blockrohausführungszeitraum (TSBE), der dem ausgewählten Feldgerät zugeordnet ist (Block 1916). Beispielsweise kann der Komparator 1726 die gerundeten Blockrohausführungszeiträume (RTBRE) vergleichen, die vorstehend in Verbindung mit den Blöcken 1906, 1908, 1910 und 1912 der dem Feldgerät 1012a zugeordneten Funktionsblöcke 1022a, 1022c und 1022e bestimmt wurden. Der Komparator 1726 kann sodann auf der Grundlage des Vergleichs den langsamsten Blockrohausführungszeitraum (TSBE) gleich dem langsamsten einen der gerundeten Blockrohausführungszeiträume (RTBRE) setzen.
  • Die Modulschnittstelle 1704 wählt sodann einen Funktionsblock aus, für den eine Anzahl von Startzeit-Offsets (QS) zu bestimmen ist (Block 1918). Beispielsweise wählt die Modulschnittstelle 1704 einen der Funktionsblöcke 1022a, 1022c und 1022e aus, die innerhalb des Moduls 1020 enthalten und dem ausgewählten Feldgerät 1012a zugeordnet sind. Für Zwecke der Diskussion wählt das Modul 1020 den AI12-Funktionsblock 1022c an Block 1918 aus. Der Startzeit-Offset-Bestimmer 1722 (17) bestimmt sodann die Anzahl der Startzeit-Offsets (QS) für den AI12-Funktionsblock 1022c (Block 1920). Beispielsweise kann der Startzeit-Offset-Bestimmer 1722 die obige Gleichung 3 verwenden, um die Anzahl der Startzeit-Offsets (QS) auf der Grundlage der gerundeten Blockrohausführungszeiträume (RTBRE) des AI12-Funktionsblocks 1022c und des an Block 1916 bestimmten langsamsten Blockrohausführungszeitraums (TSBE) zu bestimmen.
  • Die Modulschnittstelle 1704 bestimmt sodann, ob das Modul 1020 einen weiteren Funktionsblock enthält, der dem ausgewählten Feldgerät 1012a zugeordnet ist (Block 1922). Wenn die Modulschnittstelle 1704 feststellt, dass das Modul 1020 einen weiteren Funktionsblock enthält, der dem ausgewählten Feldgerät 1012a zugeordnet ist (Block 1922), wird die Steuerung an den Block 1918 zurückgegeben und die Modulschnittstelle 1704 wählt den nächsten Funktionsblock (beispielsweise einen der Funktionsblöcke 1022a und 1022e) aus, der dem Feldgerät 1012a zugeordnet ist. Wenn andernfalls die Modulschnittstelle 1704 feststellt, dass das Modul 1020 keinen weiteren Funktionsblock enthält, der dem ausgewählten Feldgerät 1012a zugeordnet ist (beispielsweise wurde die Anzahl der Startzeit-Offsets (QS) für sämtliche der Funktionsblöcke 1022a, 1022c und 1022e innerhalb des Moduls 1020, das dem Feldgerät 1012a zugeordnet ist, bestimmt), stellt die Modulschnittstelle 1704 fest, ob ein weiteres Feldgerät (beispielsweise eines der Feldgeräte 1012b und 1012c in 10) dem Modul 1020 zugeordnet ist (Block 1924). Beispielsweise kann die Modulschnittstelle 1704 feststellen, dass ein weiteres Feldgerät dem Modul 1020 zugeordnet ist, wenn das Modul 1020 irgendwelche Funktionsblöcke (beispielsweise die Funktionsblöcke 1022b und 1022d) enthält, die anderen Feldgeräten (beispielsweise den Feldgeräten 1012b und 1012c) zugeordnet sind und für die die Anzahl der Startzeit-Offsets (QS) noch nicht bestimmt wurde.
  • Wenn die Modulschnittstelle 1704 feststellt, dass ein weiteres Feldgerät (beispielsweise eines der Feldgeräte 1012b und 1012c in 10) dem Modul 1020 zugeordnet ist (Block 1924), geht die Steuerung an den Block 1904 zurück und an diesen Punkt wählt die Modulschnittstelle 1704 das nächste Feldgerät (beispielsweise eines der Feldgeräte 1012b und 1012c in 10) aus. Wenn andernfalls die Modulschnittstelle 1704 feststellt, dass ein weiteres Feldgerät nicht dem Modul 1020 zugeordnet ist (Block 1924), stellt die Modulschnittstelle 1704 fest, ob ein weiteres Modul (beispielsweise ein anderes Modul als das Modul 1020) dem digitalen Datenbus 1014 zugeordnet ist (Block 1926). Beispielsweise kann ein anderes dem digitalen Datenbus 1014 zugeordnetes Modul Funktionsblöcke enthalten, die einem der Feldgeräte 1012a–c zugeordnet sind, und die beispielhafte Vorrichtung 1700 bestimmt sodann die Anzahl der Startzeit-Offsets (QS) für diese Funktionsblöcke. Wenn die Modulschnittstelle 1704 feststellt, dass ein anderes Modul dem digitalen Datenbus 1014 zugeordnet ist, wird die Steuerung an den Block 1902 zurückgegeben und die Modulschnittstelle 1704 ruft an diesem Punkt den Modulausführungszeitraum (TME) des nächsten Moduls ab. Wenn andernfalls die Modulschnittstelle 1704 feststellt, dass ein weiteres Modul nicht dem digitalen Datenbus 1014 zugeordnet ist, wird die Steuerung an eine aufrufende Funktion oder einen Prozess (beispielsweise das beispielhafte Verfahren in 18) zurückgegeben und das beispielhafte Verfahren in 19 wird beendet.
  • In 20A und 20B zeigt das dargestellte Flussdiagramm ein beispielhaftes Verfahren, das verwendet werden kann, um den Block 1818 in 18 zu implementieren, um Unter-Zeitpläne (beispielsweise die Unter-Zeitpläne 1214 und 1216 in 12) und einen Zeitplan (beispielsweise den Zeitplan 1202 in 12) auf der Grundlage der Unter-Zeitpläne zu erzeugen. Zuerst ruft der Unter-Zeitplangenerator 1710 sämtliche der gerundeten Blockrohausführungszeiträume (RTBRE) ab, die dem digitalen Datenbus 1014 zugeordnet sind (Block 2002). Beispielsweise ruft der Unter-Zeitplangenerator 1710 sämtliche der gerundeten Blockrohausführungszeiträume (RTBRE) ab, die an Block 1912 für sämtliche der Funktionsblöcke (beispielsweise die Funktionsblöcke 1022a–e in 10), die dem digitalen Datenbus 1014 zugeordnet sind, bestimmt wurden. Die Unter-Zeitplan-Basisvorlagenschnittstelle 1712 (17) ruft sodann Unter-Zeitplan-Basisvorlagen für jeden der gerundeten Blockrohausführungszeiträume (RTBRE) ab (Block 2004). Beispielsweise kann die Unter-Zeitplan-Basisvorlagenschnittstelle 1712 die Unter-Zeitplan-Basisvorlagen aus einer Unter-Zeitplan-Basisvorlagendatenbank oder einer Datenstruktur in dem Bedienrechner 102 (1) abrufen. In dem dargestellten Beispiel ist jede der Unter-Zeitplan-Basisvorlagen konfiguriert, einen Unter-Zeitplan-Ausführungszeitraum aufzuweisen, der jeweils gleich einem der an Block 2002 abgerufenen gerundeten Blockrohausführungszeiträume (RTBRE) ist. Beispielsweise ist, wie in 12 dargestellt, der Unter-Zeitplan-Ausführungszeitraum des Unter-Zeitplans 1214 gleich 500 ms und der Unter-Zeitplan-Ausführungszeitraum des Unter-Zeitplans 1216 ist gleich 2000 ms.
  • Der Unter-Zeitplangenerator 1710 wählt die Unter-Zeitplanvorlage aus, die den kürzesten Unter-Zeitplan-Ausführungszeitraum aufweist (Block 2006). Beispielsweise kann der Unter-Zeitplangenerator 1710 mittels des Komparators 1726 (17) sämtliche der Unter-Zeitplan-Ausführungszeiträume miteinander vergleichen, um festzustellen, welcher der Unter-Zeitplan-Ausführungszeiträume der kürzeste ist. Der Unter-Zeitplangenerator 1710 wählt sodann ein Feldgerät aus, das konfiguriert ist, synchrone Datentransfers auszuführen (Block 2008). Ein Feldgerät (beispielsweise eines der Feldgeräte 1012a–c in 10) ist konfiguriert, synchrone Datentransfers auszuführen, wenn es beauftragt wird, einen Funktionsblock (beispielsweise einen der Funktionsblöcke 1022a–e in 10) auszuführen, der Daten auf synchrone Weise überträgt. Ein Funktionsblock überträgt Daten auf synchrone Weise, wenn die von diesem Funktionsblock erzeugten Daten von einem anderen Funktionsblock zu einem bestimmten Zeitpunkt benötigt werden. Wenn beispielsweise der PID13-Funktionsblock 1022d (10 und 12) Daten von dem AI12-Funktionsblock 1022c (10 und 12) bis zu der in 12 dargestellten Zeit t2 benötigt, muss das Feldgerät 1012a einen synchronen Datentransfer in Verbindung mit dem AI12-Funktionsblock 1022c durchführen, um zu gewährleisten, dass der PID13-Funktionsblock 1022d die Daten bis zum Zeitpunkt t2 erhält. Zum Zwecke der Diskussion wählt der Unter-Zeitplangenerator 1710 das Feldgerät 1012a aus (10 und 12).
  • Der Unter-Zeitplangenerator 1710 ruft sodann den langsamsten Blockrohausführungszeitraum (TSBE) ab, der dem ausgewählten Feldgerät 1012a zugeordnet ist (Block 2010). Beispielsweise kann der Unter-Zeitplangenerator 1710 den langsamsten Blockrohausführungszeitraum (TSBE) abrufen, der an Block 1916 in 19 für das Feldgerät 1012a bestimmt wurde. Der Unter-Zeitplangenerator 110 stellt sodann beispielsweise mittels des Komparators 1726 (17) fest, ob der langsamste Blockrohausführungszeitraum (TSBE) gleich dem Unter-Zeitplan-Ausführungszeitraum der ausgewählten Unter-Zeitplanvorlage ist (Block 2012). Der mittels der an Block 2006 ausgewählten Unter-Zeitplanvorlage zu erzeugende Unter-Zeitplan kann Startzeit-Offsets (tS) lediglich für Funktionsblöcke aufweisen, die dafür vorgesehen sind, von Feldgeräten ausgeführt zu werden, die einem langsamsten Blockrohausführungszeitraum (TSBE) zugeordnet sind, der gleich dem Unter-Zeitplan-Ausführungszeitraum der ausgewählten Unter-Zeitplanvorlage ist. Wenn daher der Unter-Zeitplangenerator 1710 feststellt, dass der langsamste Blockrohausführungszeitraum (TSBE) des an Block 2008 ausgewählten Feldgeräts 1012a nicht gleich dem Unter-Zeitplan-Ausführungszeitraum der ausgewählten Unter-Zeitplanvorlage ist (Block 2012), wird das Feldgerät übersprungen und die Steuerung wird an den Block 2008 zurückgegeben und der Unter-Zeitplangenerator 1710 wählt an diesem Punkt ein weiteres Feldgerät aus, das konfiguriert ist, synchrone Datentransfers auszuführen.
  • Wenn andernfalls der Unter-Zeitplangenerator 1710 feststellt, dass der langsamste Blockrohausführungszeitraum (TSBE) des an Block 2008 ausgewählten Feldgeräts 1012a gleich dem Unter-Zeitplan-Ausführungszeitraum der ausgewählten Unter-Zeitplanvorlage ist (Block 2012), wählt der Unter-Zeitplangenerator 1710 einen Funktionsblock (beispielsweise einen der Funktionsblöcke 1022a, 1022c oder 1022e) aus, der dem ausgewählten Feldgerät 1012a zugeordnet und mit synchronen Datentransfers verbunden ist (Block 2014). Zum Zwecke der Diskussion wählt der Unter-Zeitplangenerator 1710 den AI12-Funktionsblock 1022c aus (10 und 12).
  • Der Unter-Zeitplangenerator 1710 ruft sodann die Datenverfügbarkeitszeit (tDA) des ausgewählten AI12-Funktionsblocks 1022c ab (Block 2016). In dem dargestellten Beispiel werden alle Datenverfügbarkeitszeiten (tDA) durch einen (nicht dargestellten) Synchron-Datenverfügbarkeitszeitgenerator vorbestimmt und in einer Datenstruktur gespeichert, die den Eingangsports des Funktionsblocks zugeordnet ist. Beispielsweise kann der Synchron-Datenverfügbarkeitszeitgenerator vor oder während des Prozesses der Zeitplanerzeugung in 18 alle Funktionsblöcke (beispielsweise die Funktionsblöcke 1022a–e) abfragen, um festzustellen, welche Funktionsblöcke einen Datentransfer zu ihnen auf synchrone Weise benötigen. Der Synchron-Datenverfügbarkeitszeitgenerator kann sodann die Datenverfügbarkeitszeiten (tDA) vorbestimmen, um zu gewährleisten, dass Funktionsblöcke, die Daten auf synchrone Weise an andere Funktionsblöcke übertragen müssen, ausreichend Zeit haben, um ausgeführt zu werden und ihre Daten über den digitalen Datenbus 1014 zu übertragen, sodass Funktionsblöcke, die die Daten zu einer bestimmten Zeit benötigen, die Daten bis zu diesem Zeitpunkt erhalten. Für einen Funktionsblock (beispielsweise den AI11-Funktionsblock 1022a), der ausgeführt werden kann, ohne Daten von einem anderen Funktionsblock zu benötigen, wird die Datenverfügbarkeitszeit (tDA) auf Null gesetzt, da der Funktionsblock ausgeführt werden kann, sobald ein Unter-Zeitplanzeitraum beginnt.
  • Der Startzeit-Offset-Bestimmer 1722 (17) bestimmt die Startzeit-Offset-Werte (tS) für den ausgewählten AI12-Funktionsblock 1022c (Block 2018), wie nachstehend in Verbindung mit 21 beschrieben. Der Unter-Zeitplangenerator 1710 weist sodann Datentransferzeiten (Block 2020) für die an Block 2018 bestimmten Startzeit-Offset-Werte (ts) zu. Eine Datentransferzeit ist die Menge an Zeit, die erforderlich ist, um Daten von einem Funktionsblock zu einem anderen über den digitalen Datenbus 1014 zu kommunizieren. Ein Funktionsblock, der Daten zu einem anderen Funktionsblock innerhalb desselben Geräts überträgt, hat keine Datentransferzeit. Ein Funktionsblock, der Daten zu einem anderen Funktionsblock innerhalb desselben Geräts überträgt, hat jedoch keine Datentransferzeit. Datentransferzeiten besetzen Zeit auf dem digitalen Datenbus 1014 und müssen daher den Unter-Zeitplan erzeugen, um zu gewährleisten, dass der Unter-Zeitplan ausreichend lang ist, um zu gewährleisten, dass sämtliche Funktionsblockausführungen und Datentransfers auf dem digitalen Datenbus 1014 erfolgen können.
  • Der Unter-Zeitplangenerator 1710 stellt sodann fest, ob ein weiterer Funktionsblock, der dem Feldgerät 1012a zugeordnet ist, mit synchronen Datentransfers verbunden ist (Block 2022). Wenn der Unter-Zeitplangenerator 1710 feststellt, dass ein weiterer Funktionsblock, der dem Feldgerät 1012a zugeordnet ist, mit synchronen Datentransfers verbunden ist (Block 2022), wird die Steuerung an den Block 2014 zurückgegeben und der Unter-Zeitplangenerator 1710 wählt an diesem Punkt den nächsten Funktionsblock aus, der mit synchronen Datentransfers verbunden ist. Andernfalls stellt der Unter-Zeitplangenerator 1710 fest, ob ein anderes Feldgerät, das kommunikativ mit dem digitalen Datenbus 1014 verbunden ist, konfiguriert ist, synchrone Datentransfers auszuführen (Block 2024). Wenn der Unter-Zeitplangenerator 1710 feststellt, dass ein weiteres Feldgerät, das kommunikativ mit dem digitalen Datenbus 1014 verbunden ist, konfiguriert ist, synchrone Datentransfers auszuführen (Block 2024), wird die Steuerung an den Block 2008 zurückgegeben und der Unter-Zeitplangenerator 1710 wählt an diesem Punkt ein anderes Feldgerät (beispielsweise eines der Feldgeräte 1012b und 1012c in 10 und 12) aus, das konfiguriert ist, synchrone Datentransfers auszuführen.
  • Wenn andernfalls der Unter-Zeitplangenerator 1710 feststellt, dass ein anderes Feldgerät, das kommunikativ mit dem digitalen Datenbus 1014 verbunden ist, nicht konfiguriert ist, synchrone Datentransfers auszuführen (Block 2024), verarbeitet der Unter-Zeitplangenerator 1710 asynchrone Datentransfers (Block 2026). Beispielsweise kann der Unter-Zeitplangenerator 1710 die Funktionsblöcke 1022a–e (10 und 12) identifizieren, die mit asynchronen Datentransfers verbunden sind, Datenverfügbarkeitszeiten (tDA) für diese Funktionsblöcke auf eine Art und Weise abrufen, die der vorstehend in Verbindung mit Block 2016 beschriebenen Art und Weise ähnlich ist, Startzeit-Offset-Werte (tS) auf eine Art und Weise bestimmen, die der nachstehend in Verbindung mit 21 beschriebenen Art und Weise ähnlich ist, und Datentransferzeiten für diese Funktionsblöcke auf eine Art und Weise zuordnen, die der vorstehend in Verbindung mit Block 2020 beschriebenen Art und Weise ähnlich ist.
  • Der Unter-Zeitplangenerator 1710 stellt sodann fest, ob der Unterzeitplan-Ausführungszeitraum der an Block 2006 ausgewählten Unter-Zeitplanvorlage lang genug ist, um die Startzeit-Offset-Werte (tS) und die Datentransferzeiten (Block 2028), die auf die vorstehend beschriebene Weise bestimmt wurden, zu beinhalten. Wenn der Unter-Zeitplangenerator 1710 feststellt, dass der Unter-Zeitplan-Ausführungszeitraum der an Block 2006 ausgewählten Unter-Zeitplanvorlage nicht lang genug ist, um die Startzeit-Offset-Werte (tS) und die Datentransferzeiten (Block 2028) zu beinhalten, verwirft der Unter-Zeitplangenerator 1710 die Startzeit-Offset-Werte (tS) und die Datentransferzeiten (Block 2030), um den Unter-Zeitplan neu zu erzeugen. Um die an Block 2006 ausgewählte Unter-Zeitplanvorlage mit einem Unter-Zeitplan-Ausführungszeitraum zu versehen, der lang genug ist, um Startzeit-Offset-Werte (tS) und die Datentransferzeiten der für die Unter-Zeitplanvorlage zu erzeugenden Funktionsblöcke zu beinhalten, dehnt der Unter-Zeitplangenerator 1710 den Unter-Zeitplanzeitraum der Unter-Zeitplanvorlage aus (Block 2032). Dies bedeutet, dass der Unter-Zeitplangenerator 1710 Zeit zu dem Unter-Zeitplan-Ausführungszeitraum der Unter-Zeitplanvorlage hinzufügt, um den Unter-Zeitplan-Ausführungszeitraum zu verlängern. Wenn beispielsweise die zum Erzeugen des 2000-ms-Unter-Zeitplans 1216 in 12 verwendete Unter-Zeitplanvorlage keinen Unter-Zeitplan-Ausführungszeitraum aufweist, der lang genug ist, um die Startzeit-Offsets (tS) und die Datentransferzeiten zu beinhalten, die den Funktionsblöcken 1022a–c und 1022e zugeordnet sind, kann der Unter-Zeitplangenerator 1710 500 ms (oder jede andere Menge an Zeit) zu der Unter-Zeitplanvorlage hinzufügen.
  • Nachdem der Unter-Zeitplangenerator 1710 den Unter-Zeitplan-Ausführungszeitraum der ausgewählten Unter-Zeitplanvorlage ausgedehnt hat (Block 2032), kehrt die Steuerung an Block 2008 zurück und an diesem Punkt werden die Operationen der Blöcke 2008, 2010, 2012, 2014, 2016, 2018, 2020, 2022, 2024, 2026 und 2028 auf der Grundlage des ausgedehnten Unter-Zeitplan-Ausführungszeitraums wiederholt. Wenn der Unter-Zeitplangenerator 1710 feststellt, dass der Unter-Zeitplan-Ausführungszeitraum der an Block 2006 ausgewählten Unter-Zeitplanvorlage lang genug ist, um die Startzeit-Offset-Werte (tS) und die Datentransferzeiten (Block 2028) zu beinhalten, stellt der Unter-Zeitplangenerator 1710 fest, ob ein weiterer Unter-Zeitplan zu erzeugen ist (Block 2034). Wenn beispielsweise das beispielhafte Verfahren in 18 verwendet wird, um den Zeitplan 1202 in 12 zu erzeugen, und der Unter-Zeitplangenerator 1710 den Unteer-Zeitplan 1214, nicht jedoch den Unter-Zeitplan 1216, erzeugt hat, stellt der Unter-Zeitplangenerator 1710 fest, dass ein weiterer Unter-Zeitplan (beispielsweise der Unter-Zeitplan 1216) erzeugt werden sollte. Wenn der Unter-Zeitplangenerator 1710 feststellt, dass ein weiterer Unter-Zeitplan (beispielsweise der Unter-Zeitplan 1216) erzeugt werden sollte (Block 2034), wird die Steuerung an Block 2006 (20A) zurückgegeben und an diesem Punkt wählt die Unter-Zeitplan-Basisvorlagenschnittstelle 1712 den nächst kürzeren Unter-Zeitplan-Ausführungszeitraum aus (beispielsweise den 2000-ms-Unter-Zeitplan-Ausführungszeitraum, der dem 2000-ms-Unter-Zeitplan 1216 in 12 entspricht) (Block 2006).
  • Andernfalls fusioniert der Zeitplangenerator 1708 die von dem Unter-Zeitplangenerator 1710 erzeugten Unter-Zeitpläne (Block 2036) (beispielsweise die Unter-Zeitpläne 1214 und 1216 in 12), um einen Zeitplan zu erzeugen (beispielsweise den Zeitplan 1202 in 12). Der Zwangsdatensequenzgenerator 1714 erzeugt sodann eine Zwangsdatensequenz für den Zeitplan (Block 2038). Die Zwangsdatensequenz gewährleistet, dass die Steuerung 106 Zwangsdatenbefehle an die Feldgeräte 1012a–c kommuniziert, um die Feldgeräte 1012a–c zu veranlassen, entsprechend dem erzeugten Zeitplan Daten auf dem digitalen Datenbus 1014 zu veröffentlichen, die ihren jeweiligen einen der Funktionsblöcke 1022a–e entsprechen. Die Steuerung wird sodann an eine aufrufende Funktionen oder einen Prozess (beispielsweise das beispielhafte Verfahren in 18) zurückgegeben und das beispielhafte Verfahren in 20A und 20B wird beendet.
  • In 21 zeigt das dargestellte Flussdiagramm ein beispielhaftes Verfahren, das verwendet werden kann, um den Block 2018 in 20A zu implementieren, um Startzeit-Offset-Werte (tS) für einen Funktionsblock zu bestimmen. In dem dargestellten Beispiel verwendet das beispielhafte Verfahren in 21 die obige Gleichung 4, um die Startzeit-Offset-Werte (tS) zu bestimmen. Zuerst ruft der Startzeit-Offset-Bestimmer 1722 (17) die Anzahl der Startzeit-Offsets (QS) ab, die einem ausgewählten Funktionsblock zugeordnet sind (Block 2102) (beispielsweise einem an Block 2014 in 20A ausgewählten Funktionsblock). Zum Zwecke der Diskussion ist der AI12-Funktionsblock 1022c (10 und 12) der ausgewählte Funktionsblock. Entsprechend beläuft sich die an Block 2102 abgerufene Anzahl der Startzeit-Offsets (QS) auf vier. In dem dargestellten Beispiel wird die Anzahl der Startzeit-Offsets (QS) (beispielsweise vier) an Block 1812 in 18 für den ausgewählten AI12-Funktionsblock 1022c bestimmt. Der Startzeit-Offset-Bestimmen 1722 setzt sodann einen Startzeit-Offset-Zähler auf null zurück (Block 2104). Der Wert des Startzeit-Offset-Zählers wird verwendet, um die Sequenzzahl (NSeq) der obigen Gleichung 4 zur Verfügung zu stellen. Zusätzlich wird der Wert des Startzeit-Offset-Zählers verwendet, um zu bestimmen, wann sämtliche der Startzeit-Offset-Werte (tS) für den ausgewählten Funktionsblock bestimmt wurden.
  • Der Startzeit-Offset-Bestimmer 1722 bestimmt sodann einen ersten Startzeit-Offset-Wert (tS) (Block 2106). Beispielsweise verwendet der Startzeit-Offset-Bestimmer 1722 die obige Gleichung 4, um auf der Grundlage des Wertes des Startzeit-Offset-Zählers (beispielsweise der Sequenzzahl (NSeq) des aktuellen Startzeit-Offsets (Sequenz null, Sequenz eins, Sequenz zwei etc.)), des langsamsten Blockrohausführungszeitraums (TSBE), der dem Feldgerät (beispielsweise dem Feldgerät 1012a) zugeordnet ist, das vorgesehen ist, den AI12-Funktionsblock 1022c auszuführen, und der an Block 2016 für den AI12-Funktionsblock 1022c erhaltenen Datenverfügbarkeitszeit (tDA) den Startzeit-Offset-Wert (tS) des AI12-Funktionsblocks 1022c zu bestimmen, der in 12 als t1 bezeichnet ist.
  • Der Startzeit-Offset-Bestimmer 1722 erhöht sodann den Wert des Startzeit-Offset-Zählers (Block 2108) und stellt fest, ob der Startzeit-Offset-Zähler gleich der an Block 2102 abgerufenen Anzahl der Startzeit-Offsets (QS) ist (Block 2110). Wenn der Startzeit-Offset-Bestimmer 1722 feststellt, dass der Startzeit-Offset-Zähler nicht gleich der Anzahl der Startzeit-Offsets (QS) ist, wird die Steuerung an Block 2106 zurückgegeben und an diesem Punkt bestimmt der Startzeit-Offset-Bestimmer 1722 einen neuen Startzeit-Offset-Wert (tS) (beispielsweise den Startzeit-Offset-Wert (tS) des AI12-Funktionsblocks 1022c, der in 12 als t5 bezeichnet ist.) Andernfalls wird die Steuerung an eine aufrufende Funktionen oder einen Prozess (beispielsweise das beispielhafte Verfahren in 20A und 20B) zurückgegeben und das beispielhafte Verfahren in 21 wird beendet.
  • 22 ist ein beispielhaftes Funktionsausführungs- und Datenübertragungssequenzdiagramm 2200 des Zeitplans 1202 in 12. Das beispielhafte Funktionsausführungs- und Datenübertragungssequenzdiagramm 2200 zeigt die Beziehung zwischen Ausführungen der Funktionsblöcke 1022a–e und der Datentransferzeit, die für die Übertragung von Daten von einem Funktionsblock an einen anderen über den digitalen Datenbus 1014 erforderlich ist. Das beispielhafte Funktionsausführungs- und Datenübertragungssequenzdiagramm zeigt auch, wann Zwangsdatenbefehle von der Steuerung 106 herausgegeben werden, um die Feldgeräte 1012a–c in 12 zu veranlassen, Daten auf dem digitalen Datenbus 1014 zu veröffentlichen. Beispielsweise veranlasst, wie in 22 dargestellt, nach einer AI11-Funktionsblockausführung 2202 ein Zwangsdatenbefehl 2204 das Feldgerät 1012a, einen AI11-Datentransfer 2206 auszuführen, um eine PID12-Ausführung 2208 zu ermöglichen. Andere Funktionsblockausführungen, Zwangsdatenbefehle und entsprechende Datentransfers sind ebenfalls dargestellt. Auch wenn nicht dargestellt, sind, wenn zwei Funktionsblöcke von demselben Feldgerät ausgeführt werden, keine dem digitalen Datenbus 1014 zugeordnete Datentransferzeiten (beispielsweise der AI11-Datentransfer 2206) erforderlich, um Daten zwischen den Funktionsblöcken auszutauschen, da die Datenübertragungen innerhalb desselben Feldgeräts erfolgen.
  • 23 ist ein Blockdiagramm eines beispielhaften Prozessorsystems 2310, das zur Implementierung der hierin beschriebenen beispielhaften Vorrichtungen und Verfahren verwendet werden kann. Wie in 23 dargestellt, weist das Prozessorsystem 2310 einen Prozessor 2312 auf, der mit einem Verbindungsbus 2314 verbunden ist. Der Prozessor 2312 weist einen Registersatz oder Registerraum 2316 auf, der in 23 als komplett auf einem Chip enthalten dargestellt ist, alternativ jedoch auch vollständig oder teilweise außerhalb eines Chips befindlich und über dedizierte elektrische Verbindungen und/oder über den Verbindungsbus 2314 direkt mit dem Prozessor 2312 verbunden sein kann. Bei dem Prozessor 2312 kann es sich um jeden geeigneten Prozessor, jede geeignete Prozessoreinheit oder jeden geeigneten Mikroprozessor handeln. Obwohl in 23 nicht so dargestellt, kann es sich bei dem System 2310 um ein Multi-Prozessor-System handeln, das mithin einen oder mehrere zusätzliche Prozessoren aufweisen kann, die mit dem Prozessor 2312 identisch bzw. diesem ähnlich sind und die mit dem Verbindungsbus 2314 kommunikativ verbunden sind.
  • Der Prozessor 2312 in 23 ist mit einem Chipsatz 2318 verbunden, der einen Speichercontroller 2320 und einen Peripherie-Eingabe-/Ausgabe-(E/A-)Controller 2322 aufweist. Wie allgemein bekannt ist, bietet ein Chipsatz in der Regel E/A- und Speicher-Managementfunktionen sowie eine Mehrzahl von Registern und Zeitgebern etc. für allgemeine und/oder spezielle Zwecke, auf die einer oder mehrere der mit dem Chipsatz 2318 verbundenen Prozessoren zugreifen bzw. die von diesen Prozessoren genutzt werden. Der Speicher-Controller 2320 führt Funktionen aus, die den Prozessor 2312 (bzw. mehrere Prozessoren im Falle von Multi-Prozessor-Systemen) in die Lage versetzen, auf einen Systemspeicher 2324 und einen Massenspeicher 2325 zuzugreifen.
  • Der Systemspeicher 2324 kann jeden gewünschten Typ von flüchtigen und/oder nicht-flüchtigen Speichern wie beispielsweise statische Direktzugriffsspeicher (SRAM), dynamische Direktzugriffsspeicher (DRAM), Flash Memory, Nur-Lese-Speicher (ROM) etc. beinhalten. Der Massenspeicher 2325 kann jeden gewünschten Typ von Massenspeichergerät einschließlich Festplattenlaufwerke, optischer Laufwerke, Bandspeicherlaufwerke etc. beinhalten.
  • Der Peripherie-E/A-Controller 2322 führt Funktionen aus, die den Prozessor 2312 in die Lage versetzen, mit den peripheren Eingabe-/Ausgabe-(E/A-)Geräten 2326 und 2328 und einer Netzwerkschnittstelle 2330 über einen Peripherie-E/A-Bus 2332 zu kommunizieren. Bei den E/A-Geräten 2326 und 2328 kann es sich um jeden gewünschten Typ von E/A-Gerät wie beispielsweise eine Tastatur, einen Bildschirm oder Monitor, eine Maus etc. handeln. Bei der Netzwerkschnittstelle 2330 kann es sich beispielsweise um ein Ethernet-Gerät, ein im Asynchronous Transfer Mode (ATM) arbeitendes Gerät, ein 802.11-Gerät, ein DSL-Modem, ein Kabelmodem, ein Mobiltelefonmodem etc. handeln, das das Prozessorsystem 2310 in die Lage versetzt, mit einem anderen Prozessorsystem zu kommunizieren.
  • Der Speicher-Controller 2320 und der E/A-Controller 2322 sind in 23 zwar als separate Funktionsblöcke innerhalb des Chipsatzes 2318 dargestellt, jedoch können die von diesen Blöcken ausgeführten Funktionen in einen einzigen Halbleiterschaltkreis integriert oder mittels zweier oder mehrerer separater integrierter Schaltkreise realisiert werden.
  • Hierin werden zwar bestimmte Verfahren, Vorrichtungen und Produkte beschrieben, jedoch ist der Umfang dieses Patents nicht darauf beschränkt. Dieses Patent umfasst im Gegenteil sämtliche Verfahren, Vorrichtungen und Produkte, die entweder dem Wortlaut nach oder im Wege der Äquivalenz in den Definitionsbereich der beigefügten Ansprüche fallen.

Claims (20)

  1. Vorrichtung zum Erzeugen eines Zeitplans zur Ausführung von Funktionen in einem Prozesssteuerungssystem, wobei die Vorrichtung aufweist: eine erste Schnittstelle, konfiguriert, eine einer Prozesssteuerungsroutine zugeordnete erste Funktion zu identifizieren; einen Unter-Zeitplangenerator, konfiguriert, einen einem ersten Zeitraum zugeordneten Unter-Zeitplan zu erzeugen, wobei der erste Unter-Zeitplan eine erste Ausführungszeit angibt, zu der die erste Funktion auszuführen ist, und einen Zeitplangenerator, konfiguriert, einen einem zweiten Zeitraum zugeordneten Zeitplan auf der Grundlage von zwei Instanzen des ersten Unter-Zeitplans zu erzeugen, wobei der Zeitplan die erste Ausführungszeit und eine zweite Ausführungszeit, zu der die erste Funktion auszuführen ist, angibt.
  2. Vorrichtung, wie in Anspruch 1 definiert, wobei der Unter-Zeitplangenerator konfiguriert ist, einen zweiten Unter-Zeitplan zu erzeugen, der einen dritten Zeitraum aufweist, der länger als der erste Zeitraum und kürzer als oder gleichlang wie der zweite Zeitraum ist, wobei der zweite Unter-Zeitplan eine dritte Ausführungszeit angibt, zu der die zweite Funktion auszuführen ist.
  3. Vorrichtung, wie in Anspruch 2 definiert, wobei der Zeitplangenerator weiterhin konfiguriert ist, den Zeitplan auf einer Instanz des zweiten Unter-Zeitplans zu erzeugen, wobei der Zeitplan angibt, dass die erste Funktion während des Zeitplans zwei Mal während des Zeitplans und die zweite Funktion ein Mal während des Zeitplans auszuführen ist.
  4. Vorrichtung, wie in Anspruch 2 definiert, wobei die erste Funktion einer ersten Prozessschleife und die zweite Funktion einer zweiten Prozessschleife zugeordnet ist und wobei die erste Prozessschleife konfiguriert ist, unter Verwendung eines kürzeren Schleifenausführungszeitraums als einem Schleifenausführungszeitraum der zweiten Prozessschleife ausgeführt zu werden.
  5. Vorrichtung, wie in Anspruch 2 definiert, wobei die erste Funktion konfiguriert ist, von einem ersten Feldgerät ausgeführt zu werden, und wobei die zweite Funktion konfiguriert ist, von einem zweiten Feldgerät ausgeführt zu werden, und wobei das erste und zweite Feldgerät kommunikativ mit demselben Kommunikationsbus gekoppelt sind.
  6. Vorrichtung, wie in Anspruch 1 definiert, wobei die erste Funktion von einer Prozesssteuerung auszuführen ist.
  7. Vorrichtung, wie in Anspruch 1 definiert, weiterhin aufweisend einen Startzeit-Offset-Bestimmer, konfiguriert, eine Anzahl von der ersten Funktion zugeordneten Startzeit-Offsets zu bestimmen, eine Anzahl von Malen angebend, die die erste Funktion während des ersten Unter-Zeitplans auszuführen ist.
  8. Vorrichtung, wie in Anspruch 7 definiert, wobei der Startzeit-Offset-Bestimmer die Anzahl von Startzeit-Offsets auf der Grundlage eines langsamsten Funktionsblockausführungszeitraums bestimmt, der einem Feldgerät zugeordnet ist, das konfiguriert ist, die erste Funktion und einen Funktionsblockausführungszeitraum der ersten Funktion auszuführen.
  9. Maschinenzugreifbares Medium mit darin gespeicherten Anweisungen, die, wenn sie ausgeführt werden, eine Maschine veranlassen, eine erste Anzahl von Startzeit-Offsets zu erzeugen, die eine Anzahl von Ausführungen einer ersten Funktion während eines einem ersten Zeitraum zugeordneten ersten Unter-Zeitplan angeben; eine zweite Anzahl von Startzeit-Offsets zu erzeugen, die eine Anzahl von Ausführungen einer zweiten Funktion während des ersten Unter-Zeitplans angeben, wobei die erste Anzahl von Startzeit-Offsets von der zweiten Anzahl von Startzeit-Offsets verschieden ist, und einen einem zweiten Zeitraum zugeordneten Zeitplan auf der Grundlage zweier Instanzen des ersten Unter-Zeitplans zu erzeugen.
  10. Maschinenzugreifbares Medium, wie in Anspruch 9 definiert, darauf gespeicherte Anweisungen aufweisend, die, wenn sie ausgeführt werden, die Maschine veranlassen, die erste Anzahl von Startzeit-Offsets auf der Grundlage eines langsamsten Funktionsblockausführungszeitraums zu erzeugen, der einem Feldgerät zugeordnet ist, das konfiguriert ist, die erste Funktion und einen Funktionsblockausführungszeitraum der ersten Funktion auszuführen.
  11. Maschinenzugreifbares Medium, wie in Anspruch 10 definiert, darauf gespeicherte Anweisungen aufweisend, die, wenn sie ausgeführt werden, die Maschine veranlassen, den dem Feldgerät zugeordneten langsamsten Funktionsblockausführungszeitraum zu bestimmen, indem der Funktionsblockausführungszeitraum der ersten Funktion mit einem zweiten Funktionsblockausführungszeitraum der zweiten Funktion verglichen wird, wobei die erste und zweite Funktion von dem Feldgerät auszuführen sind.
  12. Maschinenzugreifbares Medium, wie in Anspruch 9 definiert, darauf gespeicherte Anweisungen aufweisend, die, wenn sie ausgeführt werden, die Maschine veranlassen, eine eine Mehrzahl von Ausführungszeiten angebende Mehrzahl von Startzeit-Offset-Werten zu bestimmen, zu denen die erste Funktion während des ersten Unter-Zeitplans auszuführen ist.
  13. Maschinenzugreifbares Medium, wie in Anspruch 12 definiert, darauf gespeicherte Anweisungen aufweisend, die, wenn sie ausgeführt werden, die Maschine veranlassen, die Mehrzahl von Startzeit-Offset-Werten auf der Grundlage eines Funktionsblockausführungszeitraums der ersten Funktion und einer Anzahl von Startzeit-Offsets zu bestimmen, die die Anzahl von Malen angibt, die die erste Funktion während des ersten Unter-Zeitplans auszuführen ist.
  14. Verfahren zum Erzeugen eines Zeitplans zur Ausführung von Funktionen in einem Prozesssteuerungssystem, wobei das Verfahren aufweist: Erzeugen einer ersten Anzahl von Startzeit-Offsets, die eine Anzahl von Ausführungen einer ersten Funktion während eines einem ersten Zeitraum zugeordneten ersten Unter-Zeitplan angeben; Erzeugen einer zweiten Anzahl von Startzeit-Offsets, die eine Anzahl von Ausführungen einer zweiten Funktion während des ersten Unter-Zeitplans angeben, wobei die erste Anzahl von Startzeit-Offsets von der zweiten Anzahl von Startzeit-Offsets verschieden ist, und Erzeugen eines einem zweiten Zeitraum zugeordneten Zeitplans auf der Grundlage zweier Instanzen des ersten Unter-Zeitplans.
  15. Verfahren, wie in Anspruch 14 definiert, wobei die erste Funktion einer ersten Prozessschleife und die zweite Funktion einer zweiten Prozessschleife zugeordnet ist und wobei die erste Prozessschleife konfiguriert ist, unter Verwendung eines kürzeren Schleifenausführungszeitraums als einem Schleifenausführungszeitraum der zweiten Prozessschleife ausgeführt zu werden.
  16. Verfahren, wie in Anspruch 14 definiert, wobei das Erzeugen der ersten Anzahl von Startzeit-Offsets das Erzeugen der ersten Anzahl von Startzeit-Offsets auf der Grundlage eines langsamsten Funktionsblockausführungszeitraums beinhaltet, der einem Feldgerät zugeordnet ist, das konfiguriert ist, die erste Funktion und einen Funktionsblockausführungszeitraum der ersten Funktion auszuführen.
  17. Verfahren, wie in Anspruch 15 definiert, wobei die Bestimmung des dem Feldgerät zugeordneten langsamsten Funktionsblockausführungszeitraums den Vergleich des Funktionsblockausführungszeitraums der ersten Funktion mit einem zweiten Funktionsblockausführungszeitraum der zweiten Funktion beinhaltet, wobei die erste und zweite Funktion von dem Feldgerät auszuführen sind.
  18. Verfahren, wie in Anspruch 14 definiert, weiterhin aufweisend die Bestimmung einer Mehrzahl von Startzeit-Offset-Werten, die eine Mehrzahl von Ausführungszeiten angeben, zu denen die erste Funktion während des ersten Unter-Zeitplans auszuführen ist.
  19. Verfahren, wie in Anspruch 18 definiert, wobei die Bestimmung der Mehrzahl von Startzeit-Offset-Werten eine Bestimmung der Mehrzahl von Startzeit-Offset-Werten auf der Grundlage eines Funktionsblockausführungszeitraums der ersten Funktion und einer Anzahl von Startzeit-Offset-Werten beinhaltet, die die Anzahl von Malen angibt, die die erste Funktion während des ersten Unter-Zeitplans auszuführen ist.
  20. Verfahren, wie in Anspruch 14 definiert, weiterhin aufweisend die Erzeugung des Zeitplans auf der Grundlage mindestens einer Instanz eines zweiten Unter-Zeitplans, wobei der Zeitplan angibt, dass eine dritte Funktion ein Mal während des Zeitplans auszuführen ist und dass die erste und zweite Funktion eine Mehrzahl von Malen während des Zeitplans auszuführen sind.
DE102007046570A 2006-09-29 2007-09-28 Verfahren und Vorrichtung zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem Withdrawn DE102007046570A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/537,303 2006-09-29
US11/537,303 US7761171B2 (en) 2006-09-29 2006-09-29 Methods and apparatus to generate schedules to execute functions in a process control system

Publications (1)

Publication Number Publication Date
DE102007046570A1 true DE102007046570A1 (de) 2008-04-30

Family

ID=38738962

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007046570A Withdrawn DE102007046570A1 (de) 2006-09-29 2007-09-28 Verfahren und Vorrichtung zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem

Country Status (6)

Country Link
US (1) US7761171B2 (de)
JP (1) JP5196935B2 (de)
CN (2) CN101231520B (de)
DE (1) DE102007046570A1 (de)
GB (1) GB2442356B (de)
HK (1) HK1122878A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8005553B2 (en) * 2006-09-29 2011-08-23 Fisher-Rosemount Systems, Inc. Automatic configuration of synchronous block execution for control modules run in fieldbus networks
US7761171B2 (en) 2006-09-29 2010-07-20 Fisher-Rosemount Systems, Inc. Methods and apparatus to generate schedules to execute functions in a process control system
US8126860B2 (en) * 2007-07-17 2012-02-28 Ricoh Company, Limited Method and apparatus for processing data
CN101920711A (zh) * 2009-06-17 2010-12-22 上海宝信软件股份有限公司 在轨道交通监控系统中通过时间表进行设备控制的方法
US8229578B2 (en) * 2009-09-21 2012-07-24 Fisher-Rosemount Systems, Inc. Methods and apparatus to manage module run sequences in a process control environment
JP5602643B2 (ja) * 2011-01-06 2014-10-08 アズビル株式会社 スケジュール作成装置、スケジュール作成方法、及びスケジュール作成プログラム
US8977372B2 (en) * 2011-05-12 2015-03-10 General Electric Company System and method for cycle time visualization
JP2016224541A (ja) * 2015-05-27 2016-12-28 アズビル株式会社 プロセス制御コントローラ、プロセス制御システム、およびソフトウェアプログラム
SG10201505489QA (en) 2015-07-14 2016-07-28 Yokogawa Engineering Asia Pte Ltd Systems and methods for optimizing control systems for a process environment
WO2019132052A1 (ko) * 2017-12-26 2019-07-04 엘지전자 주식회사 동작 상황에 기반하여 유관 장치를 제어하는 장치, 이를 제어하는 스케줄 봇 및 서버
US10981640B2 (en) * 2018-07-16 2021-04-20 The Boeing Company Method and system for verification of tow end placement
US11703835B2 (en) * 2021-02-09 2023-07-18 Yokogawa Electric Corporation Methods, systems and data structures for optimizing parameter data retrieval from devices in a control system

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02208703A (ja) * 1989-02-08 1990-08-20 Yaskawa Electric Mfg Co Ltd 複数演算周期を有するシーケンスコントローラのデータ転送方法
JPH05250377A (ja) * 1992-03-04 1993-09-28 Fujitsu Ltd スケジューリング方式
JPH09219715A (ja) * 1996-02-09 1997-08-19 Omron Corp 通信システム
US20040194101A1 (en) * 1997-08-21 2004-09-30 Glanzer David A. Flexible function blocks
JP3412667B2 (ja) * 1996-12-17 2003-06-03 横河電機株式会社 フィールドバスシステムのスケジューリング方法
US6662061B1 (en) * 1997-02-07 2003-12-09 Peter G. Brown System and method for simulation and modeling of batch process manufacturing facilities using process time lines
US6983229B2 (en) * 1997-06-20 2006-01-03 Brown Peter G Method for scheduling solution preparation in biopharmaceutical batch process manufacturing
US5971581A (en) * 1997-09-17 1999-10-26 National Instruments Corp. Fieldbus network configuration utility with improved scheduling and looping
US6076952A (en) * 1997-09-17 2000-06-20 National Instruments, Corp. Fieldbus network configuration utility with improved parameter control
US6088665A (en) * 1997-11-03 2000-07-11 Fisher Controls International, Inc. Schematic generator for use in a process control network having distributed control functions
JPH11259107A (ja) * 1998-03-10 1999-09-24 Omron Corp 制御装置
US6285966B1 (en) * 1998-06-25 2001-09-04 Fisher Controls International, Inc. Function block apparatus for viewing data in a process control system
US20040208158A1 (en) * 1998-08-19 2004-10-21 Fellman Ronald D. Methods and apparatus for providing quality-of-service guarantees in computer networks
JP3770366B2 (ja) * 1999-04-09 2006-04-26 オムロン株式会社 制御プログラムの開発環境装置、制御プログラムを実行する制御装置、並びに、それらを実現するプログラムの記録媒体
US6915364B1 (en) * 1999-07-02 2005-07-05 Fisher Rosemount Systems, Inc. Automatically downloaded link active schedule
US6618745B2 (en) 1999-09-10 2003-09-09 Fisher Rosemount Systems, Inc. Linking device in a process control system that allows the formation of a control loop having function blocks in a controller and in field devices
JP2001257717A (ja) * 2000-03-10 2001-09-21 Mitsubishi Electric Corp ネットワークスケジューリング装置
US6418350B1 (en) 2000-06-09 2002-07-09 Brooks Automation Inc. Periodic scheduler for dual-arm robots in cluster tools with process-module residency constraints
WO2002015564A1 (en) * 2000-08-16 2002-02-21 Koninklijke Philips Electronics N.V. Method of playing multimedia applications
JP4602535B2 (ja) * 2000-11-17 2010-12-22 富士通株式会社 スケジュール実行管理装置および管理方法
US7370239B2 (en) * 2001-05-31 2008-05-06 Fisher-Rosemount Systems, Inc. Input/output device with configuration, fault isolation and redundant fault assist functionality
US20040260584A1 (en) * 2001-11-07 2004-12-23 Takafumi Terasawa Schedule data distribution evaluating method
DE10161307A1 (de) * 2001-12-13 2003-07-03 Infineon Technologies Ag Verfahren und Vorrichtung zum Analysieren eines wiederholt auftretenden Prozesses und Verfahren und Vorrichtung zum Evaluieren einer Mehrzahl von Prozeßvorrichtungen gleichen Typs sowie Verfahren und Vorrichtung zum Verbessern der Leistungsfähigkeit einer Prozeßvorrichtung
JP2004005461A (ja) * 2002-04-02 2004-01-08 Hitachi Ltd ローテーション計画方法およびローテーション計画装置
US7048141B2 (en) * 2002-05-14 2006-05-23 Antioch Holdings, Inc. Personal medication dispenser
WO2004092852A2 (en) * 2003-04-09 2004-10-28 Brown Peter G The use of sub (partial) cycles, nested cluster cycles, and lot cycles for determining equipment capacities in a batch manufacturing facility
DE10325277A1 (de) * 2003-06-03 2005-01-13 Endress + Hauser Flowtec Ag, Reinach Variables Feldgerät für die Prozessautomatisierungstechnik
US8397205B2 (en) * 2003-08-07 2013-03-12 National Instruments Corporation Graphically representing timing in a graphical program
US7730415B2 (en) 2003-09-05 2010-06-01 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
US7921026B2 (en) * 2005-03-01 2011-04-05 Microsoft Corporation Method and system for generating a timeline associated with a project schedule
US8160750B2 (en) * 2005-06-17 2012-04-17 Rain Bird Corporation Programmable irrigation controller having user interface
US8005553B2 (en) 2006-09-29 2011-08-23 Fisher-Rosemount Systems, Inc. Automatic configuration of synchronous block execution for control modules run in fieldbus networks
US7761171B2 (en) 2006-09-29 2010-07-20 Fisher-Rosemount Systems, Inc. Methods and apparatus to generate schedules to execute functions in a process control system

Also Published As

Publication number Publication date
GB0719098D0 (en) 2007-11-14
HK1122878A1 (en) 2009-05-29
CN103176453B (zh) 2015-09-02
JP2008090841A (ja) 2008-04-17
GB2442356A (en) 2008-04-02
CN103176453A (zh) 2013-06-26
CN101231520A (zh) 2008-07-30
GB2442356B (en) 2011-09-07
JP5196935B2 (ja) 2013-05-15
US20080082193A1 (en) 2008-04-03
US7761171B2 (en) 2010-07-20
CN101231520B (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
DE102007046570A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem
EP0847165B1 (de) Digitales Datenübertragungsnetz und Verfahren zum Betreiben des Datenübertragungsnetzes
EP1182528B1 (de) Industrielle Steuerung auf der Basis verteilbarer Technologischer Objekte
DE60314347T2 (de) Betriebsmittelverwaltungsgerät
DE112010005955T5 (de) Steuerungssystem das während des Betriebs rekonfigurierbar ist, und Verfahren dafür
EP2109259A1 (de) Verfahren, Buskomponenten und Steuerungssystem zur Ethernet-basierten Steuerung eines Automatisierungssystems
DE102007046572A1 (de) Flexible Eingabe-/Ausgabegeräte zur Verwendung in Prozesssteuerungssystemen
EP1723750B1 (de) Verfahren zur Datenkommunikation
EP1997005A1 (de) Verfahren zur erstellung eines optimierten ablaufplans für ein zeitgesteuertes verteiltes rechnersystem
DE102004009598A1 (de) Hochschneller selbstabstimmender Regelkreis
DE102013011850B4 (de) Numerische Steuerung für die Kommunikation mit E/A Einheiten
DE102015007837A1 (de) Numerische Steuerung mit Mehrkernprozessor
EP1604278B1 (de) Verfahren zur ablaufsteuerung von sequentiellen objektorientierten systemsimulationen
EP3130970A1 (de) Verfahren zum verbinden einer eingabe/ausgabe-schnittstelle eines für die steuergerätentwicklung eingerichteten testgeräts
DE112015006067T5 (de) Intelligentes Funktionsmodul und speicherprogrammierbares Steuerungssystem
WO2008003427A2 (de) Verfahren zur prüfung der echtzeitfähigkeit eines systems
WO2013135807A1 (de) Steuerungsvorrichtung zum steuern von sicherheitskritischen prozessen in einer automatisierten anlage und verfahren zur parameterierung der steuerungsvorrichtung
EP3682302B1 (de) Verfahren zur inbetriebnahme eines steuergerätesystems und steuergerätesystem
DE102018110018A1 (de) Verfahren zum Bereitstellen eines integrierten Prozesses für die Steuergerätentwicklung und Simulationsvorrichtung für die Steuergerätentwicklung
EP1821165B1 (de) Nutzung von Variablen in mehreren Automatisierungssystemen
DE102018000205A1 (de) Numerische Steuerung
EP1624614A1 (de) Automatische Planung von Netzwerkkonfigurationen
DE112019004142T5 (de) Numerische Steuerungsvorrichtung
DE69724270T2 (de) Verfahren und vorrichtung zur feststellung der anzahl von zugeteilten zugriffen während der latenz des schlechtesten falles
DE10055168A1 (de) Industrielle Steuerung auf der Basis verteilbarer Technologischer Objekte

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20120104

R120 Application withdrawn or ip right abandoned