Unterschied zwischen EW und PEW

SPSman

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann mir jemand erklären welchen Unterschied es gibt, einen Sensor
(z.B 4-20 mA) über eine Analogeingabebaugruppe (z.B. 6ES7 331-7KF01-0AB0) einmal als EW einzulesen oder als PEW einzulesen. Vielleicht auch ein Beispiel wenn man es einsetzt.
 
Hallo,
wenn Du das PEW liest, schaust Du direkt diesen Moment auf die Karte.
wenn Du das EW liest, nimmst Du den Wert den die CPU vor dem Anfang des Zyklusses in das Prozessabbild der Eingänge geladen hat(also schon einige ms alt). Wenn die Karte überhaupt im Bereich des Prozeßabbildes der CPU liegt.
Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
EW benutzt du, wenn du den E-Bereich deiner ANallogbaugruppe in das Prozeßabbild gelegt hast, daß automatisch am Ende des OB1 eingelesen wird (oder am Anfang, bei älteren CPU). Das liegt i.d.R. bis EB 255, kann bei größeren CPU aber varierbar sein.
PEW benutzt, um die Eingangsdaten aus dem Bereich zu holen, der oberhalb des Prozeßabbildes liegt (i.d.R. ab 256) und der nicht automatisch von der CPU aktualisiert wird.
 
Da im PEW immer der aktuelle Wert des AD Wandlers ist kann dieser sich wärend eines Programmzyklusses ändern. Dies ist jedoch nicht immer erwünscht, z.B wenn du eine Berechnung mit dem Wert durchführen willst. In diesem Falle würde man auf das EW zugreifen welches vor Beginn des Pgrogramzyklusses aktualisiert wird und während dessen immer gleich bleibt.

Hoffe das war verständlich geschrieben
 
Da im PEW immer der aktuelle Wert des AD Wandlers ist kann dieser sich wärend eines Programmzyklusses ändern. Dies ist jedoch nicht immer erwünscht, z.B wenn du eine Berechnung mit dem Wert durchführen willst. In diesem Falle würde man auf das EW zugreifen welches vor Beginn des Pgrogramzyklusses aktualisiert wird und während dessen immer gleich bleibt.

Hoffe das war verständlich geschrieben
Na wenns im Peripherieabbild liegt eh, aber wenn nicht und es ist kritisch wegen der Konsistenz innerhalb eines Zykluses kann man am Beginn des OB1 den PEW- Bereich in einen Datenbereich kopieren und im Zyklus auf diese Daten zugreifen..... ist aber fast schon eine Religionsfrage... mir fällt nicht ein wo das für mich wichtig war :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Na wenns im Peripherieabbild liegt eh, aber wenn nicht und es ist kritisch wegen der Konsistenz innerhalb eines Zykluses kann man am Beginn des OB1 den PEW- Bereich in einen Datenbereich kopieren und im Zyklus auf diese Daten zugreifen..... ist aber fast schon eine Religionsfrage... mir fällt nicht ein wo das für mich wichtig war :)


Dank all der Freiheiten die eine S7 dem Programmierer bietet führen viele wege nach Rom. Diese Konsistenz war für mich bisher auch noch nicht nötig, aber das war ja nicht die Ausgangsfrage !!
 
Es sprechen 2 Dinge klar für EW.

1. Der Befehl L EW brauchen wesentlich weniger Rechenzeit als der Befehl L PEW (ca. 0,1 : 17 µs bei einer 317PN/DP)
2. Ist der Analogeingang dezentral aufgebaut (z.B. an ET200S) und die dezentrale Station fällt aus, wird beim Zugriff auf den Analogeingang mittels PEW im Diagnosepuffer ständig die Meldung "Peripherie-Zugrifffehler beim Lesen" eingetragen, außerdem wird der OB122 (oder 121?) ständig aufgerufen, was sich ebenfalls sehr negativ auf die SPS-Zykluszeit auswirkt.

Bei aktuelle S7-300 CPUs, welche eine Prozessabbildgröße von bis zu 2048 Bytes unterstützen (an Formware 2.5) spricht eigentlich kaum noch was für die Verwendung von PEW und PAW - einzig der Zugriff aus Weckalarm-OBs vielleicht.
Die S7-400 CPUs unterstützen so große Prozessabbilder ohnehin seit langem.


mfg
Maxl
 
Zuletzt bearbeitet:
Hallo zusammen

Bin zwar ein paar Jahre später, hätte aber trotzdem noch eine weiterführende Frage dazu:
Ist das einlesen von EB, EW, ED konsistent?

Also konkret habe ich eine Verbindung von einer CPU315-2DP zu einem PC mit CP5614 PCI-Karte. Wenn ich nun ein Wort ab Eingang 4 einlese, ist dann der Zugriff via EW4 konsistent und der Zugriff via PEW4 inkonsistent? Geht der Zugriff per EW und AW nur auf Daten des Prozessabbild? Ich möchte Total 64 Bytes übergeben (lesen und schreiben), welche Zahlen, Floats usw. beinhalten. Diese müssen natürlich konsistent sein, sonst können die Zahlen ja falsch gelesen werden, wenn im falschen Moment gelesen wird. Ich habe bereits mit SFC14 und SFC15 probiert, jedoch kriege ich immer den Fehler W#16#80B1 obwohl ich sicher bin, dass die HW-Config korrekt ist.

Beim lesen/schreiben mit EW/AW habe ich dann das Problem, dass meine CPU315 nur 128 bytes Prozessabbild hat, und mit PEW/PAW kann man weitaus mehr adressieren...(?)

Bin über hilfreiche Kommentare sehr dankbar! :)


hwconfig.JPG
sfc14sfc15.JPG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zugriff per EW/AW funktioniert nur auf EA-Adressen im eingestellten Prozessabbild.
Das Prozessabbild PAE/PAA ist innerhalb des OB1 konsistent.
Mit SFC14/SFC15 muß man exakt in der projektierten Konsistenzgröße zugreifen. Bei Dir also SFC14 und SFC15 jeweils 4 mal aufrufen (jeden Steckplatz extra!) für je 16 Byte, falls die Konsistenz der "16 Byte Input" als "Gesamt" projektiert ist. Falls die Konsistenz als "Einheit (Byte)" projektiert ist, dann kannst/mußt Du per PEB/PEW/PED zugreifen. Legst Du die EA-Adressen ins Prozessabbild, dann brauchst Du SFC14/SFC15 nicht, weil dann kümmert sich das Betriebssystem der 315-2DP um den konsistenten Datentransfer.

Harald
 
Zurück
Oben