TIA Analogwert verarbeiten SCL

Zuviel Werbung?
-> Hier kostenlos registrieren
Also hängt die parametrierung vom Soll-/ist wert davon ab wie viel bit die eingabebaugruppe ab...

Was ich nicht ganz verstanden habest das mit PEW wozu verwendet man das und was kann ich mir unter dem Begriff Prozessabbild vorstellen?

LG EMZ
 
Nein, bei Siemens ist es schnurzegal, auf wieviele Bits der ADU digitalisiert. An den Wandlerwert werden 0-Bits angehängt (geshiftet), so daß immer auf 27648 = 100% des parametrierten Analogsignals skaliert ist. Schau mal in das S7-300-Baugruppenhandbuch, da ist das ganz genau erklärt. In Deinem Programm skalierst Du dann den Analogwert 0 ... 27648 auf Deine physikalische Einheit (z.B. 0 ... 1,5 bar) ohne Rücksicht nehmen zu müssen, von was für einem ADU der Wert kommt. Wandelt der ADU nur auf wenige Bits, dann ändert sich der Analogwert nicht in 1-er Schritten, sondern in gröberen Sprüngen von 32 oder 128 oder ..., je nachdem um wieviele Bits der ADU-Wert geshiftet wurde.

PEW ist die Peripherieadresse auf der Baugruppe. Wenn Du im Programm auf PEW zugreifst, dann wird direkt die Baugruppe abgefragt, zweimal nacheinander zugreifen kann 2 verschiedene Werte liefern, falls der asynchron arbeitende ADU genau dazwischen eine Wandlung abgeschlossen hat.

EW kommt aus dem Prozessabbild im Speicher der CPU. Vor jedem Aufruf des OB1 liest die CPU alle Baugruppen und legt die Werte ins Prozessabbild. Im OB1 kann man dann beliebig oft EW aus dem Prozessabbild lesen, das liefert immer den selben Wert und geht außerdem viel schneller.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Harald,

Also is der wert von pew bei jedem lesen des prozessabbilds evtl variabel wenn es eine analogwertänderung gab und bei ew bleibt der wert immer gleich, solang man nicht ob1 aufruft und in der zeit es eine wertänderung gab.

Kannst du mir z.b. aus der praxis jeweils ein programmierbeispiel mit pew und ew zeigen was in scl geschrieben wurde?

Weil oft habe ich gesehen das z.b iwas mit pew 30 ....in awl stand
Allerdings konnte ich nicht viel damit anfangen

Z.b. sowas
Netzwerk1:
L 160.0
L 27648.0
\R
L PEW 337
ITD
DTR
*R
T DB1.DBD4


Wie würde netzwerk 1 in scl aussehen ?
Itd dtr sind doch als WORD deklariert oder ?

LG
EMZ
 
Hallo,
wenn du ein Programm mit einer hohen Zykluszeit hast und du Zwischenwerte brauchst dann arbeitest du mit den PEW's / PED's.
Das kann auch sinnvollsein wenn du mit Zeit-OB's arbeitest, die schneller als der Zyklus, oder unsynchron zum Zyklus sind.

Zu deinem AWL-Code :
Code:
meineRealVariable := 160.0 / 27648.0 * Word_to_Real(PEW336) ;
... ob man das so machen sollte ist allerdings etwas Anderes ...

Gruß
Larry

Achja - Nachsatz :
ITD und DTR sind Wandlungs-Funktionen.
ITD (IntegerToDINT) wandelt einen INT-Wert in einen DINT-Wert um
DTR (DINTToReal) wandelt einen DINT-Wert in einen Real-Wert (Gleitpunktzahl) um.
 
Zurück
Oben