Fragen zum Datenbaustein

anne

Level-1
Beiträge
347
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Profis :p,

brauche bitte mal wieder eure Hilfe!

Es geht darum, mittels eines Scanners einen Barcode einzuscannen und im DB abzulegen.

Nun habe ich die SFC14 parametriert sowie im DB6 ab Adresse 2.0 ein Array mit 20 Feldern angelegt, siehe Anhang!

Aufgrund meiner Programmierung "P#DB6.DBX2.0 BYTE 20" in der SFC14 hätte ich erwartet, dass die Daten ab Adresse 2.0 fortlaufend bis Adresse 21.0 in den DB eingeschrieben werden. Dem ist jedoch nicht so - es wird gar nichts eingeschrieben!

Programmiere ich jedoch dagegen in der SFC14 "P#DB6.DBX0.0 BYTE 20", so werden die Daten in den DB geschrieben - allerdings auch irgendetwas in die Adresse 0.0

Meine Fragen:

1) Was muss ich programmieren, damit erst ab der Adresse 2.0 die Daten in den DB abgelegt werden?

2) Bedeutet ... Byte 20 wirklich, dass die nachfolgenden 20 Felder beschrieben werden?

Lieben Dank!
 

Anhänge

  • SFC14.jpg
    SFC14.jpg
    8 KB · Aufrufe: 28
  • DB6.jpg
    DB6.jpg
    58,7 KB · Aufrufe: 40
vielleicht liegt's am DBX, versuchsmal mit DBB, wenn du Bytes schreiben willst:
Code:
P#DB6.DBB2 BYTE 20
 
Hallo Anne,

Aufgrund meiner Programmierung "P#DB6.DBX2.0 BYTE 20" in der SFC14 hätte ich erwartet, dass die Daten ab Adresse 2.0 fortlaufend bis Adresse 21.0 in den DB eingeschrieben werden. Dem ist jedoch nicht so - es wird gar nichts eingeschrieben!
Was sagt der RET_VAL?
1) Was muss ich programmieren, damit erst ab der Adresse 2.0 die Daten in den DB abgelegt werden?
P#DB6.DBX2.0 BYTE 20 - ist genau richtig so, es muß DBX2.0 sein
2) Bedeutet ... Byte 20 wirklich, dass die nachfolgenden 20 Felder beschrieben werden?
BYTE 20 bedeutet, daß der angegebene Bereich genau 20 Byte lang ist.
Es wird also die angegebene Adresse DBB2 und die nachfolgenden 19 Byte bis DBB21 beschrieben.

Ich würde mal folgendes versuchen:
* 2 Dummy-Bytes ab DBB22 im DB6 deklarieren, damit DB6 nicht mit DBB21 endet.
* vielleicht mag der SFC14 kein Char-Array, also probeweise deklarieren: Code ARRAY[1..20] OF BYTE (oder ARRAY[0..19] OF BYTE)

Gruß
Harald
 
Hallo und vielen Dank für eure Hilfestellung!

Ich "Dummerle" hatte bei RET_VAL eine Doppelzuweisung, da ich das MW auch woanders eingesetzt hatte... ;)
 
Zurück
Oben