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

Ergebnis 1 bis 9 von 9

Thema: Variablen dauerhaft gesetzt HILFE!

  1. #1
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    992
    Danke
    115
    Erhielt 127 Danke für 101 Beiträge

    Ausrufezeichen


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich drehe gleich am Rad hier.
    Gerade ein Programmgeschrieben und wollte es testen.

    Nun stelle ich fest, dass 2 Variablen einfach gesetzt sind. bei der Online-Simulation.

    Die Struktur ist ungefähr so:

    PLC_PRG --> Funktionsbaustein1 --> Funktionsbaustein2

    Im Funktionsbaustein 2 sind während der Beobachtung im Online-Modus 2 Variablen dauerhaft gesetzt. Nach FALSE-Forcen setzen sie sich automatisch wieder.

    Es sind zwei Variablen des Types INPUT.
    In Funktionsbaustein 1 ist Funktionsbaustein 2 instanziert jedoch werden dort keine Variablen als TRUE angezeigt.

    Es sind keine der Werte initialisiert worden.


    Programmcode zu posten wird glaube ich nicht besonders viel helfen, da das Programm relativ komplett ist und daher auch eine Masse an Code.

    Kennt ihr eventuell ein solches Problem mit gesetzten Variablen und habt Abhilfe?

    Grüße,

    Florian
    Zitieren Zitieren Variablen dauerhaft gesetzt HILFE!  

  2. #2
    Registriert seit
    12.05.2010
    Ort
    Dortmund
    Beiträge
    889
    Danke
    57
    Erhielt 121 Danke für 89 Beiträge

    Standard

    na such doch mal im Querverweis, wo diese beschrieben werden
    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

  3. #3
    Registriert seit
    07.06.2012
    Beiträge
    20
    Danke
    0
    Erhielt 14 Danke für 9 Beiträge

    Standard

    1. Wenn du mit Array arbeitest, kompiliere mal mit CheckBounds. 2. Isolier doch mal deine FBs über einen Export/Import in einem neuen PRG und teste diese allein.

    http://infosys.beckhoff.com/content/...s.htm?id=13013

  4. #4
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    992
    Danke
    115
    Erhielt 127 Danke für 101 Beiträge

    Standard

    Hi Leute,

    danke erstmal für die Antworten.

    @ Thomas64:

    1. Ich benutze keine (noch) Arrays.
    2. Das werde ich als letzten Schritt versuchen, danke!

    @ Rheumakay:

    Ich kann zu den Variablen nur Querverweiseinträge mit "lesen" oder "Deklaration" finden.


    Ich sollte vieleicht dazu sagen, dass ich momentan nur Simuliere, also das Programm auf keinem "echten" Controller läuft.
    Ich werde die Bausteine nun isolieren und mich dann wieder melden!

    Danke schonmal und Grüße,

    Florian

  5. #5
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    992
    Danke
    115
    Erhielt 127 Danke für 101 Beiträge

    Standard

    Habe den Baustein isoliert und das Problem war nicht mehr da.

    Da ich aber 4 Verschachtelungen im Programm habe, wird es Problematisch werden.

    Ich poste hier mal den Programmcode, vieleicht seht ihr ja einen Fehler
    Der Baustein wird in 2 weiteren Funktionsbausteinen und im PLC_PRG nur noch "durchgeschleust".
    D.H. es werden lokale Variablen mit den gleichen Namen an die In- und Outputs gehängt.

    Im PLC_PRG werden diese dann mit globalen Variablen und Merkern beschaltet.

    Code:
        
    
    SceneButton1: BOOL;
        SceneButton2: BOOL;
        SceneButton3: BOOL;
        SceneButton4: BOOL;
        SceneButton5: BOOL;
        OnOffButtonG1: BOOL;
        OnOffMerkerG1: BOOL;
        UpMerkerG1: BOOL;
        DownMerkerG1: BOOL;
        OnOffButtonG2: BOOL;
        OnOffMerkerG2: BOOL;
        UpMerkerG2: BOOL;
        DownMerkerG2: BOOL;
        OnOffButtonG3: BOOL;
        OnOffMerkerG3: BOOL;
        UpMerkerG3: BOOL;
        DownMerkerG3: BOOL;
        OnOffButtonG4: BOOL;
        OnOffMerkerG4: BOOL;
        UpMerkerG4: BOOL;
        DownMerkerG4: BOOL;
        OnOffButtonG5: BOOL;
        OnOffMerkerG5: BOOL;
        UpMerkerG5: BOOL;
        DownMerkerG5: BOOL;
    END_VAR
    VAR_OUTPUT
        CBScene1Tab :BOOL;
        CBScene2Tab: BOOL;
        CBScene3Tab: BOOL;
        CBScene4Tab: BOOL;
        CBScene5Tab: BOOL;
        CBScene1Merker: BOOL;
        CBScene2Merker: BOOL;
        CBScene3Merker: BOOL;
        CBScene4Merker: BOOL;
        CBScene5Merker: BOOL;
        Sonderleuchten: BOOL;
    END_VAR
    VAR
        GroupButtons: BOOL;
        Instanz1_F_TRIG: F_TRIG;
        Instanz1_RS: RS;
        ResetBedScene1: BOOL;
        Instanz2_F_TRIG: F_TRIG;
        Instanz2_RS: RS;
        ResetBedScene2: BOOL;
        Instanz3_F_TRIG: F_TRIG;
        Instanz3_RS: RS;
        ResetBedScene3: BOOL;
        Instanz4_F_TRIG: F_TRIG;
        Instanz4_RS: RS;
        ResetBedScene4: BOOL;
        Instanz5_F_TRIG: F_TRIG;
        Instanz5_RS: RS;
        ResetBedScene5: BOOL;
    END_VAR
    
    
    IF OnOffButtonG1 = TRUE OR
    OnOffMerkerG1 = TRUE OR
    UpMerkerG1 = TRUE OR
    DownMerkerG1 = TRUE OR
    OnOffButtonG2 = TRUE OR
    OnOffMerkerG2 = TRUE OR
    UpMerkerG2 = TRUE OR
    DownMerkerG2 = TRUE OR
    OnOffButtonG3 = TRUE OR
    OnOffMerkerG3 = TRUE OR
    UpMerkerG3 = TRUE OR
    DownMerkerG3 = TRUE OR
    OnOffButtonG4 = TRUE OR
    OnOffMerkerG4 = TRUE OR
    UpMerkerG4 = TRUE OR
    DownMerkerG4 = TRUE OR
    OnOffButtonG5 = TRUE OR
    OnOffMerkerG5 = TRUE OR
    UpMerkerG5 = TRUE OR
    DownMerkerG5 = TRUE THEN
    GroupButtons := TRUE;
    ELSE GroupButtons := FALSE;
    END_IF;
    
    Instanz1_F_TRIG(CLK:= SceneButton1,);
    IF SceneButton2 = TRUE OR
    SceneButton3 = TRUE OR
    SceneButton4 = TRUE OR
    SceneButton5 = TRUE OR
    GroupButtons = TRUE THEN
    ResetBedScene1 := TRUE;
    ELSE ResetBedScene1 := FALSE;
    END_IF;
    Instanz1_RS(SET:= Instanz1_F_TRIG.Q, RESET1:= ResetBedScene1  );
    
    IF Instanz1_RS.Q1 =TRUE THEN
    CBScene1Tab := TRUE;
    CBScene1Merker:= TRUE;
    ELSE
    CBScene1Tab := FALSE;
    CBScene1Merker:= FALSE;
    END_IF;
    
    
    Instanz2_F_TRIG(CLK:= SceneButton2,);
    IF SceneButton1 = TRUE OR
    SceneButton3 = TRUE OR
    SceneButton4 = TRUE OR
    SceneButton5 = TRUE OR
    GroupButtons = TRUE THEN
    ResetBedScene2 := TRUE;
    ELSE ResetBedScene2 := FALSE;
    END_IF;
    Instanz2_RS(SET:= Instanz2_F_TRIG.Q, RESET1:= ResetBedScene2  );
    
    IF Instanz2_RS.Q1 =TRUE THEN
    CBScene2Tab := TRUE;
    CBScene2Merker:= TRUE;
    Sonderleuchten := TRUE;
    ELSE
    CBScene2Tab := FALSE;
    CBScene2Merker:= FALSE;
    Sonderleuchten := FALSE;
    END_IF;
    
    Instanz3_F_TRIG(CLK:= SceneButton3,);
    IF SceneButton1 = TRUE OR
    SceneButton2 = TRUE OR
    SceneButton4 = TRUE OR
    SceneButton5 = TRUE OR
    GroupButtons = TRUE THEN
    ResetBedScene3 := TRUE;
    ELSE ResetBedScene3 := FALSE;
    END_IF;
    Instanz3_RS(SET:= Instanz3_F_TRIG.Q, RESET1:= ResetBedScene3 );
    
    IF Instanz3_RS.Q1 =TRUE THEN
    CBScene3Tab := TRUE;
    CBScene3Merker:= TRUE;
    ELSE
    CBScene3Tab := FALSE;
    CBScene3Merker:= FALSE;
    END_IF;
    
    Instanz4_F_TRIG(CLK:= SceneButton4,);
    IF SceneButton1 = TRUE OR
    SceneButton2 = TRUE OR
    SceneButton3 = TRUE OR
    SceneButton5 = TRUE OR
    GroupButtons = TRUE THEN
    ResetBedScene4 := TRUE;
    ELSE ResetBedScene4 := FALSE;
    END_IF;
    Instanz4_RS(SET:= Instanz4_F_TRIG.Q, RESET1:= ResetBedScene4 );
    
    IF Instanz4_RS.Q1 =TRUE THEN
    CBScene4Tab := TRUE;
    CBScene4Merker:= TRUE;
    ELSE
    CBScene4Tab := FALSE;
    CBScene4Merker:= FALSE;
    END_IF;
    
    Instanz5_F_TRIG(CLK:= SceneButton5,);
    IF SceneButton1 = TRUE OR
    SceneButton2 = TRUE OR
    SceneButton3 = TRUE OR
    SceneButton4 = TRUE OR
    GroupButtons = TRUE THEN
    ResetBedScene5 := TRUE;
    ELSE ResetBedScene5 := FALSE;
    END_IF;
    Instanz5_RS(SET:= Instanz5_F_TRIG.Q, RESET1:= ResetBedScene5  );
    
    IF Instanz5_RS.Q1 =TRUE THEN
    CBScene5Tab := TRUE;
    CBScene5Merker:= TRUE;
    ELSE
    CBScene5Tab := FALSE;
    CBScene5Merker:= FALSE;
    END_IF;

  6. #6
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    992
    Danke
    115
    Erhielt 127 Danke für 101 Beiträge

    Standard

    Ganz vergessen:

    die "bösen" Variablen sind hier "OnOffMerkerG1" und "SceneButton5".

    Diese werden erst IN diesem Baustein auf True gesetzt.
    Der Baustein, in welchem "SceneCheckBack", also dieser Baustein hier, aufgerufen wird, beinhaltet keine gesetzten Eingänge.

    UNd genau das ist das mysteriöse...

  7. #7
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    992
    Danke
    115
    Erhielt 127 Danke für 101 Beiträge

    Standard

    Habe gerade einen neuen Baustein erstellt diesmal ein Funktionsbaustein (kein Programm mehr), habe ihne anders genannt und den Code hineinkopiert.
    Der andere ist deaktiviert.

    Immernoch dasselbe Problem -.-

  8. #8
    Registriert seit
    12.05.2010
    Ort
    Dortmund
    Beiträge
    889
    Danke
    57
    Erhielt 121 Danke für 89 Beiträge

    Standard

    Hallo,
    habe mir mit deinem Codeschnipsel ein neues Projekt gemacht..bei mir geht es
    Stell doch bitte mal das GANZE Projekt hier rein..oder per PN.
    Wie hast du denn den FB deklariert:
    Ich meine , dass was du hier reingestellt hast ist der FB mit Namen "FB1" (z.B.)
    beim Aufruf mußt du dann ja schreiben/deklarieren:

    Baustein1: FB1;
    Baustein2: FB1:
    Baustein3: FB1;

    usw.
    Könnte mir vorstellen dass es daran liegt.
    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

  9. #9
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    992
    Danke
    115
    Erhielt 127 Danke für 101 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Heute konnte ich das Projekt auf dem Controller testen und alles funktionierte soweit tadellos!

    Nur eben in der Simulation hapert es!

    Ich schicke dir das Projekt per PN!

    Danke schonmal

    Grüße,

    Florian

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 18.04.2012, 16:00
  2. PID-Regelparameter dauerhaft speichern?
    Von HoGe im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 29.01.2010, 20:48
  3. Werte eines Array dauerhaft speichern!!
    Von SliderZ im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 23.02.2007, 12:49
  4. S7-226 - Daten dauerhaft speichern
    Von S7-Fighter im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 25.08.2006, 08:08
  5. Antworten: 4
    Letzter Beitrag: 22.10.2005, 11:07

Stichworte

Lesezeichen

Berechtigungen

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