Step 7 DB bearbeiten?

Zuviel Werbung?
-> Hier kostenlos registrieren
- erstelle in einem DB (z.B. DB2) an Adresse 0.0 die Variable "Teilstring" als STRING[10] (die geht dann bis 11.0)
- gib dem DB einen symbolischen Name, z.B. "DB2"
- schreibe im AWL-Editor:
Code:
L DB2.DBB0   //hierdrin muß die [COLOR=#0000FF]Maximallänge[/COLOR] des Strings stehen: 10
L DB2.DBB1   //hierdrin steht die [COLOR=#0000FF]aktuelle Länge[/COLOR] des Strings: am besten auch 10
L DB2.DBB2   //wird automatisch umgewandelt zu [COLOR=#0000FF]"DB2".Teilstring[1][/COLOR]
L DB2.DBB3   //wird automatisch umgewandelt zu [COLOR=#0000FF]"DB2".Teilstring[2][/COLOR]
...
L DB2.DBB11  //wird automatisch umgewandelt zu [COLOR=#0000FF]"DB2".Teilstring[10][/COLOR]

Harald

Danke Harald,

ich weiß schon - bin heute wieder totaaaal nervig!

Irgendwie klappt das heute alles nicht so wie es soll - glaube ich gehe dann für heute mal lieber wieder zurück an den Kochtopf. Das gelingt mir meist besser ... ;)


Wenn ich diesen DB2 (wie von dir vorgeschlagen) auf diese Art und Weise erzeuge, dann sieht man aber auch in der Online-Sicht niemals alle Teilstrings von Teilstring[1] bis Teilstring[9], sondern nur eine einzige Zeile mit

Code:
Teilstring STRING[9]

Ist doch korrekt, oder? Insofern kann man da über den DB nichts überprüfen und muss auf die Var-Tabelle ausweichen ...


Aber noch etwas ist für mich absolut unerklärlich - tue da jetzt schon ewig rum!

Ich habe einen DB wie folgt angelegt:

DB.jpg


Nun gebe ich beispielsweise in der Visu im Eingabefeld die Ziffern 1 2 3 4 5 6 7 8 9 0 1 2 3 ein (siehe DB!). Dann stehen sie da blau hinterlegt - soweit so gut.

Wenn ich nun aber diese Seite verlasse und wieder zurückkehre, dann steht im Eingabefeld plötzlich nur noch:

Eingabe-Feld.jpg

Wie ist denn das möglich; es fehlen plötzlich die letzten drei Ziffern???
 
Wenn ich diesen DB2 (wie von dir vorgeschlagen) auf diese Art und Weise erzeuge, dann sieht man aber auch in der Online-Sicht niemals alle Teilstrings von Teilstring[1] bis Teilstring[9], sondern nur eine einzige Zeile mit

Code:
Teilstring STRING[9]

Ist doch korrekt, oder? Insofern kann man da über den DB nichts überprüfen und muss auf die Var-Tabelle ausweichen ...
Wie vollmi in #14 schon schrieb: Das geht halt nicht. Das hat Siemens nicht vorgesehen. Die aktuell in einem String enthaltenen Zeichen kann man in keiner DB-Ansicht sehen, man muß eine VAT bemühen.


Aber noch etwas ist für mich absolut unerklärlich - tue da jetzt schon ewig rum!
Irgendwie passt das alles nicht so ganz zusammen.
- Du schreibst, Du hast im DB "Teilstring" als CHAR-Array mit 9 CHAR angelegt
- in der Visu versuchst Du 13 Zeichen in dieses 9-Byte-Array zu schreiben
- dann bleiben da nur 10 Zeichen drin - vermutlich hast Du in der Visu deklariert, daß 10 Zeichen in die Eingabe-Variable passen

Überprüfe nochmal genau die Datentypen, Längen und Anfangsadressen der Deklarationen im DB und in der Visu.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bilde mir ein einmal einen String in einem DB online beobachtet zu haben. Dazu musste ich aber den DB auch online in der Datenansicht öffnen und nicht über die Brille! Einziger Nachteil: man muss halt ständig selbst aktualisieren. Vl kann ich noch ein Bild nachreichen.
 
Irgendwie passt das alles nicht so ganz zusammen.
- Du schreibst, Du hast im DB "Teilstring" als CHAR-Array mit 9 CHAR angelegt
- in der Visu versuchst Du 13 Zeichen in dieses 9-Byte-Array zu schreiben
- dann bleiben da nur 10 Zeichen drin - vermutlich hast Du in der Visu deklariert, daß 10 Zeichen in die Eingabe-Variable passen

Überprüfe nochmal genau die Datentypen, Längen und Anfangsadressen der Deklarationen im DB und in der Visu.

