Step 7 Siemens S7 Manager Classic - SCL (Structured Text) - Kann nicht kopiert werden

Burkhard

Level-2
Beiträge
161
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi liebe Siemens S7 Classic Experten.

Ich habe einen SCL-Code geschrieben, der fehlerfrei kompiliert wird. Aber beim Laden bekomme ich diese Fehlermeldung:

1687271033588.png

Ich hab schon im Forum gesucht, ein anderer Nutzer hatte ein ähnliches Problem im SCL mit Stringverarbeitung. Er hat dann eine MID-Funktion aus dem Code entfernt und sich alternativ zu helfen gewusst.

Ich sage aber: Warum?

Warum sollte ein solcher kurzer und wirklich sehr einfacher Code in der S7 Klassik nicht funktionieren?

Ich verstehe mal wieder die Welt nicht mehr... :-(

Danke!

Beste Grüße,

Burkhard.
 

Anhänge

  • 1687270951977.png
    1687270951977.png
    72,1 KB · Aufrufe: 10
Du legst in den Lokaldaten 5 Strings mit jeweils 256Bytes an.
Die größe der Lokaldaten ist aber, je nach CPU mehr oder weniger, begrenzt.

Wenn die Strings nicht so lang sind / werden kannst du in der Deklaration explizit die maximale Länge angeben.
z.B. STRING[20] ist dann maximal 20 Zeichen lang.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Deklariere die STRING in VAR (eigentlich VAR_TEMP) mal in der tatsächlich maximal benötigten Größe, z.B. PREP_STR1 : STRING[20]; Ohne Längenangabe werden für STRING 256 Byte reserviert, 5x STRING = 1280 Bytes.
Die Größe des Lokaldatenbedarfs findet man in den Baustein-Eigenschaften.
(Was für eine CPU hast Du und wieviel Lokaldaten kann die bzw. hast Du eingestellt?)

Harald
 
Du legst in den Lokaldaten 5 Strings mit jeweils 256Bytes an.
Die größe der Lokaldaten ist aber, je nach CPU mehr oder weniger, begrenzt.

Wenn die Strings nicht so lang sind / werden kannst du in der Deklaration explizit die maximale Länge angeben.
z.B. STRING[20] ist dann maximal 20 Zeichen lang.

Die Strings sind in der Tat nicht so lang wie die maximale Länge:

1687272013756.png
Im DB habe ich diese bereits begrenzt.

Das werde ich nun in meiner SCL-Funktion auch tun.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Deklariere die STRING in VAR (eigentlich VAR_TEMP) mal in der tatsächlich maximal benötigten Größe, z.B. PREP_STR1 : STRING[20]; Ohne Längenangabe werden für STRING 256 Byte reserviert, 5x STRING = 1280 Bytes.
Die Größe des Lokaldatenbedarfs findet man in den Baustein-Eigenschaften.
(Was für eine CPU hast Du und wieviel Lokaldaten kann die bzw. hast Du eingestellt?)

Harald

Ihr seid ja so unglaublich nett. Mit der kleinen Änderung hat es geklappt!

1687272278955.png

Man darf halt nicht vergessen, dass man mit so einer kleinen S7-317 keinen ausgewachsenen Beckhoff-Industrie-PC mit TwinCat IEC-6-1131-3 hinten dran hängen hat!

Das vergisst man immer wieder!
 
Zurück
Oben