TON und Systemzeit

Bambam

Level-1
Beiträge
60
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich programmiere gerade einen Buskoppler von Beckhoff (BC9000) mit TwinCat und komme nicht weiter.

Mein erstes Problem ist, dass ich nicht weiß wie ich die Systemzeit ermitteln kann. Mein Ziel ist nämlich, dass ab einer bestimmten Uhrzeit sich alle Lampen in einer Werkhalle abschalten. Habe schon vieles probiert und viel gelsen, doch wirklich weiter gekommen bin ich noch nicht.

Mein zweites Problem ist, dass ich mit eine Einschaltverzögerung programmieren wollte, doch so recht funktioniert die nicht!

IF iBewegungsmelder > 0 AND trigTasterS562.Q THEN
iBewegungsmelder := 0;
tonZeitverzoegerung_aus(IN := trigTasterS562.Q, PT := t#300ms);

IF bA02_F510H4H8 = FALSE THEN
bA02_F510H4H8 := TRUE;
iLichtbandSued_5 := iLichtbandSued_5 +1;
END_IF

IF bA05_F511H4H8 = FALSE THEN
bA05_F511H4H8 := TRUE;
iLichtbandNord_5 := iLichtbandNord_5 +1;
END_IF
END_IF

IF tonZeitverzoegerung_aus.Q THEN
switch := TRUE;
IF iLichtbandSued_5 = 1 THEN
bA02_F510H4H8 := FALSE;
iLichtbandSued_5 := 0;
END_IF
IF iLichtbandNord_5 = 1 THEN
bA05_F511H4H8 := FALSE;
iLichtbandNord_5 := 0;
END_IF
END_IF

Warum funktioniert mein TON nicht???

Habt vielen Dank im Voraus.
 
Hallo

Ich programmiere gerade einen Buskoppler von Beckhoff (BC9000) mit TwinCat und komme nicht weiter.

Mein erstes Problem ist, dass ich nicht weiß wie ich die Systemzeit ermitteln kann. Mein Ziel ist nämlich, dass ab einer bestimmten Uhrzeit sich alle Lampen in einer Werkhalle abschalten. Habe schon vieles probiert und viel gelsen, doch wirklich weiter gekommen bin ich noch nicht.

Mein zweites Problem ist, dass ich mit eine Einschaltverzögerung programmieren wollte, doch so recht funktioniert die nicht!

IF iBewegungsmelder > 0 AND trigTasterS562.Q THEN
iBewegungsmelder := 0;
tonZeitverzoegerung_aus(IN := trigTasterS562.Q, PT := t#300ms);
Weil du den TON in der IF-Bedingung aufrufst. Sobald die Bedingung aber zutrifft, setzt du diese wieder zurück und der gestartete TON wird nicht weiter ausgeführt.

Ich plädiere immer dafür, FBs grundsätzlich immer ohne Bedingungen aufzurufen und nur die Eingänge innerhalb der IFs zu verwenden.

Mach's mal so:
Code:
IF iBewegungsmelder > 0 AND trigTasterS562.Q THEN
    iBewegungsmelder := 0;
    [b]tonZeitverzoegerung_aus.IN := trigTasterS562.Q;[/b]

    IF bA02_F510H4H8 = FALSE THEN
    bA02_F510H4H8 := TRUE;
    iLichtbandSued_5 := iLichtbandSued_5 +1;
    END_IF

    IF bA05_F511H4H8 = FALSE THEN
    bA05_F511H4H8 := TRUE;
    iLichtbandNord_5 := iLichtbandNord_5 +1;
    END_IF
END_IF

[b]tonZeitverzoegerung_aus(PT := t#300ms);[/b]
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
tonZeitverzoegerung_aus(IN := trigTasterS562.Q, PT := t#300ms);

Beachte die Funktionsbeschreibung von "TON":
...
Q ist TRUE wenn IN TRUE und ET gleich PT ist. Andernfalls ist es FALSE
...
Ich nehme mal an das "trigTaster..." nur eine Flanke ist, somit wird die Zeit nie komplet abgearbeitet.

Zur Uhrzeit schau mal hier (oder such nach "RTC"):
http://infosys.beckhoff.com/content...sbc/html/tcplclibutilitiesbc_rtc.htm?id=14561

(Ich arbeite selbst nicht mit Beckhoff)

EDIT: zu spät^^
 
Zuletzt bearbeitet:
Zurück
Oben