Syntax in AWL

rumgemeckerer

Level-1
Beiträge
37
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Halihallo,

ich bin mir unsicher, ob ich es richtig mach, bin gerad offline, kann nicht testen


Code:
NW1: // Soll der Baustein ausgeführt werden?
      UN E50.5
      SAVE
      BEB
 
NW2: // Wenn Signal erst gekommen ist, dann die erste Messung ausführen
      U E50.5
      FP M300.0
      SPBNB _001
      L 1
      T MW302
_001: NOP 0
 
NW3: // Messung Auswerten?
      U E50.6
      FP M300.1
      NOT
      SAVE
      BEB
 
NW4: //Ist es die erste Messung?
      U(
      U(
      L MW2
      L 1
      ==I
      )
      SPBNB _002
      L PED258
      DTR
      T MD304
      SET
      SAVE
      CLR
_002: U BIE
      )
      SPBNB _003
      L MD304       //Messwert / 1000
      L 1000.0
      /R
      T MD304
      UN 0V
      SAVE
      CLR
_003: U BIE
      SPB ENDE
NW5://Ist es die zweite Messung?
      U(
      U(
      L MW2
      L 2
      ==I
      )
      SPBNB _002
      L PED258
      DTR
      T MD308
      SET
      SAVE
      CLR
_002: U BIE
      )
      SPBNB _003
      L MD308       //Messwert / 1000
      L 1000.0
      /R
      T MD308
      UN 0V
      SAVE
      CLR
_003: U BIE
      SPB ENDE
MW:6 // Bausteinende
ENDE: L MW2
      L 1
      +I
      T MW2
      NOP 0
 
Baustein

Hallo,

dein Baustein wird so nicht funktionieren. Die Flankenerkennung musst du immer ausführen. Wenn du bei E50.5 immer den Baustein verlässt wie soll er dann mitbekommen dass dieser mal 0 war? ;-)

André
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Awl

Hi,
möchtest du dein Wert je nach Messung an verschiedene Stellen speichern?
Überlegungen:
-passiert etwas evtl., wenn ich mit SPB mein Baustein überspringe(in dem Moment wird nix mehr bearbeitet)? Flanken ???
-dein Zähler MW2: wo wird initialisiert/resetet..

Ist das jetzt übersetztes FUP, oder was?

Vladi
 
Hi,
möchtest du dein Wert je nach Messung an verschiedene Stellen speichern?
Korrekt!
-passiert etwas evtl., wenn ich mit SPB mein Baustein überspringe(in dem Moment wird nix mehr bearbeitet)? Flanken ???
Da werden keine mehr ausgeführt
-dein Zähler MW2: wo wird initialisiert/resetet..
In dem NW2 mit Positiver Flanke
Ist das jetzt übersetztes FUP, oder was?
Korrekt! In AWL kann ich nicht selbst programmieren, muss dazu viel auswendig wissen, in FUP ist es einfacher, da drag and drop! :) Und FUP in Forum einfügen, dann glaub ich nur mit Bild
 
Zuletzt bearbeitet:
Korrekt! In AWL kann ich nicht selbst programmieren, muss dazu viel auswendig wissen, in FUP ist es einfacher, da drag and drop! :) Und FUP in Forum einfügen, dann glaub ich nur mit Bild

Dann mach ein Bild mit FUP rein. So würden das die wenigsten in AWL proggen, ne Menge von dem Code dient nur der FUP-Darstellung! Vor Allem, wenn man dran ändert in AWL wird es unter Umständen hinterher nicht mehr in FUP darstellbar sein.
 
Schwerpunkt der Frage ist dass der folgende Netzwerk nur ein mal abgearbeitet werden sollte, Flankengesteuert
Code:
NW4: //Ist es die erste Messung?
      U(
      U(
      L MW2
      L 1
      ==I
      )
      SPBNB _002
      L PED258
      DTR
      T MD304
      SET
      SAVE
      CLR
_002: U BIE
      )
      SPBNB _003
      L MD304       //Messwert / 1000
      L 1000.0
      /R
      T MD304
      UN 0V
      SAVE
      CLR
_003: U BIE
      SPB ENDE

da wird MD304 mehrmals überschrieben, klappt es so? oder muss ich den Wert wo anders zwischenspeichern?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Schwerpunkt der Frage ist dass der folgende Netzwerk nur ein mal abgearbeitet werden sollte, Flankengesteuert

Wie wäre es denn dann mit :
Code:
U #M_erste_Messung_gespeichert
spb M002
 
L PED258
DTR
T MD304

UN #M_erste_Messung_gespeichert
S #M_erste_Messung_gespeichert
 
M002:  // und ab das, was sonst passieren soll ...

Gruß
LL
 
Wie wäre es denn dann mit :
Code:
U #M_erste_Messung_gespeichert
spb M002
 
L PED258
DTR
T MD304
 
UN #M_erste_Messung_gespeichert
S #M_erste_Messung_gespeichert
 
M002:  // und ab das, was sonst passieren soll ...

Gruß
LL

Nahhh, du schlägst vor die Nummerauswertung der Messung wegzulassen und mit boolschen Variablen zu ersetzen. Danke, das ist aber nicht die Frage, die Nummerauswertung funktioniert.

