-> Hier kostenlos registrieren
Hallo Freunde,
mein folgender Baustein schreibt zyklisch Werte in versch. DB´s.
Der Zugriff an sich funktioniert, aber in den DB´s kommen andere Werte an. Ich finde einfach den Fehler nicht....
Gruß
Matthias
PS: Sorry, den Fehler nun gefunden....habe bei den "Zaehlern" den Offset in den DB´s nicht berücksichtigt........ ;-)))
FUNCTION_BLOCK FB20
VAR_INPUT
Trigger : BOOL;
Gewicht : INT;
Pos_Sonderhubwerk : dINT;
Zaehler : INT;
Zeit : TOD;
Datum : DATE;
Drehzahl : DINT;
Datenbank_Lastwert: BLOCK_DB;
Datenbank_Hubhoehe: BLOCK_DB;
Datenbank_Messdauer: BLOCK_DB;
Datenbank_Datum: BLOCK_DB;
Datenbank_Uhrzeit: BLOCK_DB;
Datenbank_Drehzahl: BLOCK_DB;
END_VAR
VAR
Zeit_DB : DWORD;
Datum_DB: WORD;
END_VAR
VAR_OUTPUT
Gewicht_max : INT;
Pos_Sonderhubwerk_max : DINT;
Drehzahl_max : DINT;
END_VAR
BEGIN
IF Trigger=1 THEN
IF Zaehler =0 THEN
Gewicht_max := 0;
Pos_Sonderhubwerk_max := 0;
Drehzahl_max := 0;
END_IF;
Datenbank_Lastwert.dw[Zaehler] := INT_TO_WORD(Gewicht);
Datenbank_Hubhoehe.dd[Zaehler] := dINT_TO_dWORD(Pos_Sonderhubwerk);
Datenbank_Messdauer.dw[Zaehler] := INT_TO_WORD(Zaehler*100);
Datenbank_Datum.dw[Zaehler] := DINT_TO_WORD(DATE_TO_DINT(Datum));
Datenbank_Uhrzeit.dd[Zaehler] := DINT_TO_DWORD(TOD_TO_DINT(Zeit));
Datenbank_Drehzahl.dd[Zaehler] := DINT_TO_DWORD(Drehzahl);
IF Gewicht > Gewicht_max THEN
Gewicht_max := Gewicht;
Pos_Sonderhubwerk_max := Pos_Sonderhubwerk;
Drehzahl_max := Drehzahl;
END_IF;
END_IF;
END_FUNCTION_BLOCK
mein folgender Baustein schreibt zyklisch Werte in versch. DB´s.
Der Zugriff an sich funktioniert, aber in den DB´s kommen andere Werte an. Ich finde einfach den Fehler nicht....
Gruß
Matthias
PS: Sorry, den Fehler nun gefunden....habe bei den "Zaehlern" den Offset in den DB´s nicht berücksichtigt........ ;-)))
FUNCTION_BLOCK FB20
VAR_INPUT
Trigger : BOOL;
Gewicht : INT;
Pos_Sonderhubwerk : dINT;
Zaehler : INT;
Zeit : TOD;
Datum : DATE;
Drehzahl : DINT;
Datenbank_Lastwert: BLOCK_DB;
Datenbank_Hubhoehe: BLOCK_DB;
Datenbank_Messdauer: BLOCK_DB;
Datenbank_Datum: BLOCK_DB;
Datenbank_Uhrzeit: BLOCK_DB;
Datenbank_Drehzahl: BLOCK_DB;
END_VAR
VAR
Zeit_DB : DWORD;
Datum_DB: WORD;
END_VAR
VAR_OUTPUT
Gewicht_max : INT;
Pos_Sonderhubwerk_max : DINT;
Drehzahl_max : DINT;
END_VAR
BEGIN
IF Trigger=1 THEN
IF Zaehler =0 THEN
Gewicht_max := 0;
Pos_Sonderhubwerk_max := 0;
Drehzahl_max := 0;
END_IF;
Datenbank_Lastwert.dw[Zaehler] := INT_TO_WORD(Gewicht);
Datenbank_Hubhoehe.dd[Zaehler] := dINT_TO_dWORD(Pos_Sonderhubwerk);
Datenbank_Messdauer.dw[Zaehler] := INT_TO_WORD(Zaehler*100);
Datenbank_Datum.dw[Zaehler] := DINT_TO_WORD(DATE_TO_DINT(Datum));
Datenbank_Uhrzeit.dd[Zaehler] := DINT_TO_DWORD(TOD_TO_DINT(Zeit));
Datenbank_Drehzahl.dd[Zaehler] := DINT_TO_DWORD(Drehzahl);
IF Gewicht > Gewicht_max THEN
Gewicht_max := Gewicht;
Pos_Sonderhubwerk_max := Pos_Sonderhubwerk;
Drehzahl_max := Drehzahl;
END_IF;
END_IF;
END_FUNCTION_BLOCK
Zuletzt bearbeitet: