WinCC VBS WinCC 7.4 Berechnung

macter

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

irgendwie stehe ich auf dem Schlauch. Ich habe ein VBA Skript geschrieben welchen bei unterschiedlichen Werten eine Berechnung tätigt.
Abhängig vom Ausgaswert kleiner 4.
Die Berechnungen funktionieren auch ohne Probleme, jetzt wollte ich wenn die Berechnung erfolgt ist und ein negativer Wert dabei herauskommt soll einfach eine 0 geschrieben werden.
ist ist der Wert positiv soll er diesen Anzeigen.
Ist aber Jetzt der Ausganswert größer 4 dann soll er eine andere Berechnung machen.

Meine Idee sah so aus:

C++:
Sub OutputValue_OnPropertyChanged(ByVal Item, ByVal value)                 

Dim Konz

Dim tag1

Dim tag2

Dim minus



Set tag1 = HMIRuntime.Tags("H4_B84_Bad01_Ist_Konz")

tag1.Read

Konz = tag1.value





If Konz <= 4 Then



        Set tag2 = ((HMIRuntime.Tags("H4_B84_Bad01_B3").Read - (HMIRuntime.Tags("H4_B84_Bad01_Konz_293051").Read * HMIRuntime.Tags("H4_B84_Bad01_B4").Read))/100*HMIRuntime.Tags("H4_B84_Bad01_B2").Read)

        tag2.Read

        minus = tag2.Value

      

            If    minus <= 0 Then   

                HMIRuntime.Tags("H4_B84_Bad01_Nachsatz").Write 0

              

            Else

                HMIRuntime.Tags("H4_B84_Bad01_Nachsatz").Write ((HMIRuntime.Tags("H4_B84_Bad01_B3").Read - (HMIRuntime.Tags("H4_B84_Bad01_Konz_293051").Read * HMIRuntime.Tags("H4_B84_Bad01_B4").Read))/100*HMIRuntime.Tags("H4_B84_Bad01_B2").Read)

            End If

          

Else

        HMIRuntime.Tags("H4_B84_Bad01_Nachsatz").Write ((HMIRuntime.Tags("H4_B84_Bad01_B3").Read - HMIRuntime.Tags("H4_B84_Bad01_Konz_293051").Read * HMIRuntime.Tags("H4_B84_Bad01_B4").Read)/-(HMIRuntime.Tags("H4_B84_Bad01_Konz_293051").Read * HMIRuntime.Tags("H4_B84_Bad01_B4").Read)) * HMIRuntime.Tags("H4_B84_Bad01_B2").Read

      

End If



End Sub
 
Jetzt habe ich doch noch eine Lösung gefunden.
Einfach mal ne Nacht drüber schlafen.🤦‍♂️


Code:
Sub OutputValue_OnPropertyChanged(ByVal Item, ByVal value)                                             
Dim Konz
Dim tag1


Set tag1 = HMIRuntime.Tags("H4_B84_Bad01_Ist_Konz")
tag1.Read
Konz = tag1.value


If    Konz <= 0 Then
        
                HMIRuntime.Tags("H4_B84_Bad01_Nachsatz").Write  0
                
        Elseif     Konz <= 4 And Konz <= 2 Then

                HMIRuntime.Tags("H4_B84_Bad01_Nachsatz").Write ((HMIRuntime.Tags("H4_B84_Bad01_B3").Read - (HMIRuntime.Tags("H4_B84_Bad01_Konz_293051").Read * HMIRuntime.Tags("H4_B84_Bad01_B4").Read))/100*HMIRuntime.Tags("H4_B84_Bad01_B2").Read)

        Elseif  Konz <= 4 And Konz >= 2 Then

                HMIRuntime.Tags("H4_B84_Bad01_Nachsatz").Write  0   
                                    
        Elseif Konz >= 4 Then
        
                HMIRuntime.Tags("H4_B84_Bad01_Nachsatz").Write ((HMIRuntime.Tags("H4_B84_Bad01_B3").Read - HMIRuntime.Tags("H4_B84_Bad01_Konz_293051").Read * HMIRuntime.Tags("H4_B84_Bad01_B4").Read)/-(HMIRuntime.Tags("H4_B84_Bad01_Konz_293051").Read * HMIRuntime.Tags("H4_B84_Bad01_B4").Read)) * HMIRuntime.Tags("H4_B84_Bad01_B2").Read
 
            
End If

End Sub
 
Zurück
Oben