Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: Log-String zusammensetzen

  1. #1
    Registriert seit
    27.09.2008
    Beiträge
    201
    Danke
    21
    Erhielt 11 Danke für 10 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin allerseits.

    Wie lässt sich der folgende Code eleganter/ schlanker/ performanenter/ verschachtelter gestalten?

    Die Kanäle 15,16, 21-27, 31,32 gibt es aktuell nicht

    Diese sollen aktuell nur mit Platzhaltern aufgefüllt werden, um bereits die Plätze zu reservieren.


    Momentan sind sie per Deklaration mit '99.99' gefüllt.



    Deklaration:
    PROGRAM Log_String_01
    VAR
    Zeits:STRING;

    Log_01_02: STRING;
    Log_03_04: STRING;
    Log_05_06: STRING;
    Log_07_08: STRING;
    Log_09_10: STRING;
    Log_11_12: STRING;
    Log_13_14: STRING;
    Log_15_16: STRING;
    Log_17_18: STRING;
    Log_19_20: STRING;
    Log_21_22: STRING;
    Log_23_24: STRING;
    Log_25_26: STRING;
    Log_27_28: STRING;
    Log_29_30: STRING;
    Log_31_32: STRING;


    Log_01_04: STRING;
    Log_05_08: STRING;
    Log_09_12: STRING;
    Log_13_16: STRING;
    Log_17_20: STRING;
    Log_21_24: STRING;
    Log_25_28: STRING;
    Log_29_32: STRING;


    Log_01_08: STRING;
    Log_09_16: STRING;
    Log_17_24: STRING;
    Log_25_32: STRING;


    Log_01_16: STRING;
    Log_17_32: STRING;

    Log_01_32: STRING;

    P_28_29: STRING;
    P_28_30: STRING;
    RealString: STRING;

    Timestamps:STRING;

    LogString:STRING;
    Anweisungsteil:
    Timestamps:=CONCAT(DT_TO_STRING(Echtzeit), ';');


    Kanal_01:=
    CONCAT(Messungen.Mess_01.ME_TEMP_STRING, ';');
    Kanal_02:=
    CONCAT(Messungen.Mess_02.ME_TEMP_STRING, ';');
    Kanal_03:=
    CONCAT(Messungen.Mess_03.ME_TEMP_STRING, ';');
    Kanal_04:=
    CONCAT(Messungen.Mess_04.ME_TEMP_STRING, ';');
    Kanal_05:=
    CONCAT(Messungen.Mess_05.ME_TEMP_STRING, ';');
    Kanal_06:=
    CONCAT(Messungen.Mess_06.ME_TEMP_STRING, ';');
    Kanal_07:=
    CONCAT(Messungen.Mess_07.ME_TEMP_STRING, ';');
    Kanal_08:=
    CONCAT(Messungen.Mess_08.ME_TEMP_STRING, ';');
    Kanal_09:=
    CONCAT(Messungen.Mess_09.ME_TEMP_STRING, ';');
    Kanal_10:=
    CONCAT(Messungen.Mess_10.ME_TEMP_STRING, ';');
    Kanal_11:=
    CONCAT(Messungen.Mess_11.ME_TEMP_STRING, ';');
    Kanal_12:=
    CONCAT(Messungen.Mess_12.ME_TEMP_STRING, ';');
    Kanal_13:=
    CONCAT(Messungen.Mess_13.ME_TEMP_STRING, ';');
    Kanal_14:=
    CONCAT(Messungen.Mess_14.ME_TEMP_STRING, ';');
    Kanal_15:=
    CONCAT(Kanal_15, ';');
    Kanal_16:=
    CONCAT(Kanal_16, ';');
    Kanal_17:=
    CONCAT(Messungen.Mess_17.ME_TEMP_STRING, ';');
    Kanal_18:=
    CONCAT(Messungen.Mess_18.ME_TEMP_STRING, ';');
    Kanal_19:=
    CONCAT(Messungen.Mess_19.ME_TEMP_STRING, ';');
    Kanal_20:=
    CONCAT(Messungen.Mess_20.ME_TEMP_STRING, ';');


    Kanal_21:=
    CONCAT(Kanal_21, ';');
    Kanal_22:=
    CONCAT(Kanal_22, ';');
    Kanal_23:=
    CONCAT(Kanal_23, ';');
    Kanal_24:=
    CONCAT(Kanal_24, ';');
    Kanal_25:=
    CONCAT(Kanal_25, ';');
    Kanal_26:=
    CONCAT(Kanal_26, ';');
    Kanal_27:=
    CONCAT(Kanal_27, ';');



    Kanal_28:=
    CONCAT(Messungen.Mess_28.ME_TEMP_STRING, ';');
    Kanal_29:=
    CONCAT(Messungen.Mess_29.ME_TEMP_STRING, ';');
    Kanal_30:=
    CONCAT(Messungen.Mess_30.ME_TEMP_STRING, ';');

    Kanal_31:=
    CONCAT(Kanal_31, ';');
    Kanal_32:=
    CONCAT(Kanal_32, ';');

    Kanal_28a:=
    CONCAT(Messungen.Mess_28.ME_Druck_STRING, ';');
    Kanal_29a:=
    CONCAT(Messungen.Mess_28.ME_Druck_STRING, ';');
    Kanal_30a:=
    CONCAT(Messungen.Mess_28.ME_Druck_STRING, ';');

    Log_01_02:=CONCAT(Kanal_01,Kanal_02);
    Log_03_04:=CONCAT(Kanal_03,Kanal_04);
    Log_05_06:=CONCAT(Kanal_05,Kanal_06);
    Log_07_08:=CONCAT(Kanal_07,Kanal_0;
    Log_09_10:=CONCAT(Kanal_09,Kanal_10);
    Log_11_12:=CONCAT(Kanal_11,Kanal_12);
    Log_13_14:=CONCAT(Kanal_13,Kanal_14);
    Log_15_16:=CONCAT(Kanal_15,Kanal_16);
    Log_17_18:=CONCAT(Kanal_17,Kanal_1;
    Log_19_20:=CONCAT(Kanal_19,Kanal_20);
    Log_21_22:=CONCAT(Kanal_21,Kanal_22);
    Log_23_24:=CONCAT(Kanal_23,Kanal_24);
    Log_25_26:=CONCAT(Kanal_25,Kanal_26);
    Log_27_28:=CONCAT(Kanal_27,Kanal_2;
    Log_29_30:=CONCAT(Kanal_29,Kanal_30);
    Log_31_32:=CONCAT(Kanal_31,Kanal_32);

    Log_01_04:=CONCAT(Log_01_02,Log_03_04);
    Log_05_08:=CONCAT(Log_05_06,Log_07_0;
    Log_09_12:=CONCAT(Log_09_10,Log_11_12);
    Log_13_16:=CONCAT(Log_13_14,Log_15_16);
    Log_17_20:=CONCAT(Log_17_18,Log_19_20);
    Log_21_24:=CONCAT(Log_21_22,Log_23_24);
    Log_25_28:=CONCAT(Log_25_26,Log_27_2;
    Log_29_32:=CONCAT(Log_29_30,Log_31_32);

    Log_01_08:=CONCAT(Log_01_04,Log_05_0;
    Log_09_16:=CONCAT(Log_09_12,Log_13_16);
    Log_17_24:=CONCAT(Log_17_20,Log_21_24);
    Log_25_32:=CONCAT(Log_25_28,Log_29_32);

    Log_01_16:=CONCAT(Log_01_08,Log_09_16);
    Log_17_32:=CONCAT(Log_17_24,Log_25_32);

    Log_01_32:=CONCAT(Log_01_16,Log_17_32);

    P_28_29:=CONCAT(Kanal_28a,Kanal_29a);


    P_28_30:=CONCAT(P_28_29, Kanal_30a);


    RealString:=CONCAT(Log_01_32,P_28_30);




    Logstring:=CONCAT(Timestamps,Realstring);
    Gruss

    McNugget
    Zitieren Zitieren Log-String zusammensetzen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    du könntest für die Kanäle auch ein ARRAY of STRING nehmen. Wenn du diese dann alle zu einem Gesamt-String zusammensetzen willst, dann könnte das auch so aussehen :
    Code:
    hString := '' ;
    for i := 1 to 32 by 1 do
       hString := concat(hString , Kanal[i]) ;
    end_for ;
    Gruß
    LL

  3. #3
    McNugget ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.09.2008
    Beiträge
    201
    Danke
    21
    Erhielt 11 Danke für 10 Beiträge

    Standard

    Danke.

    Das probiere ich mal.

    Und wie setze ich hinter jeden Wert ein ";"?

    Dann kann ich es besser in Excel sparieren.


    nachtrag: Hab´s probiert.

    CoDeSys will hier eine Deklaration für "Kanal". die kann ich aber ja nicht geben, da sich der Kanalname aus dem Hochzählen des Array ergibt, oder?

    Also
    for i := 1 to 32 by 1 do
    ergäbe dann
    , Kanal[i]) ;
    Kanal[1]
    Kanal[2]
    usw.

    Kann ich es auch hinbekommen, dass er
    Kanal_01
    bis Kanal_32
    zählt??



    AARGH.... Arrays hassen mich..... Und langsam hasse ich sie auch..... Wann werde ich sie endlich begreifen?
    Geändert von McNugget (03.12.2009 um 10:21 Uhr)
    Gruss

    McNugget

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    vielleicht so :
    Code:
    hString := '' ;
    for i := 1 to 32 by 1 do
       hString := concat(hString , Kanal[i]) ;
       hString := concat(hString , ';') ;
    end_for ;

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von McNugget Beitrag anzeigen
    CoDeSys will hier eine Deklaration für "Kanal". die kann ich aber ja nicht geben, da sich der Kanalname aus dem Hochzählen des Array ergibt, oder?

    ...

    Kann ich es auch hinbekommen, dass er
    Kanal_01
    bis Kanal_32
    zählt??
    Das verstehe ich im Augenblick nicht ...
    du mußt natürlich deine Kanäle als ARRAY deklarieren - also statt :
    Code:
    Kanal_01 : string [32] ;
    Kanal_02 : string [32] ;
    Kanal_03 : string [32] ;
    Kanal_04 : string [32] ;
    ...
    mußt du es so machen :
    Code:
    Kanal : array [1..32] of string [32] ;
    dann kannst du es auch so ansprechen :
    Code:
    Kanal[01] := ...
    war es das ?

Ähnliche Themen

  1. string in scl zusammensetzen
    Von Bensen83 im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 27.04.2011, 09:50
  2. Ausgang manuell zusammensetzen aus 2 MB
    Von Freddy im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 22.09.2010, 20:44
  3. BYTES zusammensetzen in CHAR
    Von hoT im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 26.11.2009, 09:57
  4. Int na. String und String zusammensetzen
    Von bastler im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 09.11.2008, 20:29
  5. Strings zusammensetzen
    Von Isha im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 15.01.2008, 18:27

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •