From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

If Then Else Funktion

Hallo, 

 

ich befasse mich gerade mit dem Programm DIAdem und bräuchte Hilfe beim Einfügen einer If then else Funktion.

Das Skript ist soweit geschrieben und ich möchte nun im nach hinein so eine Funktion einfügen. 

SabrinaAnders_0-1636702745158.png

Ich hab diesen Wert berechnet und möchte jetzt definieren:

Wenn "Viskosität - Schritt 2 durch Schritt 1 -Entfernung Sinusprofil" > 0,8 ist dann

Sollte der Satz "Tinte zeigt newtonsches Verhalten" ausgegeben werden

sonst

"Tinte zeigt scherverdünnendes Verhalten"

 

Ich würde mich sehr über ihre Hilfe freuen 🙂

 

Viele Grüße

Sabrina

0 Kudos
Message 1 of 4
(1,482 Views)

Hallo Sabrina,

 

"Viskosität - Schritt 2 durch Schritt 1 -Entfernung Sinusprofil" ist ein Kanal im Datenportal. Der Kanal enthält wahrscheinlich mehr als einen Wert. Wann genau soll die Meldung angezeigt werden? Wenn ein beliebiger Wert in dem Kanal größer 0.8 ist oder immer, wenn ein Wert größer 0.8 ist?

 

Für den ersten Fall habe ich ein Beispiel erstellt. Für den zweiten Fall sollte man erst einmal klären, was genau das Ziel ist.

Es ist übrigens einfacher mit den Kanalobjekten (Variable) zu arbeiten. Den Script-Ausschnitt habe ich entsprechend umgestellt.

 

dim oChnSchritt_1, oChnSchritt_2

set oChnSchritt_1 = Data.GetChannel("/Viskosität - Schritt 1 durch Schritt 1 -Entfernung Sinusprofil")
set oChnSchritt_2 = Data.GetChannel("/Viskosität - Schritt 2 durch Schritt 1 -Entfernung Sinusprofil")

call ChnDiv(oChnSchritt_2, oChnSchritt_1, oChnSchritt_2)
call ChnRound(oChnSchritt_2, "Standard", "DecimalDigits", 5, true)

if oChnSchritt_2.Maximum > 0.8 then
  call msgbox("Tinte zeigt newtonsches Verhalten")
else
  call msgbox("Tinte zeigt scherverdünnendes Verhalten")
end if

 

Gruß

Walter

0 Kudos
Message 2 of 4
(1,461 Views)

Hallo  Walter,

 

vielen Dank für die schnelle Antwort, ich habe das Skript so verändert und es hat funktioniert.

Kann ich dieses Ergebnis auch in meinem Report anzeigen lassen? 

 

Liebe Grüße 

Sabrina 

0 Kudos
Message 3 of 4
(1,458 Views)

Hallo Sabrina,

 

wenn du einen Kommentar mit Hintergrundfarbe verwendest ...

Walter_Rick_0-1636721559799.png

 

sieht das Script so aus:

 

dim oChnSchritt_1, oChnSchritt_2

set oChnSchritt_1 = Data.GetChannel("/Viskosität - Schritt 1 durch Schritt 1 -Entfernung Sinusprofil")
set oChnSchritt_2 = Data.GetChannel("/Viskosität - Schritt 2 durch Schritt 1 -Entfernung Sinusprofil")

call ChnDiv(oChnSchritt_2, oChnSchritt_1, oChnSchritt_2)
call ChnRound(oChnSchritt_2, "Standard", "DecimalDigits", 5, true)

if oChnSchritt_2.Maximum > 0.8 then
  'call msgbox("Tinte zeigt newtonsches Verhalten")
  Report.Sheets("Blatt 1").Objects("Comment1").Comment.Text = "Tinte zeigt newtonsches Verhalten"
else
  'call msgbox("Tinte zeigt scherverdünnendes Verhalten")
  Report.Sheets("Blatt 1").Objects("Comment1").Comment.Text = "Tinte zeigt scherverdünnendes Verhalten"
end if

call Report.Refresh

 

Gruß

Walter

 

0 Kudos
Message 4 of 4
(1,446 Views)