MC_AxTableReadOutNonCyclic_BkPlcMc (ab V3.0)
Der Funktionsbaustein ermittelt mit Hilfe einer Tabelle die einem Master-Wert zugeordneten Slave-Werte.
Dieser Baustein ist eine Komponente von Kurvenscheiben oder ähnlichen nichtlinearen Kopplungen. Er wird in der Regel nicht direkt von einer Applikation aufgerufen. |
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. |
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.