TIA JWFröhlich MPS250 per Profinet will 200Byte übertragen

Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hatte ja schon geschrieben, dass mittlerweile alles läuft, auch mit DPRead/DPWrite, danke für Eure Tipps, aber die ursprüngliche Frage war eigentlich eine ganz andere....

Also DPRD_DAT und DPWR_DAT würde ich jetzt nicht so pauschal verteufeln.
Nur weil es älter ist, muss es nicht schlecht sein
 
Zuviel Werbung?
-> Hier kostenlos registrieren
DPRD_DAT und DPWR_DAT sind nur dafür notwendig, um mehr als 4 Byte Bereiche konsistent zwischen Peripherie-Adressen und Datenspeicher zu kopieren, weil MOVE das nur für höchstens 4 Byte kann und BLKMOV das nur zwischen Prozessabbildern und Datenspeicher kann. Für die 1x00-CPUs in TIA hat man dann für DPRD_DAT und DPWR_DAT auch das oft unnötige Kopieren zwischen Prozessabbildern und Datenspeicher zugelassen, um "historischen" Code ohne Änderungen und ohne Nachdenken weiter anwenden zu können. DPRD_DAT und DPWR_DAT sind nicht dafür gedacht, die effizienteren MOVE und BLKMOV zu ersetzen.
 
Wer sagt, dass mit DPRD/DPWR_DAT die Funktion MOVE/BLKMOV ersetzt werden soll?

Es lassen sich damit eben Funktionen realisieren, die mit MOVE/BLKMOV nicht umzusetzen sind.

Zum Beispiel, um zum Teil adressunabhängig zu programmieren.
Man legt die Hardware an, erhält seine Systemkonstanten, die finale Adresse ist für's Programm erstmal hinfällig.

Oder bei Geräten mit vielen möglichen Hardware-Submodulen kann man per PN-Name die Slots/Subslots-IDs auslesen und somit Bausteine erstellen, die anhand der konfigurierten Hardware verschiedene Funktionen realisieren.
Die Ein-/Ausgangsdaten werden dann eben per RD/WR bedient und der Bausteinaufruf bleibt schlank, da nicht zig Ein-/Ausgangs-UDTs per Aktualparameter versorgt werden müssen.
 
Man muss bedenken dass die DPRD_DAT und DPWR_DAT Variante unnötige Buslast bedeutet sowie die Fehlersuche erschwert. Und lesbarer wird der Code auch nicht.
 
Zurück
Oben