Formel in AWL eingeben

Grundsätzlich musst du die klammer von innen nach aussen auflösen natürlich auch den Rest der Wertigkeit entsprechend.

z.B.

L MW10 // was steht denn da drin?
L 273,15
+R
L 0,005
* R

usw.

Ich seh grad das dies richtig komplex wird, wenn du die Grundlagen nicht beherrscht.

mfG René
 
Zuletzt bearbeitet:
Zuerst muss Dir klar sein, wie eine Rechenoperation aussehen muss.

Im Prinzip werden da immer zuerst 2 Werte in den AKKU geladen und dann die Berechnung ausgeführt.

L Wert_1
L Wert_2
+I

Ob der Wert eine Konstante oder eine Variable ist, spielt keine Rolle.

Da du aber mit Nachkommastellen rechnest, mußt Du mit REAL-Formaten rechnen. Da die Berechnung etwas verschachtelt ist, kann es hilfreich sein mit Zwischenergebnissen zu arbeiten.
Die Zwischenergebnisse kannst Du als TEMP-Variablen anlegen.

L MW10
L 273.15
+R
T Zwischenergebnis_1
usw.
 
Achja, und wie es schon richtig hier gepostet wurde, musst Du natürlich nicht jedesmal das Ergebnis der Berechnung davor neu in den AKKU laden. Das steht ja dann schon im AKKU1 drin.

Für das Verständnis ist es aber wichtit zu wissen, dass für einen Rechenvorgang zuerst 2 Werte geladen werden müssen.
 
Ich habe jetzt mal so angefangen.

L MW10
L Zahlenwert 1
T Zwischenergebniss_1
L Zahlenwert 2
L Zwischenergebniss_2
*R
T Zwischenergebniss_2

Muss die Operation *R nach den zwei Ladeoperationen stehen oder dazwischen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
mal abgesehen, dass es sinnfrei ist, mit ganzzahlen eine float-berechnung durchzuführen, sollte dass hier der optimierte weg sein

Code:
*
      L     2.731500e+002
      L     MW    10
      +R    
      L     5.000000e-003
      *R    
      L     1.000000e-002
      TAK   
      -R    
      L     MW    12
      TAK   
      T     #Temp
      TAK   
      L     1.013250e+000
      *R    
      L     #Temp
      *R    
      L     1.013250e+000
      TAK   
      -R    
      T     MW    20
 
Man kommt leichter zu einer Kettenrechnung ohne Merker für Zwischenergebnisse und ohne Akkus tauschen, wenn man die Klammern von innen nach außen auflöst und die Formel so umformt:
Code:
MW10 +273.15 *-0.005 +0.01 *MW12 *-1.01325 +1.01325 = MW20
(ohne Klammern, gerechnet wird von vorn nach hinten)

Die Rechenvorschrift nun von vorn nach hinten untereinander schreiben
Code:
  MW10
+ 273.15
* -0.005
+ 0.01
* MW12
* -1.01325
+ 1.01325
= MW20
nun noch die "+" / "*" sowie "=" durch L und +R / L und *R sowie T ersetzen und fertig ist der AWL-Code.

@vl
Glückwunsch zur grandiosen 8888!

Harald
 
Hmmm, eine der Klammern dient wohl der Verwirrung, ansonsten würd ich noch die ein oder andere Typumwandlung (ITD, DTR ...) mit einflicken ;)
 
mal abgesehen, dass es sinnfrei ist, mit ganzzahlen eine float-berechnung durchzuführen, sollte dass hier der optimierte weg sein

Als Klugscheiser *ROFL* kann ich das natürlich mit 4 Befehle weniger.

Da fehlt dann aber, wie vierlagig selber auch schon erwähnt hier und da noch ein bisschen Typ-Konvertierung oder zumindest Formatanpassung.

P.S.: sorry vierlagig, aber das (mit dem Klugscheiser etc.) ist jetzt nicht persönlich gemeint.
 
Zuletzt bearbeitet:
Aber mal ehrlich! Nach dem Countdown MUSSTE der Post #8888 doch zwangsläufig ein gewisses Niveau haben :cool:
4L lässt hier einmal mehr durchblicken, dass er die Bitschubserei aus dem FF beherrscht. Wen kümmert es da schon, das der Code für nicht für jeden der Forumsleser nachvollziehbar sein dürfte.

Werde jetzt einen auf die Schnapszahl nehmen... :sm24:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
4L lässt hier einmal mehr durchblicken, dass er die Bitschubserei aus dem FF beherrscht.

Zahlenschubserei in dem Fall. Aber warte, Zahlen in der SPS sind auch Bits! :shock: ;)


Werde jetzt einen auf die Schnapszahl nehmen... :sm24:

:s12:


P.S.: mir würd' die Zahl 8887 übrigens besser gefallen.
 
Zuletzt bearbeitet:
Zurück
Oben