-> Hier kostenlos registrieren
Hallo
Ich muss einen Analogwert einlesen und den Rohwert ins Format Real wandeln und indiziert im DB ablegen.
Die Adresse des Analogeingangs ist als INT (z.b 40) im DB vorhanden. ICh krieg das Schreiben des Wertes in den DB nicht hin.
Ist es überhaupt möglich?
VAR_INPUT
DB_NR : BLOCK_DB ; //Number database
DB_ADR_II : INT ; //Startadress
AI_COUNT_II : INT ; //Count of analog inputs
END_VAR
VAR_TEMP
mIW_Raw_RL : REAL ;
mDB_ADR_IL : INT ; //Startadress
mLoopCnt_IL : INT ;
mIW_IL : INT ;
END_VAR
mDB_ADR_IL := DB_ADR_II + 32;
FOR mLoopCnt_IL := 1 TO AI_COUNT_II DO
// Input active?
IF NOT DB_NR.DX[mDB_ADR_IL + 26, 3] THEN
GOTO mark1;
END_IF;
// Init
DB_NR.DX[mDB_ADR_IL + 26, 0] := TRUE;
DB_NR.DX[mDB_ADR_IL + 26, 1] := TRUE;
DB_NR.DX[mDB_ADR_IL + 26, 2] := TRUE;
// Input value convert to real
mIW_IL := WORD_TO_INT(DB_NR.DW[mDB_ADR_IL]);
mIW_Raw_RL := INT_TO_REAL(WORD_TO_INT(EW[mIW_IL]));
DB_NR.DD[mDB_ADR_IL] := mIW_Raw_RL; --> "Kommt immer Meldung; ungültiger Datentyp"
mark1 :;
mDB_ADR_IL := mDB_ADR_IL + 32;
Kann mir jemand einen Typ geben?
gruss
Ich muss einen Analogwert einlesen und den Rohwert ins Format Real wandeln und indiziert im DB ablegen.
Die Adresse des Analogeingangs ist als INT (z.b 40) im DB vorhanden. ICh krieg das Schreiben des Wertes in den DB nicht hin.
Ist es überhaupt möglich?
VAR_INPUT
DB_NR : BLOCK_DB ; //Number database
DB_ADR_II : INT ; //Startadress
AI_COUNT_II : INT ; //Count of analog inputs
END_VAR
VAR_TEMP
mIW_Raw_RL : REAL ;
mDB_ADR_IL : INT ; //Startadress
mLoopCnt_IL : INT ;
mIW_IL : INT ;
END_VAR
mDB_ADR_IL := DB_ADR_II + 32;
FOR mLoopCnt_IL := 1 TO AI_COUNT_II DO
// Input active?
IF NOT DB_NR.DX[mDB_ADR_IL + 26, 3] THEN
GOTO mark1;
END_IF;
// Init
DB_NR.DX[mDB_ADR_IL + 26, 0] := TRUE;
DB_NR.DX[mDB_ADR_IL + 26, 1] := TRUE;
DB_NR.DX[mDB_ADR_IL + 26, 2] := TRUE;
// Input value convert to real
mIW_IL := WORD_TO_INT(DB_NR.DW[mDB_ADR_IL]);
mIW_Raw_RL := INT_TO_REAL(WORD_TO_INT(EW[mIW_IL]));
DB_NR.DD[mDB_ADR_IL] := mIW_Raw_RL; --> "Kommt immer Meldung; ungültiger Datentyp"
mark1 :;
mDB_ADR_IL := mDB_ADR_IL + 32;
Kann mir jemand einen Typ geben?
gruss