-> Hier kostenlos registrieren
Hallo Leidensgenossen,
ich brauche Eure Hilfe, ich bin zu dämlich......
Ich möchte mit einem S7-400 Rack einige Analogkarten testen. Ich habe dafür im Programm einen Sollwertgenerator geschrieben, der einen Sägezahnsollwert zwischen -32000 und +32000 generiert. Damit steuere ich Analogausgänge an, diese wiederum lese ich mit einer Analogeingangskarte ein.
Das funktioniert alles.
Ich habe jedoch Schwierigkeiten bei der Prüfung der Analogwerte. Ich würde die Analogwerte der Eingange gerne weiterverarbeiten, u.a. mit einem Toleranzfenster prüfen, jedoch bekomme ich dies im Programm nicht hin. S7 zeigt mir die Variablen der Analogwerte nicht +/- 32000 an, sondern den Dezimalwert des entsprechenden hex-Wertes, also zwischen 0 und 65535. Alle Variablen sind als INTEGER deklariert, im DB werden mir diese auch entsprechend angezeigt, im Status des entsprechenden Bausteins nicht mehr, und das Programm verarbeitet den dann auch entsprechend. Eine Konvertierung von Word zu INT bringt auch nix.
Dieses Dezimalformat bei einem Analogwert fällt mir so schwer, z. B springt mein Analogwert von 0 auf 65535, wenn der Wert ins Negative wechselt
Mir fällt nix mehr ein, was ich tun könnte, um einen Eingangswert der Analogkarte beispielsweise auf < -32000 zu überprüfen.
Ich weiß, ich bin das Problem. Könnt ihr mir vielleicht auf die Sprünge helfen ?
Würde mich über eine Rückmeldung sehr freuen.
ich brauche Eure Hilfe, ich bin zu dämlich......
Ich möchte mit einem S7-400 Rack einige Analogkarten testen. Ich habe dafür im Programm einen Sollwertgenerator geschrieben, der einen Sägezahnsollwert zwischen -32000 und +32000 generiert. Damit steuere ich Analogausgänge an, diese wiederum lese ich mit einer Analogeingangskarte ein.
Das funktioniert alles.
Ich habe jedoch Schwierigkeiten bei der Prüfung der Analogwerte. Ich würde die Analogwerte der Eingange gerne weiterverarbeiten, u.a. mit einem Toleranzfenster prüfen, jedoch bekomme ich dies im Programm nicht hin. S7 zeigt mir die Variablen der Analogwerte nicht +/- 32000 an, sondern den Dezimalwert des entsprechenden hex-Wertes, also zwischen 0 und 65535. Alle Variablen sind als INTEGER deklariert, im DB werden mir diese auch entsprechend angezeigt, im Status des entsprechenden Bausteins nicht mehr, und das Programm verarbeitet den dann auch entsprechend. Eine Konvertierung von Word zu INT bringt auch nix.
Dieses Dezimalformat bei einem Analogwert fällt mir so schwer, z. B springt mein Analogwert von 0 auf 65535, wenn der Wert ins Negative wechselt
Mir fällt nix mehr ein, was ich tun könnte, um einen Eingangswert der Analogkarte beispielsweise auf < -32000 zu überprüfen.
Ich weiß, ich bin das Problem. Könnt ihr mir vielleicht auf die Sprünge helfen ?
Würde mich über eine Rückmeldung sehr freuen.