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

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 41

Thema: Scheife - kleines Prog.

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Limette Beitrag anzeigen
    ich möchte nur peripherie die zum beispiel von E4.0 bis E6.5 angeschlossen in einen zum beispiel Dix von 7 bis 8.5 laden. bit für bit, in einer schleife.
    Vorab: Die Peripherie-Adressen müssen im PAE liegen, weil sonst Byte- oder Bitzugriffe auf die Peripherie-Eingänge meist nicht funktionieren.

    Code:
    //einfache Variante: E4.0..E6.7 -> DIX7.0..DIX9.7
          L     EW     4                    //  E4.0..E5.7
          T     DIW    7                    //DIX7.0..DIX8.7
          L     EB     6                    //  E6.0..E6.7
          T     DIB    9                    //DIX9.0..DIX9.7
    Bit-Kopier-Schleife:
    Code:
    //Schleife für "krumme" Anfangs- oder Endeadressen
          TAR2  #tmpDW_AR2save              //AR2 sichern
          LAR1  P#E 4.0                     //Quell-Bereichsbeginn
          LAR2  P#DIX 7.0                   //Ziel-Bereichsbeginn
    
    loop: U      [AR1,P#0.0]                //E[AR1] lesen
          =      [AR2,P#0.0]                //in DIX[AR2] übertragen
    
          +AR1  P#0.1                       //E-Pointer auf nächstes Bit
          TAR1  
          L     P#E 6.5                     //Quell-Endadresse
          >D                                //überschritten?
          SPB   end
          +AR2  P#0.1                       //DIX-Pointer auf nächstes Bit
          SPA   loop                        //Schleife wiederholen
    
    end:  LAR2  #tmpDW_AR2save              //AR2 wiederherstellen
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Limette (07.03.2011)

  3. #12
    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 PN/DP Beitrag anzeigen
    Vorab: Die Peripherie-Adressen müssen im PAE liegen, weil sonst Byte- oder Bitzugriffe auf die Peripherie-Eingänge meist nicht funktionieren.

    Code:
    //einfache Variante: E4.0..E6.7 -> DIX7.0..DIX9.7
          L     EW     4                    //  E4.0..E5.7
          T     DIW    7                    //DIX7.0..DIX8.7
          L     EB     6                    //  E6.0..E6.7
          T     DIB    9                    //DIX9.0..DIX9.7
    Bit-Kopier-Schleife:
    Code:
    //Schleife für "krumme" Anfangs- oder Endeadressen
          TAR2  #tmpDW_AR2save              //AR2 sichern
          LAR1  P#E 4.0                     //Quell-Bereichsbeginn
          LAR2  P#DIX 7.0                   //Ziel-Bereichsbeginn
    
    loop: U      [AR1,P#0.0]                //E[AR1] lesen
          =      [AR2,P#0.0]                //in DIX[AR2] übertragen
    
          +AR1  P#0.1                       //E-Pointer auf nächstes Bit
          TAR1  
          L     P#E 6.5                     //Quell-Endadresse
          >D                                //überschritten?
          SPB   end
          +AR2  P#0.1                       //DIX-Pointer auf nächstes Bit
          SPA   loop                        //Schleife wiederholen
    
    end:  LAR2  #tmpDW_AR2save              //AR2 wiederherstellen
    Harald
    danke, werde es gleich mal probieren.

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

    Den Befehl

    Code:
    #tmpDW_AR2save
    mag er leider gar nicht.

  5. #14
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von Limette Beitrag anzeigen
    Den Befehl

    Code:
    #tmpDW_AR2save
    mag er leider gar nicht.
    tmpDW_AR2save ist eine Hilfsvariable DWORD im TEMP-Bereich des Bausteins.
    Die müßtest Du in Deinem Baustein erst noch anlegen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Limette (08.03.2011)

  7. #15
    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 PN/DP Beitrag anzeigen
    tmpDW_AR2save ist eine Hilfsvariable DWORD im TEMP-Bereich des Bausteins.
    Die müßtest Du in Deinem Baustein erst noch anlegen.

    Harald
    ach, da hätte ich auch selbst drauf kommen können.. danke

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

    Zitat Zitat von PN/DP Beitrag anzeigen
    Vorab: Die Peripherie-Adressen müssen im PAE liegen, weil sonst Byte- oder Bitzugriffe auf die Peripherie-Eingänge meist nicht funktionieren.

    Code:
    //Schleife für "krumme" Anfangs- oder Endeadressen
          TAR2  #tmpDW_AR2save              //AR2 sichern
          LAR1  P#E 4.0                     //Quell-Bereichsbeginn
          LAR2  P#DIX 7.0                   //Ziel-Bereichsbeginn
    
    loop: U      [AR1,P#0.0]                //E[AR1] lesen
          =      [AR2,P#0.0]                //in DIX[AR2] übertragen
    
          +AR1  P#0.1                       //E-Pointer auf nächstes Bit
          TAR1  
          L     P#E 6.5                     //Quell-Endadresse
          >D                                //überschritten?
          SPB   end
          +AR2  P#0.1                       //DIX-Pointer auf nächstes Bit
          SPA   loop                        //Schleife wiederholen
    
    end:  LAR2  #tmpDW_AR2save              //AR2 wiederherstellen
    Harald

    ich habe daran kaum etwas verändert, leider geht die sps in stop und zeigt SF Fehler an.

    an was könnte das liegen ?

    Grüße

  9. #17
    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 Limette Beitrag anzeigen
    ich habe daran kaum etwas verändert, leider geht die sps in stop und zeigt SF Fehler an.
    Definiere doch mal >>> kaum <<<
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  10. #18
    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 Paule Beitrag anzeigen
    Definiere doch mal >>> kaum <<<

    Code:
    LAR1  P#E 4.0
    zu
    Code:
    LAR1  P##Eingang
    und im ob dann die adresse zugewiesen. an dem dürfte es wohl nicht liegen.

    bei
    LAR2 P#DIX 7.0
    greife ich ja auf den instanz db zu. kann es sein dass ich den db zuerst laden muss ?

  11. #19
    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 Limette Beitrag anzeigen
    Code:
    LAR1  P#E 4.0
    zu
    Code:
    LAR1  P##Eingang
    und im ob dann die adresse zugewiesen. an dem dürfte es wohl nicht liegen.
    Ich glaub schon.
    Spontan würde ich jetzt sagen dass nun die Bereichskennung fehlt. ( E )
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  12. #20
    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
    Zitat Zitat von Paule Beitrag anzeigen
    Ich glaub schon.
    Spontan würde ich jetzt sagen dass nun die Bereichskennung fehlt. ( E )

    ich hab mein abgeänderter quelltext durch den orgianlen ersetz und wieder hochgeladen. leider immer SF Fehler. willst du ihn bei dir mal kurz in der sps hochladen und gucken was passiert(falls zeit und lust ). dann wüßte ich ob es am code oder doch an meiner s7-300 liegt.

Ähnliche Themen

  1. Prog.Hilfe Behäter Min Max Wert
    Von Marcel0815 im Forum Simatic
    Antworten: 24
    Letzter Beitrag: 04.11.2009, 20:43
  2. Fehlermeldungen per Sps-Prog archivieren
    Von Robot-Sun im Forum Programmierstrategien
    Antworten: 5
    Letzter Beitrag: 06.02.2009, 23:25
  3. Suchen Fachkräfte in Roboterprog. + SPS Prog.
    Von SPS-Projekt im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 17.10.2008, 14:56
  4. Bllinkmerker im F-Prog
    Von mitchih im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 12.05.2008, 16:18
  5. Welches Prog für s/t-diagramm?
    Von Flo-1- im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 14.12.2007, 14:09

Lesezeichen

Berechtigungen

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