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

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

Thema: Bitzugriff AWL

  1. #11
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Huhu zusammen,
    passt bei meinem any alles? Ich will 20h(32dec)Byte in db 280h(640dec) ab Startbyte 22h(34) schreiben.
    Ich führe im netzwerk danach einen blkmove mit einem 32byte array aus. Es kommt aber ret_val Fehler 8329.



    Anhang 23287

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

    Standard

    Hallo,
    dein IN-ANY ist erstmal nur ein einfacher Pointer, der auf die Adresse im Speicher zeigt, an der der "echte" ANY steht.
    Weiter habe ich mir deinen Code nicht angesehen ...

    Gruß
    Larry

  3. #13
    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

    ok. der code soll eigentlich nur sichtbar machen was im any steht.

  4. #14
    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

    Hallo zusammen,

    habe gerade gesehen dass die angehängte Datei nicht abrufbar ist. Ich tippe es mal von Hand

    "passt bei meinem any alles? Ich will 20h(32dec)Byte in db 280h(640dec) ab Startbyte 22h(34) schreiben.
    Ich führe im netzwerk danach einen blkmove mit einem 32byte array aus. Es kommt aber ret_val Fehler 8329.
    "
    Code:
    LAR1      P##_tempany                     0 | 0 | 22 | 2
     
    L              LB[AR1,P#0.0]                  0 | 0 | 10 | 22
    L              LB[AR1,P#1.0]                  0 | 0 | 2 | 10
    L              LW[AR1,P#2.0]                 0 | 0 | 20 | 2
    L              LW[AR1,P#4.0]                 0 | 0 | 280 | 20
    L              LD[AR1,P#6.0]                 0 | 0 | 84000022 | 280
    L              LW[AR1,P#6.0]                 0 | 0 | 8400 | 84000022
    L              LW[AR1,P#8.0]                 0 | 0 | 22 | 8400

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

    Standard

    Hallo,
    ich habe noch immer ein Problem mit deiner Beschreibung des Fehlers. Etwas kompletterer Code könnte (mir) hier helfen ...

    Aber grundsätzlich schon mal :
    Im ANY (wie auch sonst bei anderen S7-Pointern) wird immer ein Bit-Adresse übergeben. Dein Start-Byte 34 hat also die Bit-Adresse 34*8=272 entspricht Hex 110.
    Ansonsten muss in den Bytes deines ANY's folgendes drinstehen :
    Byte 0 : 10hex für Siemens
    Byte 1 : 2 für Datentyp Byte
    Word 2 : 32dez für Anzahl der Wiederholungen
    Word 4 : DB-Nummer
    DWord 6 : Speicher-Adresse verodert mit hex 84000000 -> in deinem Fall wahrscheinlich hex 84000110

    Gruß
    Larry

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

    Limette (13.02.2014)

  7. #16
    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

    ok, danke. ich habe den code nur reinkopiert um zu zeigen was in dem any steht.
    ich bekomme ja ein netzwerk danach bei einem blkmove den ret_val Fehler 8329, obwohl ich nur ein 32byte array in den db kopieren will, wo der any draufzeigt.
    Deshalb habe ich gedacht, ich frage mal ob bei meinem any alles stimmt.

  8. #17
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    BLKMOVE Fehlercode W#16#8329 = Ausrichtungsfehler im 3. Parameter
    --> das meint, die Adresse im ANY an DSTBLK endet nicht auf .0

    Code:
    //*** ANY für BLKMOV.DSTBLK erstellen: P#DB640.DBX34.0 BYTE 32 ***
          LAR1  P##aDSTBLK                  //Adresse der ANY-Variable aDSTBLK in TEMP
    
          L     W#16#1002                   //Kennung S7 + Datentyp BYTE
          T     W [AR1,P#0.0]               //ANY: Kennung S7 + Datentyp BYTE
    
          L     32                          //Länge 32 Byte
          T     W [AR1,P#2.0]               //ANY: Wiederholfaktor
    
          L     640                         //DB640
          T     W [AR1,P#4.0]               //ANY: DB-Nummer
    
          L     P#DBX 34.0                  //Adresse Startbyte DBB34
          T     D [AR1,P#6.0]               //ANY: Speicherbereich + Adresse
    
          CALL  "BLKMOV"
           SRCBLK :=#aSRCBLK                //(oder auch Dein #_TempANY)
           RET_VAL:=#iTEMP_INT
           DSTBLK :=#aDSTBLK                //man könnte aber auch direkt "P#DB640.DBX34.0 BYTE 32" dranschreiben
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Limette (14.02.2014)

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

    Standard

    @Limette:
    Du hast ja nicht nur den Code "hineinkopiert" sondern auch noch dahinter geschrieben, was du in den Registern stehen hast.
    Wenn du da jetzt meinen Beitrag (oder auch den von Harald) hernimmst dann sollte dir auffallen, dass es da hinsichtlich dessen, was du schreibst und dem, was ich (bzw. Harald) geschrieben habe Diskrepanzen gibt.
    Wie geht es jetzt weiter ?

    Gruß
    Larry

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

    Limette (14.02.2014)

  12. #19
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Problem gelöst. Danke euch zweien.

Ähnliche Themen

  1. Dynamischer Bitzugriff in Datenbaustein
    Von ffutsi im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 11.11.2011, 16:35
  2. Speicher indirekter Bitzugriff?
    Von rerdma3s im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 17.03.2010, 09:18
  3. indezierter Bitzugriff
    Von tinosps im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 04.07.2008, 15:12
  4. LibNoDave Bitzugriff...
    Von Jochen Kühner im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.03.2008, 09:29
  5. Bitzugriff in WinCC VBS
    Von Anfängerproggi im Forum HMI
    Antworten: 9
    Letzter Beitrag: 30.07.2007, 10:51

Lesezeichen

Berechtigungen

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