# Problem bei AWL Grundlagen



## Aikapan (2 Juni 2015)

Moin,

wie kann ich folgenden AWL-Code verstehen?


```
A E0.0
A(
A E0.1
O E0.2
)
= A0.0
```

Is das das Gleiche wie:

```
A E0.0
A(
O E0.1
O E0.2
)
= A0.0
```

Oder sogar nur:

```
A E0.0
A E0.1
= A0.0
```


----------



## PN/DP (2 Juni 2015)

Aikapan schrieb:


> Moin,
> 
> wie kann ich folgenden AWL-Code verstehen?
> 
> ...


Ja. 
Die zweite Variante ist aber die "richtigere".



> Oder sogar nur:
> 
> ```
> A E0.0
> ...


Nein

Harald


----------



## Aikapan (2 Juni 2015)

Ich arbeite mich grad in ein bestehendes (recht umfangreiches) Software-Projekt ein und finde nun auch folgendes:


```
A #Fct_Blink_Left
A "DB Com Glob".Moving_front
A "1,0 sec Takt"
O
A #Error_Blink
A "0,4 sec Takt"
O #T_StartWarning
[...]
= #TrafficLight_Left
```

Da gehören doch zwingend Klammern rein, oder "funktioniert" es notgedrungen sogar so?!??


----------



## marlob (2 Juni 2015)

Das funktioniert auf jeden Fall ohne Klammern.
Aber um eine genaue Aussage zu machen solltest du schon schreiben wo du Klammern erwartest.


----------



## Aikapan (2 Juni 2015)

Naja... "Klammer auf" hinter dem alleinstehenden O :-D
Und "Klammer zu" dann vor der Zuweisung...


----------



## marlob (2 Juni 2015)

Dieser Code

```
A #Fct_Blink_Left
A "DB Com Glob".Moving_front
A "1,0 sec Takt"
O
A #Error_Blink
A "0,4 sec Takt"
O #T_StartWarning
[...]
= #TrafficLight_Left
```

ist gleichwertig mit diesem

```
A #Fct_Blink_Left
A "DB Com Glob".Moving_front
A "1,0 sec Takt"
O
A #Error_Blink
A "0,4 sec Takt"
O
A #T_StartWarning
[...]
= #TrafficLight_Left
```
oder diesem

```
A(
A #Fct_Blink_Left
A "DB Com Glob".Moving_front
A "1,0 sec Takt"
)
O(
A #Error_Blink
A "0,4 sec Takt"
)
O(
A #T_StartWarning
[...]
)
= #TrafficLight_Left
```
Jetzt deutlich Du brauchst also keine Klammern


----------



## Aikapan (2 Juni 2015)

Also ginge auch:


```
A #Fct_Blink_Left
A "DB Com Glob".Moving_front
A "1,0 sec Takt"
O #Error_Blink
A "0,4 sec Takt"
O #T_StartWarning
[...]
= #TrafficLight_Left
```

??


----------



## Eraser (8 Juli 2015)

marlob schrieb:


> ```
> A(
> A #Fct_Blink_Left
> A "DB Com Glob".Moving_front
> ...



Am Anfang in der ersten Zeile gehört ein O, damit es insgesamt 3 verschiedene ODER-Zweige werden. (wegen Übersichtlichkeit  )


----------



## Eraser (8 Juli 2015)

Aikapan schrieb:


> Also ginge auch:
> 
> 
> ```
> ...



Nein das ist falsch.


----------



## Betriebselektriker28 (4 März 2016)

Gibt es eigentlich eine Möglichkeit solche AWL Codes mit Klammern in FUP/KOP umzuwandeln?
Eventuell ein eigenes kleines Programm dafür?

Vor allem wenn es der Simatic Manager aus diversen Gründen nicht kann?


----------



## peter(R) (5 März 2016)

Dazu kann man keine allgemeingültige Aussage treffen. Manchmal kommt es schon darauf an wie das AWL genau aufgebaut ist. Ist es ein längeres AWL Stück dann kann es sein dass man es auf mehrere Netzwerke verteilen muss.
Hinter einem Timer muss zB 3x NOP 0 stehen damit es übersetzt werden kann usw.
Einfach Netzwerk aufmachen und auf FUP umschalten. Wird es in FUP angezeigt ists gut wenn nicht dann..... 

peter(R)


----------



## Betriebselektriker28 (5 März 2016)

Gibt es irgendwo eine Zusammenfassung welche Syntax eingehalten werden muss damit man es umwandeln kann?

Das mit dem Aufteilen ist mir schon klar gewesen. Speziell wenn jemand in einem Netzwerk gleich 5x =XX verwendet.... Am besten dann noch so lange das es gar nicht auf eine Bildschirmseite passt. :icon_neutral:

Diese NOP0 Sache scheint mir auch aus der Steinzeit zu kommen.

Ich denke wenn es jemand schafft das ganze im Kopf umzuwandeln, sollte es doch die "günstige"
Siemens Software auch schaffen.  

Und da red ich jetzt noch nicht mal von Timern oder Sprungbefehlen oder sonstigem... da gehen ja oft ganz normale und/oder Verknüpfungen mit paar Klammern nicht mehr umzuwandeln.


----------



## peter(R) (5 März 2016)

Genau genommen ist es so, dass man selbst wenn man FUP programmiert  eigentlich AWL programmiert. Man sieht es nur nicht. AWL kann somit nur  umgewandelt werden wenn das was da programmiert wurde auch grafisch  dagestellt werden kann.
Das hat aber auch gar nichts mit Steinzeit zu  tun. Ich kann jedes beliebige Netzwerk in AWL so verzwirbelt  programmieren dass es halt nicht dastellbar ist.
Wer das gaaanz  früher mal gelernt hat ( als die Dinos noch durch den Wald liefen) hat  das gleich so lernen müssen weil es halt nichts anderes gab. Da ich das  halt vor 35 Jahren gelernt habe ist es halt noch drin.
Ein Programm  das aus jedem AWL ein FUP macht möchtest du sicherlich nicht bezahlen  das ist mit sinnvollem Aufwand nicht zu schaffen. In AWL kann man halt  fürchterlich sauigeln da blickt man dann nach einer Woche selbst nicht  mehr durch.
Da gilt dann es funktioniert und keiner weiss warum.
Da  gibts - wenn es denn sein muss -nur eins. In kleine übersichtliche  Stücke zerlegen uns so versuchen das Ganze zu verstehen. Übrigens sind  zB Sprünge in FUP sehr viel unübersichtlicher als in AWL

peter(R)

P.S. Manche Sachen kann ma garnicht in FUP programmieren, da muss es AWL sein.


----------



## Rudi (5 März 2016)

peter(R) schrieb:


> Wer das gaaanz  früher mal gelernt hat ( als die Dinos noch durch den Wald liefen) hat  das gleich so lernen müssen weil es halt nichts anderes gab. Da ich das  halt vor 35 Jahren gelernt habe ist es halt noch drin.


Ich stamme auch noch aus dieser Generation. Da hat man sich das Programm als Kontaktplan aufs Papier gezeichnet und dann in AWL programmiert. War auch nicht so schlecht und manche Anlagen laufen jetzt noch !


----------

