-> Hier kostenlos registrieren
Hallo zusammen,
habe ein problem beim Schreiben in einen DB. Die ersten 5 Datensätze werden erfolgreich geschrieben und beim nächsten bekomme ich einen Bereichslängenfehler an der Adresse 94 (Bitzugriff). Ich habe schon versucht, dass ganze zu debuggen komme aber nicht dahinter wo der Fehler liegt.
Wäre super, wenn mir jemand auf die Sprünge helfen kann.
Hier mal ein Auszug aus dem Programm:
// Flanke neues Teil an Laser --------------------
U "Deb_Daten_schreiben"
FP "FP_Daten_schreiben"
U "FP_Daten_schreiben"
S M 200.0
// Neues Teil an Laser abfragen ------------------
U "FP_Daten_schreiben"
SPB M012
SPA M013
M012: NOP 0
//Datum aktualisieren ---------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
SLD 3
LAR1
L #Datum
T DBW [AR1,P#0.0]
// Uhrzeit aktualisieren -------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 2
+I
SLD 3
LAR1
L #Uhrzeit
T DBD [AR1,P#0.0]
// Stueckzaehler erhoehen -----------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 6
+I
SLD 3
LAR1
L "DB_Daten_IO_Teile".Stueckzaehler
T DBW [AR1,P#0.0]
// Angewaehlte Schicht aktualisieren ------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 12
+I
SLD 3
LAR1
L 3
T DBW [AR1,P#0.0]
// USS 30KHz IO --------------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 14
+I
SLD 3
LAR1
U DB4.DBX 9.5
SPB M040
SPA M041
M040: NOP 0
L DBW [AR1,P#0.0]
L 2#100000000
OD
T DBW [AR1,P#0.0]
M041: NOP 0
// USS 40KHz IO --------------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 14
+I
SLD 3
LAR1
U DB4.DBX 17.5
SPB M042
SPA M043
M042: NOP 0
L DBW [AR1,P#0.0]
L 2#1000000000
OD
T DBW [AR1,P#0.0]
M043: NOP 0
// WSS IO ------------------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 14
+I
SLD 3
LAR1
U DB4.DBX 21.5
SPB M044
SPA M045
M044: NOP 0
L DBW [AR1,P#0.0]
L 2#10000000000
OD
T DBW [AR1,P#0.0]
M045: NOP 0
// Widerstand IO -----------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 14
+I
SLD 3
LAR1
U DB4.DBX 25.5
SPB M046
SPA M047
M046: NOP 0
L DBW [AR1,P#0.0]
L 2#100000000000
OD
T DBW [AR1,P#0.0]
M047: NOP 0
// Widerstandswert
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 16
+I
SLD 3
LAR1
AUF "DB_Schieberegister"
L DBD 60
AUF "DB_Daten_IO_Teile"
T DBD [AR1,P#0.0]
// Stueckzaehler erhoehen
L "DB_Daten_IO_Teile".Stueckzaehler
L 1
+I
T "DB_Daten_IO_Teile".Stueckzaehler
// Index erhoehen
L "DB_Daten_IO_Teile".Index
L 20
+I
T "DB_Daten_IO_Teile".Index
M013: NOP 0
Geschrieben wird in einen DB mit einem Array von folgender Struktur:
0.0 Datum DATE D#1990-1-1
2.0 Uhrzeit TIME_OF_DAY TOD#0:0:0.0
6.0 Stueckzaehler INT 0
8.0 Prefix_Schicht STRING[1] 'S'
12.0 Schicht INT 0
14.0 USS30KHz BOOL FALSE
14.1 USS40KHz BOOL FALSE
14.2 WSS BOOL FALSE
14.3 Widerstand_IO BOOL FALSE
16.0 Widerstand REAL 0.000000e+000
In dem DB gibt es am Ende noch einen Stückzähler und einen Index der für die Anfangsadressen benutzt wird.
Falls noch Infos fehlen reiche ich diese gerne nach
Also vielen Dank schon mal im Voraus.
Gruß Peraho
habe ein problem beim Schreiben in einen DB. Die ersten 5 Datensätze werden erfolgreich geschrieben und beim nächsten bekomme ich einen Bereichslängenfehler an der Adresse 94 (Bitzugriff). Ich habe schon versucht, dass ganze zu debuggen komme aber nicht dahinter wo der Fehler liegt.
Wäre super, wenn mir jemand auf die Sprünge helfen kann.
Hier mal ein Auszug aus dem Programm:
// Flanke neues Teil an Laser --------------------
U "Deb_Daten_schreiben"
FP "FP_Daten_schreiben"
U "FP_Daten_schreiben"
S M 200.0
// Neues Teil an Laser abfragen ------------------
U "FP_Daten_schreiben"
SPB M012
SPA M013
M012: NOP 0
//Datum aktualisieren ---------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
SLD 3
LAR1
L #Datum
T DBW [AR1,P#0.0]
// Uhrzeit aktualisieren -------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 2
+I
SLD 3
LAR1
L #Uhrzeit
T DBD [AR1,P#0.0]
// Stueckzaehler erhoehen -----------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 6
+I
SLD 3
LAR1
L "DB_Daten_IO_Teile".Stueckzaehler
T DBW [AR1,P#0.0]
// Angewaehlte Schicht aktualisieren ------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 12
+I
SLD 3
LAR1
L 3
T DBW [AR1,P#0.0]
// USS 30KHz IO --------------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 14
+I
SLD 3
LAR1
U DB4.DBX 9.5
SPB M040
SPA M041
M040: NOP 0
L DBW [AR1,P#0.0]
L 2#100000000
OD
T DBW [AR1,P#0.0]
M041: NOP 0
// USS 40KHz IO --------------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 14
+I
SLD 3
LAR1
U DB4.DBX 17.5
SPB M042
SPA M043
M042: NOP 0
L DBW [AR1,P#0.0]
L 2#1000000000
OD
T DBW [AR1,P#0.0]
M043: NOP 0
// WSS IO ------------------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 14
+I
SLD 3
LAR1
U DB4.DBX 21.5
SPB M044
SPA M045
M044: NOP 0
L DBW [AR1,P#0.0]
L 2#10000000000
OD
T DBW [AR1,P#0.0]
M045: NOP 0
// Widerstand IO -----------------------------
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 14
+I
SLD 3
LAR1
U DB4.DBX 25.5
SPB M046
SPA M047
M046: NOP 0
L DBW [AR1,P#0.0]
L 2#100000000000
OD
T DBW [AR1,P#0.0]
M047: NOP 0
// Widerstandswert
AUF "DB_Daten_IO_Teile"
L "DB_Daten_IO_Teile".Index
L 16
+I
SLD 3
LAR1
AUF "DB_Schieberegister"
L DBD 60
AUF "DB_Daten_IO_Teile"
T DBD [AR1,P#0.0]
// Stueckzaehler erhoehen
L "DB_Daten_IO_Teile".Stueckzaehler
L 1
+I
T "DB_Daten_IO_Teile".Stueckzaehler
// Index erhoehen
L "DB_Daten_IO_Teile".Index
L 20
+I
T "DB_Daten_IO_Teile".Index
M013: NOP 0
Geschrieben wird in einen DB mit einem Array von folgender Struktur:
0.0 Datum DATE D#1990-1-1
2.0 Uhrzeit TIME_OF_DAY TOD#0:0:0.0
6.0 Stueckzaehler INT 0
8.0 Prefix_Schicht STRING[1] 'S'
12.0 Schicht INT 0
14.0 USS30KHz BOOL FALSE
14.1 USS40KHz BOOL FALSE
14.2 WSS BOOL FALSE
14.3 Widerstand_IO BOOL FALSE
16.0 Widerstand REAL 0.000000e+000
In dem DB gibt es am Ende noch einen Stückzähler und einen Index der für die Anfangsadressen benutzt wird.
Falls noch Infos fehlen reiche ich diese gerne nach
Also vielen Dank schon mal im Voraus.
Gruß Peraho