-> Hier kostenlos registrieren
Hallo,
beim Programmieren in Siemens S7 SCL hat meine Sicherheitsabfrage nicht funktioniert. Hat jemand eine Idee, weshalb diese Abfrage nicht gegriffen hat?
Teil meines Programms:
// Analogeingang einlesen
Analogeingang:= (WORD_TO_INT(Peripherieeingangswort));
// Berechnung
Analogausgang:= Analogeingang + Offset;
// Sicherheitsabfrage
IF Analogausgang < 0 THEN Analogausgang:= 0;
END_IF;
IF Analogausgang > 27000 THEN Analogausgang:= 27000;
END_IF;
// Analogausgang ausgeben
DB1.DW0:= INT_TO_WORD(Analogausgang);
Beim Auslesen des Offset habe ich einen Fehler in meinem Programm gehabt. Normalerweise wollte ich meine Offsetwerte aus dem Datenbaustein folgende Datenwörter holen: DW0; DW2, DW4,… Habe allerdings folgende Werte ausgelesen: DW0; DW1; DW2; DW3… Mir ist klar, das ich im DW1 und 3 nur Müll zu stehen habe, aber durch meine Sicherheitsabfrage sollte dies ja abgefangen werden. Passiert aber nicht???
Ich habe mir die Werte die ausgegeben werden angeschaut. Ich lese extrem große Werte (z.B. X hoch 43) aber auch negative Werte. Wie kann das sein?
beim Programmieren in Siemens S7 SCL hat meine Sicherheitsabfrage nicht funktioniert. Hat jemand eine Idee, weshalb diese Abfrage nicht gegriffen hat?
Teil meines Programms:
// Analogeingang einlesen
Analogeingang:= (WORD_TO_INT(Peripherieeingangswort));
// Berechnung
Analogausgang:= Analogeingang + Offset;
// Sicherheitsabfrage
IF Analogausgang < 0 THEN Analogausgang:= 0;
END_IF;
IF Analogausgang > 27000 THEN Analogausgang:= 27000;
END_IF;
// Analogausgang ausgeben
DB1.DW0:= INT_TO_WORD(Analogausgang);
Beim Auslesen des Offset habe ich einen Fehler in meinem Programm gehabt. Normalerweise wollte ich meine Offsetwerte aus dem Datenbaustein folgende Datenwörter holen: DW0; DW2, DW4,… Habe allerdings folgende Werte ausgelesen: DW0; DW1; DW2; DW3… Mir ist klar, das ich im DW1 und 3 nur Müll zu stehen habe, aber durch meine Sicherheitsabfrage sollte dies ja abgefangen werden. Passiert aber nicht???
Ich habe mir die Werte die ausgegeben werden angeschaut. Ich lese extrem große Werte (z.B. X hoch 43) aber auch negative Werte. Wie kann das sein?