escride1
Level-1
- Beiträge
- 1.110
- Reaktionspunkte
- 262
-> Hier kostenlos registrieren
Erreichen will ich also das das Ventil Xmal gleich lange angesteuert wird, wenn der Knopf am Touch gedrückt wird.
Wichtig ist dabei, dass egal wie oft, die Dauer der Ventilansteuerung immer gleich ist.
Du möchtest nur aus irgendeinem Grund die Anzahl angeben. Warum denn? Wenn man die Gesamtzeit angibt reicht das nicht?
Aber wenn Du das unbedingt willst, wir brauchen dafür gar keinen Zähler weil es ja "am Stück" laufen soll.
Code:
FUNCTION_BLOCK "Baustein_1"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
Amount : Int;
END_VAR
VAR_OUTPUT
QValve : Bool;
END_VAR
VAR_IN_OUT
"HMI.Start" : Bool;
END_VAR
VAR
Zeitwert : Time;
sTPValveMan {InstructionName := 'TP_TIME'; LibVersion := '1.0'} : TP_TIME;
END_VAR
BEGIN
#Zeitwert:=INT_TO_TIME(#Amount*100);
#sTPValveMan(IN:=#"HMI.Start",
PT:=#Zeitwert,
Q=>#QValve);
IF #sTPValveMan.Q THEN
#"HMI.Start" := false;
END_IF;
END_FUNCTION_BLOCK
Du musst nur die Anzahl Deiner Stöße mit der voreingestellten Zeit (hier 100ms) multiplizieren. Wenn man mag kann die 100 auch eine im Panel einstellbare Zeit sein. Dafür dann einfach im Panel auch das hinzufügen als Integer und anstelle der 100 eintragen.