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

Ergebnis 1 bis 9 von 9

Thema: Anzahl der beschrieben Bytes im DB ermitteln

  1. #1
    Registriert seit
    04.06.2008
    Beiträge
    45
    Danke
    2
    Erhielt 8 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Habe folgendes Problem:

    Habe einen Datenbaustein deklariert mit einem Array von 100 char. Dieser wird mit einer beliebigen Anzahl von 1-100 Zeichen beschrieben. Meine Aufgabe ist nun diese Zeichen als String zu übermitteln.

    Dazu habe ich einen SendeDB angelegt mit einem String [100]. Die einzelnen Zeichen würde ich nun mit einer Schleife vom QuellDB in den String kopieren. Nun müsste ich aber erstmal ermitteln wieviel Zeichen denn nun eigendlich vorhanden sind. Diese Information benötige ich ja auch um den Header des Strings zu beschreiben.

    Versucht habe ich den Befehl:
    Code:
    L DBLG
    aber da erhalte ich ja nur die Größe des Array.

    Gibt es da ne schöne fertige Funktion oder muss ich mit einer Schleife jedes einzelne Zeichen vergleichen?

    Vielen Dank!

    Systemdaten:
    • CPU 314C 2DP
    • Step7 V5.3 +SP3
    Zitieren Zitieren Anzahl der beschrieben Bytes im DB ermitteln  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Dafür gibt es m.E. nichts fertiges ...

    Ich würde es so machen, dass ich in das letzte beschrieben Array-Element +1 den Wert 0 schreiben lasse. Danach suchen im Step7-Programm.

    Aber ... warum ein Array of Char ? Geht nicht auch gleich von vorne herein ein STRING ?

  3. #3
    Registriert seit
    04.06.2008
    Beiträge
    45
    Danke
    2
    Erhielt 8 Danke für 8 Beiträge

    Standard

    Ich lese die Daten über ein CP340 (RS232) ein. Dazu benutze ich den FB2 P_RCV des CP's. Da sehe ich auch gerade, dass eine Ausgangsvariable dieses FB's die Länge des empfangenen Telegramms anzeigen soll.

    Leider kann ich das nicht testen, da ich kein equipment hier habe... aber das wäre dann eventuell ne Möglichkeit die Information abzugreifen.

    Und wie ist das mit der Null gemeint? Dann müsste ich doch wissen wo das letzte beschrieben Elemnt steht!?

  4. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von hATZEnbrECHT Beitrag anzeigen
    Und wie ist das mit der Null gemeint? Dann müsste ich doch wissen wo das letzte beschrieben Elemnt steht!?
    wenn ich larry richtig verstanden habe, dann würde er das komplette array in den string schreiben.

    beim beschreiben des arrays aber ein eindeutiges endezeichen an die stelle nach dem letzten regulären zeichen setzen.

    dieses kannst du dann suchen, position ermitteln und deinen string entsprechend beschneiden.

    so würd ich es übrigens auch machen oder komplett mit dem 100er string arbeiten ...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    04.06.2008
    Beiträge
    45
    Danke
    2
    Erhielt 8 Danke für 8 Beiträge

    Standard

    mhmm.... sry wenn ich mir grad n bissel dumm anstelle, aber eins versteh ich immer noch nicht.

    Die Länge der Daten weiß ich doch nicht. Der Code könnte ja z.B. aus 25 Zeichen bestehen, aber auch aus 69. Und beschrieben wird das Array ja erstmal vom FB des CP's. Wie soll ich dann ein Endezeichen setzen?

  6. #6
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Schreib doch einfach vorher lauter Nullen rein.

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    ... wenn der ganze Zeichen-Salat von einem CP kommt, dann kann doch der zugehörige Receive-Baustein gleich in den String schreiben. Nach dem Empfang dann den Header des Strings beschreiben - RCV liefert ja die Anzahl der empfangenen Zeichen. Dann brauchst du ja die Nachbearbeitung gar nicht mehr.

    @4L:
    Du hast den Ball (wie immer) natürlich genau richtig übernommen ...

  8. #8
    Registriert seit
    04.06.2008
    Beiträge
    45
    Danke
    2
    Erhielt 8 Danke für 8 Beiträge

    Standard

    Vielen Dank für eure Bemühungen, ich werde die Länge aus dem RCV-Baustein nehmen.

  9. #9
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    mach doch das, genau desshalb liefert dir der Baustein diese Info...

Ähnliche Themen

  1. Antworten: 24
    Letzter Beitrag: 30.07.2008, 19:39
  2. Antworten: 2
    Letzter Beitrag: 06.09.2006, 16:20
  3. Anzahl daten grösser null ermitteln
    Von uz71 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.03.2006, 13:39
  4. Antworten: 1
    Letzter Beitrag: 14.12.2005, 21:42
  5. FB inout parameter wird nicht beschrieben!
    Von Jochen Kühner im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 06.04.2005, 09:42

Lesezeichen

Berechtigungen

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