Timer in SCL als Eingangsvariable deklarieren

Snoopy123123

Level-1
Beiträge
125
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich moechte gerne 3 Timer als Eingangsvaribable einem FB in SCL uebergeben.
was mache ich hier falsch oder geht das in SCL nicht ?

VAR_INPUT
CRackNumber : int;
Enable_Rack : BOOL;
CoolingTime : S5TIME;
Timer1 : TIMER;
Timer2 : TIMER;
Timer3 : TIMER;
END_VAR
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Snoopi,

wie es aussieht, hast du eine Lösung gefunden. Wenn du allerdings einen FB hat, gibt es eine elegantere Lösung, als Siemens- Timer zu übergeben. Verwende doch einfach IEC-Timer (TON, TOF,...) im Baustein. Dann kannst du dir die Übergabe komplett sparen. Die Zeitwerte kannst du dennoch als TIME von außen übergeben...

LG Cassandra
 
Ja erst hatte ich nur einen Fehler in der deklaration aber im laufe des Tages habe ich mich auch schon fuer die IEC Timer entschieden. Das funktioniert recht gut. Weisst du wie ich die abgelaufene Zeit des IEC Timers anzeigen kann ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sollzeit (PT) minus Istzeit (ET) = Anzeige Restzeit

Na ne Zeile Code waere hier schon hilfreich. Zumindest bekomm ich die Syntax nicht richtig hin.
Mein Timer ist wie folgt.

TON_CoolingSlot1(IN:= Slot_1_Occupied, PT:= CoolingTime);


>>>>>> so funktioniert es nicht >>>>>> Istzeit:= TON_CoolingSlot1.pt - TON_CoolingSlot1.et;
 
Hi,
...>>>>>> so funktioniert es nicht >>>>>> Istzeit:= TON_CoolingSlot1.pt - TON_CoolingSlot1.et;
Was geht da nicht?
Code:
FUNCTION_BLOCK FB222

VAR_INPUT
  Slot_1_Occupied : BOOL;
  CoolingTime : TIME;
END_VAR
VAR_OUTPUT
  Istzeit : TIME;
END_VAR
VAR
  TON_CoolingSlot1 : TON;
END_VAR


BEGIN


  TON_CoolingSlot1(IN:= Slot_1_Occupied, PT:= CoolingTime); 
  Istzeit:= TON_CoolingSlot1.pt - TON_CoolingSlot1.et;
  
END_FUNCTION_BLOCK

Gruss Daniel
 
Zurück
Oben