Jump to content

Logische Abfrage


---
 Share

Recommended Posts

Hallo zusammen,
ich würde gerne in einem meiner Messprogramme eine logische Abfrage durchführen.
Die Abfrage soll lauten:
Ist Durchmesser_1 größer als Durchmesser_2 ?
Wenn Ja => Ausgabe 1
Wenn Nein => Ausgabe 0

Ausgabe als Resultatselement, 1 = Gut (i.O.) / 0 = Schlecht (n.i.O)

PCM-Modul ist nicht vorhanden. Gibt es trotzdem eine Möglichkeit so etwas umzusetzen?

Gruß
Wolfgang
Link to comment
Share on other sites

Dafür müßte es normalerweise reichen, einfach eine entsprechende Formel im Resultatselement einzugeben.
Eine Formel wie A > B ergibt einen entsprechenden Wahrheitswert. Nämlich "True", wenn A > B zutrifft, und "False" wenn nicht. Nur sind Wahrheitswerte keine Zahlen, deshalb macht man üblicherweise noch eine Berechnung mit den Werten. Dabei kann man "True" mit 1 gleichsetzen und "False" mit 0. Wenn man also schreibt 1 * (A >B) dann sollte normalerweise das gewünschte rauskommen. Allerdings habe ich es nicht konkret ausprobiert. Calypo zeigt da ja immer mal gerne gewisse Macken, die von dem abweichen, was man beim Programmieren eigentlich erwarten würde. Aber probiere einfach mal diese Formel aus:

1 * (getActual("Durchmesser_1").diameter > getActual("Durchmesser_2").diameter)

Wenn es sich nicht um Messelemente sondern um Prüfmerkmale handelt, dann ersetze einfach das ".diameter" durch ".actual"
Link to comment
Share on other sites

  • 2 weeks later...
Hallo Norbert,
danke für deine Antwort. Ich habe erst heute die Zeit gefunden deinen Vorschlag einmal zu testen.
Leider hat die Formel nicht funktioniert.

Ich habe aber beim Probieren eine Lösung gefunden:

Dein Ansatz war soweit richtig, aber das "1*" kann man durch ein "ord" ersetzen.
Der PCM-Befehl "ord" macht aus True eine 1 und aus False eine Null.

Lösung:
ord(getActual("Durchmesser_1").diameter > getActual("Durchmesser_2").diameter)

Genau so wie ich es wollte.

Gruß
Wolfgang
Link to comment
Share on other sites

Ich habe schon befürchtet, daß man den Wahrheitswert evtl. nicht 1:1 als Zahlenwert verwenden kann. Bei manchen toleranten Sprachen geht das, andere pochen auf den richtigen Datentyp. Dann braucht man eben so eine Umwandlungsfunktion.
Link to comment
Share on other sites

 Share

×
×
  • Create New...