# Mit Adressregister von Daten von DBx in einen DBy kopieren



## iga-graz (12 Oktober 2007)

Hallo ich habe folgende Problemstellung,
ich möchte vom DB  "AR_Send_Datenaufber" ein Wort von Position 6.0 in den DB "dbARSENDout" in die Position 16.0 kopieren
wie kann ich das realisieren, mit dem angehängten Code geht es so leider nicht, da durch den 2. AUF DB "dbARSENDout" anscheinend das AR1 überschrieben wird.

Kann mir bitte jemand bei diesem Problem helfen.

Vielen Dank im voraus

chris


```
AUF   "AR_Send_Datenaufber"
      LAR1  P#DBX 6.0  
      AUF   "dbARSENDout"
      LAR2  P#DBX 16.0


      L     DBW [AR1,P#0.0]
      T     DBW [AR2,P#0.0]
```


----------



## Kai (12 Oktober 2007)

Dein Problem liegt im Aufruf der Datenbausteine. Es kann immer nur ein Datenbaustein zur Zeit geöffnet sein. Wenn Du zwei Datenbausteine hintereinander öffnest, ist immer nur der zuletzt geöffnete Datenbaustein offen, der andere ist wieder geschlossen.

Folgender Programmcode sollte also funktionieren:


```
[FONT=Courier New][COLOR=#0000cc]LAR1  P[/COLOR][/FONT][FONT=Courier New][COLOR=#ff9900]#DBX 6.0  [/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000cc]      LAR2  P[/COLOR][/FONT][FONT=Courier New][COLOR=#ff9900]#DBX 16.0[/COLOR][/FONT]
 
[COLOR=#0000cc]      AUF   [/COLOR][FONT=Courier New][COLOR=#cc0000]"AR_Send_Datenaufber"[/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000cc]      L     DBW [/COLOR][COLOR=#006600][[/COLOR][COLOR=#0000cc]AR1[/COLOR][COLOR=#006600],[/COLOR][COLOR=#0000cc]P[/COLOR][/FONT][FONT=Courier New][COLOR=#ff9900]#0.0][/COLOR][/FONT]
 
[FONT=Courier New][COLOR=#0000cc]      AUF   [FONT=Courier New][COLOR=#cc0000]"dbARSENDout"[/COLOR][/FONT]
[/COLOR][/FONT][FONT=Courier New][COLOR=#0000cc]      T     DBW [/COLOR][COLOR=#006600][[/COLOR][COLOR=#0000cc]AR2[/COLOR][COLOR=#006600],[/COLOR][COLOR=#0000cc]P[/COLOR][/FONT][COLOR=#ff9900][FONT=Courier New]#0.0]  [/FONT][/COLOR]
```
 
Gruß Kai


----------



## iga-graz (12 Oktober 2007)

Danke das war die Lösung jetzt geht´s.

bg
chris


----------



## sps-concept (12 Oktober 2007)

*Kopieren*

Hallo,

wenn du viele solche Aktionen nacheinander hast kannst du auch mit den DB-Registern jonglieren. Inwiefern das sauber ist muss jeder für sich entscheiden.


```
[FONT=Arial]    [COLOR=#0000cc]LAR1  P[/COLOR][COLOR=#ff9900]#DBX 6.0  [/COLOR][/FONT]
[FONT=Arial][COLOR=#0000cc]    LAR2  P[/COLOR][COLOR=#ff9900]#DBX 16.0[/COLOR][/FONT]
 
[FONT=Arial][COLOR=#0000cc]   AUF   [/COLOR][COLOR=#cc0000]DB x[/COLOR][/FONT]
[FONT=Arial][COLOR=#0000cc]   AUF   [/COLOR][COLOR=#cc0000]DI y[/COLOR][/FONT]
 
[FONT=Arial][COLOR=#0000cc]   L     DBW [/COLOR][COLOR=#006600][[/COLOR][COLOR=#0000cc]AR1[/COLOR][COLOR=#006600],[/COLOR][COLOR=#0000cc]P[/COLOR][COLOR=#ff9900]#0.0][/COLOR] [/FONT]
[FONT=Arial][COLOR=#0000cc]   T     DIW   [/COLOR][/FONT][FONT=Arial][COLOR=#006600][[/COLOR][COLOR=#0000cc]AR2[/COLOR][COLOR=#006600],[/COLOR][COLOR=#0000cc]P[/COLOR][COLOR=#ff9900]#0.0]  [/COLOR][/FONT]
```
 
André


----------



## OHGN (12 Oktober 2007)

sps-concept schrieb:


> Hallo,
> 
> wenn du viele solche Aktionen nacheinander hast kannst du auch mit den DB-Registern jonglieren. Inwiefern das sauber ist muss jeder für sich entscheiden.


Das war innovativ!:s1:


----------



## mustang (12 Oktober 2007)

Hallo!  

Für solche Fälle kann man doch auch den SFC20 verwenden.


CALL SFC 20
SRCBLK :=P#DB1.DBX0.0 BYTE 2
RET_VAL:=DB10.DBW42
DSTBLK :=P#DB5.DBX16.0 BYTE 2


----------



## zotos (12 Oktober 2007)

OHGN schrieb:


> Das war innovativ!:s1:



100% Ack.
~~~~~~~


----------



## sps-concept (12 Oktober 2007)

*ups*



zotos schrieb:


> 100% Ack.
> ~~~~~~~


 
sowas von zotos.. das macht mir Angst! Hat sich irgendwas geändert von dem ich noch nichts weiss? Na dann danke für die Blumen. Keine Mecker von zotos ist ja schon Lob genug.. Aber das? *grübel*


----------



## iga-graz (14 Oktober 2007)

Hallo zusammen, bitte noch mal um eine kurze Erklärung.

Ich habs jetzt mit dem AUF DB und AUF DI versucht, aber AUF DI ist ja nur für das Aufschlagen eines Instanzdatenbausteines. Ich möchte aber Daten von einem in einen anderen GlobalDB kopieren.

Ich brauch diese Funktion deshalb, da ich mir aus einem bestehenden Datensatz einen neuen mit verschobenen Feldern für die Übertragung an WinCC mittels AR_SEND zusammenbasteln muss.

DB54 ist der DB in dem der für AR_SEND fertige Datensatz stehen muss.

Also mit AUF DI 54 funktionierts bei mir nicht.

Vielen Dank für eure Unterstützung, anbei der Code.

lg

chris


```
LAR1  P#DBX 0.0
      LAR2  P#DBX 2.0

      AUF   "AR_Send_Datenaufber"
      AUF   DI    54

      L     DBB [AR1,P#0.0]
      T     DIB [AR2,P#0.0]
      L     DBB [AR1,P#1.0]
      T     DIB [AR2,P#1.0]
      L     DBB [AR1,P#2.0]
      T     DIB [AR2,P#2.0]
      L     DBB [AR1,P#3.0]
      T     DIB [AR2,P#3.0]
      L     DBB [AR1,P#4.0]
      T     DIB [AR2,P#4.0]
      L     DBB [AR1,P#5.0]
      T     DIB [AR2,P#5.0]

      LAR1  P#DBX 6.0
      LAR2  P#DBX 16.0

      AUF   "AR_Send_Datenaufber"
      AUF   DI    54

      L     DBB [AR1,P#0.0]
      T     DIB [AR2,P#0.0]

      LAR1  P#DBX 8.0
      LAR2  P#DBX 22.0

      AUF   "AR_Send_Datenaufber"
      AUF   DI    54

      L     DBB [AR1,P#0.0]
      T     DIB [AR2,P#0.0]
```


----------



## MatMer (15 Oktober 2007)

sps-concept schrieb:


> sowas von zotos.. das macht mir Angst! Hat sich irgendwas geändert von dem ich noch nichts weiss? Na dann danke für die Blumen. Keine Mecker von zotos ist ja schon Lob genug.. Aber das? *grübel*



auch Zotos hat mal nen schlechten Tag 

ausserdem war es nach 18 Uhr, das heißt die nette Variante von Zotos, das heißt wiederum, dass das gar nichts heißt, weil der nette Zotos auch loben würde wenn er es so meint 

und es war nur spaß....


----------



## sps-concept (15 Oktober 2007)

*was geht nicht?*

Hallo,

was geht denn nicht? Mit AUF DI kannst du auch nen Global-DB als Instanz-DB öffnen. Was steht in deinen DB-Registern usw? Mach mal nen Screenshot.

André


----------



## iga-graz (15 Oktober 2007)

hallo, war mein fehler im code.

ich musste in den beiden DBs jeweils auch ein Wort und ein Doppelwort übertragen und ich hatte nur die bytes übertragen und deshalb auch keine Werte im anderen DB gesehen.

Vielen Dank geht alles, ausser natürlich die Adressierung mittels Symbol, oder muss ich da auch noch was beachten?

bg

Chris


```
LAR1  P#DBX 6.0
      LAR2  P#DBX 16.0

      AUF   "AR_Send_Datenaufber"
      AUF   DI    54

      L    DBW [AR1,P#0.0]  // DBB [AR1,P#0.0] 
      T    DBW [AR2,P#0.0]  // DIB [AR2,P#0.0]

      LAR1  P#DBX 8.0
      LAR2  P#DBX 22.0

      AUF   "AR_Send_Datenaufber"
      AUF   DI    54

      L     DBD [AR1,P#0.0] // DBB [AR1,P#0.0]
      T     DBD [AR2,P#0.0] // DIB [AR2,P#0.0]
```


----------

