MC_AxTableReadOutNonCyclic_BkPlcMc (ab V3.0)

MC_AxTableReadOutNonCyclic_BkPlcMc (ab V3.0) 1:

Der Funktionsbaustein ermittelt mit Hilfe einer Tabelle die einem Master-Wert zugeordneten Slave-Werte.

MC_AxTableReadOutNonCyclic_BkPlcMc (ab V3.0) 2:

Dieser Baustein ist eine Komponente von Kurvenscheiben oder ähnlichen nichtlinearen Kopplungen. Er wird in der Regel nicht direkt von einer Applikation aufgerufen.

MC_AxTableReadOutNonCyclic_BkPlcMc (ab V3.0) 3: Eingänge

VAR_INPUT
    pTable:         POINTER TO LREAL:=0;
    fMasterValue:   LREAL:=0.0;
    nFirstIdx:      UDINT:=1;
    nLastIdx:       UDINT:=1;
    bReInit:        BOOL:=FALSE;
END_VAR

Name

Typ

Beschreibung

pTable

POINTER TO LREAL

Hier ist die Adresse eines ARRAY[nFirstIdx..nLastIdx,1..2] zu übergeben.

Eine nicht zutreffende Angabe an dieser Stelle führt zum Absturz der PLC-Applikation durch Auslösung von schweren Laufzeitfehlern (Page Fault Exception).

fMasterValue

LREAL

Hier ist der Wert des Masters zu übergeben, für den die zugehörigen Slave-

nFirstIdx

UDINT

Hier ist der untere Index des ARRAY zu übergeben, dessen Adresse als pTable übergeben wird.

Eine nicht zutreffende Angabe an dieser Stelle führt zum Absturz der PLC-Applikation durch Auslösung von schweren Laufzeitfehlern (Page Fault Exception).

nLastIdx

UDINT

Hier ist der obere Index des ARRAY zu übergeben, dessen Adresse als pTable übergeben wird.

Eine nicht zutreffende Angabe an dieser Stelle führt zum Absturz der PLC-Applikation durch Auslösung von schweren Laufzeitfehlern (Page Fault Exception).

bReInit

BOOL

Dieser Eingang signalisiert dem Baustein, dass die Suchprozedur am Anfang der Tabelle aufgesetzt werden soll.

MC_AxTableReadOutNonCyclic_BkPlcMc (ab V3.0) 4: Ausgänge

VAR_OUTPUT
    fSlaveValue:    LREAL:=0.0;
    fSlaveGear:     LREAL:=0.0;
    bUnderRange:    BOOL;
    bOverRange:     BOOL;
END_VAR

Name

Typ

Beschreibung

fSlaveValue

LREAL

Hier wird der zum fMasterValue gehörende Slave-Wert ausgegeben.

fSlaveGear

LREAL

Hier wird die lokale Steigung der Slave-Werte an der vom Master-Wert festgelegten Stelle der Tabelle ausgegeben.

bUnderRange

BOOL

Dieser Ausgang wird TRUE, Wenn der Master-Wert das untere Ende der Tabelle berührt oder unterschreitet.

bOverRange

BOOL

Dieser Ausgang wird TRUE, Wenn der Master-Wert das obere Ende der Tabelle berührt oder überschreitet.

Verhalten des Bausteins

Der Baustein sucht innerhalb der übergebenen Tabelle nach einem Master-Wertepaar, das den übergebenen fMasterValue trifft oder umfasst. Innerhalb des gefundenen Intervalls wird eine lineare Zwischeninterpolation gerechnet. Das Ergebnis wird als fSlaveValue ausgegeben. Die bei dieser Berechnung ermittelte lokale Steigung wird als fSlaveGear ausgegeben.

Liegt der fMasterValue unterhalb des von der Tabelle beschriebenen Wertebereichs wird bUnderRange signalisiert. Als fSlaveValue wird der Wert ausgegeben, der dem untersten Tabellenpunkt zugeordnet ist. Als fSlaveGear wird 0.0 zurückgegeben.

Liegt der fMasterValue oberhalb des von der Tabelle beschriebenen Wertebereichs wird bOverRange signalisiert. Als fSlaveValue wird der Wert ausgegeben, der dem obersten Tabellenpunkt zugeordnet ist. Als fSlaveGear wird 0.0 zurückgegeben.

Der Rückgabewert fSlaveGear stellt das Verhältnis der ersten Ableitungen von fMasterValue und fSlaveValue dar. Stellt fMasterValue eine Position oder eine virtuelle Zeit dar ergibt die Multiplikation von Master-Fortschrittsgeschwindigkeit und fSlaveGear die Slave-Sollgeschwindigkeit. Dies kann für die Erzeugung einer Vorsteuergeschwindigkeit ausgenutzt werden. Dazu ist vorzugsweise ein MC_AxRtSetExtGenValues_BkPlcMc Baustein zu verwenden.