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

Results 1 to 7 of 7

Thread: S7 String variablen

  1. #1
    Join Date
    07.03.2004
    Posts
    4,462
    Danke
    948
    Erhielt 1,169 Danke für 837 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe ein Problem mit Stringvariablen in einer S7 314C2DP.
    Der Replace FC funktioniert nicht
    Ich habe die Funktion bereits in einer 315er CPU problemlos verwendet. Habt ihr eine Idee was da noch schief gehen kann?

    Die Variable lässt sich in der VariablenTabelle verändern aber nicht durch besagten Replace FC.

    Gruß
    ZoToS
    Reply With Quote Reply With Quote S7 String variablen  

  2. #2
    zotos is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    07.03.2004
    Posts
    4,462
    Danke
    948
    Erhielt 1,169 Danke für 837 Beiträge

    Default

    Kann euch nicht sagen warum, aber jetzt gehts.
    Strings sind einfach nichts für die Siemens-SPS-Welt.


    Bin aber froh das es jetzt geht.
    If you open your Mind too much, your Brain will fall out.

  3. #3
    Join Date
    19.11.2007
    Posts
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    wäre ganz gut wenn du schreiben könntest woran es gelegen hat,

    habe das gleich Problem das die Replace funktion nicht geht.....

    kann die Variable verändern wie ich möchte

    Ini1 String [10]
    Ini2 String [10]

    RetVal String [10]

    somit haben alle die gleiche Länge.

    egal wie ich Ini1 oder auch Ini2 verändere

    RetVal bleibt gleich.............

  4. #4
    zotos is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    07.03.2004
    Posts
    4,462
    Danke
    948
    Erhielt 1,169 Danke für 837 Beiträge

    Default

    Ich bin gerade erschrocken. Der Beitrag ist ja so alt das ich mich gerade fragen musste bei welchem Arbeitgeber ich damit gearbeitet habe ;o)

    Ich kann aber nicht sagen woran es gelegen hat das hatte ich damals nicht herausgefunden. Das war so ein Phänomen wo es plötzlich ging. Sowas was durch Reorganisieren oder so manchmal geht und man bekommt nicht raus was es war.

    Welchen Teil des Strings möchtest Du denn überschreiben? Kopiere doch mal den Aufruf hier rein.
    If you open your Mind too much, your Brain will fall out.

  5. #5
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,817
    Danke
    748
    Erhielt 3,129 Danke für 2,233 Beiträge

    Default

    Schau mal nach, was in Byte 0 und 1 deines String tatsächlich drinsteht. Dort gehört die Max. Länge und die tatsächliche Länge rein. Viele (oder alle?) Stringfunktionen arbeiten nur, wenn der Stringkopf auch eine Länge eingetragen hat!
    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
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,413
    Danke
    422
    Erhielt 2,541 Danke für 2,112 Beiträge

    Default

    Quote Originally Posted by Ralle View Post
    Schau mal nach, was in Byte 0 und 1 deines String tatsächlich drinsteht. Dort gehört die Max. Länge und die tatsächliche Länge rein. Viele (oder alle?) Stringfunktionen arbeiten nur, wenn der Stringkopf auch eine Länge eingetragen hat!
    Der Beitrag von Ralle ist nach meiner Erfahrung der Schlüssel zu dem Ganzen. Siemens nennt das Ganze charmant "String initialisieren". Ist auch unter SCL ein Problem, dort aber noch am einfachsten in den Griff zu bekommen. Man schreibt einfach :
    Code:
    Temp_String := '' ;
    Dann ist es erledigt.
    In AWL sind es tatsächlich die ersten beiden Bytes die zugewiesen werden müssen ...

    Wie auch immer, es gilt für alle Siemens String-FC's also "LEFT , MID , RIGHT ..." usw. Ich hatte mir irgendwann mal den Spass gemacht und so eine FC im Code angesehen und dort wurde dann als Erstes das Byte "String-Länge tatsächlich" angefasst.

    ...
    Gruß
    LL

  7. #7
    Join Date
    20.06.2003
    Location
    Sauerland.NRW.Deutschland
    Posts
    5,451
    Danke
    99
    Erhielt 923 Danke für 628 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    kann obiges bestätigen. die ersten 2 bytes sind wichtig.

    ich hatte hier mal einen string den ich an eine fremdsteuerung als asc schicken musste. das habe ich mit der sfc21 gemacht ohne die ersten 2 bytes.

    da bei einer wandlung einer zahl in einen string aber nicht der komplette string überschrieben *1 wird, habe ich den kompletten string vorher auf b#16#0 gesetzt.
    dann gehen die string fc's nicht mehr.

    *1
    z.b. stringlänge 10
    123456 (dez) -> 123456 (string) == byte0 = 10; byte1 = 6 der rest halt die zahlen
    danach 9876 (dez) -> 9876 (string) == byte0 = 10; byte1 = 4; byte 7 und 8 enthalten aber immer noch 5 und 6 aus dem vorigen transfer.
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download auf meiner HP
    zum Download im Internet (Backup nicht unbedingt aktuell)

Similar Threads

  1. Variablen Name in String übergeben
    By Tmbiz in forum Programmierstrategien
    Replies: 4
    Last Post: 15.10.2019, 11:24
  2. Step 7 Verarbeitung von String Variablen
    By CZach001 in forum Simatic
    Replies: 26
    Last Post: 11.08.2014, 12:03
  3. Arbeiten mit STRING-Variablen
    By Mike Vanstrike in forum Simatic
    Replies: 3
    Last Post: 20.07.2011, 15:49
  4. string Variablen verschieben
    By Felse in forum Simatic
    Replies: 13
    Last Post: 13.03.2009, 08:06
  5. String Variablen verschieben
    By SPS_Nord in forum Simatic
    Replies: 2
    Last Post: 18.01.2008, 23:30

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •