-> Hier kostenlos registrieren
Hallo zusammen,
ich hänge gerade an einem für euch sicher klitzekleinen Problem:
Ich lese mit der Funktion SFC1 die Systemuhr einer S7-313C aus und schiebe das Ergebniss in einen Datenbaustein.
Den Aufbau der Variable im Format Date and Time verstehe ich.
Mein Problem besteht nun darin das ich das Datum, welches ja im BCD Format vorliegt in einem Byte ausgeben muss. Also ich meine für jede Ziffer soll ein Byte stehen.
Damit z.B. 110208 so aussieht:
DB1.DBB0 8
DB1.DBB1 0
DB1.DBB2 2
DB1.DBB3 0
DB1.DBB4 1
DB1.DBB5 1
Das ganze will ich später über eine OPC Verbindung an einen PC übergeben.
Über BTI kann ich das das erste Byte von Date an Time, welches die Jahreszahl enthält in ein Integer wandeln.
Das ist soweit ganz gut.
Aber leider steht in diesem Byte dann die ganze Jahreszahl 8 (ohne 0 vorne dran !!) und beim Jahr 2011 steht dann da 11.
Mein Problem ist nun wie bekomme ich den Wert aus diesem Byte gesplittet, so das in einem Byte 0 steht und im anderen 8.
Ich hoffe ihr versteht was ich meine und könnt mir helfen, die Hilfefunktion hats nicht wirklich gebracht.
Vielen Dank
smartie
ich hänge gerade an einem für euch sicher klitzekleinen Problem:
Ich lese mit der Funktion SFC1 die Systemuhr einer S7-313C aus und schiebe das Ergebniss in einen Datenbaustein.
Den Aufbau der Variable im Format Date and Time verstehe ich.
Mein Problem besteht nun darin das ich das Datum, welches ja im BCD Format vorliegt in einem Byte ausgeben muss. Also ich meine für jede Ziffer soll ein Byte stehen.
Damit z.B. 110208 so aussieht:
DB1.DBB0 8
DB1.DBB1 0
DB1.DBB2 2
DB1.DBB3 0
DB1.DBB4 1
DB1.DBB5 1
Das ganze will ich später über eine OPC Verbindung an einen PC übergeben.
Über BTI kann ich das das erste Byte von Date an Time, welches die Jahreszahl enthält in ein Integer wandeln.
Das ist soweit ganz gut.
Aber leider steht in diesem Byte dann die ganze Jahreszahl 8 (ohne 0 vorne dran !!) und beim Jahr 2011 steht dann da 11.
Mein Problem ist nun wie bekomme ich den Wert aus diesem Byte gesplittet, so das in einem Byte 0 steht und im anderen 8.
Ich hoffe ihr versteht was ich meine und könnt mir helfen, die Hilfefunktion hats nicht wirklich gebracht.
Vielen Dank
smartie