# größere Datenmengen von einem DP Slave lesen / schreiben



## fesch49 (26 August 2009)

Hallo zusammen,
ich brauch dringend Hilfe und bin für jeden Hinweis Dankbar!!

Ich habe an meiner S7-300'er CPU zwei DP-Slaves angebunden.
Diese haben jeweils einen Datenbereich von 48 Worte - jedoch nur eine Konsistenz über 1 Wort. Damit scheidet die Verwendung des SFC 14 bzw. 15 aus.
Da das Übertragen der Daten via ... L PEW [#ADDR] ... bzw. ... T PAW [#ADDR] sehr zeitaufwendig ist, suche ich nach einer besseren Möglichkeit die Daten zu lesen und zu schreiben.
- hat schon jemand dieses Problem gelöst?
- gibt es hierzu FC's / FB's (vieleicht hab ich diese nur noch nicht gefunden)?


----------



## Gebs (26 August 2009)

Hallo fesch,

liegen Deine E/A's im Prozessabbild? Dann mit SFC 20 die Daten kopieren.
Sonst eine Schleife programmieren, die alle Daten schreibt/liest.
3. Möglichkeit: In der HW-Config bei PB-Teilnehmer die Konsistenz ändern und dann mit dem SFC 14 / 15 arbeiten.

Grüße
Gebs


----------



## fesch49 (26 August 2009)

Hallo Gebs,
vielen Dank für Deine schnelle Reaktion!
Die Daten liegen im Prozessabbild - aber die SFC20 kopiert meiner Meinung nach Byteweise - ich probiere es am besten mal aus.
Schleife programmieren ist schon klar, nur mache ich mir bei 48 Worten sorgen um die Zykluszeit.
Zu Deinem 3.Vorschlag - die Konsistenz ändern ist leider nicht möglich, liegt vom Hersteller fest bei 1 Word

Gruß fesch49


----------



## Gebs (26 August 2009)

fesch49 schrieb:


> Zu Deinem 3.Vorschlag - die Konsistenz ändern ist leider nicht möglich, liegt vom Hersteller fest bei 1 Word



Vllt. kannst Du bei dem PB-Teilnehmer ja ein Universal-Modul einsetzen. Da kann man dann die Konsistenz ändern.

Grüße
Gebs


----------



## Larry Laffer (26 August 2009)

... für 48 Byte mußt du dir noch keine Sorgen wegen der Zykluszeit machen ...

Gruß
LL


----------



## Markus (26 August 2009)

fesch49 schrieb:


> Schleife programmieren ist schon klar, nur mache ich mir bei 48 Worten sorgen um die Zykluszeit.
> 
> 
> Gruß fesch49


 
ob jetzt 48 mal lade transferiere untereinander steht, oderr ob das in ner schleife 48x durchlaufen wird, das kommt auf das selbe raus...

der befehl "loop" hilft dir da.


//edit
und wenn du doppelwortweise umkopierst, dann gehts noch schheller...


----------



## fesch49 (27 August 2009)

Hallo Markus,
natürlich habe ich nicht 48 mal hintereinander L DWxxx  T PAW xyz geschrieben (Spagetticode läßt grüßen), sondern das in eine Schleife gepackt - nur habe ich das aufgetrennt in 2 x 24 Word, wegen der Zykluszeit.....
Ich suchte eine elegantere Lösung

Gruß fesch49


----------



## Markus (27 August 2009)

fesch49 schrieb:


> - nur habe ich das aufgetrennt in 2 x 24 Word, wegen der Zykluszeit.....
> Ich suchte eine elegantere Lösung
> 
> Gruß fesch49




du machst also nicht eine schleife mit 48 anweisungen, sondern zwei nacheinander mit 24 anweisungen?

was soll das bringen? das ist ja noch schlimmer als eine mit 48 anweisungen weil du etwas zusätzlichen code fr die zweite schleife rechnen musst...

und wie bereits geschreiben, wenn du doppelwortweise zugreifst, dann bekommst du es auch in eine schleife mit 24 durchläufen...


----------



## fesch49 (27 August 2009)

Hallo Markus,
nein so läuft das nicht - die 24'er Schleifen laufen nicht im selben Zyklus, sondern abwechselnd in verschiedenen CPU - Zyklen. (Etwas programieren kann ich schon)

Der DP-Slave hat eine feste Konsistenz über 1 Word - und kann nicht geändert werden, es gibt auch kein Universalmodul zum tricksen - damit kann ich def. nur Word-weise lesen und schreiben


----------



## Ralle (27 August 2009)

Was Markus dir sagen will, hol die 24 Word oder noch besser mach 12 DWord in einem Rutsch rein, du brauchst bei den wenigen Daten keinen so großen Aufwand machen, die verbrauchte Zykluszeit für die paar DWord ist extrem gering. Oder hast du eine so uralte schwachbrüstige SPS?


----------



## MSB (27 August 2009)

Wenn die Daten wie oben vom TE geschrieben sowieso im Prozessabbild liegen,
dann ist das Mittel der Wahl sowieso der SFC20 und nicht irgendwelche Schleifen (wobei 24DW als Schleife sicherlich kein Faktor bei der Zykluszeit sind)
schneller wirds höchstwahrscheinlich auch nicht mehr gehen ...

Mfg
Manuel


----------

