Zeitfunktion SV - verlängerter Impuls in SCL

s_alpen

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!
Als Anfänger in Sachen SCL verzweifel ich gerade.
Baugruppe: S7-300
In SCL möchte ich über einen Impuls einen Merker M4.1 für 5 Sekunden setzen. Dafür habe ich die S_PEXT -Funktion ausgewählt.

Wenn ich das Programm (Ohne Felermeldung compiliert) an einem Beispiel Teste, wird der M4.1 gesetzt und bleibt dauerhaft 1.

Den Merker M4.2 setzte ich kurzzeitig manuell über die Variablentabelle.

Code:
FUNCTION SYSTEM_TEST : VOID

VAR_TEMP
 
    START_PULS:S5TIME;

END_VAR
IF M[4,2] THEN

M[4,0]:=TRUE;
START_PULS:= S_PEXT  (T_NO:= T10, S:= M[4,0], TV:= t#5s, Q:= M[4,1]);
M[4,0]:=FALSE;   

END_IF;
END_FUNCTION

Habe ich da grundsätzlich etwas nicht verstanden?
Wäre für eure Hilfe dankbar!

Gruß
 
Hallo zusammen!
Als Anfänger in Sachen SCL verzweifel ich gerade.
Baugruppe: S7-300
In SCL möchte ich über einen Impuls einen Merker M4.1 für 5 Sekunden setzen. Dafür habe ich die S_PEXT -Funktion ausgewählt.

Wenn ich das Programm (Ohne Felermeldung compiliert) an einem Beispiel Teste, wird der M4.1 gesetzt und bleibt dauerhaft 1.

Den Merker M4.2 setzte ich kurzzeitig manuell über die Variablentabelle.

Code:
FUNCTION SYSTEM_TEST : VOID

VAR_TEMP
 
    START_PULS:S5TIME;

END_VAR

.....Flankenauswertung auf  M[4,0] 

START_PULS:= S_PEXT  (T_NO:= T10, S:= M[4,0], TV:= t#5s, Q:= M[4,1]);

END_FUNCTION

Habe ich da grundsätzlich etwas nicht verstanden?
Wäre für eure Hilfe dankbar!

Gruß


Ich denke du solltest den Timer nicht in IF-END_IF schreiben, sondern außerhalb der Anweisung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, Danke schonmal.
Aber leider macht die Steuerung noch nicht was sie soll.

Den Code verstehe ich so, dass wenn über M4.0 eine positve Flanke kommt, der Ausgang Q für die bestimmte Zeit auf "1" gesetzt. Habe es wie folgt, probiert und nun ist der M4.1 "1", sobald ich die Funktion SYTEM_Test aufrufe...ohne, das sicht M4.0 betätigt habe???HILFE!

Code:
FUNCTION SYSTEM_TEST : VOID

VAR_TEMP
    START_PULS:S5TIME;    
END_VAR


START_PULS:= S_PEXT  (T_NO:= T10, S:= M[4,0], TV:= t#5s, Q:= M[4,1]);
   
END_IF
END_FUNCTION
 
Hallo...

Gestern bin ich zu keiner Lösung gekommen...
Doch heut mit frischem Kopf :)

Hatte nicht darauf geachtet, dass der Timer durch einen Baustein dauerhaft aufgerufen wurde :-(

Danke für eure Hilfe

Gruß
 
Zurück
Oben