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

Ergebnis 1 bis 8 von 8

Thema: [STL/AWL] Nicht alle Bits werden zurueckgesetzt

  1. #1
    Registriert seit
    01.07.2010
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Sps-Forum,
    ich wage gerade meine ersten Schritte mit STL, da kam doch gleich die erste Frage auf. Also ich habe folgenden Code um die Variablen M300.0 bis M300.3 zurueckzusetzen. Spaeter moechte ich die 4 durch eine Variable ersetzen, deshalb meine ich eine Schleife wie programmiert zu brauchen.

    Bloederweise werden immer die Variablen M300.1 bis M300.3 zurueck gesetzt, nicht aber M300.0. Woran liegt das? Ich kann das meinem eigenen Code nicht entnehmen.

    Vielen Dank schonmal.
    Soldagem

    Code:
          A     "mStep01"
          R     "mPleaseRemovePart"
          JCN   jp02
     
          L     0
          T     "tempCounter"
    jp01: NOP   0
          L     300                         // Base address of WeldOK Signals
          SLD   3                           // Bit->Byte conversion
          LAR1                              // Load in address register
          L     "tempCounter"               // Load counter again
          +AR1                              // Add counter to adress register
          R     M [AR1,P#0.0]
          L     "tempCounter"
          +     1
          T     "tempCounter"               // Increase Counter by 1
          L     4
          L     "tempCounter"               // When counter is less than
          >I                                // Number of welds, do this
          JC    jp01                        // resetting process again
    jp2: NOP   0
    Zitieren Zitieren [STL/AWL] Nicht alle Bits werden zurueckgesetzt  

  2. #2
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 370 Danke für 290 Beiträge

    Standard

    Hi,

    Code:
          L     300                         // Base address of WeldOK Signals
          SLD   3                           // Bit->Byte conversion
          LAR1                              // Load in address register
    
          L     4
    jp01: T     "tempCounter"               // Load counter again
          SET   
          R     M [AR1,P#0.0]
          L     P#0.1
          +AR1  
          L     "tempCounter"
          LOOP  jp01


    Gruss Daniel
    Geändert von dalbi (22.07.2010 um 23:30 Uhr) Grund: hab was vergessen :)
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  3. #3
    Registriert seit
    17.06.2010
    Ort
    nähe Memmingen
    Beiträge
    609
    Danke
    92
    Erhielt 116 Danke für 100 Beiträge

    Standard

    im prog von soldagem fehlt der befehl SET vor dem rücksetzen des merker.
    daher wird das rücksetzen vom zufälligen, vorherigen vke abhängig.

    beim beispiel von dalbi ist es dann korrekt definiert.

  4. #4
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 370 Danke für 290 Beiträge

    Standard

    Zitat Zitat von tnt369 Beitrag anzeigen
    im prog von soldagem fehlt der befehl SET vor dem rücksetzen des merker.
    daher wird das rücksetzen vom zufälligen, vorherigen vke abhängig.

    beim beispiel von dalbi ist es dann korrekt definiert.
    und mein Beispiel ist auch viel schlanker. LOOP + F1

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  5. #5
    soldagem ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.07.2010
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank fuer die schnelle Antwort. Die kam ja schneller als ich sie lesen konnte.

    Statt
    Code:
    L     P#0.1
    kann man wahrscheinlich auch
    Code:
    L     1
    schreiben denke ich mal.

    Ich hoffe, dass ich bald auch Fragen anderer beantworten kann, nicht dass das hier eine einseitige Angelegenheit wird.

    Gruesse
    Soldagem

  6. #6
    Registriert seit
    03.04.2008
    Beiträge
    5.985
    Danke
    230
    Erhielt 770 Danke für 660 Beiträge

    Standard

    Zitat Zitat von soldagem Beitrag anzeigen
    Vielen Dank fuer die schnelle Antwort. Die kam ja schneller als ich sie lesen konnte.

    Statt
    Code:
    L     P#0.1
    kann man wahrscheinlich auch
    Code:
    L     1
    schreiben denke ich mal.

    Nein, das kannst du nicht, da das eine ein Pointer ist und das andere eine Int Zahl

    bike

  7. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.077
    Danke
    128
    Erhielt 1.475 Danke für 1.087 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Nein, das kannst du nicht, da das eine ein Pointer ist und das andere eine Int Zahl
    Die Funktion ist mit 1 aber auch gegenen, da der Pointer in dem Fall ein Literal ist und dementsprechend auch nur in den Akku geladen wird. Die Adressregister bleiben dabei unangetastet.
    P#1.0 ergibt den Wert 8, also das übliche SLD 3 wenn man auf die Byteadresse zugreifen will.

  8. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    bike (23.07.2010)

  9. #8
    Registriert seit
    03.04.2008
    Beiträge
    5.985
    Danke
    230
    Erhielt 770 Danke für 660 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Die Funktion ist mit 1 aber auch gegenen, da der Pointer in dem Fall ein Literal ist und dementsprechend auch nur in den Akku geladen wird. Die Adressregister bleiben dabei unangetastet.
    P#1.0 ergibt den Wert 8, also das übliche SLD 3 wenn man auf die Byteadresse zugreifen will.
    Stimmt habe ich überlesen.


    bike

Ähnliche Themen

  1. Simatic Manager nicht für alle Benutzer
    Von appleseed82 im Forum PC- und Netzwerktechnik
    Antworten: 1
    Letzter Beitrag: 30.07.2009, 00:10
  2. Antworten: 5
    Letzter Beitrag: 23.07.2008, 14:03
  3. Antworten: 7
    Letzter Beitrag: 19.06.2007, 21:22
  4. AN ALLE DIE DAS WORT SUCHEN NICHT KENNEN
    Von volker im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 27.04.2005, 16:16
  5. S7 200 Bits im Datenbaustein? Gibts nicht?
    Von plc_tippser im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.09.2004, 21:23

Lesezeichen

Berechtigungen

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