FB_MTP_Procedure

FB_MTP_Procedure 1:

Der Funktionsbaustein FB_MTP_Procedure enthält alle Attribute und Methoden zum Beschreiben einer Prozedur. Eine Prozedur ist eine Ausführungsvariante eines Dienstes und kann daher nur einem Dienst zugewiesen werden. Alle Prozeduren erhalten eine im Dienst einmalige ProcedureID. Diese müssen Sie durch eine natürliche Zahl beschreiben, wobei die Zahl 0 nicht verwendet werden darf! Über die Variable IsSelfCompleting wird angegeben, ob die prozesstechnische(n) Funktion(en) der Prozedur sich selbst beendet/beenden (z. B. nach Ablauf einer Zeit).

Die Ausgänge IsSelfCompleting und ProcedureID werden bei der Instanziierung dieses Funktionsbausteins initialisiert.

CommandInfo ist nach E_MTP_CommandEn codiert und wird für jede Prozedur, die sich im Zustand Automatic oder Operator befindet, separat und unabhängig vom Zustand des Dienstes aktualisiert. Sie gibt an, welche Steuerbefehle aktuell freigegeben sind.

Die Variable CommandAdapt ist nach E_MTP_CommandEn codiert. Mit ihr kann die Freigabe von Steuerbefehlen in CommandInfo zusätzlich eingeschränkt werden.

FB_MTP_Procedure 2:

Die Variable CommandAdapt ist kein Bestandteil der MTP-Richtlinie. Sie wurde zusätzlich implementiert. Diese Variable wird nicht in der MTP-Datei aufgeführt und nicht über OPC-UA zu Verfügung gestellt.

FB_MTP_Procedure 3:

Bei dem FB_MTP_Procedure handelt es sich um einen abstrakten Funktionsbaustein. Dieser kann nicht instanziiert, sondern muss abgeleitet werden (siehe Abschnitt Syntax)!

FB_MTP_Procedure 4:

Für die Verwendung von Prozeduren wird die Verwendung des MTP-Engineering und die darin enthaltene automatische Codegenerierung empfohlen!

Benötigte Parameter und Betriebsmittel

Der Funktionsbaustein bekommt die zur Ausführung benötigten Prozessparameter ProcParameters als Array[*] OF POINTER TO FB_MTP_ParameterElement übergeben. Die benötigten Betriebsmittel RequiredEquipment werden als Array[*] OF POINTER TO I_MTP_ReqEq übergeben.

FB_MTP_Procedure 5:

Sollten keine ProcParameter bzw. kein RequiredEquipment benötigt werden, müssen Sie ein leeres Array übergeben!

Dienste-Zustandsautomat

Die Zustände des Dienstzustandsautomaten werden in den gleichnamigen Methoden dieses Funktionsblocks ausgeführt. Der Aufruf der Methoden erfolgt durch den Dienstzustandsautomat.

Aufruf der Prozedur

Die Prozeduren können vom übergeordneten Dienst aufgerufen werden. Im Funktionsblock FB_MTP_ServiceControl ist ein möglicher Aufruf beschrieben.

Weitere Eigenschaften

WQC

Syntax

FUNCTION_BLOCK FB_MTP_Procedure_1_Service EXTENDS FB_MTP_Procedure

FB_MTP_Procedure 6: Eingänge

Name

Typ

Beschreibung

OPC-UA-Zugriff

TagName

STRING

Name der Schnittstelle

-

TagDescription

STRING

Beschreibung der Schnittstelle

-

WQC

BYTE

Worst Quality Code

Lesen

CommandInfo

DWORD

Aktuell freigegebene Steuerbefehle

Lesen

ProcParameters

ARRAY [*] OF POINTER TO POINTER TO FB_MTP_ParameterElement

Benötigte Prozedurparameter

-

RequiredEquipment

ARRAY [*] OF POINTER TO I_MTP_ReqEq

Benötigte Betriebsmittel

-

CommandAdapt

DWORD

Variable zum Sperren von Zustandsübergängen

-

FB_MTP_Procedure 7: Ausgänge

