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

Ergebnis 1 bis 3 von 3

Thema: BIT in DB setzen

  1. #1
    Registriert seit
    27.03.2012
    Beiträge
    56
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe eine DB mit einer festen Struktur.

    Code:
    DB1.DBX 0.0    "DB_Austausch".sZiel_1.sSignal_1.boSignal_Wert
    DB1.DBX 0.1    "DB_Austausch".sZiel_1.sSignal_1.boSignal_Aktiv
    DB1.DBX 0.2    "DB_Austausch".sZiel_1.sSignal_1.boSignal_SimEIN
    DB1.DBX 0.3    "DB_Austausch".sZiel_1.sSignal_1.boSignal_SimAUS
    
    
    DB1.DBX 2.0    "DB_Austausch".sZiel_1.sSignal_2.boSignal_Wert
    DB1.DBX 2.1    "DB_Austausch".sZiel_1.sSignal_2.boSignal_Aktiv
    DB1.DBX 2.2    "DB_Austausch".sZiel_1.sSignal_2.boSignal_SimEIN
    DB1.DBX 2.3    "DB_Austausch".sZiel_1.sSignal_2.boSignal_SimAUS
    
    
    DB1.DBX 4.0    "DB_Austausch".sZiel_2.sSignal_1.boSignal_Wert
    DB1.DBX 4.1    "DB_Austausch".sZiel_2.sSignal_1.boSignal_Aktiv
    DB1.DBX 4.2    "DB_Austausch".sZiel_2.sSignal_1.boSignal_SimEIN
    DB1.DBX 4.3    "DB_Austausch".sZiel_2.sSignal_1.boSignal_SimAUS
    
    
    DB1.DBX 6.0    "DB_Austausch".sZiel_2.sSignal_2.boSignal_Wert
    DB1.DBX 6.1    "DB_Austausch".sZiel_2.sSignal_2.boSignal_Aktiv
    DB1.DBX 6.2    "DB_Austausch".sZiel_2.sSignal_2.boSignal_SimEIN
    DB1.DBX 6.3    "DB_Austausch".sZiel_2.sSignal_2.boSignal_SimAUS
    
    
    DB1.DBX 8.0    "DB_Austausch".sZiel_3.sSignal_1.boSignal_Wert
    DB1.DBX 8.1    "DB_Austausch".sZiel_3.sSignal_1.boSignal_Aktiv
    DB1.DBX 8.2    "DB_Austausch".sZiel_3.sSignal_1.boSignal_SimEIN
    DB1.DBX 8.3    "DB_Austausch".sZiel_3.sSignal_1.boSignal_SimAUS
    
    
    DB1.DBX10.0    "DB_Austausch".sZiel_3.sSignal_2.boSignal_Wert
    DB1.DBX10.1    "DB_Austausch".sZiel_3.sSignal_2.boSignal_Aktiv
    DB1.DBX10.2    "DB_Austausch".sZiel_3.sSignal_2.boSignal_SimEIN
    DB1.DBX10.3    "DB_Austausch".sZiel_3.sSignal_2.boSignal_SimAUS
    
    
    DB1.DBX12.0    "DB_Austausch".sZiel_4.sSignal_1.boSignal_Wert
    DB1.DBX12.1    "DB_Austausch".sZiel_4.sSignal_1.boSignal_Aktiv
    DB1.DBX12.2    "DB_Austausch".sZiel_4.sSignal_1.boSignal_SimEIN
    DB1.DBX12.3    "DB_Austausch".sZiel_4.sSignal_1.boSignal_SimAUS
    
    
    DB1.DBX14.0    "DB_Austausch".sZiel_4.sSignal_2.boSignal_Wert
    DB1.DBX14.1    "DB_Austausch".sZiel_4.sSignal_2.boSignal_Aktiv
    DB1.DBX14.2    "DB_Austausch".sZiel_4.sSignal_2.boSignal_SimEIN
    DB1.DBX14.3    "DB_Austausch".sZiel_4.sSignal_2.boSignal_SimAUS
    Die namen "sZiel_#" und "sSignal_#" sind nicht konstant und beinhalten auf der Anlage den Ziel- bzw. den Signalnamen.
    Ich will, dass die Variable boSignal_Wert auf TRUE gesetzt wird, wenn boSignal_Aktiv oder boSignal_SimEIN auf TRUE ist bzw. auf FALSE geforct wird, wenn boSignal_SimAUS gesetzt ist.

    Das ganze so, dass ich die Signalnamen nicht kennen muss. Ich vermute der zu wählende Weg ist der über POINTER und eine Schleife oder gibt es da was feineres?

    Vielen Dank!
    Zitieren Zitieren BIT in DB setzen  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von MrChiliCheese Beitrag anzeigen
    Das ganze so, dass ich die Signalnamen nicht kennen muss.
    Code:
    U(
    O  DB1.DBX 0.1
    O  DB1.DBX 0.2
    )
    UN DB1.DBX 0.3
    =  DB1.DBX 0.0
    
    U(
    O  DB1.DBX 2.1
    O  DB1.DBX 2.2
    )
    UN DB1.DBX 2.3
    =  DB1.DBX 2.0
    
    ...
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mit ein schleiffe wurde dass so:

    Code:
    AUF DB1
          TAR1  
          T     #ret_AR1                    //AR1 retten   (#ret_AR1 = TEMP DWORD)
          L     P#0.0
          LAR1  
          L     7
    Lus:  T     #schleife                   //(#scheife = TEMP INT)
          U(    
          O     DBX [AR1,P#0.1]
          O     DBX [AR1,P#0.2]
          )     
          UN    DBX [AR1,P#0.3]
          =     DBX [AR1,P#0.0]
          L     P#2.0
          +AR1  
          L     #schleife
          LOOP  Lus
          L     #ret_AR1                    //AR1 rucksetzen
          LAR1
    Gruss Joop

Ähnliche Themen

  1. Bit in int setzen
    Von vo13 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 01.07.2014, 09:06
  2. libnodave Bit setzen
    Von foreach im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 17.01.2013, 20:05
  3. WINCC V6.2 Bit setzen/rücksetzen
    Von HarbichC im Forum HMI
    Antworten: 19
    Letzter Beitrag: 03.05.2010, 10:12
  4. s7 200 Bit setzen
    Von Praktikus im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.02.2008, 09:39
  5. SCL Bit setzen
    Von HeinBloed im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 11.12.2006, 15:50

Lesezeichen

Berechtigungen

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