PressureControl.PID

PressureControl.PID 1:

Diese Corefunction implementiert eine erweiterte PID-Reglerfunktionalität. Als Regelgröße wird der durch den Supervisor eingelesenen Druckwert verwendet. Als Stellgröße wird die Geschwindigkeit der Achse angesteuert. Entsprechend kann diese Regelstruktur für eine Reihe von Aufgaben verwendet werden:

PressureControl.PID 2: Eigenschaften

Name

Typ

Zugriff

Beschreibung

InitState

BOOL

Get, Set

Die Corefunction ist nicht vollständig und erfolgreich initialisiert.

FB_PressureControl_PID

Actual

BOOL

Get

Aktueller Druckistwert.

AllowSwitchOver

BOOL

Get, Set

Erlaubt das Umschalten aus einer anderen aktiven Corefunction in die Druckregelung.

Hinweis Zurzeit wird zur Umschaltung nur Ptp unterstützt.

Limiting

LREAL

Get, Set

Sollwert für die Limitierung (z.B. Drehmoment, Druck) während der Druckregelung.

Parameters

I_PressureControlParams_PID

Get, Set

Parametersatz der zur Regelung verwendet wird. Durch Zuweisung können die Parametersätze umgeschaltet werden. Wird eine 0 zugewiesen wird der interne Parametersatz verwendet.

PressureLookUp

I_PressureLookUp

Get, Set

Drucksollwert-Tabelle zur sequenziellen Abarbeitung von Drucksollwerten.
Hinweis Vorläufige Implementierung

Target

LREAL

Get, Set

Führungsgröße (Sollwert) des Reglers.

IsEnabled1

BOOL

Get

Ein TRUE signalisiert den aktiven Zustand der Druckumschaltung.
Alternativ:
.AllowSwitchOver

FB_CorefunctionFeedback

AbortedState

BOOL

Get, Set

Signalisiert den Abbruch eines Kommandos durch eine andere Corefunction.

BusyState

BOOL

Get, Set

Signalisiert die aktive Ausführung eines Kommandos.

DoneState

BOOL

Get, Set

Signalisiert die erfolgreiche Ausführung eines Kommandos.

IdleState

BOOL

Get, Set

Die Corefunction ist betriebsbereit und kommandierbar.

IsCommanded

BOOL

Get

Signalisiert das Anstehen eines Kommandos.

FB_Corefunction

FailedState

BOOL

Get, Set

Wenn gleichzeitig IsActivated TRUE ist: Signalisiert das Fehlschlagen eines akzeptierten Kommandos.

Wenn gleichzeitig IsActivated FALSE ist: Signalisiert die Ablehnung eines Kommandos.

HasFeedback

BOOL

Get

Die Corefunction hat auf ein anstehendes Kommando reagiert.

IsActivated

BOOL

Get

Die Corefunction hat ein akzeptiertes Kommando anstehen.

IsLocalCmd

BOOL

Get

Signalisiert, dass die Achse mit einem Kommando dieser Corefunction belegt ist.

ReadyState

BOOL

Get, Set

Die Corefunction ist betriebsbereit, aber zu diesem Zeitpunkt nicht kommandierbar.

Mögliche Gründe sind:
- Die Achse ist nicht freigegeben.
- Eine andere Corefunction ist aktiv.
- Die Corefunction unterstützt keine Kommandos.

PressureControl.PID 3: Methoden

Name

Beschreibung

Activate()

Aktivieren / Deaktivieren des Reglers.

SwitchOver()

Aktivieren des Reglers durch Umschaltung eines anderen Kommandos.

EnableSwitchOver()1

Freigabe für die automatische Aktivierung durch einen PressureHandler.
Alternativ:
AllowSwitchOver

GetActual()1

Der Istwert des Reglers wird ermittelt.
Alternativ:
Actual

GetParams()1

Ein Interface auf den verbundenen Parametersatz wird ermittelt.
Alternativ:
Parameters

SetParams()1

Ein Parametersatz wird mit dem Regler verbunden.
Alternativ:
Parameters

Setpoint()1

Setzen der Führungsgröße (Sollwert) des Reglers.
Alternativ:
Target

1Obsolete

PressureControl.PID 4: Schnittstellen

Typ

Beschreibung

I_Corefunction

Standardschnittstelle auf FB_Corefunction.

I_PressureControl

Standardschnittstelle auf FB_PressureControl_PID.

I_CorefunctionFeedback

Standardschnittstelle auf FB_CorefunctionFeedback.

Beispiel:

// Requires connected pressure input, e.g. via PressureControl.Supervisor.Sensor
// Start pressure control on application start signal
IF bStart THEN
    
    // Assign pressure setpoint
    iAxisBase.PressureControl.PID.Target := 20.0;
    
    // parameterize once before activation and activate
    IF iAxisBase.PressureControl.PID.IdleState THEN
            
        iAxisBase.PressureControl.PID.Limiting := 80.0;
        iAxisBase.PressureControl.PID.Parameters.Kp := 0.5;
        iAxisBase.PressureControl.PID.Parameters.EnableI := TRUE;
        iAxisBase.PressureControl.PID.Parameters.Tn := 1.0;

        iAxisBase.PressureControl.PID.Activate(TRUE);
        
    // wait until function is terminated
    ELSIF bStop THEN
        
        bStart := FALSE;
        iAxisBase.PressureControl.PID.Activate(FALSE);    
    
    END_IF        
END_IF    

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.66

PC oder CX (x64, x86)

Tc3_PlasticFunctions (>= v12.10.0.0)