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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Anfängerfrage über array

  1. #1
    Registriert seit
    02.08.2006
    Beiträge
    150
    Danke
    47
    Erhielt 5 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe im FC2 2 temp-Variablen angelegt.
    Die erste:
    Hilfsmerker_array[1..40] of BOOL
    Die zweite:
    loop INT

    Nun will ich darauf in AWL zugreifen
    Ich habe es folgendermaßen gemacht:

    FP #Hilfsmerker_array[#loop]

    Das geht aber nicht:
    Syntaxfehler.

    Was mache ich falsch ?
    Muss loop eine globale Variable sein ?

    Danke für euere Hilfe
    noeppkes
    ...
    Zitieren Zitieren Anfängerfrage über array  

  2. #2
    Registriert seit
    18.09.2007
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nein.
    Siemens erlaubt keine Variablen als Indexzeiger.
    Also „Loop“ kann nur eine Konstante sein.
    Schleifbearbeitungen bei Siemens sehen darum immer so kompliziert aus.

  3. #3
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard

    Um auf ein einzelnes Bit in Deinem Array zuzugreifen müsstest Du z.B. schreiben:

    FP #Hilfsmerker_array[2]

    Wobei allerdings temporäre Variablen nicht zur Flankenauswertung geeignet sind.

    Was Du aber mit Deiner Int-Var #loop in Zusammenhang mit einer positiven Flankenauswertung anstellen willst raff´ich nicht.
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    @OHGN

    Setzen 5 , Thema verfehlt.

    @noeppkes

    Hier mal ein Code zum testen:

    Code:
    //Welches Bit soll indirekt gelesen werden
          L     38                          //das Bit 38 im Array soll abgefragt werden
          L     1                           //nur zur Veranschaulichung
          -I                                //da das Array bei 1 beginnt, der Pointer aber bei 0
          T     #MyInt
    
    //erstmal das ganze Array auf Null
          L     P##BitArray
          LAR1  
          L     0
          T     LW [AR1,P#0.0]
          T     LW [AR1,P#2.0]
          T     LW [AR1,P#4.0]
    
    //Ein Bit zum Testen setzen
          SET   
          S     #BitArray[38]               //Das Bit 38 wird auf 1 gesetzt
    
    //Ein Bit indirekt auslesen
          L     P##BitArray                 //Pointer auf Adresse
          L     #MyInt                      //Offset 
          +D                                //addieren
          LAR1                              //Ins Adressregister 1
    
          U     L [AR1,P#0.0]
          =     M      0.0                  //der Merker geht auf 1, wenn das Bit 1 ist
    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
    04.04.2007
    Beiträge
    16
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Daumen hoch

    Ich sehe schon... es wurde schon fleißig geantwortet.

    Loop sollte DWORD sein. Achte darauf, dass der Temp Bereich nach verlassen des Bausteins wieder freigegeben wird.


    Code:
          LAR1  P##Hilfsmerker_arry
          L     #loop
          +AR1  
    
          U ...
          FP    L [AR1,P#0.0]
          ...
    
          L     #loop
          L     P#0.1
          +D    
          T     #loop

  6. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von Rumo Beitrag anzeigen
    Achte darauf, dass der Temp Bereich nach verlassen des Bausteins wieder freigegeben wird.
    Den Code versteh ich, aber was meinst du damit?
    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

  7. #7
    Registriert seit
    04.04.2007
    Beiträge
    16
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Wenn andere Bausteine ebenfalls den TEMP Bereich nutzen, so wird dieser mit den neuen Daten überschrieben. Die Daten sind also nur lokal aktuell. Wenn du den Baustein vor Ende der Schleife verlässt, musst du die Daten als "Globale" Daten festlegen z.B. Merker oder Datenbaustein.

    Hatte mich wohl nicht soooo deutlich ausgedrückt.
    Geändert von Rumo (19.09.2007 um 14:45 Uhr)

  8. #8
    noeppkes ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.08.2006
    Beiträge
    150
    Danke
    47
    Erhielt 5 Danke für 2 Beiträge

    Standard

    Hallo,

    es wurde die Frage gestellt, warum ich FP und Hilfsmerker nehmen.
    Ich arbeite mit mehreren Tastern.
    Um nicht jedesmal im Programm die Flanke (positiv sowie auch negativ)abfragen zum müssen, wollte ich das über die hilfsmerker machen.
    D.h. der jeweilige Merker ist für einen Takt auf High.
    Das lässt sich meiner Meinung nach im Programm sehr gut auswerten.

    Des weiteren ist der Programmteil für mehrere Taster ( 2 Taster a 10 Loop's) identisch, so dass ich das ganze mit einer Loop 1 .. 10 versehen wollte.
    Die Hilfsmerker über ein Array, und das Resultat auch über ein Array.

    Ich hoffe es wird so funktionieren.

    Bin für weitere Informationen sehr dankbar.

    Eigentlich ist da ganze mal wieder eine so oft diskutierte Rolladensteuerung.
    Taste < 500 msec. gedrückt: Rolladen fahren entsprechend dem Taster (AUF- oder AB) in die Richtung auf Endanschlag.
    Taster > 500 msec. Gedrückt: Manuell. Rolladen fährt nur solange wie auch der Taster gedrückt ist.

    Ich habe erst einmal 10 Rolladen im Untergeschoss. d.h. 20 Taster für auf und Ab.
    Es gibt aber auch noch Sammeltaster (an der Haustüre, alle runter bitte).
    Somit muss ich die Funktion, welche mir die Logik für die einzelnen Rolladen steuert, von mehreren Stellen aus steueren können.
    Somit der Gedanke mit den Hilfsmerkern.
    Diese kann ich ja auch von einer anderen Seite aus setzen.
    Somit läuft der Rolladen wieder.

    Bei Regen z.B. sollen auch alle zumaschen (per IR-Fernbedienung kann ich sie wieder öffen).

    Ihr seht , das ganze ist sehr aufwendig.

    Dies sind nur ein paar Gedanken, die ich habe.

    noeppkes ...
    Zitieren Zitieren Zur Info  

  9. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Ja klar, deswegen heißt das ja Temp , aber das hat nichts mit freigeben zu tun.
    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

  10. #10
    noeppkes ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.08.2006
    Beiträge
    150
    Danke
    47
    Erhielt 5 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Rumo,

    warum und vor allen Dingen WIE gebe ich den Temp-Bereich bei verlassen Funktion wieder frei ?

    noeppkes ...
    Zitieren Zitieren Temp-Bereich freigeben ?  

Ähnliche Themen

  1. Array Element über Variable auslesen.
    Von FriedelM im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 15.12.2010, 09:03
  2. Anfängerfrage "clear" Array
    Von max_sho im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 14.12.2010, 18:02
  3. Anfängerfrage über Textmeldungen.... Hilfe
    Von Pusher im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 16.01.2009, 09:39
  4. biete: 2D-Array über Zeile / Spalte ansprechen
    Von volker im Forum Werbung und Produktneuheiten
    Antworten: 0
    Letzter Beitrag: 30.08.2005, 17:32
  5. Grundlagen über Array
    Von Gerold im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 27.06.2005, 01:31

Lesezeichen

Berechtigungen

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