Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
S7 300 CPU Automatischer abgleich der Uhrzeit,Datum u. Wochentag mit dem PC
#24
(11.07.2013, 14:58)therme schrieb:
(01.07.2013, 13:16)mepkub schrieb:
(29.06.2013, 12:46)therme schrieb:
(28.06.2013, 10:52)S.Rings schrieb:
(25.06.2013, 14:52)therme schrieb: Besten Dank für die Antwort.

Das Script funktioniert jetzt super.
Ich möcht noch die Zeit automatisch einmal wöchentlich abgleichen, den Button zum übertragen (sagen wir am Mo 13:00 Uhr) für einen Zyklus betätigt wird.

die Funktion:

Code:
Tag = WeekDay(Now)


gibt Ihnen den Tag als Zahl zurück.

Genauso erhalten sie die aktuelle Stunde mit:

Code:
Stunde= Hour(Now)
Ich möchte den Übertragungsbutton nicht eine Stunde lange betätigen, sondern bei Ergebnis wahr für einen Zyklus (positive Flanke).

Ich gehe davon aus, dass dies nur der Hinweis ist, wie Sie das script selbstständig erweitern können. An Sonsten hätte der Satz lauten müssen: "Kann mir bitte jemand das script schreiben, damit ich durch Betätigen eines Button die Uhrzeit in der SPS aktualisieren kann". Cool

Btw:
- Warum "nur" Montag um 13:00? (muss da eine Abfrage rein dass ausserhalb des Bereiches nicht übertragen werden darf?)
- Warum "nur" manuell? (kann vergessen werden!) 

Ich würde sowas einmalig beim Hochfahren des Systems auslösen oder, bei 24/7 Betrieb automatisch bei Datumswechsel.
Vergleich aktDAY / savedDAY
wenn gleich:
- savedDAY = aktDAY und raus aus script
wenn ungleich:
- Zeit und Datum umwandeln
- übertragen
- savedDAY = aktDAY und raus aus script
Sorry, ich dachte es gibt wie in AWL einen Befehl für positive Flanke.
Unsere Anlage lauft übrigens immer durch.
Ich möchte die SPS nicht unötig belasten und den Automatischen Abgleich nur ienmal pro Woche ausführen.

Hir ein Asschnitt aus meinem Script.
 
'Übertragungsbutton für manuellen Abgleich

Man_Uebertr=VDF.[b]ReadBitB(1,21,8,1)[/b]
If Man_Uebertr=1 Then
Man_Uebertr=0
AbgleichBit=1
End If
 'Automatischer Wochenabgleich

'Hir möchte ich nur bei steigender Flanke das 'AbgleichBit' wahr 'ist .
'Bei diesem Beispiel schreibt das Script eine Minute lang die Daten in die 'CPU.Huh
AbgleichWoTag=[b]VDF.[b]ReadInt(2,40)
[/b]
If AbgleichWoTag=iMinute Then 'Habe hir zum testen die Minuten 'genommen.[/b]
[b]AbgleichBit=1
[b]End If 
[/b][/b]

Bit gesetzt zum übertragen ?

AbgleichBit=1 Then
[b][b][b][i][b][b][b][b]VDF.WriteBitB 2,30,8,8 , BCDJahr
VDF.WriteBitB 2,30,0,8 , BCDMonat
VDF.WriteBitB 2,31,8,8 , BCDTag
VDF.WriteBitB 2,31,0,8 , BCDStunde
VDF.WriteBitB 2,32,8,8 , BCDMinute
VDF.WriteBitB 2,32,0,8 , BCDSekunde
VDF.WriteBitB 2,33,0,8 , BCDWochentag


VDF.WriteBitB 1,19,9,1,1 [i]'Übertragungsbit von Read in Set CLOCK
[/b][/b][/b][/i]
[b][b][i][b][b][b][b][i]End If                                    'wird von SPS ückgesetzt
[/b][/b][/b][/i][/b][/i][/b][/b][/b][/i][/b][/b]
[/b]

Hallo therme,

anbei habe ich Dir meine Flankenauswertung, mit denen ich meine Scripts immer einmalig aufrufe bzw. durchlaufen lasse, kopiert.

Gruß
kirchi_since1996
' ### Startbedingungen ###
'
Start = VDF.ReadBitB (20,41,0,1) ' StartMerker lesen
SpM = VDF.ReadBitB (20,41,1,1) ' SperrMerker lesen
If Start = 0 Then VDF.WriteBitB 20,41,1,1,0 ' SperrMerker zurücksetzen

If SpM = 1 Then Exit Sub
If Start = 0 Then Exit
Sub

###### hier das Script eingügen ######


Call VDF.WriteBitB (20,41,1,1,1) ' SperrMerker setzen
Antworten


Nachrichten in diesem Thema
RE: S7 300 CPU Automatischer abgleich der Uhrzeit,Datum u. Wochentag mit dem PC - von kirchi_since1996 - 12.07.2013, 07:02

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste