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

fesch49

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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)?
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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...
 
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
 
- nur habe ich das aufgetrennt in 2 x 24 Word, wegen der Zykluszeit.....
Ich suchte eine elegantere Lösung

Gruß fesch49

:confused::confused::confused:
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...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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?
 
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
 
Zurück
Oben