# AW! und PAW?



## Hary252 (24 Juni 2008)

Hi

Kann von den analog Ausgängen AW und PAW etwas erleutern wo da die unterschiede sind 
und wofür steht das P?


----------



## eYe (24 Juni 2008)

AW = Ausgangswort
PAW = Peripherie Ausgangswort

Wenn ich richtig informiert bin gehören die AW zum Prozeßabbild (PA) und werden zu Beginn jedes Zykluses eingelesen.
Die PAW hingegen werden exakt dann gelesen wenn Sie benutzt werden, soll z.B. für regelungstechnische Aufgaben von Vorteil sein?

Die Anzahl der maximal möglichen EW/AW im PA hängt von der verwendeten CPU ab.

In der Siemenshilfe steht da aber auch was zu und ich bin sicher hier im Forum gibbet auch den ein oder anderen Beitrag (Suchfunktion)

schönen Abend, eYe


----------



## vierlagig (24 Juni 2008)

eYe schrieb:


> Die PAW hingegen werden exakt dann gelesen wenn Sie benutzt werden



fast ... PAW wird geschrieben ... ist ja ein ausgangswort 

ansonsten schon fast richtig erklärt ... bis auf das, wenn das AW nicht innerhalb des prozessabbildes liegt, was bei 300er-steuerungen sehr schnell passieren kann, immer das PAW zu verwenden ist...innerhalb des prozessabbildes kann man es sich je nach anwendung und notwendigkeit aussuchen


----------



## Maxl (24 Juni 2008)

vierlagig schrieb:


> fast ... PAW wird geschrieben ... ist ja ein ausgangswort
> 
> ansonsten schon fast richtig erklärt ... bis auf das, wenn das AW nicht innerhalb des prozessabbildes liegt, was bei 300er-steuerungen sehr schnell passieren kann, immer das PAW zu verwenden ist...innerhalb des prozessabbildes kann man es sich je nach anwendung und notwendigkeit aussuchen


Der Vollständigkeit halber noch:

EW/AW hat einige Vorteile:
1. ist die Bearbeitung von EW/AW wesentlich schneller als von PEW/PAW - Zykluszeitbelastung also etwas geringer
2. speziell wenn analogsignale dezentral liegen (also z.B. auf ET200S) und der Profibus fällt aus, wird bei Zugriff auf PEW/PAW der Fehler "Peripheriezugriffsfehler beim Lesen/Schreiben" in den Diagnosepuffer eingetragen und der OB122 aufgerufen - was die CPU wiederum ausbremst.
3. Der Zustand eines EW/AW ist über den gesamten OB1-Zyklus konsistent - vor OB1-Beginn werden alle AW zur Peripherie geschrieben, und dann alle EW von der Peripherie geladen.

PEW/PAW hat (wie schon vorher beschrieben) den Vorteil, dass der Zustand eines PEW direkt zum Zeitpunkt des Zugriffes abgefragt wird - der Wert wird also zur Laufzeit des jeweiligen OB aktualisiert. Dies ist notwendig, wenn man auf Signal z.B. aus einem Weckalarm-OB (OB35) zugreifen will.

Also solange keine zeitkritischen Anwendungen dies fordern, spricht nichts für PEW/PAW, solange Platz im Prozessabbild ist.


mfg Maxl


----------



## Hary252 (24 Juni 2008)

hi

Danke schonmal für eure antworten

Wie kann ich jetzt also von einem PAW wert auf ein AW ausgang kommen ?

Geht das überhaupt?


----------



## vierlagig (24 Juni 2008)

Hary252 schrieb:


> Wie kann ich jetzt also von einem PAW wert auf ein AW ausgang kommen ?
> Geht das überhaupt?



 ...lösch das P davor?! ...sofern dein ausgangswort, wie mehrfach erwähnt im prozessabbild liegt, welches cpu-spezifisch bzw. einstellbar ist ... wenn es definitiv außerhalb dessen liegt, kommst du am PAW,  wie mehrfach erwähnt, nicht vorbei. solltest du diesen wert mehrfach, entsprechend unterschiedlicher bedingungen, aktualisieren wollen aber nur einmal pro zyklus schreiben wollen, so schreibe die einzelnen ergebnisse in ein MW (äqu. DW - was länger dauert) und transferiere dies am ende des zyklusses bzw. nach der letzten bearbeitung auf das PAW.


----------



## hovonlo (25 Juni 2008)

Liegt eine Baugruppe von der Adresse her im Peripherieabbild (dessen Größe hängt ja von der verwendeten CPU ab), so kann man auch direkt mit T PAW xyz auf sie schreiben, das zugehörige AW im Peripherieabbild wird durch den Zugriff auf PAW auch aktualisiert - das AW ist also konsistent. Durch den Zugriff aufs PAW wird aber der Ausgang (wie schon mehrfach beschrieben) sofort gesetzt - das kann bei manchen Anwendungen schon hilfreich sein.


----------



## Hary252 (25 Juni 2008)

hi

Danke nochmal

Ich hatte das probirt mit dem P weglassen daber dan hat der beim Laden auf den CPU die meldung                                          "(D280) Fehler bei der Übersetzung eines Bausteins in S7-300 CPU."
gebracht 

Es geht allerdings auch Mit P
ich hate nur dei Ausgänge auf +/-10V anstadt auf 0...10V eigestellt und deswegen gab mir der ausgang Seltsamerweise nichts raus da er warscheinlich nicht in dem dafür gedachten bereich war (10000 anstadt 27648)


----------



## vierlagig (25 Juni 2008)

eigenartige herangehensweise ... erst über (P)AW ausfragen und dann daher kommen und erzählen, der wert stimme nicht ... wir hätten uns alle sehr viel tipparbeit erspart, wäre wenigstens im zweiten post ein hinweis auf die falschen werte versteckt worden ... ich bin geladen :sb6:

*da zeigt sich mal wieder, dass das saubere und gewissenhafte parametrieren von hardware unerlässlich ist!*


----------



## Hary252 (25 Juni 2008)

Sorry habs selber erst zu spät gesehen aber hab trozdem was gelernt


----------



## Maxl (25 Juni 2008)

Hary252 schrieb:


> Ich hatte das probirt mit dem P weglassen daber dan hat der beim Laden auf den CPU die meldung "(D280) Fehler bei der Übersetzung eines Bausteins in S7-300 CPU." gebracht


Ich will ja nicht unhöflich sein, aber kannst Du mit dem Begriff "Prozessabbild" was anfangen bzw. weißt Du was das ist?


----------



## Hary252 (25 Juni 2008)

hi

Ja ein prozessabbild wie bei jedem anfang eines Zyklus gemacht 
dabei werden alle eingänge gelesen und in den vorhergesehenen speicherbereich des prozessabbildes übernommen, nach stert des programmes liest und schreibt es aus den speicherbereichen des Prozessabbildes


----------



## Maxl (25 Juni 2008)

bei jeder CPU hat das Prozessabbild eine begrenzte Größe (z.B. 128 Bytes bei 315). Adressiertst Du Deine Analogeingänge innerhalb des Prozessabbildes (also z.B. auf 120..127 statt 336..343), dann lassen sich analoge Ein-Ausgänge auch per EW und AW ansprechen.



> Ich hatte das probirt mit dem P weglassen daber dan hat der beim Laden auf den CPU die meldung "(D280) Fehler bei der Übersetzung eines Bausteins in S7-300 CPU." gebracht


Diese Meldung bedeutet, dass Du in diesem baustein auf eine AW-Adresse schreibst, die bei dieser CPU nicht möglich ist (T AW 336 ist bei 315 nicht möglich, sehr wohl aber T AW 120)

mfg


----------



## johnij (26 Juni 2008)

eYe schrieb:


> AW = Ausgangswort
> 
> Wenn ich richtig informiert bin gehören die AW zum Prozeßabbild (PA) und werden zu Beginn jedes Zykluses eingelesen.
> 
> ...


----------



## Hary252 (26 Juni 2008)

hi

Danke das habe ich bis jetzt nicht gewust da ich noch nicht so viele ausgänge gebraucht habe.
Aso wenn ich nur 128 Bytes zur ferfügung habe (28 Ausgänge) muss ich auf PAW zurückgreifen.
PAW wird aber leider in Hex ausgegeben was dem ausgang ja nichts macht, aber ich bei meinem MP 270B einen Balken in der veriable auf fast alles nur nicht auf Hex einstellen kann demnach muss ich den wert wandeln nur wie mache ich das? 
Mit Move geht das nicht wäre die einfachste lösung gewesen

oder kann ich diese 128 Bytes mit einer Memorycard erweitern?


----------



## vierlagig (26 Juni 2008)

du schmeißt grad mächtig was durcheinander, also eins nach dem anderen

dass das prozessabbild "nur" 128 byte umfasst heißt nicht, dass du nicht auch darüber hinaus adressieren kannst.
die 128 byte des prozessabbildes kannst du mit EW/AW oder mit PEW/PAW ansprechen, adressen die darüber hinausgehen mußt du mit PEW/PAW ansprechen...
die genaue adressierung kannst du der hardwarekonfiguration entnehmen.

jetzt sollten wir dann auch noch mal definieren, was du überhaupt machen möchtest!

möchtest du einen analogwert einlesen und in einen real-wert wandeln oder möchtest du ein real-wert ausgeben? wenn ausgeben: wo? auf dem panel kannst du ja den realwert verwenden. für eine analogausgabebaugruppe mußt du den wert wandeln. wie einlesen und ausgeben (auf z.b. 0..10V) funktioniert kannst du hier nachlesen.