Harald


Stimmt Harald,

irgendwas passt nicht zusammen - habe jetzt aber gesehen wo das Problem liegt - nur lösen konnte ich es noch nicht ...

Habe mal alles etwas abgespeckt; hier der aktuelle DB in der Online-Sicht (Ist ein Array[1..13] of CHAR):

DB.jpg


Obwohl ich in das Eingabe-Feld 13x Null eingetippt habe, ändern sich die letzten drei Stellen im DB nicht mit!


Hier die Variable in WinCC flexible:

Variable.jpg


Und schließlich die Deklaration des Eingabe-Feldes:

Eingabe-Feld.jpg


Wo liegt nun das Problem, dass sich die letzten drei Stellen im DB bei einer Eingabe nicht mitändern? :confused: Komme einfach nicht drauf ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du mußt bei der StringChar-Variable noch angeben, wie lang diese ist. Daß da z.B. 13 Zeichen reinpassen sollen.

PS: Ich meine, wenn das HMI-Projekt in das Step7-Projekt integriert ist, dann wird diese Einstellung bei der ge"browsten" Variablenauswahl automatisch vorgenommen.

PPS: nun gib' mir endlich mal ein DANKE (*). Ich steh' da drauf! Besonders weil es Dein "Erstes Mal" wäre ;)
(*) der Danke-Button unter dem meiner Beiträge, welcher Dir besonders hilfreich war

Harald
 

Anhänge

  • StrinChar10.JPG
    StrinChar10.JPG
    33,6 KB · Aufrufe: 13
Zuletzt bearbeitet:
Du mußt bei der StringChar-Variable noch angeben, wie lang diese ist. Daß da z.B. 13 Zeichen reinpassen sollen.

PS: Ich meine, wenn das HMI-Projekt in das Step7-Projekt integriert ist, dann wird diese Einstellung bei der ge"browsten" Variablenauswahl automatisch vorgenommen.

Harald


Ganz lieben Dank Harald - du bist mein HELD! :sm24:

Da hätte ich ja noch Stunden gesucht ... und ja, das HMI-Projekt ist integriert, aber automatisch hat sich (wie wir an dem langen Thread sehen können) leider nichts eingetragen.


Jetzt geht es an die Befehle, um den Drucker anzusteuern; hoffe, dass ich nun erst einmal wieder selber weiterkomme ...


PS:
Ah, wusste nicht, dass du da so drauf stehst ... kann ich die auch mehrmals anklicken - würde dir nämlich heute zur Feier des Tages dann gleich ZEHN DANKE geben. Sozusagen schon mal vorsorglich für die nächsten Hilfsaktionen ... :p
 
Zuletzt bearbeitet:
Danke :) Bier kommt auch gut :)

Wenn man die Variable in einem integrierten WinCCflex-Projekt symbolisch auswählt - d.h. zu der Variable hin-browst - dann wird die Länge automatisch richtig übernommen. Zumindest bei mir.

Harald
 

Anhänge

  • symbolische_Auswahl.JPG
    symbolische_Auswahl.JPG
    71,7 KB · Aufrufe: 10
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm ok ich glaube das war nur von der Visu aus möglich! Dort wurde ja die Startadresse automatisch vergeben und wenn ich über die Visu direkt was hineinschreibe dann kann ich auch den String online sehen. Hab es jetzt mal mit PLC Sim gemacht!
 

Anhänge

  • String_online.JPG
    String_online.JPG
    75,8 KB · Aufrufe: 13
Danke :) Bier kommt auch gut :)

Wenn man die Variable in einem integrierten WinCCflex-Projekt symbolisch auswählt - d.h. zu der Variable hin-browst - dann wird die Länge automatisch richtig übernommen. Zumindest bei mir.

Harald


Gerne, hoffe es war aufgrund der Hitze nicht zu lack ... :p ... und hat dich nicht beschwipst gemacht; nicht dass du dann plötzlich so prgrammierst wie ich!


Hast natürlich Recht; wenn man die Variable so einbindet, dann geht das doch tatsächlich automatisch und ich hätte mir und euch viel Arbeit erspart. Sorry!

Aber das Gute an der Sache: :!: Für diesen Tipp bekommst du gleich nochmals ein DANKE von mir nachgereicht :!:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab hier auf meiner VM auch nur V5.4 aber F5 drücken reicht. Funktioniert aber auch auf einer echten CPU und sogar in IDBs. Mit V5.5 SP4 funktioniert es ebenfalls! Das tolle daran, wie du bereits erwähntest, man kann sich auch DTs und Any Pointer auf diese Art ansehen!
 
Zurück
Oben