WinCC Unified Array Of String MTP1200C

Andy123

Level-2
Beiträge
12
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
ich habe seit neustem ein Problem.
Siemens S7 1200G2 MTP 1200 C TIA V21

Im DB gibt es ein Array 0..20 of String[40]
jedes Element ist auf der HMI einem EA feld zugewiesen.

Jetzt verweigert Siemens aber die Eingabe. Feld wird Rot und Eingabe nicht übernommen.

Deklariere ich 20 Strings einzel im DB geht es.

Mit der alten S71200 und MTP 1200 ging das noch ohne Probleme.

Hat hier jemand eine Lösung?
 
Jetzt verweigert Siemens aber die Eingabe. Feld wird Rot und Eingabe nicht übernommen.

Deklariere ich 20 Strings einzel im DB geht es.
Ohne das nun geprüft zu haben.
Du schreibst 20 Strings einzeln - mit der Längenangabe?
Wenn String[40] erwartet wird, dann müssen auch 40 Zeichen drin sein.
Wenn nur Strung erwartet wird, ist es variabel, aber braucht mehr Speicher.

Besteht hier die Möglichkeit das dies das Problem verursacht?
 
Zuletzt bearbeitet:
Moin Andy123,

Im DB gibt es ein Array 0..20 of String[40]
jedes Element ist auf der HMI einem EA feld zugewiesen.

Jetzt verweigert Siemens aber die Eingabe. Feld wird Rot und Eingabe nicht übernommen.

Deklariere ich 20 Strings einzel im DB geht es.
Hinweis am Rande:
Ein Array[0..20] enthält nicht 20, sondern 21 Elemente.

Mit der alten S71200 und MTP 1200 ging das noch ohne Probleme.
Am Programm wurde nichts geändert? Wurde es so von der 1200 auf die 1200G2 übernommen oder ist "nur" die Projektierung gleich?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Andy123,


Hinweis am Rande:
Ein Array[0..20] enthält nicht 20, sondern 21 Elemente.


Am Programm wurde nichts geändert? Wurde es so von der 1200 auf die 1200G2 übernommen oder ist "nur" die Projektierung gleich?
Es wurde nur die SPS getauscht Programm ist an dieser Stelle immer das selbe. Ist unsere Rezept vewaltung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ohne das nun geprüft zu haben.
Du schreibst 20 Strings einzeln - mit der Längenangabe?
Wenn String[40] erwartet wird, dann müssen auch 40 Zeichen drin sein.
Wenn nur Strung erwartet wird, ist es variabel, aber braucht mehr Speicher.

Besteht hier die Möglichkeit das dies das Problem verursacht?
Hallo

habe es gerade mal versucht wenn ich 40 Zeichen eingebe geht es. sonst nicht.

Aber das war noch nie ein Problem. Das Programm läuft so in 100e Maschinen von uns.

Das komische ist halt sind die 21 Strings als seperate Variable deklariert geht es.
Sind Sie in einem Array von 0..20 of String[40] geht es nicht mehr



edit. muss mich korregieren. ging nur einmal jetzt geht es wieder nicht mehr

Denke TIA 21 hat hier irgendein problem
 
Zuletzt bearbeitet:
Die interne Datenstruktur der Strings hat ein Byte für die definierte Maximallänge und ein Byte für die tatsächliche Länge des Strings. Sie sind nicht wie bei C nullterminiert. Die Aussage, dass man einen String mit der Anzahl der Zeichen befüllen muss, mit der sie definiert worden sind, ist falsch.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die interne Datenstruktur der Strings hat ein Byte für die definierte Maximallänge und ein Byte für die tatsächliche Länge des Strings. Sie sind nicht wie bei C nullterminiert. Die Aussage, dass man einen String mit der Anzahl der Zeichen befüllen muss, mit der sie definiert worden sind, ist falsch.
ja natürlich. hier liegt ja der Fehler bei Siemens. Immoment geht es nur wenn man die 40 Zeichen eingibt. da sollte ja aber nicht sein.
 
Zurück
Oben