----------



## Hary252 (26 Juni 2008)

HI

war nicht meine absicht so ein durcheinander zu verursachen 

Also

Ich habe vor mehrere dimmer mit einem taster zu steuern ( alls SPS keine externen dimmer) und über einen Analog ausgang 0...10V auszugeben für z.b. EVGs.
Nun hat manches haus mehr als 28 Lichtstellen  (wie du geschrieben hast max. 28 AW bei CPU 315 danach PAW ) 


Als zentralle Steuerfunktion habe ich  ein MP270B mit dem ich den status der ausgänge  also 0...100% mit einem Balken anzeigen möchte.

Die variable kann aber leider Nur den normalen Wert der AW (Word )

Die PAW gibt aber Hex als augabewert aus und dieses format kann ich in der variable für Den Balken nicht nutzen


----------



## Ralle (26 Juni 2008)

Du könntest ja die PAW, welche du ja per T PAW schreibst gleich noch in einen DB schreiben und diese DB-Variablen dann für die Anzeige am Panel nehmen.


----------



## vierlagig (26 Juni 2008)

bei 128 sinds 16 ... aber das nur am rande


----------



## Ingmar64 (27 Juni 2008)

*Wo ist das Problem?*

Ich sehe hier überhaupt kein Problem, ob nun Hex oder Dezimal. W#16#FF ist nunmal dasselbe wie L#255. Ob im AWL-Text da nun Hex oder Dezimal steht ist für den eigentlichen Wert, den das Display sich holt völlig wurscht, denn das muß ja den Typ gar nicht wissen.
Oder liegt das Problem wo ganz anders?

PS: Problematisch ist eher der um 3 Bit verschobene Wertebereich bei 12Bit-Baugruppen.


----------



## vierlagig (27 Juni 2008)

Ingmar64 schrieb:


> Ich sehe hier überhaupt kein Problem, ob nun Hex oder Dezimal. W#16#FF ist nunmal dasselbe wie L#255. Ob im AWL-Text da nun Hex oder Dezimal steht ist für den eigentlichen Wert, den das Display sich holt völlig wurscht, denn das muß ja den Typ gar nicht wissen.
> Oder liegt das Problem wo ganz anders?



das problem ist, dass die visualisierung nicht direkt die PAW sondern nur AW auswerten kann, daher ralles vorschlag DBW zum zwischenspeichern zu verwenden ... 

...ist das tatsächlich so schwer aus dem kontext zu lesen gewesen?


----------



## Hary252 (1 Juli 2008)

hi


Ich hab jetzt mal Probiert mit DB zu arbeiten im Online modus sehe ich das sich im DB der wert des ausgangs ändert aber Auf dem panal nichts Geht weder taster noch Balken .

Wenn ich auf dem panal taste ändert sich der wert im DB auch nicht 

Was mache ich falsch ich nehme direkt die variablen aus dem DB bei WinCC flex


----------



## Ralle (1 Juli 2008)

Hary252 schrieb:


> hi
> 
> 
> Ich hab jetzt mal Probiert mit DB zu arbeiten im Online modus sehe ich das sich im DB der wert des ausgangs ändert aber Auf dem panal nichts Geht weder taster noch Balken .
> ...



Was machst du genau?????

Schreibst du mit dem SPS-Programm jeden Zyklus in den DB und versuchst diesen DB-Wert per Taster am OP zu ändern? Der wird doch dann sofort wieder von der SPS überschrieben, bei einer Zykluszeit von einigen Millisekunden siehst du da freilich nichts am Panel. Oder hab ich dich falsch verstanden?


----------



## Hary252 (2 Juli 2008)

hi

Ich kenn mich da jetzt nicht so gut aus aber ich habe zusätzlich zu einem taster (E0.0) einen DB5.BBW2 mit einem "oder" verknüpft diesen DB wert nehme ich ebenfals auch bei dem taster am panal um vom panal zum Baustein ein ein signal zu senden.

Beim AW verschiebe ich den wert des PAW288 (HEX) in einen anderen DB um INT zu erhalten den ich dann bei dem Panal für den Balken nutzen kann
dieser wert ändert sich auch im DB abel auf dem panal zeigt mir der Balken nichts an

Warum?


----------



## vierlagig (2 Juli 2008)

du magst das, was du da geschrieben hast vielleicht verstehen, weil du davor sitzt und mit deinem finger das ganze nachmalen und verfolgen kannst ... bei mir ist nur bahnhof angekommen ... aber soll ja nicht mein problem sein 

verbindung panel-cpu steht? also andere dinge werden angezeigt? sehr schön! dann überprüfe die adresse dessen, was nicht angezeigt wird...


----------



## Hary252 (2 Juli 2008)

hier mal ein Beispiel


----------

