Sensorabfrage in ST

marmi86

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin dabei eine Aufgabe zur ST Programmierung zu lösen. In der Aufgabe geht es um eine Lampe, welche durch einen Taster AN und AUS geschaltet werden soll. Zusätzlich soll noch ein Sensor abgefragt werden, liefert dieser Sensor einen Wert <800 soll die Lampe automatisch leuchten. Sie soll aber weiterhin manuel AN und AUS geschaltet werden können. Am besten wäre es, wenn der Sensor durch das manuelle Ausschalten für ca 90min deaktiviert werden würde.
Hier meine Ansätze

Code:
PROGRAM test
VAR

Taster AT %I*: BOOL;
Lampe AT %Q*: BOOL;
Sensor AT %I*: INT;

time_Lampe:TON;
help_Lampe: BOOL;
sensor_help:BOOL;

END_VAR
----------------------------------------
time_Lampe(IN:= Taster , PT:=T#0.2S);

IF Sensor <800 THEN
sensor_help:=TRUE;
     ELSE
     sensor_help:=FALSE;
END_IF
(*Sensor wird abgefragt und in BOLL umgewandelt*)


IF sensor_help=TRUE THEN
LAMPE:=sensor_help;                                     (* Wenn der BOOL sensor help=TRUE leuchtet die Lampe dauerhaft*)
ELSIF  time_Lampe.Q AND NOT help_Lampe THEN
          Lampe:=NOT lampe;


END_IF

help_Lampe:=time_Lampe.Q;

Wie kann man den Sensor einbinden, sodass die Lampe auch wieder ausgeschaltet werden kann? Wie kann man die Sensorabfrage für einen bestimmten Zeitraum deaktivieren?


Gruß marmi86
 
Hallo,
ich würde da so vorgehen :
- Für die Sensor-Auswertung im Grunde so, wie schon von dir gemacht :
Code:
sensor_help := (sensor < 800) ;
- Für den Taster eine Stromstoßschalter-Logik aufbauen :
Code:
if Taster not not FM_Taster then
   taster_help := not taster_help ;
end_if ;
FM_Taster := Taster ;
- Mit der negativen Flanke des taster_help setzt du dir einen Sperrmeker, der wiederum einen Timer (TON) ablaufen läßt. Ist der Timer abgelaufen setzt der den Sperrmerker wieder zurück.

Deine Lampe kann nun leuchten bei : taster_help OR (sensor_help and not Sperrmeker)

Gruß
Larry
 
Zurück
Oben