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, wobeiSie die Zahl 0 nicht verwenden dürfen.

Die boolesche Variable IsSelfCompleting gibt an, ob die prozesstechnische(n) Funktion(en) einer Prozedur sich selbständig beenden können (z. B. durch Ablauf einer Zeit, Erreichen eines Zustands o. ä.).

Ist IsSelfCompleting = TRUE, verlässt die interne Logik den Zustand Execute automatisch, sobald die interne Abschlussbedingung erfüllt ist. Zusätzlich kann Execute jederzeit durch die Befehle Stop oder Abort verlassen werden.

Ist IsSelfCompleting = FALSE, erfolgt das Verlassen des Zustands Execute ausschließlich durch externe Steuerbefehle (z. B. Complete oder Stop).

CommandInfo ist nach E_MTP_CommandEn codiert und gibt an, welche Steuerbefehle aktuell freigegeben sind.

Die Variable CommandAdapt ist nach E_MTP_CommandEn codiert. Mit ihr können Sie die Freigabe von Steuerbefehlen in CommandInfo zusätzlich einschränken.

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 empfehlen wir die Verwendung des TwinCAT 3 MTP-Engineering und die darin enthaltene automatische Codegenerierung.

Benötigte Parameter und Betriebsmittel

Der Funktionsbaustein bekommt die zur Ausführung benötigten Prozessparameter ProcParameters als Array[0..(cProcParameters-1)] OF I_MTP_ParameterElement übergeben. Die benötigten Betriebsmittel RequiredEquipment werden als Array[0..(cRequiredEquipment)] OF I_MTP_DataAssembly ü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.

FB_MTP_Procedure 6:

Die Methoden beinhalten teilweise vordefinierte Logik (siehe Beschreibung der Methoden). Diese können Sie durch ein erneutes Erstellen der Methode überschreiben.

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

// ************************************************************************
// * This file was automatically generated by TwinCAT 3 MTP Engineering.  *
// *                                                                      *
// * INFO: Implement service states in methods. Variables related to      *
// * this procedure should be added here. This function block can extend  *
// * existing procedure function blocks.                                  *
// *                                                                      *
// * Generated on: 12.34.5678 01:23:45                                    *
// * TwinCAT 3 MTP Engineering Version: 1.1.0.0                           *
// ************************************************************************
FUNCTION_BLOCK FB_MTP_Volume_Filling
VAR_GENERIC CONSTANT
   cProcParameter_Volume_Filling     : UINT := 1;
   cRequiredEquipment_Volume_Filling : UINT := 1;
END_VAR
EXTENDS FB_MTP_Procedure<cProcParameter_Volume_Filling, cRequiredEquipment_Volume_Filling>

FB_MTP_Procedure 7: 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 [0..(cProcparameters-1)] OF I_MTP_INTERNAL_ParameterElement

Benötigte Prozedurparameter

-

RequiredEquipment

ARRAY [0..(cRequiredEquipment-1)] OF I_MTP_DataAssembly

Benötigte Betriebsmittel

-

IsSeIfCompIeting

BOOL

1: Prozedur ist selbstbeendend.

0: Prozedur wird über den Steuerbefehl beendet.

Lesen

ProcedureID

DWORD

Eindeutige Identifikation der Prozedur innerhalb des Dienstes.

Lesen

CommandAdapt

DWORD

Variable zum Sperren von Zustandsübergängen.

-

FB_MTP_Procedure 8: Methoden

Name

Typ

Beschreibung

Aborted

BOOL

Implementierung der Logik für den Zustand Aborted des Dienste-Zustandsautomaten. Standardmäßig ist keine Logik vordefiniert und es wird kein Wert zurückgeliefert.

Aborting

BOOL

Implementierung der Logik für den Zustand Aborting des Dienste-Zustandsautomaten. Die Logik dieser Methode ruft die Methode Stopping auf und liefert das Ergebnis der Methode Stopping zurück.

Completed

BOOL

