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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Aus Hex Zahl wieder Bitmuster machen

  1. #11
    Registriert seit
    11.08.2011
    Beiträge
    32
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Servus, so ich muss dann nochmal nerven. Da ich es immer noch nicht schaffe, wollte ich mal Schritt für Schritt hier aufschreiben was ich mache. Hoffe mal einer kann mir Helfen.

    1) Im Temp des FB eine Sturktur "Set" anlegen
    2) Doppelklick auf die Strucktur und die 64 Bit ("Element_1")anlegen auf die ich zugreifen möchte.
    3) Nun mache ich das was Larry schrieb
    Code:
    LAR1 p#Set_a
    T #Set_a
    T W [AR1,P#0.0]
    U Set.Element_1
    = #Ausgang_1
    U Set.Element_2
    = #Ausgang_2
    Allerdings ist LAR1 immer noch Rot.
    Edit: Nun ist LAR1 nicht mehr Rot, allerdings hab ich da 2 Rauten, also: LAR1 P##Set_a

    PS: Gehen mehrere Zuweißungen in AWL?

    Danke mal wieder und schöne Grüße
    Geändert von Deimos0815 (15.08.2011 um 15:12 Uhr)

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Code:
    LAR1 p#meineStruktur  // Pointer auf die Struktur im TEMP-Bereich bilden und den ins AR1 übertragen
    L #meineEingangsVariable // das Eingangs-WORD des Bausteins laden
    T W [AR1, p#0.0] // nun das Eingangs-WORD auf das Lokal-WORD, das über den AR1-Pointer adressiert wird, übertragen
     
    U meineStruktur.Bit0  // das Element der STRUCT nutzen
    = #Out_Bit0
     
    usw.
    Hallo,
    ich bleibe mal bei meinem Beispiel und meinen Operanden-Namen.
    "meineStruktur" ist eine im TEMP-Bereich deines FC's angelegte Struktur mit dem Inhalt :
    Code:
    Bit_8 : bool
    Bit_9 : bool
    Bit_10 : bool
    Bit_11: bool
    Bit_12 : bool
    Bit_13 : bool
    Bit_14 : bool
    Bit_15 : bool
    Bit_0 : bool
    Bit_1 : bool
    Bit_2 : bool
    Bit_3 : bool
    Bit_4 : bool
    Bit_5 : bool
    Bit_6 : bool
    Bit_7 : bool
    "meineEingangsVariable" ist eine IN-Variable in den FC vom Typ WORD.
    "Out_Bit0" (und ggf. folgende) ist eine OUT-Variable des FC vom Typ BOOL.

    Ich habe das "quick-and-dirty" hingeschrieben, gehe aber mal davon aus, dass das funktioniert. Das kannst du natürlich abwandeln - dann aber nicht den Sinn verdrehen.

    Gruß
    Larry

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

    Deimos0815 (15.08.2011)

  4. #13
    Registriert seit
    11.08.2011
    Beiträge
    32
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Super, danke. Werd allerdings im laufe des Tages noch ein paar Fragen haben. Bis denne

  5. #14
    Registriert seit
    11.08.2011
    Beiträge
    32
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    So morgen nochmal. Hab das jetzt soweit hoffentlich von Larry verstanden. Muss jetzt meine Theat selbst etwas entführen.
    Folgendes, wie schon geschrieben möchte ich ein Doppelwort in einzelne Bits aufspalten, da jedes Bit für ein Element (1= AN, 0=Aus) steht. Dabei will ich bei jedem Programmdurchlauf schauen ob sich der Wert geändert hat. Hatte das jetzt vor mit einem FN und FP zumachen, dann per SR Flip-Flop zu speichern und darüber eine Zeit laufen zulassen. Das FF und der Zähler werden später über den nächsten Schritt zurück gesetzt. Mal der Code aus meinen groben Überlegungen.
    Code:
    U( 
    O(
    Temp_variable_1_a
    FN Stat_flanke_neg_1
    )
    O(
    Temp_variable_1
    FN Stat_flanke_pos_1
    )
    )
    S Temp_variable_1_b
    U Neuer_Schritt
    R Temp_variable_1_b
     
    U Temp_variable_1_b
    (
    L Zeit_Element_1
    L Laufzeit
    +D oder +I
    = Zeit_Element_1
    )
    Nun zu meinem Fragen.
    1) Ich hab so jede Menge Temp. Merker bzw. Stat-Merker. Gibt es eine Möglichkeit das schöner und übersichtlicher zumachen?
    2) Gibt es eine Möglichkeit anders auf einen Signalwechsel zu detektieren?

    Hoffe mal ihr könnt damit was anfangen.
    Danke mal wieder im Vorraus
    Grüße Tobias

    PS: Falls es besser wäre das ein einen eigenen Theat zupacken, sagt das bitte.

  6. #15
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Es ist doch dein Thread ... damit kannst du machen, was du willst ...

    Zu deiner Frage:
    Statt die Bits (des Doppelwortes) einzeln zu vergleichen kannst du doch auch das Doppelwort selbst mit einem zuvor gespeicherten vergleichen und bei Abweichung eine Meldung ausgeben - also in etwa so :
    Code:
    L #meinDoppelwort
    L #LastDoppelwort
    <>D
    S #Aenderung
     
    L #meinDoppelwort
    T #LastDoppelwort
    Gruß
    Larry

  7. #16
    Registriert seit
    11.08.2011
    Beiträge
    32
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Moin, jo das mit dem gesamten Vergleichen hatte ich mir auch so überlegt. Nur soll es bis jetzt jedes Element über einen Timer( bei = Zähler) läuft überwacht werden. Wobei da wohl das ganze nochmal beschrechen muss. Hast du vll sonst noch einen Tipp wie ich den Code verständlicher und strukturierter machen kann?

    Bis denne

  8. #17
    Registriert seit
    05.01.2009
    Ort
    69198 Schriesheim
    Beiträge
    236
    Danke
    54
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Hallo,
    vorsicht mit sr bei temp Variablen

    Code:
    O(
    Temp_variable_1
    FN Stat_flanke_pos_1
    )
    )
    S Temp_variable_1_b
    U Neuer_Schritt
    R Temp_variable_1_b
    siehe http://sps-forum.de/showthread.php?t...hlight=sr+temp

    gruß Thomas

  9. #18
    Registriert seit
    11.08.2011
    Beiträge
    32
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke schonmal. Wenn ich nochmal hilfe brauch melde ich mich-

    Gruß

Ähnliche Themen

  1. Bitmuster Puzzel
    Von doelckenbeck im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 09.08.2010, 10:19
  2. Bitmuster
    Von AdrianS im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 06.10.2007, 15:23
  3. INT-Zahl in eine S5T#-Zahl umwandeln ?
    Von Stefan B. im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 02.03.2006, 22:40
  4. 5-stellige ascii zahl in normale zahl umwandeln
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.01.2006, 16:12
  5. Antworten: 4
    Letzter Beitrag: 23.04.2004, 13:26

Stichworte

Lesezeichen

Berechtigungen

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