Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 40 von 40

Thema: flexible Grenzwerte mit Rezepturdaten

  1. #31
    iPDI ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.03.2010
    Beiträge
    168
    Danke
    18
    Erhielt 7 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Sub ist OK ...

    Wo und wie die Variablen deklariert sind habe ich nicht gefunden.
    Sind es Flex-interne Variable oder welche mit SPS-Anbindung ?
    Wenn Flex-intern, dann bitte das ändern ...

    sind flex interne...du meinst ich muss dies in einem db speichern?

  2. #32
    iPDI ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.03.2010
    Beiträge
    168
    Danke
    18
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von iPDI Beitrag anzeigen
    sind flex interne...du meinst ich muss dies in einem db speichern?

    funtkioniert leider auch so nicht...die vebindung sps --> panel ist i.O.

    Meide Eingaben werden in den db geschrieben. Doch die Script Berechnung wird noch immer nicht ausgeführt...

  3. #33
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... dann wird das Script nicht ausgeführt ...
    Das Script muß gestartet werden bei Wertänderung der Variablen des Eingabefeldes. Diese Variable (damit Flex das Ereignis erkennt) darf auch kein Flex-interne Variable sein. Bei den anderen ist es eigentlich egal ...

    ...

  4. #34
    iPDI ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.03.2010
    Beiträge
    168
    Danke
    18
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... dann wird das Script nicht ausgeführt ...
    Das Script muß gestartet werden bei Wertänderung der Variablen des Eingabefeldes. Diese Variable (damit Flex das Ereignis erkennt) darf auch kein Flex-interne Variable sein. Bei den anderen ist es eigentlich egal ...

    ...
    Das ist sie auch nicht mehr...ich habe jetzt alle 4 werte in einem test db...das Script wird bei "Wertänderung" ausgeführt in der Variabel Db2.Rezepturzwischenspeicher (ist im Script der "Rezepturzwischenwert")

  5. #35
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Zitat Zitat von iPDI Beitrag anzeigen
    ...das Script wird bei "Wertänderung" ausgeführt in der Variabel Db2.Rezepturzwischenspeicher (ist im Script der "Rezepturzwischenwert")
    Warum hast du da 2 verschiedene Namen - es sollte schon beide Male die gleiche Bezeichnung (und somit die gleiche Variable) sein ...

  6. #36
    iPDI ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.03.2010
    Beiträge
    168
    Danke
    18
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Warum hast du da 2 verschiedene Namen - es sollte schon beide Male die gleiche Bezeichnung (und somit die gleiche Variable) sein ...
    Das sind nich 2 Namen. Der erste Name sind die Paramter im den Scripteinstellungen. Der 2. Name ist die Variabel, welche sich im db befindet...Das sollte schon ok sein...wenn ich das script 5x aufrufen würde, hätte ich dann 6 verschiedene Bezeichnungen....

  7. #37
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... wenn es sich um die selbe Variable handelt dann muss es auch der selbe Name sein. In deinem Fall würde das Script über die Wertänderung einer Variablen aufgerufen werden. Dieses kann natürlich nur die Variable des Eingabefeldes sein. Wenn du auf Basis dieser Eingabe eine Berechnung ausführen möchtest, dann muss diese Berechnung natürlich auch den Inhalt zur Verfügung haben.

    Bitte überprüfe doch noch einmal das, was du da gemacht hast ...

  8. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    iPDI (25.05.2010)

  9. #38
    Registriert seit
    19.06.2003
    Ort
    Im Staub ...
    Beiträge
    337
    Danke
    115
    Erhielt 26 Danke für 23 Beiträge

    Standard

    @iPDI
    Nochmal zum Script-Typ SUB.
    Die Parameter, die Du an die SUB übergibst, werden nur als Zahlenwerte übergeben. D.h. das Script erstellt scriptinterne Kopien der äusseren Variablen.
    Wenn Du also schreibst ...

    Code:
    Grenzwert = Rezepturzwischenwert + Grenzwert_Eingabe
    dann wird das Rechenergebnis in die scriptinterne Variable 'Grenzwert' geschrieben. Dieser Wert wird nicht nach aussen zurückgegeben, und geht nach beenden der SUB einfach verloren.

    Du müsstest sowas schreiben wie (ich hoffe beim MP277 ist das wie bei der PC-Runtime) ...
    Code:
    Ich nehm jetzt mal den Var-Namen von mir ...
    SmartTags("MASK-M-PROG.Schaummenge") = Rezepturzwischenwert + Grenzwert_Eingabe
    Damit schreibst Du das Rechenergebnis in die echte Variable (die in der Variablenliste steht) und nicht in die Kopie.

    Recht viel mehr kann ich Dir im Moment nicht helfen, da ich schon zuhause bin.

  10. Folgender Benutzer sagt Danke zu ssound1de für den nützlichen Beitrag:

    iPDI (25.05.2010)

  11. #39
    iPDI ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.03.2010
    Beiträge
    168
    Danke
    18
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von ssound1de Beitrag anzeigen
    @iPDI
    Nochmal zum Script-Typ SUB.
    Die Parameter, die Du an die SUB übergibst, werden nur als Zahlenwerte übergeben. D.h. das Script erstellt scriptinterne Kopien der äusseren Variablen.
    Wenn Du also schreibst ...

    Code:
    Grenzwert = Rezepturzwischenwert + Grenzwert_Eingabe
    dann wird das Rechenergebnis in die scriptinterne Variable 'Grenzwert' geschrieben. Dieser Wert wird nicht nach aussen zurückgegeben, und geht nach beenden der SUB einfach verloren.

    Du müsstest sowas schreiben wie (ich hoffe beim MP277 ist das wie bei der PC-Runtime) ...
    Code:
    Ich nehm jetzt mal den Var-Namen von mir ...
    SmartTags("MASK-M-PROG.Schaummenge") = Rezepturzwischenwert + Grenzwert_Eingabe
    Damit schreibst Du das Rechenergebnis in die echte Variable (die in der Variablenliste steht) und nicht in die Kopie.

    Recht viel mehr kann ich Dir im Moment nicht helfen, da ich schon zuhause bin.
    werde mich am Dienstag wider melden, da ich mittlerweile auch entnervt und erfolglos zu Hause befinde

    Schönes Wochenende euch vorübergehend :O

  12. #40
    iPDI ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.03.2010
    Beiträge
    168
    Danke
    18
    Erhielt 7 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    man glaubt es kaum, doch ich habs (zusammen mit einem Arbeitskollegen) heute in 10min hinbekommen

    Variante 1 (indirekte Variabelauswahl mit Rückgabewert - Typ Function):

    Code:
    If Rezepturwert > 0  Then
        If HmiRuntime.BaseScreenName="Bild_1" Or HmiRuntime.BaseScreenName="Bild_2" Then 'wird nur aufgerufen, wenn Rezeptureingabe aktiv
    
    
    Skript_1 = Rezepturwert + Grenzwert_Eingabe 'Grenzwert wird berechnet
    
    
    
        End If
    
    End If
    Das Skrpt_1 ist der Name des Scriptes - und wird so im flexible als Rückgabewert definiert...

    Variante 2 (direkter Variabelzugriff Typ Sub):

    Code:
    If SmartTags("MP277 Rezepturdaten.Spritzkabiene1.SK1_f_Startposition") > 0  Then
        If HmiRuntime.BaseScreenName="Bild_1" Or HmiRuntime.BaseScreenName="Bild_2" Then 'wird nur aufgerufen, wenn Rezeptureingabe aktiv
    
    
      SmartTags("grenzwert_xxx") = SmartTags("MP277 Rezepturdaten.Spritzkabiene1.SK1_f_Startposition") + SmartTags("Grenzwert_Fahren") 'Grenzwert wird berechnet
    
    
    
        End If
    
    End If
    Es spielt dabei auch keine Rolle, ob es interne Variabeln oder externe von meinem DB sind (habs extra getestet). Die Variabel "MP277 Rezepturdaten.Spritzkabiene1.SK1_f_Startposition" ist meine Rezepturvariabel. Diese wird erst beim "senden" in die Steuerung geschriebn. Der Zugriff darauf funktioniert auch einwandfrei (wird nich aus dem DB geholt, sondern aus dem "Rezepturspeicher")

    Danke trozdem nochmals für eure Hilfe. Vielleicht kann auch sonst noch jemand von meinen Erkentnissen provitieren

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.05.2010, 07:22
  2. Grenzwerte/Benutzer WinnCC flexible
    Von sps-welt im Forum HMI
    Antworten: 6
    Letzter Beitrag: 09.05.2009, 11:03
  3. WinCC-Flexible und Grenzwerte.
    Von Tigerkroete im Forum HMI
    Antworten: 2
    Letzter Beitrag: 27.06.2006, 11:52
  4. Warnungen Grenzwerte WinCC flexible 2005
    Von CrazyCat im Forum HMI
    Antworten: 15
    Letzter Beitrag: 26.06.2006, 14:56
  5. Antworten: 7
    Letzter Beitrag: 30.03.2006, 14:50

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •