# Unterschied zwischen EW und PEW



## SPSman (19 Juli 2007)

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.


----------



## thomass5 (19 Juli 2007)

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


----------



## Ralle (19 Juli 2007)

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.


----------



## Snoopy123123 (19 Juli 2007)

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


----------



## borromeus (19 Juli 2007)

Snoopy123123 schrieb:


> 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


----------



## Snoopy123123 (19 Juli 2007)

borromeus schrieb:


> 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 !!


----------



## Maxl (21 Juli 2007)

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


----------



## lukelukeluke (22 Januar 2018)

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!


----------



## PN/DP (22 Januar 2018)

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


----------

