(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).
01.07.2013, 13:16 (Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2013, 13:18 von mepkub.)
(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".
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
(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".
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.
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]
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]
(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".
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.
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]
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.
17.07.2013, 08:58 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2013, 09:03 von mepkub.)
bei der Version
Vergleich aktVAR / savedVAR wenn gleich: - optional savedVAR = aktVAR - raus aus script wenn ungleich: - Code verarbeiten - savedVAR = aktVAR - raus aus script
wird der Code, egal ob in AWL, VBA oder sonst einer Programmiersprache immer nur ein einziges Mal durchlaufen
erster Durchlauf: aktuelles Datum ist 15.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 15.07.2013) ?
Ja => raus
zweitert Durchlauf: aktuelles Datum ist 15.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 15.07.2013) ?
Ja => raus
.......
x-ter Durchlauf: aktuelles Datum hat irgendwann gewechselt und ist 16.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 16.07.2013) ?
Nein => weiter
Code
Code
Code
Anweisung saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 16.07.2013) >> saved_Date (Inhalt = 16.07.2013)
=> und raus
x-plus1-ter Durchlauf: aktuelles Datum ist 16.07.2013
Abfrage saved_Date (Inhalt = 16.07.2013) = akt_Date (Inhalt = 16.07.2013) ?
Ja => raus
Ergebnis: ein einziger Durchlauf pro Tag bei Änderung des Tages
>> ebenfalls möglich mit Stunden oder Minuten oder Sekundenänderung: immer nur ein einziger Durchlauf
Das Skript kann, wenn nicht kontinuierlich gewünscht, von jeder beliebigen Bedingung gestartet werden: Hochfahren, Timer, Ereignis, manuell, ......
19.07.2013, 18:00 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2013, 18:38 von therme.)
(17.07.2013, 08:58)mepkub schrieb: bei der Version
Vergleich aktVAR / savedVAR wenn gleich: - optional savedVAR = aktVAR - raus aus script wenn ungleich: - Code verarbeiten - savedVAR = aktVAR - raus aus script
wird der Code, egal ob in AWL, VBA oder sonst einer Programmiersprache immer nur ein einziges Mal durchlaufen
erster Durchlauf: aktuelles Datum ist 15.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 15.07.2013) ?
Ja => raus
zweitert Durchlauf: aktuelles Datum ist 15.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 15.07.2013) ?
Ja => raus
.......
x-ter Durchlauf: aktuelles Datum hat irgendwann gewechselt und ist 16.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 16.07.2013) ?
Nein => weiter
Code
Code
Code
Anweisung saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 16.07.2013) >> saved_Date (Inhalt = 16.07.2013)
=> und raus
x-plus1-ter Durchlauf: aktuelles Datum ist 16.07.2013
Abfrage saved_Date (Inhalt = 16.07.2013) = akt_Date (Inhalt = 16.07.2013) ?
Ja => raus
Ergebnis: ein einziger Durchlauf pro Tag bei Änderung des Tages
>> ebenfalls möglich mit Stunden oder Minuten oder Sekundenänderung: immer nur ein einziger Durchlauf
Das Skript kann, wenn nicht kontinuierlich gewünscht, von jeder beliebigen Bedingung gestartet werden: Hochfahren, Timer, Ereignis, manuell, ......
(17.07.2013, 08:58)mepkub schrieb: bei der Version
Vergleich aktVAR / savedVAR wenn gleich: - optional savedVAR = aktVAR - raus aus script wenn ungleich: - Code verarbeiten - savedVAR = aktVAR - raus aus script
wird der Code, egal ob in AWL, VBA oder sonst einer Programmiersprache immer nur ein einziges Mal durchlaufen
erster Durchlauf: aktuelles Datum ist 15.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 15.07.2013) ?
Ja => raus
zweitert Durchlauf: aktuelles Datum ist 15.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 15.07.2013) ?
Ja => raus
.......
x-ter Durchlauf: aktuelles Datum hat irgendwann gewechselt und ist 16.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 16.07.2013) ?
Nein => weiter
Code
Code
Code
Anweisung saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 16.07.2013) >> saved_Date (Inhalt = 16.07.2013)
=> und raus
x-plus1-ter Durchlauf: aktuelles Datum ist 16.07.2013
Abfrage saved_Date (Inhalt = 16.07.2013) = akt_Date (Inhalt = 16.07.2013) ?
Ja => raus
Ergebnis: ein einziger Durchlauf pro Tag bei Änderung des Tages
>> ebenfalls möglich mit Stunden oder Minuten oder Sekundenänderung: immer nur ein einziger Durchlauf
Das Skript kann, wenn nicht kontinuierlich gewünscht, von jeder beliebigen Bedingung gestartet werden: Hochfahren, Timer, Ereignis, manuell, ......
hab' ich was verpasst oder warum wurde der Beitrag nur mal so zitiert?
War mein Hinweis hilfreich?
die "Antwort" ungewollt?
Überflüssig?
22.07.2013, 10:57 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2013, 11:03 von therme.)
(21.07.2013, 00:32)mepkub schrieb:
(19.07.2013, 18:00)therme schrieb:
(17.07.2013, 08:58)mepkub schrieb: bei der Version
Vergleich aktVAR / savedVAR wenn gleich: - optional savedVAR = aktVAR - raus aus script wenn ungleich: - Code verarbeiten - savedVAR = aktVAR - raus aus script
wird der Code, egal ob in AWL, VBA oder sonst einer Programmiersprache immer nur ein einziges Mal durchlaufen
erster Durchlauf: aktuelles Datum ist 15.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 15.07.2013) ?
Ja => raus
zweitert Durchlauf: aktuelles Datum ist 15.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 15.07.2013) ?
Ja => raus
.......
x-ter Durchlauf: aktuelles Datum hat irgendwann gewechselt und ist 16.07.2013
Abfrage saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 16.07.2013) ?
Nein => weiter
Code
Code
Code
Anweisung saved_Date (Inhalt = 15.07.2013) = akt_Date (Inhalt = 16.07.2013) >> saved_Date (Inhalt = 16.07.2013)
=> und raus
x-plus1-ter Durchlauf: aktuelles Datum ist 16.07.2013
Abfrage saved_Date (Inhalt = 16.07.2013) = akt_Date (Inhalt = 16.07.2013) ?
Ja => raus
Ergebnis: ein einziger Durchlauf pro Tag bei Änderung des Tages
>> ebenfalls möglich mit Stunden oder Minuten oder Sekundenänderung: immer nur ein einziger Durchlauf
Das Skript kann, wenn nicht kontinuierlich gewünscht, von jeder beliebigen Bedingung gestartet werden: Hochfahren, Timer, Ereignis, manuell, ......
Yuhu, das Script funktioniert super.
Besten Dank an das Visam Team!
Vielleicht ist es auch für andere Visam-Nutzer interessant.