Inbetriebnahme
Anmerkungen:
Alternativ kann anstelle des Funktionsblocks „FB_GET_MIN_MAX" auch von der TC3 Analytics Library
(TF3510) Gebrauch gemacht werden. Der Funktionsblock „FB_ALY_MinMaxAvg_1Ch" kann ebenfalls für
die Ermittlung der Min./Max. Werte herangezogen werden. Es kann dann auch die gesamte Berechnung in
diesem Programm durch Verwendung des von diesem Funktionsblock zur Verfügung gestellten Mittelwertes
modifiziert werden.
Bei den Klemmen ELM350x/ ELM370x ist das „PAI Scaler Settings" – Objekt 0x80n6 und zudem können die
Variablen nOffset und nGain auch direkt ohne die Typ-Konvertierung (REAL zu DINT) geschrieben werden;
eine Skalierung des Amplituden-Korrekturwertes mit 65536 ist ebenfalls nicht mehr nötig.
Variablendeklaration Beispielprogramme 1 und 2
PROGRAM MAIN
VAR_INPUT
bEnable :BOOL; // Start the code (Offset / Gain adjust)
nPAI_Sample AT%I* :DINT; // Input samples of the measurement value
END_VAR
VAR
// Enter your Net-Id here:
userNetId :T_AmsNetId := 'a.b.c.d.x.y';
// Enter EtherCAT device address here:
nUserSlaveAddr :UINT := 1002; // Check, if correct
// Configurations:
fMinFrequencyIn :REAL:=1.5; // Hz
bScalingOrder :BOOL:=FALSE; // TRUE: Start scale offset first
bWriteToCoEEnable :BOOL:=FALSE; // TRUE: Enable writing to CoE
// ===============================================
// "Main" State controlling Offset/Gain adjusting:
nMainCal_State :BYTE:=0;
// For CoE Object 0x8005 access:
fb_coe_write :FB_EcCoESdoWrite; // FB for writing to CoE
nSTATE_WRITE_COE :BYTE := 0;
nSubIndex :BYTE;
nCoEIndexScaler :WORD := 16#8005; // Use channel 1
// For ELM3xxx this is 0x8006
nSubIndScalGain :BYTE := 16#02;
nSubIndScalOffs :BYTE := 16#01;
nADSErrId :UDINT; // Copy of ADS-Error ID
// ===============================================
fb_get_min_max :FB_GET_MIN_MAX; // Min/Max values needed
// Note: you may also use "FB_ALY_MinMaxAvg_1Ch" of TwinCAT analytics)
// instead; there avg (average values can also be determinated
// Variables used for offset scaling:
nSTATE_SCALE_OFFSET :INT := 0;
bScaleOffsetStart :BOOL := FALSE;
bScaleOffsetDone :BOOL := FALSE;
fOffsetDeviationVal :REAL;
nOFFSET_MIN_VAL_REF :WORD := 200; // Max. limit value for offset
// Variables used for gain scaling:
nSTATE_SCALE_GAIN :INT := 0;
bScaleGainStart :BOOL := FALSE;
bScaleGainDone :BOOL := FALSE;
nPRESET_MAX_VAL :REAL := 3000000; // Target amplitude value
// ===============================================
// Variables for evaluating of gain and offset:
ELM3xxx
Version: 2.11
687