ist unterwegs.
Gruß
Andreas
Gruß
Andreas
Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.
Beiträge anzeigen-Menü(* @NESTEDCOMMENTS := 'Yes' *)
(* @PATH := '' *)
(* @SYMFILEFLAGS := '2048' *)
FUNCTION_BLOCK SENS_MUX
VAR_INPUT
Sens_In:WORD;
Sens_Count:INT;
Sample_Time:TIME := t#10s;
Offset_Temp0:REAL;
Offset_Temp1:REAL;
Offset_Temp2:REAL;
Offset_Temp3:REAL;
Offset_Temp4:REAL;
Offset_Temp5:REAL;
Offset_Temp6:REAL;
Offset_Temp7:REAL;
Offset_Temp8:REAL;
Offset_Temp9:REAL;
END_VAR
VAR_OUTPUT
Sens0:BOOL;
Sens1:BOOL;
Sens2:BOOL;
Sens3:BOOL;
Sens4:BOOL;
Sens5:BOOL;
Sens6:BOOL;
Sens7:BOOL;
Sens8:BOOL;
Sens9:BOOL;
END_VAR
VAR_OUTPUT PERSISTENT
Temp_0:REAL;
Temp_1:REAL;
Temp_2:REAL;
Temp_3:REAL;
Temp_4:REAL;
Temp_5:REAL;
Temp_6:REAL;
Temp_7:REAL;
Temp_8:REAL;
Temp_9:REAL;
END_VAR
VAR
Curr_Sens:INT := 0;
StartTime:TIME := t#0s;
WaitTime:TIME;
END_VAR
(* @END_DECLARATION := '0' *)
IF TIME() - StartTime >= Sample_Time THEN;
StartTime:=TIME();
WaitTime := StartTime;
IF Curr_Sens < Sens_Count - 1 THEN
Curr_Sens := Curr_Sens + 1;
ELSE;
Curr_Sens := 0;
END_IF;
Sens0:=FALSE;
Sens1:=FALSE;
Sens2:=FALSE;
Sens3:=FALSE;
Sens4:=FALSE;
Sens5:=FALSE;
Sens6:=FALSE;
Sens7:=FALSE;
Sens8:=FALSE;
Sens9:=FALSE;
CASE Curr_Sens OF
0:Sens0:=TRUE;
1:Sens1:=TRUE;
2:Sens2:=TRUE;
3:Sens3:=TRUE;
4:Sens4:=TRUE;
5:Sens5:=TRUE;
6:Sens6:=TRUE;
7:Sens7:=TRUE;
8:Sens8:=TRUE;
9:Sens9:=TRUE;
END_CASE;
ELSIF TIME() -WaitTime >= t#3s THEN;
CASE Curr_Sens OF
0:Temp_0 := WORD_TO_REAL(Sens_In)/10+Offset_Temp0;
1:Temp_1 := WORD_TO_REAL(Sens_In)/10+Offset_Temp1;
2:Temp_2 := WORD_TO_REAL(Sens_In)/10+Offset_Temp2;
3:Temp_3 := WORD_TO_REAL(Sens_In)/10+Offset_Temp3;
4:Temp_4 := WORD_TO_REAL(Sens_In)/10+Offset_Temp4;
5:Temp_5 := WORD_TO_REAL(Sens_In)/10+Offset_Temp5;
6:Temp_6 := WORD_TO_REAL(Sens_In)/10+Offset_Temp6;
7:Temp_7 := WORD_TO_REAL(Sens_In)/10+Offset_Temp7;
8:Temp_8 := WORD_TO_REAL(Sens_In)/10+Offset_Temp8;
9:Temp_9 := WORD_TO_REAL(Sens_In)/10+Offset_Temp9;
END_CASE;
END_IF;
END_FUNCTION_BLOCK
IF I_LO > I_HI THEN;
Value := LIMIT(I_HI,X,I_LO);
ELSE;
Value := LIMIT(I_LO,X,I_HI);
END_IF;
SCALE_D := O_LO + DWORD_TO_REAL(ABS(I_LO - Value)) * ABS(O_LO -O_HI) / DWORD_TO_REAL(ABS(I_LO - I_HI));
Seite erstellt in 0.031 Sekunden mit 17 Abfragen.