kleine Probleme mit SFC20 (BLK_MOVE)

delacasa

Level-1
Beiträge
48
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
S7-400; 416-2

Hallo zusammen,

ich habe einen SFC20 in meinem Programm verwendet. Dieser schiebt einfach einen String aus dem DB3 in einen String im DB6. Die Zeichenlänge beider Strings ist identisch. Im DB3 habe ich erstmal 18 mal ein X eingetragen. Wird auch super in den DB6 - String übergeben. Nun das Problem:

Ändere ich im DB3 die Vorbelegung des Strings auf z.B. 18 B's, und schiebe diesen mit dem SFC20 in den DB6 - String, dann erscheinen dort immernoch die ursprünglichen 18 X e. Wie kann das sein? Hat einer eine Lösung?

Danke für Eure Hilfe!
delacasa
 
Ein Fehlercode wird nicht generiert.

Gibt es eine Lösung, mit der ich nachträglich die Vorbelegung der string - Variablen ändern kann. Wie schon gesagt, z.B von AAAA auf BBBB?

delacasa
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein, leider hilft mir die SFC "Fill" nicht weiter. Diese läßt keine Strings zu. Zum Verständnis vielleicht noch einmal.

Ich habe eine DB mit 5 String - Variablen, mit einer Zeichenlänge von 20. Den ersten String (18 mal X) möchte ich nun mit Hilfe von BLK_MOVE in eine andere String-Variable (gleicher Länge), in einem anderen DB schreiben. Dies funktioniert auch super. Ändere ich nachträglich nun den Inhalt von (18 mal X) in meinetwegen (18 mal B) und führe BLK_MOVE erneut aus, dann steht in der Stringvariablen in dem DB, in den ich schreibe, immernoch (18 mal X). Wie kann das sein?

Sau kompliziert zu beschreiben.

delacasa
 
wie überschreibst du denn die var im db5? bist du sicher, das die auch im db stehen? was sagt denn z.b. die vat dazu?

ich denke das du bedacht hast, das ein string 2 byte mehr als die länge des strings benötigt. aber wenn gar keine char übertragen werden, wird das nicht das prob sein.
 
Also bei mir funktioniert der SFC20 ohne Probleme (siehe Bilder).

Gruß Kai
 

Anhänge

  • OB1.jpg
    OB1.jpg
    258,5 KB · Aufrufe: 64
  • DB1.jpg
    DB1.jpg
    193,6 KB · Aufrufe: 50
  • DB2.jpg
    DB2.jpg
    193,1 KB · Aufrufe: 40
  • VAT_2.jpg
    VAT_2.jpg
    199,1 KB · Aufrufe: 54
  • VAT_3.jpg
    VAT_3.jpg
    198,7 KB · Aufrufe: 45
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Kai,

danke für die Mühe. Ist bei mir fast genau so. Doch ich habe im Ziel DB nur einen String definiert (natürlich gleicher Länge). Im Quell-DB dagegen 5 Strings. Ich verwende fünf mal "BLKMOVE". An diesen steht am Eingang SRCBLK jeweils ein String aus dem Quell-DB. Alle fünf haben am Ausgang DSTBLK den String des Ziel-DB's stehen. Enable ich nun einen BLKMOVE, so kopiert dieser den jeweiligen String aus dem Quell-DB in den Zielstring. Funktioniert auch prima. Disable ich diesen und enable einen anderen BLKMOVE, wird der Inhalt eines anderen Strings aus dem Quell-DB in den Ziel - String kopiert. Funktioniert auch prima. Ändere ich aber nun den Inhalt einer Stringvariablen aus dem Quell-DB und führe den dazugehörigen BLKMOVE erneut aus, dann kopiert dieser auch den String auf den Zielstring, doch leider mit dem alten Inhalt. Wie kann das ein? Was mache ich falsch?

Grüsse
delacasa
 
Startwert / Aktualwert ?

Hallo delacasa,

wie Volker schon richtig fragte:

WIE ÄNDERST DU DIE WERTE IM QUELL-DB ?

Lädst du den DB neu in die Steuerung ?
Startest du das AG ggf. neu?

Wenn einer der SFC20-Aufrufe ein statisches VKE = 1 hat
und zyklisch bearbeitet wird, kopiert er auch in jedem
Zyklus, die Frage ist nur: WAS !!

Also: richte dir eine VAT ein, in der du die Freigabemerker
und vor allem die Quell-Strings (hier musst du mehrere Char-
Variablen nehmen, denn ein String lässt sich in der VAT nicht
darstellen) direkt steuern kannst.

Oder schreib dir ein kleines Programm, das z.B. alle 5 Sekunden
deinen Quellstring mit anderen Werten beschreibt.

Gruß U.
 
Ändere ich aber nun den Inhalt einer Stringvariablen aus dem Quell-DB und führe den dazugehörigen BLKMOVE erneut aus, dann kopiert dieser auch den String auf den Zielstring, doch leider mit dem alten Inhalt

Wie Volker und udt schon gefragt haben:

Wie änderst Du den Inhalt der Stringvariable im Quell-DB? Beschreibe das doch mal etwas genauer. :confused:

Gruß Kai
 
Zurück
Oben