Read_clk ergebniss in DB1 verschieben

siqo

Level-1
Beiträge
79
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ich versuche die ganze zeit schon vom FC1 welches die Zeit auslesen soll, dessen ausgelesene Zeit und Datum in DB1 zu verschieben was aber nicht klappt-.-
würde mich über eure hilfe freuen :)

mfg
 
Vielleicht so?
Code:
  CALL  "UHRZEIT_LESEN"             //Uhrzeit aus AG lesen
       RET_VAL:=#_Fehler_AG_Uhr_Auslesen
       CDT    :=#_OUT_UHRZEIT_DATUM  //Liegt im Lokaldatenbereich
      L     P##_OUT_UHRZEIT_DATUM
      LAR1  
      L     LB [AR1,P#0.0]              // Jahr
      T     #T_act.Jahr
      BTI   
      T     #T_act_binaer.Jahr
      L     LB [AR1,P#1.0]              // Monat
      T     #T_act.Monat
      BTI   
      T     #T_act_binaer.Monat
      L     LB [AR1,P#2.0]              // Tag
      T     #T_act.Tag
      BTI   
      T     #T_act_binaer.Tag
      L     LB [AR1,P#3.0]              // Stunde
      T     #T_act.Stunde
      BTI   
      T     #T_act_binaer.Stunde
      L     LB [AR1,P#4.0]              // Minute
      T     #T_act.Minute
      BTI   
      T     #T_act_binaer.Minute
      L     LB [AR1,P#5.0]              // Sekunde
      T     #T_act.Sekunde
      BTI   
      T     #T_act_binaer.Sekunde
      L     LB [AR1,P#7.0]              // Wochentag
      L     2#1111
      UW                                // (ms ausblenden)
      T     #T_act.Wochentag
      BTI   
      T     #T_act_binaer.Wochentag
Transferieren mußt du halt noch in deinen DB,aber das sollte kein Problem sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Code:
CALL  SFC    1
RET_VAL:=MW162
CDT    :="OP_SYS".SPS_DATE_TIME"

Im DB1 eine Variable vom Typ DATE_AND_TIME anlegen.

DB1:

"SPS_DATE_TIME" = TYPE DATE_AND_TIME (DT#90-1-1-0:0:0.0000)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So habe ich es auch ungefähr gemacht...
habe es nur DB1_CDT genannt jedoch kommen keine infos rein vom fc1.
Mir wurde ebenso gesagt das datum und die zeit nicht ginge aufgrund von 8mb und man könne nur 4 mb oder so....

Bei mir sieht es so aus:

___________________
| Read_clk |
| ret_val | - DB1.DBW1
| |
| CDT |- DB1_CDT
|___________________


DB1:

Adresse Name Typ
0.0 DB_VAR Daten and Time
8.0 DB1_CDT Date and Time
 
Zuletzt bearbeitet:
Der Reihe nach,


Ob1 ruft FC1 auf.
Im FC1 wird "READ_CLK" aufgerufen.
Read_clk ---->schreibt das Datum und die Uhrzeit in den DB1.xxx (Date_And_Time)

Alles (OB1,FC1,DB1) sind in die CPU geladen und in RUN (alles schön grün an der SPS)

Jetzt sollte im DB1 bei Online-Ansicht diie CPU Datum/Uhrzeit angezeigt werden

8Mb ??? 4Mb ??? und oder so ????
 
... aufgrund von 8mb und man könne nur 4 mb oder so....
So heißt es auf Programmiererdeutsch:
Format des Datentyps DATE_AND_TIME (Datum und Uhrzeit)



Wenn Sie Datum und Uhrzeit mit dem Datentyp DATE_AND_TIME (DT) eingeben, werden Ihre Eingaben im BCD-Format in 8 Bytes gespeichert. Der Datentyp DATE_AND_TIME umfasst den folgenden Bereich:
      • DT#1990-1-1-0:0:0.0 bis DT#2089-12-31-23:59:59.999
Die folgenden Beispiele zeigen die Syntax, mit der Sie das Datum und die Uhrzeit für Donnerstag, den 25. Dezember 1993, 8:12 Uhr und 34,567 Sekunden eingeben. Die folgenden beiden Formate sind möglich:
  • <LI style="FONT-SIZE: 10pt">DATE_AND_TIME#1993-12-25-8:12:34.567
  • DT#1993-12-25-8:12:34.567
In nachfolgender Tabelle ist der Inhalt der Bytes aufgeführt, die die Information zu Datum und Uhrzeit enthalten. Das Beispiel zeigt Datum und Uhrzeit für Donnerstag, den 25. Dezember 1993, 8:12 Uhr und 34,567 Sekunden.

Byte Inhalt Beispiel
0 Jahr B#16#93
1 Monat B#16#12
2 Tag B#16#25
3 Stunde B#16#08
4 Minute B#16#12
5 Sekunde B#16#34
6 Die beiden höchstwertigen Ziffern von MSEC B#16#56
7 Die niederwertige Ziffer von MSEC B#16#7_
7
Wochentag
1 = Sonntag
2 = Montag
...
7 = Samstag B#16#_5

Gruß Approx
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hatte vergesen gehabt den FC1 zu callen :(

aber es fluppt immer noch nicht....


CALL "READ_CLK"
RET_VAL:=DB1.DBW1
CDT :=#TEMP0 <- habe DB1_CDT geschrieben; wurd überschrieben
NOP 0
 
Code:
CALL "READ_CLK"
 RET_VAL:=DB1.DBW1
 CDT :=#TEMP0 <- habe DB1_CDT geschrieben; wurd überschrieben
 NOP 0

Die Variable DB1_CDT ist im DB1 eingetragen und hat den Typ "Date_And_Time" ?
 
Hatte vergesen gehabt den FC1 zu callen :(

aber es fluppt immer noch nicht....


CALL "READ_CLK"
RET_VAL:=DB1.DBW1
CDT :=#TEMP0 <- habe DB1_CDT geschrieben; wurd überschrieben
NOP 0
Also RET_VAL:=DB1.DBW1 ist doch schon mal falsch, nimm hier wenn DBW10 ( auch im DB anlegen)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja hat es ....
der Fehler lag darin das ich nicht DB1.DB_CDT geschrieben habe -.-
ok das wäre geschafft hätte noch eine frage,die wäre:

will nun wegen sommerzeit und winterzeit mit vergleichern arbeiten ...
Dazu muss ich von DT typ zum INT typ kommen wie mache ich das???
 
Zuletzt bearbeitet:
Siehe Beitrag #8 von Approx!
z.B.
L DB1.DBB0 //Byte mit inhalt Aktuelles Jahr in BCD
BTI
T #Aktuelles_Jahr_INT
...
 
Zurück
Oben