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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: VB Zahlenreihe

  1. #1
    Registriert seit
    10.04.2005
    Beiträge
    45
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    folgendes Problem:

    Ich möchte eine Zahlenreihe (z.B.: 5, 10, 15...) in einem Labelfeld anzeigen, kann mir jemand den Befehl zum anzeigen nennen.

    Bei meiner Lösung wird immer nur der letzte Wert angezeigt (Ich breche bei hundert ab).

    Meine Idee ist, dass am Ende meiner Schleife der aktuelle Wert hinter dem letzten mit angezeigt und nicht überschrieben wird.

    mfg, Lobo.
    Zitieren Zitieren VB Zahlenreihe  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Dann mach aus der Zahl einen String und häng diesen hinten an einen String, welchen du anzeigst.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    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

    Wie sieht denn deine Lösung aus ...?
    Hast du schon darüber nachgedacht, ein 2. Labelfeld für den Vorgängerwert zu machen ?

  4. #4
    Lobo ist offline Benutzer
    Themenstarter
    Registriert seit
    10.04.2005
    Beiträge
    45
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    @ Ralle

    Hallo, genau das könnte die Lösung sein. Aber wie heißt der Befehl zum anhängen.

    Ich habe das so verstanden dass ich bei jedem Schleifendurchlauf die Zahl (also dann den String) an den vorherigen String hängen kann.

    @ Larry

    Hallo, ich möchte nur ein Labelfeld zum anzeigen benutzen.

    dank an alle

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Nun ja, du kannst das auf 2 Wegen lösen:

    1. In der SPS. IEC-Funktionen aus der Library benutzen. Da gibt es Funktionen zum Wandeln in String und Funktionen zur Stringmanipulation (Anhängen, ausschneiden etc.) Am Einfachsten läßt sich das mit SCL programmieren.

    2. Im Panel mit VBA, dazu kann vielleicht Larry mehr sagen, ich bin nicht so der VBA-Progger .
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Hier mal ein kleines Beispiel in SCL:

    Code:
    FUNCTION_BLOCK FB10
    
    Title = 'FIS-Modulname'
    //
    // FIS-Modulname 
    // Zerlegung des Auftragsfilesnamens
    // in seine einzelnen Bestandteile
    // und zusammensetzen von Präfix und YYMMTT 
    // zum FIS-Modulnamen
    // 
    Version : '1.0'
    author  : Ralle
    name    : FIS_MOD
    family  : SYSTEM
    
    VAR_INPUT
      // Eingangsparameter
      Auftragname: STRING[20];
      Praefix: STRING[2];
    END_VAR
    
    VAR_OUTPUT // Ausgangsparameter
      FISname: STRING[10];
    END_VAR
    
    VAR_TEMP
        // temporäre Variablen
      FISNummer: STRING[8];
    END_VAR
    
    //Aufbau des Filenamens
    //YYMMTTxxxxxEyyyyyyyy
    
    FISNummer := '        ';
    FISNummer := MID(IN := Auftragname ,L := 8 ,P := 13);
    
    FISname := CONCAT(IN1 := Praefix 
                     ,IN2 := FISNummer
                      );
    
    ;
    END_FUNCTION_BLOCK
    MID und CONCAT sind FC26 und FC2 aus der Standard-Library, IEC-Funktions. Du mußt noch das Trennzeichen dazwischen setzen, ein Komma und immer an deinen Gesamtstring anhängen. Außerdem noch das Wandeln in String. Ein Problem kann es werden, wenn du folgendes machen willst:

    Gesamtstring als INOUT

    Gesamtstring := Gesamtstring + ';' + Addstring; (hier nur mal im übertragenen Sinn mit +!)

    Wenn das nicht gehen sollte, dann mußt du vorher evtl. Folgendes machen:

    Tempstring := Gesamtstring;
    Gesamtstring := Tempstring + ';' + Addstring;

    Ich hatte das Problem einmal, weiß aber nicht mehr, ob das in einem FB oder FC so war! Also probieren.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #7
    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

    Dann nehme ich den Ball mal gleich auf ...
    Code:
    AnzeigeString = CStr(Lastwert) + " - " + CStr (NewWert)
    LastWert = NewWert
    Das wäre die einfachste Form.
    Ansosnsten würde ich doch schon gerne sehen, was du dir da ausgedacht hast ...

    Gruß
    LL

  8. #8
    Lobo ist offline Benutzer
    Themenstarter
    Registriert seit
    10.04.2005
    Beiträge
    45
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    @Ralle

    erstmal Danke. Ich arbeite allerdings rein in VB.

    @LL

    dass könnte die Lösung sein. Ich werde dass gleich mal ausprobieren.

    danke danke

  9. #9
    Lobo ist offline Benutzer
    Themenstarter
    Registriert seit
    10.04.2005
    Beiträge
    45
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    @LL

    hier mein Code:

    Dim nZAHL
    Dim NEUZAHL
    Dim ALTZAHL
    Dim ZAHLREIHE

    Private Sub Rechne_Click()
    NEUZAHL = 0
    nZAHL = Zahl.Text

    If NEUZAHL < 100 Then

    Do
    NEUZAHL = NEUZAHL + nZAHL
    lblZahlenreihe.Caption = CStr(nZAHL) + "," + CStr(NEUZAHL)
    Loop While NEUZAHL < 100

    End If

    End Sub

    Allerdings wird mir bei dieser Lösung nur die erste und letzte Zahl angezeigt und nicht alle, genau da liegt mein Problem im voraus Danke.

    Mfg, Lobo

  10. #10
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Einfach noch ein paar Zeilen eingefügt/modifiziert:
    Zitat Zitat von Lobo Beitrag anzeigen
    @LL

    hier mein Code:

    Dim nZAHL
    Dim NEUZAHL
    Dim ALTZAHL
    Dim ZAHLREIHE
    Dim Text As String

    Private Sub Rechne_Click()
    NEUZAHL = 0
    nZAHL = Zahl.Text

    Text = ""
    If NEUZAHL < 100 Then

    Do
    NEUZAHL = NEUZAHL + nZAHL
    Text = Text & ", " & CStr(NEUZAHL)
    Loop While NEUZAHL < 100
    lblZahlenreihe.Caption = Text
    End If

    End Sub

    Allerdings wird mir bei dieser Lösung nur die erste und letzte Zahl angezeigt und nicht alle, genau da liegt mein Problem im voraus Danke.

    Mfg, Lobo
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  11. Folgender Benutzer sagt Danke zu Rainer Hönle für den nützlichen Beitrag:

    Lobo (21.05.2008)

Lesezeichen

Berechtigungen

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