Sonstiges AWL: Umwandlung von cl/m in l/h - Code richtig?

DerSchlangen

Level-1
Beiträge
106
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
habe leider beim "programmieren lernen" ein kleines Problem. Leider kann ich am Heimrechner nicht simulieren daher würde ich euch gerne Fragen ob meine Codezeilen in AWL so funktionieren wie gedacht. Ich programmiere normalerweise garnicht in AWL daher sind meine Erfahrungen da mehr als dürftig. Leider war das die einzige Art die ich gesehen habe um vom INT-Wert in einen umgerechneten R-Wert zu kommen.

Also was ich mir vom Code erhoffe:
1.) Ich Lade den Ausgangswert vom Datentyp INT (cl/min)
2+3.) Über den Datentyp DINT wandele ich ihn letztendlich in den Datentyp REAL um.
4+5.) Ich dividiere den REAL Wert durch 100 um auf l/min zu kommen
6+7.) Ich multipliziere den Wert mit 60 um l/h zu kommen
8.) Ich transferiere alles an den Ablageort.

Kann es sein das ich 100.0 und 60.0 angeben muss weil es REAL ist? Funktioniert das ganze überhaupt wie gedacht? Gibt es Möglichkeiten diese Wandlung im FUP durchzuführen?


Vielen Dank für eure Hilfe!



1.JPG
 
Hallo,

du hast recht, du musst 100.0 und 60.0 angeben, sonst stimmt das Ergebnis nicht. Der Rest ist richtig.

Im TIA-Portal geht die Umwandlung implizit automatisch, das sieht man an dem Kästchen.

Du kannst die Umwandlung aber auch explizit mit einer CONV-box durchführen.

Umrechnung_TIA2.PNG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf die Gefahr hin das ich etwas übersehen habe oder nicht bedenke:

Ich habe es jetzt auch nochmal so wie du aufgebaut. Leider bekomm ich im Netzwerk den Fehler "Der Datentyp des Aktualparameters passt nicht zu Datentyp REAL des Formalparameters.

Mit Convertboxen läuft es hingegen, das Netzwerk ist aber natürlich gleich zwei Boxen länger.
umwandlung.JPG
 
Deine DIV-Real -Box ist leider nicht so intelligent daß sie jeden vom Programmierer angeschalteten Mist akzeptiert und irgendwie nach Real konvertiert, sondern sie arbeitet ganz elementar ohne jegliche Konvertierungen - alle Eingangs- und Ausgangsparameter müssen vom selben Datentyp sein mit dem die Box auch rechnet. Wie funkey schreibt, scheint es aber möglich zu sein, an Eingängen "versteckte" Konvertierungen anzugeben.

"Zwei Boxen länger" bedeutet nicht, daß dadurch das erzeugte Programm länger wird. Die explizit anzugebende Konvertierung gibt dem Programmierer die Chance, exakt zu kontrollieren und zu verstehen was sein Programm da eigentlich tut.

Übrigens könntest Du die "DIV 100.0" und "MUL 60.0" zu "MUL 0.6" zusammenfassen.

Harald
 
Okay erstmal Danke euch beiden!
Sowohl in AWL als auch im FUP scheint es jetzt zu funktionieren. Die Aussage das man anhand der "ausführlicheren" Programmierung mehr Übersicht bewahren kann ist genau der Vorteil den ich auch so sehe.

Übrigens:
Das zusammenfassen von Division und Multiplikation zu einen "Umrechnungsfaktor" ist genial :) Nur da hätte ich auch selber drauf kommen können ^^

Wie gesagt Danke euch beiden.
 
Zurück
Oben