SPSneuling2013
Level-1
- Beiträge
- 2
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zuasmmen,
Vorweg, ich bin wirklich ein absoluter Neuling in Sachen SPS-Programmierung. D.h. ich wäre für ausführliche oder gut kommentierte Hilfen sehr dankbar.
Ich benötige Hilfe bei meiner Programmierung. Ich möchte, dass sobald der Eingang "Signal" eingeschaltet ist (DI), die aktuelle Uhrzeit abgefragt und dann in 2 weiteren Variablen die aktuelle Uhrzeit+2 und aktuelle Uhrzeit+5 Minuten abgelegt wird. Diese Uhrzeiten werden dann mit der aktuellen Uhrzeit verglichen und entsprechend die Ausgänge (DO) geschaltet.
Bisher war meine Idee aus der aktuellen Uhrzeit die Minuten zu extrahieren, diese zu erhöhen und dann die Minutenwerte mit der aktuellen Uhrzeit zu vergleichen. Ich bin mir allerdings schon nicht sicher, ob die Minutenwerte sich mit jedem Zyklus erhöhen, d.h. es wird scheinbar immer nur Schritt 1 ausgeführt.
Das ist mein bisheriger Programmcode:
IF "Signal"=1 THEN
IF #Minute<"Aktp2" THEN
IF (#Minute>"Aktp2")AND(#Minute<"Aktp5") THEN
Mir ist bewusst, dass sich bei IF-Bedingungen einigen die Haare sträuben werden, aber für meine ersten Versuche würde ich gerne dabei bleiben. Entscheidend sind die Zuweisungen der Werte. Die Werte für die aktuelle Uhrzeit kommen aus dem DB "DateTime" und sind vom Datentyp DTL
Ich besitze eine S7-1500 und programmiere in TIA V12 mit SCL.
Vorweg, ich bin wirklich ein absoluter Neuling in Sachen SPS-Programmierung. D.h. ich wäre für ausführliche oder gut kommentierte Hilfen sehr dankbar.
Ich benötige Hilfe bei meiner Programmierung. Ich möchte, dass sobald der Eingang "Signal" eingeschaltet ist (DI), die aktuelle Uhrzeit abgefragt und dann in 2 weiteren Variablen die aktuelle Uhrzeit+2 und aktuelle Uhrzeit+5 Minuten abgelegt wird. Diese Uhrzeiten werden dann mit der aktuellen Uhrzeit verglichen und entsprechend die Ausgänge (DO) geschaltet.
Bisher war meine Idee aus der aktuellen Uhrzeit die Minuten zu extrahieren, diese zu erhöhen und dann die Minutenwerte mit der aktuellen Uhrzeit zu vergleichen. Ich bin mir allerdings schon nicht sicher, ob die Minutenwerte sich mit jedem Zyklus erhöhen, d.h. es wird scheinbar immer nur Schritt 1 ausgeführt.
Das ist mein bisheriger Programmcode:
IF "Signal"=1 THEN
#Minute:=#DateTime.MINUTE;
"Aktp2":=#Minute+2;
"Aktp5":=#Minute+5;
END_IF;"Aktp2":=#Minute+2;
"Aktp5":=#Minute+5;
IF #Minute<"Aktp2" THEN
"DO 2":=1;
"DO 1":=0;
END_IF;"DO 1":=0;
IF (#Minute>"Aktp2")AND(#Minute<"Aktp5") THEN
"DO 2":=0;
"DO 1":=1;
END_IF;"DO 1":=1;
Mir ist bewusst, dass sich bei IF-Bedingungen einigen die Haare sträuben werden, aber für meine ersten Versuche würde ich gerne dabei bleiben. Entscheidend sind die Zuweisungen der Werte. Die Werte für die aktuelle Uhrzeit kommen aus dem DB "DateTime" und sind vom Datentyp DTL
Ich besitze eine S7-1500 und programmiere in TIA V12 mit SCL.