Invalid:16#20

COOLT

Level-1
Beiträge
98
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Öhm hiho mal wieder
Ich hab da mal wieder ein big problem. Bis vor ein paar Stunden lief mein Programm einwandfrei. Dann hab ich iwas verändert und nu sagt er mir jedesmal wenn ich das programm starte schon beim ersten Schritt in meiner Schritkette
Code:
CASE O_nStep OF
    -1:    O_arrStepcomment[O_nStep]:='Start des Programms';
        O_nNextStep:=1;
        narrLastReceivedBytevorbereiter:=0;
        FOR narrLastReceivedBytevorbereiter:=0 TO 14 DO
            arrLastReceivedByte[narrLastReceivedBytevorbereiter]:=0;
        END_FOR
        bArrayVoll:=FALSE;
        fbNextstep (I_bEnable:= TRUE, I_bSeqMode:= TRUE , I_tTimeValue:= t#0s);
        IF fbNextstep.O_bStart THEN
            O_nLastStep:=O_nStep;
            O_nStep:=O_nNextStep;
            O_bNovRamWriteGO:=TRUE;
        END_IF
das fbNextstep.O_bStart = ***Invalid:16#20*** und wegbekommen tu ichs auch nich. Laut Ablaufkontrolle hängts halt schon da an erster stelle. O_bStart is eigentlich ein ganz normales BOOL mit True und False. Und wird auf True gesetzt sobald I_bEnable und I_bSeqMode auch True sind.
Vielen Dank schonmal für Lösungsvorschläge
Gruß
COOLT
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das heißt aber doch eigentlich, daß irgendwo ein Array aus dem Ruder läuft oder? Also wohl zu klein ist oder der Index falsch berechnet wird. Dem sollte man mal nachgehen.
 
Hallo,

also wenn ich das richtig sehe, dann rufst du gleich in der zweiten Zeile das Array O_arrSetpcomment mit dem Index O_nStep auf.. und das in dem Fall (siehe CASE Anweisung), dass genau dieser Index -1 ist. :rolleyes:
Ich weiß zwar nicht wie dein Array genau aussieht.. aber ein Array mit negativen Indizes ist eher selten

Gruß
Steffi
 
Hallo COOLT,

Du solltest wissen, das die Funktion CheckBounds Deinen Fehler nicht behebt. Diese Funktion verhindert lediglich ein überschreiten des Arrays.


Gruß Scrat
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja das mit den negativen indizes war nur ne vorrübergehende lösung ich werd meine Schrittkette noch anpassen. und das mit dem überschreiben macht nichts weil das wo ich reinschreibe hat sowieso nur 0 oder 1 und der fehler hat mein Programm am starten gehindert von daher isses mir nur recht und es funktioniert ja auch.
Mfg
COOLT
 
Hallo Ralle,

naja, das Programm wird nicht langsamer, aber die Systemauslastung steigt an.
Je nach eingesetzter Hardware aber kaum wahrnehmbar. Bei älteren Steuerungen hat man das eher mal gemerkt, aber bei den heutigen Prozessoren, gerade bei großen IPCs merkt man das nicht mal. Kommt natürlich auf die Größe des Programmes an.
 
Zurück
Oben