SCL - INT in DB schreiben

hulla66

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin.

Kann ich mit SCL Werte in einen DB schreiben?
Lage:
Ich habe einen Wert DIFF (als INT) und möchte diesen in einen DB31.DB102 schreiben. Beim Compilieren bekomme ich aber immer den Fehler, "Ungültiger Datentyp". Im DB ist die besagte Zeile als INT deklariert.


Ist das ein normales Verhalten?

Vielen Dank schon einmal für eure Hilfen!
 
Kann das einfach an einem fehlenden W liegen?
Moin.

Kann ich mit SCL Werte in einen DB schreiben?
Lage:
Ich habe einen Wert DIFF (als INT) und möchte diesen in einen DB31.DBW102 schreiben. Beim Compilieren bekomme ich aber immer den Fehler, "Ungültiger Datentyp". Im DB ist die besagte Zeile als INT deklariert.


Ist das ein normales Verhalten?

Vielen Dank schon einmal für eure Hilfen!
 
Ok

Code:
DB31.DB[B][COLOR=Red]W[[/COLOR][/B]102[B][COLOR=Red]][/COLOR][/B] := myINT;
 
Danke für deine Ideen.

Hier mal der entsprechende Code, vielleicht erkennt man im Zusammenhang mehr.

Code:
...
VAR_TEMP
    DIFF : int;
END_VAR
...

 // Stein 2 validieren
    IF((STEIN2 = TRUE) AND (STEIN3 =FALSE) AND (STEIN4 = FALSE) AND (STEIN5 =FALSE)) THEN
        FOR i := 0 TO 50 DO
      DIFF :=  DIFF + (STEIN_1 [i] - STEIN_2 [i]);
        END_FOR;
        [COLOR="Red"]DB31.DB102 := DIFF;    [/COLOR]    
    END_IF;

Fehlermeldung schrieb:
F: Z 0086 S 00029: Ungültiger Datentyp.
 
So ich hab meine Siemens Gurke mal ausgepackt. Ich bekomme die Zuweisung nur symbolisch hin.


DdName.VarName := myINT;

und absolute Zuweisungen gehen auch aber nicht mit INT sondern mit Word.

DB31.DW123 := 100; (* geht *)

DB31.DW123 := myINT; (* geht nicht *)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zotos hat Recht.

Entweder du greifst symbolisch zu:

DB_Zugriff_Test.Test_Int[102] := DIFF; (Als Array von INT im DB angelegt)

oder du wandelst:

DB31.DBW102 := Int_To_Word(DIFF);

SCL bekommt wohl nicht heraus, was in dem DB genau definiert ist und nimmt dann Word an.
 
Zurück
Oben