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

Ergebnis 1 bis 10 von 10

Thema: Bitzugriff in WinCC VBS

  1. #1
    Registriert seit
    20.06.2007
    Beiträge
    16
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moinsen,

    ich habe in WinCC ein Visual Basic Script programmiert, in dem ich mehrere Variablen miteinander vergleiche und "umsortiere". Bei diesen Variablen möchte ich nun aber gerne auf einzelne Bits zugreifen. Wie komme ich an diese ran?
    Zitieren Zitieren Bitzugriff in WinCC VBS  

  2. #2
    Registriert seit
    23.08.2004
    Beiträge
    566
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard

    z.b. so

    Dim Tag
    Tag = HMIRuntime.Tags("Deine Variable").Read

    If (Tag And 8 ) <>0 then ' 8 steht z.b. für Bit 3
    'Anweisung
    else
    ' Anweisung

    End If

    Set Tag = Nothing

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

    Anfängerproggi (30.07.2007)

  4. #3
    Anfängerproggi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.06.2007
    Beiträge
    16
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Rotes Gesicht

    Das sieht ja schon mal gut aus. Aber wenn ich das bei circa 200 Variablen bei jedem Bit machen muss, ist das ziemlich aufwendig...

    Geht es zufällig auch kürzer?

  5. #4
    Registriert seit
    12.05.2007
    Beiträge
    416
    Danke
    14
    Erhielt 45 Danke für 40 Beiträge

    Standard

    Shift and mask!!!

  6. #5
    Anfängerproggi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.06.2007
    Beiträge
    16
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Shift and Mask klingt super, aber was ist das jetzt??

  7. #6
    Registriert seit
    23.08.2004
    Beiträge
    566
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard

    Hmm also nochmal. Du hast ca. 200 Variablen. Aus diesen willst du jeweils ein Bit auslesen. Was soll passieren wenn das Bit "True" ist...
    Oder müssen alle 200 eine 1 haben.

    Beschreib doch mal bischen genauer was du machen willst. (Kann aber nicht versprechen, das ich weiter helfen kann)

  8. #7
    Anfängerproggi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.06.2007
    Beiträge
    16
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Ausrufezeichen

    Also...ich habe ein Haufen Messwerte(circa 200) die in Bytes abgelegt werden. Diese Messwerte sind in einem Datenbaustein. Nun habe ich ein Skript geschrieben, in dem immer bestimmte Bits abgefragt werden müssen. Es gibt in jeder Variable ein Bit, das anzeigt, ob ein Sensor Netzspannung hat bzw. in Betireb ist. Das ist das Bit 3 der Variable.

    Nun steht im Skript: if Variable1 Bit 3 =1 then Variable1Betrieb=1 else Variable1Betrieb=0

    Das ganze Circa also 200 mal und teilweise muss ich dann noch auf andere Bits der Variablen zugreifen.

    z.B. Variable2 Bit2 =1 oder Variable3 Bit2 dann Ergebnis=1

    Wie schreibe ich nun den Bittzugriff?

  9. #8
    Registriert seit
    23.08.2004
    Beiträge
    566
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard

    hm da du auf 200 Variablen zugreifen mußt. Sprich lesen denke ich bleibt dir nichts anders als diese 200 einzeln im skript zu schreiben.
    Andere möglichkeit wäre dein DB in Rohdaten einlesen.

    Mit diesen Rohdaten kannst du glaub ich 256 Byte einlesen. Bin mir aber nicht mehr ganz sicher.... Aber du sparst dir halt nur das einlesen der 200 Variablen. das zuweisen denke ich mußt du trozdem einzeln schreiben


    Schreiben kannst du in VB z.b. so..

    Tag = HMIRuntime.Tags("Deine_Variable").Read

    HMIRuntime.Tags("Deine_Variable").Write (Tag Or &H4) ' z.b. Bit 2 schreiben


    Hier noch die einzelnen Bits aufgelistet

    Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7
    &H1 &H2 &H4 &H8 &H10 &H20 &H40 &H80

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

    Anfängerproggi (30.07.2007)

  11. #9
    Anfängerproggi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.06.2007
    Beiträge
    16
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Daumen hoch

    Ja sauber danke...

    Ich habe sie vorher alle ausgelesen und am Ende des Skriptes schreib ich wieder alle. Wusste nur das Mit dem &H1 nicht. Dankeschön...

  12. #10
    Registriert seit
    23.08.2004
    Beiträge
    566
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    No Prob.

Ähnliche Themen

  1. Speicher indirekter Bitzugriff?
    Von rerdma3s im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 17.03.2010, 09:18
  2. indezierter Bitzugriff
    Von tinosps im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 04.07.2008, 15:12
  3. LibNoDave Bitzugriff...
    Von Jochen Kühner im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.03.2008, 09:29

Lesezeichen

Berechtigungen

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