TIA TIA Portal V12 SCL Datum Uhrzeit Kombinieren

steffen21m

Level-1
Beiträge
71
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes Forum,
ich habe einen DB, in dem 180 Starttage (Format Date) und 180 Startzeiten (Format Time Of Day liegen). Der DB hat keinen optimierten Bausteinzugriff, da die Daten von einem externen Programm abgelegt werden.
Struktur:
DB.DBW 0 - DBW 358 180 Starttage (Format Date)
DB.DBD360 - DBD 1076 180 Startzeiten (Format Time of Day)

Die Zeiten sollen mit T_Combine in DTL gewandelt und in einem anderen Datenbaustein abgelegt werden.

Ich würde gerne SCL mit einer kleinen Schleife nutzen, kriege aber den Code nicht hin.

Kann mir vielleicht jemand eine kleine Hilfestellung geben ?

Danke

Gruß Steffen
 
Hallo nochmal,
ich möchte keine Endlösung von euch. Deswegen mal gezieltere Fragen:

Wenn ich in SCL Datenbausteinzellen (z.B Integerwerte) hochzählen möchte darf dann der Bausteinzugriff optimiert sein, oder kann ich auch Tags hochzählen (z.B Wert 1, Wert 2, Wert(i)).
Wie kann ich die Zellen in SCL ansprechen DB20.DBW(i) ??

Danke
Gruß Steffen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum denn schon wieder mit Absolutadressen rumfrickeln?

Die Daten als Array ablegen, und alles wird gut und einfach.

Die Datenablage im DB:
Code:
DATA_BLOCK "Zeitdaten"
   STRUCT 
      Datum : array[1..180] of Date;
      Zeit : array[1..180] of Time_Of_Day;
      DatumUndZeit : array[1..180] of  DTL;
   END_STRUCT;
BEGIN
END_DATA_BLOCK

Und dann eine Funktion welche die Zeiten zusammensetzt:
Code:
FUNCTION "DatumZeitKombinieren" : Void
   VAR_INPUT 
      Datum : array[1..180] of Date;
      Zeit : array[1..180] of Time_Of_Day;
   END_VAR

   VAR_OUTPUT 
      DatumUndZeit : array[1..180] of DTL;
   END_VAR

   VAR_TEMP 
      i : Int;
   END_VAR
BEGIN
  FOR #i := 1 TO 180 DO
    #DatumUndZeit[#i] := CONCAT_DATE_TOD(IN1:=#Datum[#i], IN2:=#Zeit[#i]);
  END_FOR;
END_FUNCTION
 
Zurück
Oben