easy-forum
Deutsch - Software => easySoft => Thema gestartet von: weiss_nix am Januar 30, 2020, 22:23:15 Nachmittag
-
Hallo Easy Gemeinde, hallo EATON!!!
Betreff: EasySoft7.11 / Userfunktion / Programmiersprache "ST"
In einer UF habe ich 480 Merker zur Verfügung (laut Hilfe)
M[128] := false; // funktioniert
M[129] := false; // stoppt mit Fehlermeldung (siehe Anhang)
gibt es hierfür eine Erklärung zumal die Plausibilitätskontrolle nicht meckert!
-
Hallo weiss_nix!
Ich kann das beschriebene Verhalten reproduzieren.
Innerhalb eines UF kann der Index für den Zugriff auf einen Merker maximal 128 betragen.
Im Hauptprogramm ist ein Index bis 512 zulässig. (=alle Merker durch eine Schleife initialisierbar; abzüglich M1-32=MD1 für die Zählvariable).
Die Angabe 480 Merker im UF (im Helpfile) wird auf 512 korrigiert. Ist ein Tippfehler. ::)
Ich frage die Entwicklung an, ob es einen Grund dafür gibt.
Warum die Plausibilitätskontrolle dazu nichts sagt?
Ganz einfach: Zum Zeitpunkt der Prüfung steht kein Wert in der Indexvariable, da das Programm ja nicht läuft.
Deshalb steht im Index auch kein unzulässiger Wert. -> kein Plausibilitätsfehler.
Grüße,
Konni
-
Hallo Konni,
vorerst recht herzlichen Dank für das Feedback.
Die Aussage mit der Plausibilitätskontrolle ist für mich aber nicht ganz schlüssig, siehe Screenshot. Aber mal abwarten welche Information von den Entwicklern kommt.
-
Hallo Weiss_nix,
ist doch klar. Bei deinem Screenshot stehen schon Werte drin - das kann die Plausibilitätskontrolle schon abfangen.
Steht aber zum Zeitpunkt der Plausibilitätskontrolle nur eine "Variable" (der generierte Index der Schleifenvariable) in der eckigen Klammer, weiß die PK noch nichts über den möglichen Wert zur Laufzeit.
Grüße,
Konni
-
Hallo Konni,
das ist mir schon klar ...
In einer UF wird "M[512]" nicht bemängelt aber bei Ausführung geht die Steuerung (Simulation) auf Stop.
-
...jepp, du hast Recht.
Also muss ich jetzt herausbekommen, warum in einem UF der Index max. 128 sein darf und ob die Plausibilitätskontrolle im UF an der Stelle deaktiviert ist.
-
... oder nach einem Update doch alle Merker indizierbar sind ;)
die 128 empfinde ich teilweise schon als Einschränkung :'(
da indizierte Bit-Manipulation dann nur bis MD04 möglich ist.
-
Hallo weiss_nix,
habe das Verhalten formuliert und an die Entwicklung weitergegeben.
Sobald ich näheres über den Grund der eingeschränkten Indizes erfahre, lasse ich es dich wissen.
Danke für deinen Hinweis!
Grüße,
Konni
-
zur Information:
... der Fehler dürfte in easySoft 7.21 behoben sein bzw. ist nicht mehr reproduzierbar.
Es ist nun in einer UF ohne Fehler möglich alle Merker bis M[512] per Index anzusprechen.
@Konni, danke für die Intervention