Name

Typ

Beschreibung

OPC-UA-Zugriff

IsSeIfCompIeting

BOOL

1: Prozedur ist selbstbeendend.

0: Prozedur wird über den Steuerbefehl beendet.

Lesen

ProcedureID

DWORD

Eindeutige Identifikation der Prozedur innerhalb des Dienstes

Lesen

FB_MTP_Procedure 8: Methoden

Name

Typ

Beschreibung

Aborted

BOOL

Implementierung der Logik für den Zustand Aborted des Dienste-Zustandsautomaten.

Aborting

BOOL

Implementierung der Logik für den Zustand Aborting des Dienste-Zustandsautomaten.

Completed

BOOL

Implementierung der Logik für den Zustand Completed des Dienste-Zustandsautomaten.

Completing

BOOL

Implementierung der Logik für den Zustand Completing des Dienste-Zustandsautomaten.

Execute

BOOL

Implementierung der Logik für den Zustand Execute des Dienste-Zustandsautomaten.

Held

BOOL

Implementierung der Logik für den Zustand Held des Dienste-Zustandsautomaten.

Holding

BOOL

Implementierung der Logik für den Zustand Holding des Dienste-Zustandsautomaten.

Paused

BOOL

Implementierung der Logik für den Zustand Paused des Dienste-Zustandsautomaten.

Pausing

BOOL

Implementierung der Logik für den Zustand Pausing des Dienste-Zustandsautomaten

Resetting

BOOL

Implementierung der Logik für den Zustand Resetting des Dienste-Zustandsautomaten.

Resuming

BOOL

Implementierung der Logik für den Zustand Resuming des Dienste-Zustandsautomaten.

Starting

BOOL

Implementierung der Logik für den Zustand Starting des Dienste-Zustandsautomaten.

Stopping

BOOL

Implementierung der Logik für den Zustand Stopping des Dienste-Zustandsautomaten.

Stopped

BOOL

Implementierung der Logik für den Zustand Stopped des Dienste-Zustandsautomaten.

Unholding

BOOL

Implementierung der Logik für den Zustand Unholding des Dienste-Zustandsautomaten.

IsActuatorsInternal

BOOL

1: Alle der Prozedur zugeordneten Aktoren befinden sich im Zustand Internal.

IsActuatorsManual

BOOL

1: Alle der Prozedur zugeordneten Aktoren befinden sich im Zustand Manual.

IsActuatorsOffline

BOOL

1: Alle der Prozedur zugeordneten Aktoren befinden sich im Zustand Offline.

IsActuatorsOperator

BOOL

1: Alle der Prozedur zugeordneten Aktoren befinden sich im Zustand Operator.

IsActuatorsAutomatic

BOOL

1: Alle der Prozedur zugeordneten Aktoren befinden sich im Zustand Automatic.

IsReqEqInternal

BOOL

1: Alle der Prozedur zugeordneten Aktoren und PID-Logik befinden sich im Zustand Internal

IsReqEqManual

BOOL

1: Alle der Prozedur zugeordneten Aktoren und PID-Logik befinden sich im Zustand Manual

IsReqEqOffline

BOOL

1: Alle der Prozedur zugeordneten Aktoren und PID-Logik befinden sich im Zustand Offline

IsReqEqOperator

BOOL

1: Alle der Prozedur zugeordneten Aktoren und PID-Logik befinden sich im Zustand Operator

IsReqEqAutomatic

BOOL

1: Alle der Prozedur zugeordneten Aktoren und PID-Logik befinden sich im Zustand Automatic

SetActuatorsInternal

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Internal überführt.

SetActuatorsManual

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Manual überführt.

SetActuatorsOffline

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Offline überführt.

SetActuatorsOperator

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Operator überführt.

SetActuatorsAutomatic

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Automatic überführt.

SetReqEqInternal

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Internal überführt.

SetReqEqManual

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Manual überführt.

SetReqEqOffline

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Offline überführt.

SetReqEqOperator

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Operator überführt.

SetReqEqAutomatic

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Automatic überführt.