Die Frage ist, ist die S7 in der Lage gerade beschriebene Variable MW4 in dem selben Netzwerk und demselben Zyklus zu verarbeiten, d.h. hat sie schon den neue Wert oder den alten
 
... wenn du eine sichere Flanken-Auswertung haben willst, dann wirst du wohl um ein zusätzliches Bit (Flankenmerker) nicht herumkommen.
Du kannst von mir aus auch am Kopf schreiben :
Code:
L MW2
L 1
>I
O #M_erste_Messung_gespeichert
spb M002
 
L PED258
DTR
T MD304
 
UN #M_erste_Messung_gespeichert
S #M_erste_Messung_gespeichert
 
M002:  // und ab das, was sonst passieren soll ...
oder
Code:
L MW2
L 1
>I
spb M002

L PED258
DTR
T MD304

L MW2
L 1
+i
T MW 2

M002:  // und ab das, was sonst passieren soll
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Frage ist, ist die S7 in der Lage gerade beschriebene Variable MW4 in dem selben Netzwerk und demselben Zyklus zu verarbeiten, d.h. hat sie schon den neue Wert oder den alten

Das ist hauptsächlich von der Art des erstellten Programms abhängig ...

Wenn du es so schreibst :
Code:
      L PED258
      DTR
      T MD304

      L MD304   
      L 1000.0
      /R
      T MD304
... dann werden beide Operationen unmittelbar hintereinander ausgeführt ...
 
Das kann ich dir für dein Beispiel nicht mit Bestimmtheit sagen, da ich dieses BIE-retten und neu setzen und speichern und löschen nicht sicher nachvollziehen kann.
Das heißt, was dein Beispiel so ganz genau macht, weiß ich nicht ... tut mir leid.
Wenn du es so schreibst, wie in meinem Vorschlag, dann gehts ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK hab in unterstehendes geändert
Code:
NW1: // Wenn Signal erst gekommen ist, dann die erste Messung ausführen
      U E50.5
      FP M300.0
      SPBNB _001
      L 1
      T MW302
_001: NOP 0
 
NW2: // Messung Auswerten?
      U E50.6
      FP M300.1
      UN E50.5
      SAVE
      BEB
 
NW3: //Ist es die erste Messung?
      L MW2
      L 1
      <>I
      SPBNB _002
      L PED258
      DTR
      T MD304

      L MD304       //Messwert / 1000
      L 1000.0
      /R
      T MD304
      SPA ENDE
NW4://Ist es die zweite Messung?
_002: L MW2
      L 2
      <>I
      BEB
      L PED258
      DTR
      T MD308

      L MD308       //Messwert / 1000
      L 1000.0
      /R
      T MD308
      SP1 ENDE
MW:5 // Bausteinende
ENDE: L MW2
      L 1
      +I
      T MW2
      S M310.1
[RIGHT]
[/RIGHT]
 
Du könntest das jetzt noch ein bißchen vereinfachen ...
Code:
NW1: // Wenn Signal erst gekommen ist, dann die erste Messung ausführen
      U E50.5
      FP M300.0
      SPBNB _001
      L 1
      T MW302
_001: NOP 0
 
NW2: // Messung Auswerten?
      U E50.6
      FP M300.1
      UN E50.5
      SAVE
      BEB
 
NW3: //Ist es die erste Messung?
      L MW2
      L 1
      <>I
      SPBNB _002
 
      L PED258
      DTR
[COLOR=green]      L 1000.0[/COLOR]
[COLOR=green]      /R[/COLOR]
[COLOR=green]      T MD304[/COLOR]
      SPA ENDE
 
NW4://Ist es die zweite Messung?
_002: L MW2
      L 2
      <>I
      BEB[COLOR=red]  // hier würde ich pers. auch "SPA Ende" hinschreiben - BEB ist immer so endgültig ...[/COLOR]
 
      L PED258
      DTR
[COLOR=green]      L 1000.0[/COLOR]
[COLOR=green]      /R[/COLOR]
[COLOR=green]      T MD308[/COLOR]
      SPA ENDE
 
MW5: // Bausteinende
ENDE: L MW2
      L 1
      +I
      T MW2
      S M310.1
... aber ansonsten sieht es gut aus ...

Gibt es nur 2 Messungen ...?

Gruß
LL
 
Zuletzt bearbeitet:
insgesamt sind bis 8 Messungen frei wählbar, deswegen wird mit der Flanke im NW1 auf die erste Messung gesetzt.
Ähh, ich sehe irgend wie die Verfeinerungen nicht
 
Zuletzt bearbeitet von einem Moderator:
Zuviel Werbung?
-> Hier kostenlos registrieren
... ich hab dir das mal farblich markiert ...

Du würdest also den 3. Messwert dann in MD312 schreiben usw. ...?
Wie wäre es dann mit einer Pointer-Adressierung in Abhängigkeit deiner Zähl-Variablen ...?
 
... deine Baustelle ...:ROFLMAO:

Sollte nur ein Vorschlag sein. Dann kannst du dir nämlich ein paar NW's mit den darin ggf. enthaltenen Schreibfehlern ersparen. Ich würde den Kram dann allerdings auch in einen DB und nicht in MD's packen (sieht hübscher aus ...).

Gruß
LL
 
Zurück
Oben