-> Hier kostenlos registrieren
Hallo.
Folgender Code wurde von mir programmiert um einen DB zu durchsuchen
und in diesem festzustellen, ob ein Bit auf 1 ist oder nicht.
Nur wenn ich diesen FC in der SPS aktiviere geht diese sofort auf Stopp
und meint ein DB sei nicht geladen. Jedoch verwende ich nirgendes diesen
DB, der die CPU erwartet.
Die Parameter von extren:
START_ADR = 1 (Byte 1 soll als 1. gelesen werden, da in Byte 0 nix zum Auswerten drin steht)
SOURCE_DB = DB100 (in der SPS vorhanden mit 456 Byte Länge)
COUNT = 300
Da ich den AUF[DB] in der Schleife drin habe, wäre meine Vermutung vielleicht, das ich zu oft diesen Aufrufe. Ist es möglich mit dieser Konstallation, das ist den Befehl AUF[DB] vor die Schleife lege und dieser die ganze Zeit dann für alle Schleifendurchgänge offen bleibt? Könnte es daran liegen?
Danke
Folgender Code wurde von mir programmiert um einen DB zu durchsuchen
und in diesem festzustellen, ob ein Bit auf 1 ist oder nicht.
Nur wenn ich diesen FC in der SPS aktiviere geht diese sofort auf Stopp
und meint ein DB sei nicht geladen. Jedoch verwende ich nirgendes diesen
DB, der die CPU erwartet.
Die Parameter von extren:
START_ADR = 1 (Byte 1 soll als 1. gelesen werden, da in Byte 0 nix zum Auswerten drin steht)
SOURCE_DB = DB100 (in der SPS vorhanden mit 456 Byte Länge)
COUNT = 300
Code:
U #Message_Activ
R #Message_Activ
L #START_ADR
T #Adress_Puffer
L #COUNT
+I
T #LAENGE
// SCHLEIFEN DURCHLAUF
LOOP: NOP 0
AUF #SOURCE_DB // WERT AUS QUELL_DB EINLESEN
L LW 3
SLW 3
LAR1
L DBB [AR1,P#0.0]
L 0 // WERT MIT NULL VERGLEICHEN
==I
SPB same
UN #Message_Activ //ERGEBNISBIT SETZEN
S #Message_Activ
BEA
same: NOP 0
L #Adress_Puffer
INC 1
T #Adress_Puffer
L #COUNT
<=I
SPB LOOP
Da ich den AUF[DB] in der Schleife drin habe, wäre meine Vermutung vielleicht, das ich zu oft diesen Aufrufe. Ist es möglich mit dieser Konstallation, das ist den Befehl AUF[DB] vor die Schleife lege und dieser die ganze Zeit dann für alle Schleifendurchgänge offen bleibt? Könnte es daran liegen?
Danke