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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Out-Bereich eines FB einlesen

  1. #1
    Registriert seit
    14.10.2008
    Beiträge
    44
    Danke
    8
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute

    folgende Thematik: Ich hab einen FB der neben anderen, 3 Ausgänge hat bei denen ich überwachen muss ob es irgendeine Änderung gibt. Das mit 6 Flanken 3x positiv, 3x Negativ) zu machen = aufwendig und unschön.

    Ich hab mir also gedacht, einfach bei jedem zyklus des Wort vom Ausgangsbereich zu sichern und es im nächsten Zyklus zu vergleichen. (Gegebenenfalls noch mit OW ausmaskieren).

    Die goldene Frage nun: wie kann ich dieses OUT-Word auslesen?

    mfg
    If at first you don't succeed, you're not Chuck Norris.
    Zitieren Zitieren Out-Bereich eines FB einlesen  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Du suchst dir die Wortgrenze in deinen Outdaten.

    Dort steht z.Bsp. ein Bit.

    Dann

    L P##Erstes_Bit_an_Wordgrenze
    LAR1 (Adresse Ins AR1 laden)

    Nun kannst z.Bsp. mit

    L W[AR1, P0.0]

    dieses komplette Wort laden und hinspeichern wohi du willst. Deine Bits sind dann an der ensprechenden Stelle irgendwo in dem Wort.

    Was ich hier schreib gilt für FB, die nicht als Multiinstanzen eingesetzt werden.
    Geändert von Ralle (23.07.2009 um 14:54 Uhr) Grund: Korrektur nach OHGN
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    L LW[AR1, P0.0]
    Du meintest bestimmt

    L DIW[AR1, #P0.0]

    Der Out-Bereich eines FB liegt ja nicht in den Lokaldaten.

  4. #4
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Du meintest bestimmt

    L DIW[AR1, #P0.0]

    Der Out-Bereich eines FB liegt ja nicht in den Lokaldaten.
    Ist es in diesem Fall überhaupt nötig den Speicherbereich "DI" mit anzugeben?

    L W[AR1, #P0.0]

    sollte doch so funktionieren, das "DI" steht doch durch den Pointer ohnehin schon im AR1.
    Oder irre ich mich jetzt?
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  5. #5
    Registriert seit
    14.10.2008
    Beiträge
    44
    Danke
    8
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Ich habs mal so probiert aber leider ohne erfolg. Wenn ich einen Ausgang schalte ändert sich dass ausgelesene Wort leider nicht.

    Code:
          L     #Outword              //Wort in dem das OUT-Word gespeichert werden soll
          LAR1  P##Bereit            //Erstes bit im OUT-Bereich
          L     DIW [AR1,P#0.0]
          L     28
          UW                             //Restliche Bits ausmarkieren
          <>I   
          S     #HM_umschalten   //Aktion bei Änderung
    
          T     #Outword
    Geändert von ChristianPaier (23.07.2009 um 15:02 Uhr)
    If at first you don't succeed, you're not Chuck Norris.

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    @Christian:
    hatten wir so etwas ähnliches nicht schon einmal hier sehr ausführlich behandelt ?

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von OHGN Beitrag anzeigen
    Ist es in diesem Fall überhaupt nötig den Speicherbereich "DI" mit anzugeben?

    L W[AR1, #P0.0]

    sollte doch so funktionieren, das "DI" steht doch durch den Pointer ohnehin schon im AR1.
    Oder irre ich mich jetzt?
    Korrekt!

    Füllzeichen
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #8
    Registriert seit
    14.10.2008
    Beiträge
    44
    Danke
    8
    Erhielt 3 Danke für 2 Beiträge

    Standard

    @ Larry: Ja auch wenn um Any-Pointer und das verschieben von Daten ging. Hier war meine Frage wie ich auf den OUT-Bereich zugreifen kann.

    Ich wusste nicht das man das auch über Pointer lösen muss. Ich dacht das geht ähnlich wie bei den Lokaldaten wo man zb mit L LW0 arbeiten kann.

    Bleibt nur noch die Frage was bei obigem Code von mir falsch ist. Ich lese nämlich immer 0 aus.
    If at first you don't succeed, you're not Chuck Norris.

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Du kannst auch direkt darauf zugreifen ...
    Aber ... wann beschreibst du denn dein OUTWORD und mit was ?
    Zeig doch mal den ganzen FB mit seinem Aufruf / Beschaltung ...

  10. #10
    Registriert seit
    14.10.2008
    Beiträge
    44
    Danke
    8
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Direkt kann ich aber nur auf die jeweiligen Variablen im Outbereich (in diesem Fall 3 Bits) zugreifen oder irre ich.

    Das sieht dann so aus...

    Ich muss feststellen wann sich die Ausgänge Q_Mot_Y, Q_Mot_D, Q_Mot_YY ändern. Is'n Motorbaustein für ein Drehkolbengebläse mit Dahlanderschaltung.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von ChristianPaier (23.07.2009 um 16:09 Uhr)
    If at first you don't succeed, you're not Chuck Norris.

Ähnliche Themen

  1. Einlesen eines Bereiches aus einem DB???
    Von Vassily im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 21.10.2010, 13:58
  2. Antworten: 40
    Letzter Beitrag: 08.12.2008, 13:38
  3. Antworten: 7
    Letzter Beitrag: 11.07.2008, 09:44
  4. Einlesen eines Eingansworts
    Von Tobi P. im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 02.08.2007, 07:01
  5. einlesen eines Analogeinganges
    Von Noudels im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 16.01.2006, 18:48

Lesezeichen

Berechtigungen

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