Problem mit Ausgabe auf TD200

mr.blue

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

bei der Ausgabe habe ich das Problem, dass nur die letzte Maske (Netzwerk 11) richtig (mit offen/zu) wiedergegeben wird. Bei den restlichen zwei (Netzwerke 9 und 10) erscheint "z" oder "leer" anstelle der Variable.
Interessant ist, wenn ich die Netzwerke 10 und 11 lösche, wird Netzwerk 9 richtig angezeigt. Die Zeichenkettenvariablen habe ich mit dem Assistenten in den Masken entsprechend gesetzt.

Kann mir da jemand ein Tip geben?
Danke im Voraus.
CPU S7-222

Network 1
// Nullsetzen von Zeit T37
LDN M0.0
TON T37, 50

Network 2
// Nullsetzen von Zeit T37
LDN M0.1
TON T38, 50

Network 3
LD E0.0
U SM0.4
TON T37, 50

Network 4
LD E0.0
UN SM0.4
TON T38, 50

Network 5
// Ansteuern von Schleuse 2
LD E0.0
UW>= T37, 5
UW<= T37, 50
= A0.1

Network 6
// Ansteuern von Schleuse 2
LD E0.0
UW>= T38, 5
UW<= T38, 50
= A0.2

Network 7
LD T37
= M0.1

Network 8
LD T38
= M0.2

Network 9
// Anzeige "Filter EIN / AUS"
LD E0.0
SCPY "AN", VB50
NOT
SCPY "AUS", VB50

Network 10
Anzeige "Schleuse 1 OFFEN / ZU"
LD A0.1
SCPY "offen", VB51
NOT
SCPY "zu", VB51

Network 11
Anzeige "Schleuse 2 OFFEN/ ZU"
LD A0.2
SCPY "offen", VB52
NOT
SCPY "zu", VB52
 
Hallo,
Deine Zeichenketten überlappen sich! In Netzwerk 10 und 11 werden die vorher beschriebenen Zeichenketten teilweise überschrieben. Die Startadressen der Zeichenketten müssen mindestens Zeichenkettenlänge + 1 Startbyte auseinander liegen.
z.B.
* die ZK aus NW9 belegt max VB50...VB53
* die ZK aus NW10 kann frühestens bei VB54 beginnen und belegt dann VB54...VB59
* die ZK aus NW11 kann frühestens bei VB60 beginnen und belegt dann VB60...VB65

Siehe auch mal die MicroWIN-Hilfe zu STR_CPY (SCPY), da ist der Datentyp STRING und die Speicherbelegung sehr gut erklärt.

Harald
 
Zurück
Oben