Implementierung der Logik für den Zustand Completed des Dienste-Zustandsautomaten. Standardmäßig ist keine Logik vordefiniert und es wird kein Wert zurückgeliefert.

Completing

BOOL

Implementierung der Logik für den Zustand Completing des Dienste-Zustandsautomaten. Standardmäßig liefert diese Methode den Wert True zurück.

Execute

BOOL

Implementierung der Logik für den Zustand Execute des Dienste-Zustandsautomaten. Standardmäßig ist keine Logik vordefiniert und es wird kein Wert zurückgeliefert.

Held

BOOL

Implementierung der Logik für den Zustand Held des Dienste-Zustandsautomaten. Standardmäßig ist keine Logik vordefiniert und es wird kein Wert zurückgeliefert.

Holding

BOOL

Implementierung der Logik für den Zustand Holding des Dienste-Zustandsautomaten. Die Logik dieser Methode ruft die Methode Pausing auf und liefert das Ergebnis der Methode Pausing zurück.

Paused

BOOL

Implementierung der Logik für den Zustand Paused des Dienste-Zustandsautomaten. Standardmäßig ist keine Logik vordefiniert und es wird kein Wert zurückgeliefert

Pausing

BOOL

Implementierung der Logik für den Zustand Pausing des Dienste-Zustandsautomaten. Die Logik dieser Methode ruft die Methode Completing auf und liefert das Ergebnis der Methode Completing zurück.

Resetting

BOOL

Implementierung der Logik für den Zustand Resetting des Dienste-Zustandsautomaten. Standardmäßig liefert diese Methode den Wert True zurück.

Resuming

BOOL

Implementierung der Logik für den Zustand Resuming des Dienste-Zustandsautomaten. Die Logik dieser Methode ruft die Methode Starting auf und liefert das Ergebnis der Methode Starting zurück.

Starting

BOOL

Implementierung der Logik für den Zustand Starting des Dienste-Zustandsautomaten. Standardmäßig liefert diese Methode den Wert True zurück.

Stopping

BOOL

Implementierung der Logik für den Zustand Stopping des Dienste-Zustandsautomaten. Die Logik dieser Methode ruft die Methode Completing auf und liefert das Ergebnis der Methode Completing zurück.

Stopped

BOOL

Implementierung der Logik für den Zustand Stopped des Dienste-Zustandsautomaten. Standardmäßig ist keine Logik vordefiniert und es wird kein Wert zurückgeliefert.

Unholding

BOOL

Implementierung der Logik für den Zustand Unholding des Dienste-Zustandsautomaten. Die Logik dieser Methode ruft die Methode Resuming auf und liefert das Ergebnis der Methode Resuming zurück.

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. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren im Zustand Internal befinden.

SetActuatorsManual

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Manual überführt. Liefert True zurück wenn alle der Prozedur zugeordneten Aktoren sich im Zustand Manual befinden.

SetActuatorsOffline

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Offline überführt. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren im Zustand Offline befinden.

SetActuatorsOperator

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Operator überführt. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren im Zustand Operator befinden.

SetActuatorsAutomatic

BOOL

Alle der Prozedur zugeordneten Aktoren werden in den Zustand Automatic überführt. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren im Zustand Automatic befinden.

SetReqEqInternal

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Internal überführt. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren und PID-Logik im Zustand Internal befinden.

SetReqEqManual

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Manual überführt. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren und PID-Logik im Zustand Manual befinden.

SetReqEqOffline

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Offline überführt. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren und PID-Logik im Zustand Offline befinden.

SetReqEqOperator

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Operator überführt. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren und PID-Logik im Zustand Operator befinden.

SetReqEqAutomatic

BOOL

Alle der Prozedur zugeordneten Aktoren und PID-Logik werden in den Zustand Automatic überführt. Liefert True zurück, wenn sich alle der Prozedur zugeordneten Aktoren und PID-Logik im Zustand Automatic befinden.