Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Results 1 to 10 of 10

Thread: SCL - INT in DB schreiben

  1. #1
    Join Date
    26.11.2008
    Posts
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Default


    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!
    Reply With Quote Reply With Quote SCL - INT in DB schreiben  

  2. #2
    Join Date
    07.03.2004
    Posts
    4,462
    Danke
    948
    Erhielt 1,169 Danke für 837 Beiträge

    Default

    Kann das einfach an einem fehlenden W liegen?
    Quote Originally Posted by hulla66 View Post
    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!
    If you open your Mind too much, your Brain will fall out.

  3. #3
    hulla66 is offline Neuer Benutzer
    Themenstarter
    Join Date
    26.11.2008
    Posts
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Default

    Leider nein, Fehler bleibt bestehen.

  4. #4
    Join Date
    07.03.2004
    Posts
    4,462
    Danke
    948
    Erhielt 1,169 Danke für 837 Beiträge

    Default

    Ok

    Code:
    DB31.DBW[102] := myINT;
    If you open your Mind too much, your Brain will fall out.

  5. #5
    hulla66 is offline Neuer Benutzer
    Themenstarter
    Join Date
    26.11.2008
    Posts
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Default

    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;
            DB31.DB102 := DIFF;        
        END_IF;
    Quote Originally Posted by Fehlermeldung
    F: Z 0086 S 00029: Ungültiger Datentyp.

  6. #6
    Join Date
    07.03.2004
    Posts
    4,462
    Danke
    948
    Erhielt 1,169 Danke für 837 Beiträge

    Default

    Hast Du es nun mit dem "W" und dem"[" und auch dem "]" getestet?
    If you open your Mind too much, your Brain will fall out.

  7. #7
    hulla66 is offline Neuer Benutzer
    Themenstarter
    Join Date
    26.11.2008
    Posts
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Default

    Ja, ist getestet, leider negativ...

  8. #8
    Join Date
    07.03.2004
    Posts
    4,462
    Danke
    948
    Erhielt 1,169 Danke für 837 Beiträge

    Default

    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 *)
    If you open your Mind too much, your Brain will fall out.

  9. #9
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,806
    Danke
    746
    Erhielt 3,127 Danke für 2,231 Beiträge

    Default

    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.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #10
    hulla66 is offline Neuer Benutzer
    Themenstarter
    Join Date
    26.11.2008
    Posts
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für deinen professionellen Support! Dann muss ich mir etwas anderes ausdenken.

    Einen schönen Abend noch.

Similar Threads

  1. Int als Hexadezimalwerte darstellen und in String schreiben
    By carki in forum CODESYS und IEC61131
    Replies: 7
    Last Post: 30.03.2012, 09:15
  2. INT in ein Byte schreiben
    By TimoK in forum Simatic
    Replies: 2
    Last Post: 16.06.2009, 11:52
  3. mehrstellige INT in CHAR u. in DB schreiben
    By Anonymous in forum Simatic
    Replies: 4
    Last Post: 28.02.2008, 17:22
  4. SCL: Int in Real....
    By Jochen Kühner in forum Simatic
    Replies: 6
    Last Post: 22.02.2008, 16:36
  5. SCL Typumwandlung DINT => INT
    By fbeine in forum Simatic
    Replies: 1
    Last Post: 06.02.2006, 14:05

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •