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

Ergebnis 1 bis 9 von 9

Thema: Ausgänge über ANY Pointer setzen

  1. #1
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich probiere gerade Ausgänge über einen ANY Pointer zu setzen.
    Am Zyklusende steht das richtige im Pointer drin, aber komischerweise ist es am Anfang wieder weg:

    Code:
    //P#A0.0 WORD 1 als Parameter übergeben
          L     P##P_Any
          LAR1  
    
    //nicht relevante Bits ausmaskieren (hier 82hex für Ausgänge)
          L     D [AR1,P#6.0]
          L     DW#16#FFFFFF
          UD    
          T     #T_DAT
    
          U     M      0.0
          SPBN  RES
    
          L     256
          T     #T_DAT
    
          SPA   END
    //alles auf null setzen
    RES:  L     0
          T     #T_DAT
    END:  NOP   0
    
    //ins AR zurückschreiben + 82hex anfügen
          L     #T_DAT
          L     DW#16#82000000
          OD    
          T     D [AR1,P#6.0]
    kann mier jemand erklären warum????

    Grüße Pico
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Pico1184 (01.10.2012 um 16:32 Uhr)
    Zitieren Zitieren Ausgänge über ANY Pointer setzen  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Was genau schreibst du den an den INOUT vom Typ Any? Das, was du da dranschreibst, ist ja fest und das ist das, was im Any steht. Du kannst es im FC natürlich manipulieren, aber bei jedem Zyklus, wird doch wieder der ursprüngliche Any eingelesen, so würde ich das mal vermuten. Variabel im Sinne von INOUT ist ja eher das, worauf der Any zeigt, also der A0.0 bzw. das AB,AW,AD0.
    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
    Pico1184 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Was genau schreibst du den an den INOUT vom Typ Any?
    P#A0.0 WORD 1

    Also das AW0.......


    Das, was du da dranschreibst, ist ja fest und das ist das, was im Any steht. Du kannst es im FC natürlich manipulieren, aber bei jedem Zyklus, wird doch wieder der ursprüngliche Any eingelesen
    Ich bin davon ausgegangen, dass dies was im FC manipuliert wird auch auf die Ausgänge übernommen wird, da ich dies ja wieder in das AR1 zurückschreibe!

    Code:
    //ins AR zurückschreiben + 82hex anfügen
          L     #T_DAT
          L     DW#16#82000000
          OD    
          T     D [AR1,P#6.0]
    Daher dachte ich auch das die Ausgänge entsprechend gesetzt werden?!?!

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ich kann nicht erkennen, dass du irgendwo einen Ausgang setzt oder ihn beschreibst, du veränderst lediglich den Any, also den Ort, wo der Zeiger hinweist. Darauf zu schreiben wäre noch zu erledigen, aber dafür braucht es im FC eigentlich keinen Any mehr. Mir ist der Sinn deiner Aktion nicht ganz klar. Wenn du AWx beschreiben willst, dann übergib dem FC eine Int-Variable mit x, bau einen Zeiger auf AWx und schreib deinen Wert hinein. Noch einfach ist evtl. den dafür vorhandenen Befehlsvorrat zu nutzen und einfach per AR 1 die Byteadresse festzulegen und dann das AW zu beschreiben.

    Code:
    L 10
    SLD 3
    LAR 1
    L 5
    T     AW [AR1,P#0.0]
    Sollte dann eine 5 in AW 10 schreiben.
    Geändert von Ralle (02.10.2012 um 09:51 Uhr)
    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

  5. #5
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    Als ehem. Instandhalter möchte ich darauf hinweisen, daß das indirekte Beschreiben von Ausgängen die Fehlersuche erheblich einschränkt. Indirekt adressierte Operanden tauchen nämlich nicht mehr in der Referenzliste auf.
    Also bitte immer so proggen, daß sich auch dritte schnell zurechtfinden. (und nicht so proggen, daß es "toll" aussieht)

    Gruß Approx
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

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

    Tigerente1974 (02.10.2012)

  7. #6
    Pico1184 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Okay soweit verstanden, ich habe im FC1 nur den
    bereichsübergreifenden Zeiger verändert und nicht einen Ausgang gesetzt.

    Daher ist am Zyklusanfang auch wieder der Wert welchen ich an den ANY Parameter angehängt habe aktuell.

    Also bitte immer so proggen, daß sich auch dritte schnell zurechtfinden. (und nicht so proggen, daß es "toll" aussieht)
    Kein Angst ich wollte nur etwas ausprobieren. Wollte eigentlich nur son ne Art Lauflicht auf der Ausgangskarte der SPS erscheinen lassen.

    von A0.0 bis A1.7 einen LED nach der anderen und dann alle blinken lassen und dies dann wieder rückwärts.

    Dachte mir dass ich dies über eine Schleife lösen könnte mit Hilfe des ANY Pointers.

    Grüße Pico

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    also wenn es dir "nur" um das grundsätzliche Verstehen der Handhabung des ANY-Pointers geht dann ist das sicherlich OK.
    Wenn es dir aber um die geschilderte Funktion geht dann gäbe es da m.E. noch so 2 bis 3 Alternativen, wie man das Gleiche etwas leichter verdaulich hinbekommen könnte ... (Schiebe-Befehle z.B.)

    Gruß
    Larry

  9. #8
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    Zitat Zitat von Pico1184 Beitrag anzeigen
    Kein Angst ich wollte nur etwas ausprobieren. Wollte eigentlich nur son ne Art Lauflicht auf der Ausgangskarte der SPS erscheinen lassen.
    Dann ist es völlig in Ordnung.
    Kleine Anregung für Dein Lauflicht gefällig? LINK

    Gruß Approx
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  10. #9
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Approx Beitrag anzeigen
    Als ehem. Instandhalter möchte ich darauf hinweisen, daß das indirekte Beschreiben von Ausgängen die Fehlersuche erheblich einschränkt. Indirekt adressierte Operanden tauchen nämlich nicht mehr in der Referenzliste auf.
    Also bitte immer so proggen, daß sich auch dritte schnell zurechtfinden. (und nicht so proggen, daß es "toll" aussieht)

    Gruß Approx
    Ein lieber Kunde von uns hat es in den Ausschreibungen immer so definiert:
    "Speicherplatz ist ausreichend vorhanden, auf trickreiche Programmierung wird kein Wert gelegt."

    XLOL

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

    Approx (02.10.2012)

Ähnliche Themen

  1. Step5 Ausgänge , Merker setzen
    Von rheumakay im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.09.2010, 08:52
  2. Ausgänge in BCD, Binärcode-form setzen
    Von iselber im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.08.2009, 12:48
  3. einzelne digitale Ausgänge setzen
    Von Tiger30 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 24.02.2009, 16:13
  4. Ausgänge über Hilsmerker setzen
    Von Mores im Forum Programmierstrategien
    Antworten: 40
    Letzter Beitrag: 26.01.2009, 16:29
  5. Daten auslesen und Ausgänge setzen
    Von Greenhorn im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 26.10.2007, 09:03

Lesezeichen

Berechtigungen

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