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

Ergebnis 1 bis 6 von 6

Thema: Any auf Ausgang Problem

  1. #1
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Code:
    Var_out
    DatenArray: Array[0..49] of Byte
    End_var
    
    Var_temp
    AnytoData: Any
    End_var
    
          LAR1  P##AnytoData 
    
          L     B#16#10                     // 10h für S7       
          T     LB [AR1,P#0.0]
    
          L     B#16#2                      // 02h für BYTE 
          T     LB [AR1,P#1.0]
    
          L     50                             // iDataLength  
          T     LW [AR1,P#2.0]
    
          L     1                               // DB-Nummer 
          T     LD [AR1,P#4.0]
    
          L     70                             // Offset   
          SLD   3
          T     LD [AR1,P#6.0]
    
          L     B#16#82                     // 82 für Ausgang. hab eigentlich alle durchprobiert, es funktioniert keins davon.
          T     LB [AR1,P#6.0]
    
    
    CALL  "BLKMOV"
           SRCBLK :=#AnytoData  
           RET_VAL:=#_ret_val
           DSTBLK :=#DatenArray     
     NOP

    Leider schreibt es leider nie etwas in das Array. Offset, Repeatfactor und DB Nummer stimmen sicher und in diesem DB steht auch was drin(Array of Byte).
    Hat ihr mir nen guten Rat ?
    Zitieren Zitieren Any auf Ausgang Problem  

  2. #2
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    So sollte es gehen:
    Code:
         L     70                             // Offset   
         SLD   3
         L DW#16#82000000
         OW
         T     LD [AR1,P#6.0]
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

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

    Limette (26.01.2012)

  4. #3
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo Limette,

    Du überschreibst Dir die DB-Nummer. Es muss LW [AR1,P#4.0] heissen.
    Und dann bei Bereich die 84.

    Schau doch auch mal was der RetVal ausspuckt.

    Grüße
    Gebs

  5. Folgender Benutzer sagt Danke zu Gebs für den nützlichen Beitrag:

    Limette (26.01.2012)

  6. #4
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Gebs Beitrag anzeigen
    Du überschreibst Dir die DB-Nummer. Es muss LW [AR1,P#4.0] heissen.
    Wo er recht hat, hat er recht
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  7. #5
    Limette ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Gebs Beitrag anzeigen
    Hallo Limette,

    Du überschreibst Dir die DB-Nummer. Es muss LW [AR1,P#4.0] heissen.
    Und dann bei Bereich die 84.

    Schau doch auch mal was der RetVal ausspuckt.

    Grüße
    Gebs
    So klappts, wunderbar. danke.

    Willst du/ihr mir noch ein wenig ausführen, warum ich meine DB-Nummer überschrieben habe ?
    Geändert von Limette (26.01.2012 um 22:56 Uhr)

  8. #6
    Registriert seit
    14.10.2010
    Ort
    Telgte
    Beiträge
    655
    Danke
    97
    Erhielt 129 Danke für 99 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Limette,

    LW [AR1,p#4.0] ist deine Anfangsadresse, von wo aus deine in den Akku geladenen Daten in deinen Pointer geschrieben werden.
    Als LW landet die 1 in Byte 5.
    Als LD landet die 1 in Byte 7.
    Somit wird die 1 beim nächsten LD [AR1,p#6.0] also überschrieben.
    Wobei sie also nicht nur überschrieben wurde, sondern an der falschen Position eingetragen wurde.
    Kleine Ursache, große Wirkung

    Gruß
    Toki
    Programmierumgebung: Step7 V5.5, WinCCflex2008-SP3, TIA-PortalV13, MicroWinV4.0

  9. Folgender Benutzer sagt Danke zu Toki0604 für den nützlichen Beitrag:

    Limette (27.01.2012)

Ähnliche Themen

  1. Analog Ausgang auf 5V setzen?
    Von NEONBLACK im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.01.2012, 15:06
  2. Realwert auf Ausgang
    Von nolk im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.05.2011, 20:55
  3. Ausgang auf 10ms genau schalten!
    Von thorsten im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 20.01.2011, 20:06
  4. Ausgang auf Eingang programmiert
    Von elmum im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 09.06.2010, 07:34
  5. open kolektor ausgang auf ttl eingang
    Von Markus im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 28.06.2003, 11:48

Lesezeichen

Berechtigungen

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