Programmierung mit SPS / S7 (vergleicher)

Hallo Leute, ich hoffe das mir jemand helfen kann :smile:

Und zwar möchte ich etwas Programmieren.

Ich habe 2 Analogeingänge und 1 Analogausgang

Die 2 Eingänge möchte ich gerne mit einem Vergleicher programmieren 10Volt

Nun zu meinen Fragen:

  • Wie programmiere ich Analoge eingänge?!
  • Wie mache ich das mit einem Vergleicher?!

Wäre sehr nett wenn mir dass jemand für Auszubildene erklären kann.

Mit freundlichen Grüßen

Hallo,

das ist etwas unterschiedlich zwischen den CPUs und den Eingangskarten.

Welche CPU verwendest du? (zB CPU315-2DP)
Welche Eingabekarten? (SM331…)

Bei letzteren wäre die Auflösung (in Digits) nötig. (gibt 12 oder 15bit)

Ich beziehe mich mal auf FBD.

Jedenfalls kommst du mit deinem Analogeingang auf irgendeinen INT-Wert (Vorzeichenbehaftet)

Diesen legst du auf ein Merkerwort. (ZB MW200) Aufpassen, es werden die Merkerbytes 200 und 201 zusammengefaßt. Du darfst dann die Merker 200 und 201, auch keine Bits davon, irgendwo anders im Programm verwenden.

Dann benötigst du, je nachdem wie verglichen werden soll, einen CMP==I, CMP>=I oder CMP

So ich habe das alles soweit hinbekommen, bzw es funktioniert auch „fast“ alles so wie ich mir das vorgestellt habe.

Es geht nämlich um eine Lichtsteuerung.

Der Analogwert kommt von einem Dämmerungsschalter. Ich habe dem vergleicher einen Wert 3000 angegeben und wenn der wert unter 3000 kommt soll er mir nen Merker schalten.
Funktioniert auch alles soweit.

Das einzige Problem was ich nun haben ist, das der Dämmerungsschalter sehr empfindlich ist. Sprich er pendelt ständig seinen wert. Kommt der Wert um die 3000, dann flackert das licht ständig bis er kontinuierlich unter 3000 ist.

Gibt es da eine Lösung wie man sowas unterbinden kann? So von wegen bekommt er einmal 3000 bleibt das Signal konstant an bis er wieder über 3000 ist?!

Ich muss irgendwie das flackern wegbekommen.

Vielen Dank schonmal

Hallo Fragewurm,

Gibt es da eine Lösung wie man sowas unterbinden kann? So von
wegen bekommt er einmal 3000 bleibt das Signal konstant an bis
er wieder über 3000 ist?!

Es gibt 2 Möglichkeiten, welche man sogar kombinieren kann :wink:

1, Hysterese: Bei unter 2’900 schaltest du die Beleuchtung ein. Bei mehr als 3’100 wieder aus. Zwischen 2’900 und 3’100 machst du nichts. (2’900 und 3’100 sind willkürlich gewählte Werte, da musst du selber sehen).

  1. Totzeit: Immer wenn die 3’000 überschritten werden startest du einen Timer (retriggerbar), mit z.B. 10 Minuten. Erst wenn der Timer abgelaufen ist und die 3’000 überschritten sind, geht das Licht aus. So lange dieser Timer läuft, wird nicht geschaltet.
    Du musst auch damit rechnen, dass Nachts mal ein Autoscheinwerfer kurz auf den Sensor fällt, dann soll’s nicht gleich dunkel werden.

MfG Peter(TOO)