Autor Thema: DB-Werte drehen  (Gelesen 7009 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Outrider

  • Gast
DB-Werte drehen
« am: 19. Oktober 2010, 23:02:53 »
hallo , ich möchte aus einem Datenbaustein die Werte drehen und in einen anderen DB kopieren.
Die Anzahl der Werte soll veränderlich sein.
d.h. ich muß dynymisch auf den letzten Wert reagieren und ihn ganz nach oben schieben ( in anderen DB) wie ein LIFO
Wer hat da eine Idee oder gar ein Programm
Gruß

dalbi

  • Gast
Re:DB-Werte drehen
« Antwort #1 am: 20. Oktober 2010, 00:13:36 »
Hi,

von welchem Datentyp ist ein Element im Datenbaustein?

Gruss Daniel
« Letzte Änderung: 20. Oktober 2010, 00:15:11 von dalbi »

dalbi

  • Gast
Re:DB-Werte drehen
« Antwort #2 am: 20. Oktober 2010, 09:56:26 »
Beispiel für 16 Bit grosse Zahlen
FUNCTION FC1 : VOID

VAR_INPUT
  DB_Quelle : INT;  //DB Nummer Quelle
  DB_Ziel   : INT;  //DB Nummer Ziel
  Anzahl_DW : INT;  //Anzahl Datenworte
END_VAR
  
VAR_TEMP
  i : INT;
  tDB_Laenge : INT;
END_VAR

BEGIN

  tDB_Laenge := (Anzahl_DW * 2)-2;
  
  FOR i := 0 TO tDB_Laenge BY 2 DO
    WORD_TO_BLOCK_DB(INT_TO_WORD(DB_Ziel)).DW[tDB_Laenge-i] := WORD_TO_BLOCK_DB(INT_TO_WORD(DB_Quelle)).DW[i];
  END_FOR;
  
END_FUNCTION

so könnte man es z.B. machen.

Gruss Daniel
« Letzte Änderung: 20. Oktober 2010, 10:05:07 von dalbi »

dalbi

  • Gast
Re:DB-Werte drehen
« Antwort #3 am: 24. Oktober 2010, 22:10:36 »
Hi,

anbei der Baustein in compilierter Form als Step7-Projekt.

Gruss Daniel

[gelöscht durch Administrator]