Beiträge: 15
Themen: 2
Registriert seit: Jan 2013
Bewertung:
0
Hallo,
ist es möglich die Uhrzeit,Datum und den Wochentag der S7 300 CPU mit dem PC enmal Wöchentlich automatisch abzugleichen.
Datentyp der CPU = Data_and_Time (2*DWord)
Der Lokaldatenpunkt #VISAM_SYN muss vor dem abgleich auf High gesetzt werden.
Ausschnitt des Programms der CPU300 in AWL
U "HIGH" // Hilfsmerker immer HIGH
= #FRG_SYN
//
U #FRG_SYN
U #VISAM_SYN // muss vor dem Abgleich auf High sein
//
UN #FRG_SYN
R #VISAM_SYN
//
UN #SYN
SPB M001
CALL "SET_CLK" SFC0 // Set System Clock
PDT :=#DT_VISAM
RET_VAL :=#TEMP0
R #VISAM_SYN
M001: NOP 0
//
CALL "READ_CLK" SFC1 // Read System Clock
RET_VAL :=#TEMP0
CDT :=#DT_CPU
BEA
Beiträge: 69
Themen: 1
Registriert seit: Jul 2012
Bewertung:
0
Hallo therme,
leider können wir zu dem SPS code keinen Support geben, wir können nur die Funktionsweise innerhalb von Visam beschreiben.
Es gibt in den Projekteigenschaften in der Reiterkarte "Info/Zeit" die Möglichkeit auszuwählen ob die PC Zeit an die SPS oder umgekehrt übertragen werden soll.
Dazu müssen Sie die Markierung auf "VDF >> Remote" oder "Remote >> VDF" setzen.
Es werden dann zwei Datenworte benötigt, wobei das eine Stunde und Minute überträgt, und das andere Wort Tag und Monat. Die Worte sind dabei dann in zwei Byte unterteilt die jeweils Stunde und Minute und im anderen Wort Tag und Monat beinhalten.
Ralph Ringel
Vertrieb / Support
Tel: +49 (0)2631 941288-35
Beiträge: 15
Themen: 2
Registriert seit: Jan 2013
Bewertung:
0
Hallo,
mit dieser Funktion "Info/Zeit" habe ich das Problem, dass das erste Byte beim Datentyp Date_and_Time, das Jahr ist, das gleiche Problem habe ich mit Stunden_Minuten Wort.
Gibt es eine Möglichkeit ein Wort zu senden das mit dem Zwieten Byte anfängt?
Der Datentyp Date_and_Time
Bytes Inhalt
0 Jahr
1 Monat
2 Tag
3 Stunden
4 Minuten
5 Sekunden
Beiträge: 103
Themen: 0
Registriert seit: Jul 2012
Bewertung:
0
Hallo therme,
anbei ein Beispielprojekt wo 2 Bytes von verschiedenen Quellen (Jahr&Monat) in ein neues Wort zusammengefügt werden.
Datum_uhrzeit_schreiben.zip (Größe: 37,38 KB / Downloads: 7)
(13.01.2013, 00:33)therme schrieb: Hallo,
mit dieser Funktion "Info/Zeit" habe ich das Problem, dass das erste Byte beim Datentyp Date_and_Time, das Jahr ist, das gleiche Problem habe ich mit Stunden_Minuten Wort.
Gibt es eine Möglichkeit ein Wort zu senden das mit dem Zwieten Byte anfängt?
Der Datentyp Date_and_Time
Bytes Inhalt
0 Jahr
1 Monat
2 Tag
3 Stunden
4 Minuten
5 Sekunden
Beiträge: 15
Themen: 2
Registriert seit: Jan 2013
Bewertung:
0
Das ist schon mal super!
Wie kann man hier noch den Wochentag hinzufügen der im Datentyp Date_and_Time in Byt 7 in den letzten 4 Bites (LSB 4) liegen.
Beiträge: 103
Themen: 0
Registriert seit: Jul 2012
Bewertung:
0
(24.03.2013, 21:39)therme schrieb: Das ist schon mal super!
Wie kann man hier noch den Wochentag hinzufügen der im Datentyp Date_and_Time in Byt 7 in den letzten 4 Bites (LSB 4) liegen.
Die Script-Funktion
VDF.WriteBitb Gruppe,PV,Offset,BitAnzahl,Wert
kann sowas.
Für Wert geben Sie den Wochentag an, BitAnzahl=4 ,
Offset ist der BitOffset .
Beiträge: 15
Themen: 2
Registriert seit: Jan 2013
Bewertung:
0
(25.03.2013, 13:32)S.Rings schrieb: (24.03.2013, 21:39)therme schrieb: Das ist schon mal super!
Wie kann man hier noch den Wochentag hinzufügen der im Datentyp Date_and_Time in Byt 7 in den letzten 4 Bites (LSB 4) liegen.
Die Script-Funktion
VDF.WriteBitb Gruppe,PV,Offset,BitAnzahl,Wert
kann sowas.
Für Wert geben Sie den Wochentag an, BitAnzahl=4 ,
Offset ist der BitOffset .
Ok,
bei diesem Script "Datum_uhzeit_schreiben"wo, Jahr, Monat, Tag, Stunden, Minuten, Sekunden, automatisch von der PC Uhr gelesen, und dann mit den Übertragungsbutten an die CPU übertragen werden.
Ist es möglich das Script zu erweitern und den Wochentag aus dem PC herauszulesen und mit zu übertragen?
Wochentag vom Datentyp "DATE_AND_TIME" Byt 7 (4 LSB) 1= Sonntag
Beiträge: 103
Themen: 0
Registriert seit: Jul 2012
Bewertung:
0
(28.03.2013, 23:13)therme schrieb: (25.03.2013, 13:32)S.Rings schrieb: (24.03.2013, 21:39)therme schrieb: Das ist schon mal super!
Wie kann man hier noch den Wochentag hinzufügen der im Datentyp Date_and_Time in Byt 7 in den letzten 4 Bites (LSB 4) liegen.
Die Script-Funktion
VDF.WriteBitb Gruppe,PV,Offset,BitAnzahl,Wert
kann sowas.
Für Wert geben Sie den Wochentag an, BitAnzahl=4 ,
Offset ist der BitOffset .
Ok,
bei diesem Script "Datum_uhzeit_schreiben"wo, Jahr, Monat, Tag, Stunden, Minuten, Sekunden, automatisch von der PC Uhr gelesen, und dann mit den Übertragungsbutten an die CPU übertragen werden.
Ist es möglich das Script zu erweitern und den Wochentag aus dem PC herauszulesen und mit zu übertragen?
Wochentag vom Datentyp "DATE_AND_TIME" Byt 7 (4 LSB) 1= Sonntag
Wochentag = Weekday(now) 'ermittelt den Wochentag als Zahl
Beiträge: 15
Themen: 2
Registriert seit: Jan 2013
Bewertung:
0
Hallo S.Rings,
die S7 benötige 'DATE_AND_TIME' in BCD (Binär Codierte Dezimalzahl) oder Hex müsste auch gehen.
Wie kann man einen Integer(wenn möglich Byt weise) in BCD oder Hex Wandeln?
Beiträge: 103
Themen: 0
Registriert seit: Jul 2012
Bewertung:
0
(17.05.2013, 19:59)therme schrieb: Hallo S.Rings,
die S7 benötige 'DATE_AND_TIME' in BCD (Binär Codierte Dezimalzahl) oder Hex müsste auch gehen.
Wie kann man einen Integer(wenn möglich Byt weise) in BCD oder Hex Wandeln?
Werte nach HEX wandeln ist einfach, denn die Hexadezimale Darstellung ist als Variablentyp ja ein String :
ScriptCode schrieb:HString=""
HString=Hex(Wert)
zurück von Hex nach Integer geht es mit:
ScriptCode schrieb:Wert=val("&H" + HString)
um Werte Binär zu bearbeiten (also einzelne Bits aus einem Byte verarbeitet)
kann man auch die Funktionen vdf.readbin() und vdf.Writebin verwenden.
Wenn man das ganze denn auf 4 Stellen beschränkt hat man schon eine
einzelne BCD-Zahl.
vdf.ReadBin liefert eine String zurück:
So ist zum Bsp die Zahl
Dezimal= 17
in Hex= 11
und in Binär= 10001
Anderes Beispiel:
entsprechend die Zahl BCD = 98
Binär = 1001 1000
Dezimal = 152
Hex = 98 'und das ist genau die BCD Zahl !
siehe auch:
http://de.wikipedia.org/wiki/BCD-Code
|