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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: IF Anweisung mit BOOL Variable aus DB - ERROR

  1. #1
    Registriert seit
    06.03.2014
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    erstmal super Forum hier, welches mir bei vielen Problemen schon geholfen hat. Nun aber komme ich leider nicht mehr alleine weiter, daher
    mein erster Beitrag in einem Forum überhaupt.

    Erst einmal das System:

    S7-300 CPU 321
    DI16/DO16 x 24V / 0,5A
    DI16 x DC24V

    Software : TIA V12 SP1 & PLC-SIM V12
    Programmiersprache : SCL
    Programmierart : symbolisch

    Zum Problem: IF-Anweisung mit BOOL Variable aus DB - ERROR

    In meinem FB11 (Vorschub) mit dazugehörigem DB2 (DB_Vorschub), der DB wurde aus dem FB erzeugt, habe ich folgenden Code zum Testen geschrieben:

    IF "DB_Vorschub".Test_1 THEN
    #Test_1 := FALSE;
    END_IF;

    RETURN;

    TIA sagt mir, dass >>"DB-Vorschub"<< eine ungültige Adresse ist. Wenn ich AWL benutze Funktioniert aber die symbolische Adressierung.
    Alternativ habe ich auch #Test_1 probiert, in diesem Fall kommt aber beim Aufruf der Funktion ein Bereichslängenfehler. Rufe ich andere Variablen symbolisch auf, welche in anderen DB's liegen, funktioniert es. Die Bausteinschnittstellen sind ich auch alle aktualisiert.
    Die TIA Hilfe zum Bereichslängenfehler konnte mir auch nicht weiterhelfen.
    Der Bereichslängenfehler kommt sowohl auf der CPU, sowie in der Simulation mit PLC-SIM.

    Für alle Tips schon einmal ein "Dankeschöne" im Voraus.

    Schöne Grüße
    Geändert von CaptainB (06.03.2014 um 10:53 Uhr)
    Zitieren Zitieren IF Anweisung mit BOOL Variable aus DB - ERROR  

  2. #2
    Registriert seit
    29.10.2010
    Beiträge
    553
    Danke
    57
    Erhielt 39 Danke für 37 Beiträge

    Standard

    Hi,

    ich würde es mal mit einem Vergleich versuchen, vielleicht so:

    Code:
    IF "DB_Vorschub".Test_1=1 THEN
     #Test_1 := FALSE;
     END_IF;
    
     RETURN;
    sonst weiß doch die IF-Verzweigung gar nicht was sie tun soll.

    Tschö dentech

  3. Folgender Benutzer sagt Danke zu dentech für den nützlichen Beitrag:

    CaptainB (06.03.2014)

  4. #3
    CaptainB ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.03.2014
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo dentech,

    habe es gerade probiert. Verhalten ist das gleiche:

    "DB_Vorschub".Test_1 : ungültige Adresse
    #Test_1 : Bereichslängenfehler beim Aufruf

    Schöne Grüße

  5. #4
    Registriert seit
    30.04.2005
    Beiträge
    908
    Danke
    57
    Erhielt 161 Danke für 147 Beiträge

    Standard

    Code:
    IF "DB_Vorschub".Test_1 = true THEN
     #Test_1 := FALSE;
     END_IF;
    
     RETURN;
    Krieg ist Gottes Art den Amerikanern Geographie beizubringen

  6. Folgender Benutzer sagt Danke zu centipede für den nützlichen Beitrag:

    CaptainB (06.03.2014)

  7. #5
    CaptainB ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.03.2014
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo centipede,

    habe ich auch schon probiert, geht auch nicht.

    Schöne Grüße

  8. #6
    Registriert seit
    30.04.2005
    Beiträge
    908
    Danke
    57
    Erhielt 161 Danke für 147 Beiträge

    Standard

    Bei mir gehts

    deine Test_1 im DB_Vorschub ist eine Bool?
    Krieg ist Gottes Art den Amerikanern Geographie beizubringen

  9. #7
    CaptainB ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.03.2014
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hmmm...komisch. Vielleicht stimmt etwas mit meinem DB nicht. Auffallend ist, dass die Variable immer TRUE ist, obwohl ich alle
    Merker der DB's im Programm mit dem OB100 zurücksetze. Alle anderen sind schließlich Null, also kann es an der Init nicht liegen.

    Hab den DB mal gelöscht und neu erstellt, hat auch nichts geholfen.

    Noch zu Info:

    Der FB wird bedingt mit "CC" mit AWL-Code aufgerufen (also ohne direkte Zuweisung eines DB's)
    Geändert von CaptainB (06.03.2014 um 13:09 Uhr)

  10. #8
    Registriert seit
    30.04.2005
    Beiträge
    908
    Danke
    57
    Erhielt 161 Danke für 147 Beiträge

    Standard

    Merker der DB's ????

    Nutz doch das Intellisense...dingens.

    einfach nach der if-Anweisung ein "d" tippen, dann musste ja eine Auswahl des DB's kommen...dann einen Punkt und die nächste Auswahl kommt...usw
    Krieg ist Gottes Art den Amerikanern Geographie beizubringen

  11. #9
    CaptainB ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.03.2014
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Super Tip, wusste das mit dem "d" garnicht.

    Will aber auch nicht funktionieren

  12. #10
    Registriert seit
    30.04.2005
    Beiträge
    908
    Danke
    57
    Erhielt 161 Danke für 147 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ist der DB überhaupt schon übersetzt?
    Krieg ist Gottes Art den Amerikanern Geographie beizubringen

Ähnliche Themen

  1. Zugriff auf bool-Variable via C#
    Von SteffenP im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 06.12.2013, 10:55
  2. Multiplex-Variable vom Typ Bool setzen?
    Von mercury_26 im Forum HMI
    Antworten: 16
    Letzter Beitrag: 20.04.2011, 09:35
  3. Bool-Variable zählen Wie ???
    Von Golf2 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.09.2008, 15:18
  4. IEC-61131 Pointer mit Index auf BOOL Variable
    Von Stussi im Forum CODESYS und IEC61131
    Antworten: 21
    Letzter Beitrag: 14.12.2007, 09:11
  5. Bool-Variable setzen/rücksetzen
    Von Supervisor im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 18.07.2006, 12:29

Lesezeichen

Berechtigungen

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