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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Datenbaustein Werte kopieren

  1. #1
    Registriert seit
    09.10.2008
    Beiträge
    37
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo zusammen,


    möchte werte aus einen datenbaustein kopieren und in einen anderen rein kopieren.

    der db1 enthält 3 zeilen
    4 byte real 1.000e+4
    4 byte real 2.000e+4
    4 byte real 3.000e+4


    ich möchte diese werte jetzt in den db2 kopieren

    hätte mir dafür die sfc20 funktion gedacht
    klappt aber nicht ganz.

    CALL "BLKMOV"
    SRCBLK :=DB1.DBD0
    RET_VAL:=MW1000
    DSTBLK :=DB2.DBD0

    klappt aber nicht so ganz, jemand ne ideee
    Zitieren Zitieren Datenbaustein Werte kopieren  

  2. #2
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Probier es doch mal mit einem ANY-Pointer:

    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 REAL 3
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 REAL 3

  3. #3
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Was liefert dir RET_VAL für einen Returnwert??

  4. #4
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Zitat Zitat von doretan Beitrag anzeigen
    hallo zusammen,


    möchte werte aus einen datenbaustein kopieren und in einen anderen rein kopieren.

    der db1 enthält 3 zeilen
    4 byte real 1.000e+4
    4 byte real 2.000e+4
    4 byte real 3.000e+4


    ich möchte diese werte jetzt in den db2 kopieren

    hätte mir dafür die sfc20 funktion gedacht
    klappt aber nicht ganz.

    CALL "BLKMOV"
    SRCBLK :=DB1.DBD0
    RET_VAL:=MW1000
    DSTBLK :=DB2.DBD0

    klappt aber nicht so ganz, jemand ne ideee
    Wo steht die zu übertragende Länge? So werden es wahrscheinlich 4 Bytes sein.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  5. #5
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hallo,

    CALL "BLKMOV"
    SRCBLK :=DB1.DBX0.0 byte 12
    RET_VAL:=MW1000
    DSTBLK :=DB2.DBX0.0 byte 12

    so sollte es funktionieren

  6. #6
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Zitat Zitat von Verpolt Beitrag anzeigen
    Hallo,

    CALL "BLKMOV"
    SRCBLK :=DB1.DBX0.0 byte 12
    RET_VAL:=MW1000
    DSTBLK :=DB2.DBX0.0 byte 12

    so sollte es funktionieren
    Desweiteren sind möglich:

    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 BOOL 96
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 BOOL 96
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 CHAR 12
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 CHAR 12
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 DATE 6
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 DATE 6
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 WORD 6
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 WORD 6
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 INT 6
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 INT 6
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 S5TIME 6
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 S5TIME 6
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 DINT 3
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 DINT 3
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 DWORD 3
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 DWORD 3
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 TIME 3
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 TIME 3
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 TIME_OF_DAY 3
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 TIME_OF_DAY 3
    Code:
    CALL SFC 20
    SRCBLK := P#DB1.DBX0.0 REAL 3
    RET_VAL := MW1000
    DSTBLK := P#DB2.DBX0.0 REAL 3

  7. #7
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    Bei String wäre noch zu beachten dass das Format byte angewählt werden muss und die Anzahl der byte "Zeichensumme +2" ist.

    RET_Val gibt eine Fehlernummer aus wenn der Bloc Falsch belegt ist.
    Wenn alles ok ist, so ist der Wert 0.

    Um Flexibel mit dem SFC addressierne zu können empfihlt sich diesen mit anypointern zu arbeiten.
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  8. #8
    Registriert seit
    09.10.2008
    Beiträge
    37
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hallo

    vielen dank für eure antworten

    funktioniert noch nicht so ganz.

    bekomme bei ret_val den fehler: -31965 = 7CDD
    kann diesen fehler leider nicht zuordnen.

    im DB2 werden auch keine werte sichtbar!!!

  9. #9
    Registriert seit
    13.04.2008
    Ort
    Großraum KA
    Beiträge
    963
    Danke
    52
    Erhielt 128 Danke für 112 Beiträge

    Standard

    Also Ich habe das Ganze mal getestet.

    Es funktioniert überraschenderweise auch so

    CALL SFC 20
    IN0 :=DB1
    RET_VAL:=MW1000
    OUT1 :=DB2

    peterR

  10. #10
    Registriert seit
    01.11.2007
    Beiträge
    1.237
    Danke
    91
    Erhielt 407 Danke für 368 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von doretan Beitrag anzeigen
    bekomme bei ret_val den fehler: -31965 = 7CDD
    Meiner Meinung nach ist -31965(dez)=8323(Hex) und damit wärs ein Bereichslängenfehler beim Schreiben, also scheint etwas mit deinem DB2 nicht zu stimmen oder gibt´s bei deiner CPU kein MW1000 ?

    Ist jetzt zwar nicht besonders hip, geht aber auch:
    Code:
    L DB1.DBD0
    T DB2.DBD0
    L DB1.DBD4
    T DB2.DBD4
    L DB1.DBD8
    T DB2.DBD8
    Grüße von HaDi

Ähnliche Themen

  1. Datenbaustein in Variablentabelle kopieren
    Von Isha im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 17.03.2015, 17:58
  2. S5 - Werte im Datenbaustein ändern
    Von SEAL im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 07.12.2009, 17:20
  3. Werte in einen Datenbaustein
    Von doretan im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 05.02.2009, 16:57
  4. Datenbaustein Bereiche kopieren
    Von elektro_mensch im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 24.02.2008, 16:51
  5. Antworten: 2
    Letzter Beitrag: 18.07.2005, 10:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •