# DE 1 zu 1 am Stück in DB schieben; geht das?



## Jan (21 Oktober 2009)

Hallo,

ich bekomme in einem Bereich meiner Digitalen Eingänge Daten (Bits, Bytes, Real) und möchte diese in einen DB schieben um sie weiter zu verarbeiten.
Und ich möchte aus einem Bereich meines DBs Daten in die Digitalen Ausgänge schieben.

Bin im Forum noch nicht fündig geworden.

Gibt es eine Funktion, mit der ich die DE- und DB-Bereiche (wie mit einem MOVE) kopieren kann?

Gruß Jan


----------



## marlob (21 Oktober 2009)

z.B. bei Siemens S7

```
L EW0
T DB0.DBW0
```
usw.


----------



## marlob (21 Oktober 2009)

Oder für grössere Bereiche auf einmal den SFC20 aus der Standardbibliothek
Auch wieder für S7. Falls du das für eine andere Steuerung wissen musst, musst du die mal angeben


----------



## Jan (21 Oktober 2009)

Ich wollte nicht so viel Tippen, ich muss 172 Byte übergeben.

Gibt es dafür keinen FC?

Gruß Jan


----------



## Jan (21 Oktober 2009)

Oh, sorry, hatte ich vergessen zu erwähnen.

S7 CPU 315
SIMATIC MANAGER


----------



## marlob (21 Oktober 2009)

Jan schrieb:


> Ich wollte nicht so viel Tippen, ich muss 172 Byte übergeben.
> 
> Gibt es dafür keinen FC?
> 
> Gruß Jan


SFC20, siehe Beitrag 3.


----------



## Jan (21 Oktober 2009)

Das hatte sich überschnitten, ich schauen mir den mal gleich an.

Danke.


----------



## Jan (21 Oktober 2009)

Aus der Hilfe werde ich nicht schlau.
Wie muss ich die SFC20 beschriften, wenn ich ED40 bis ED122 in DB162.DBD0 bis DB162.DBD82 schieben möchte?

Gruß Jan


----------



## vierlagig (21 Oktober 2009)

```
*
      call  "blkmov"
       srcblk :=p#e 40.0 byte 86
       ret_val:=mw10
       dstblk :=p#db162.dbx 0.0 byte 86
```


----------



## Thomas_v2.1 (21 Oktober 2009)

vierlagig schrieb:


> ```
> *
> call  "blkmov"
> srcblk :=p#e 40.0 dword 83
> ...



83 DWORDs = 336 Bytes

Ich denke er will ED40 - ED122 kopieren, also:
P#E40.0 BYTE 84
oder
P#E40.0 DWORD 21


----------



## vierlagig (21 Oktober 2009)

Thomas_v2.1 schrieb:


> 83 DWORDs = 336 Bytes
> 
> Ich denke er will ED40 - ED122 kopieren, also:
> P#E40.0 BYTE 84
> ...



mist, verzählt


----------



## Jan (21 Oktober 2009)

Sehe ich das richtig, dass ich aus dem DWORD auch BYTE machen kann?
Und die Anzahl der Byte angegeben wird (inklusive Byte 0)?


----------



## HaDi (21 Oktober 2009)

Wenn ich mich nicht verzählt hab sind es 86 Bytes und die kriegst du eh nicht in dword aufgeteilt.

Grüße von HaDi


----------



## Jan (21 Oktober 2009)

Danke, ich dachte schon ich könnte nicht zählen. Ich bin auch auf 86 Bytes gekommen. Ich kann das auch als 86 Bytes schieben.

Wird das komplette Schieben eigendlich in einem Zyklus gemacht?


----------



## HaDi (21 Oktober 2009)

Ja, das kopieren/verschieben wird am Stück erledigt, direkt nach dem SFC20-Aufruf kann man auf die kopierten Daten zugreifen.
Bausteine, die ihren Job über mehrere Zyklen verteilt erledigen haben i.d.R. einen Ausgang, der die Beendigung oder aber Aktivität signalisiert (z.B. busy).

Grüße von HaDi


----------



## Jan (21 Oktober 2009)

Danke, das erspart mir viel Ärger und Arbeit.

Ich werde es Montag gleich ausprobieren.

An ALLE, 

vielen vielen Dank.

Gruß Jan


----------

