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

Ergebnis 1 bis 8 von 8

Thema: Array-Name dynamsich

  1. #1
    Registriert seit
    26.11.2008
    Beiträge
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin, Moin.

    Ich bin derzeit auf der Suche der Lösung folgenden Problems:

    Ich habe in SCL eine INPUT-Variable, die mir eine sog. Steinnr liefert. Außerdem habe ich Arrays mit dem Namen STEIN_1, STEIN_2,...

    Nun möchte ich in einer Schleife das Array ansprechen, das mir in der Übergabevariable gleifert wurde, ich brauche also eine Verknüpfung von "Array_" & STEIN[i]

    Gibt es da was, oder muss ich mir den ganzen Namen übergeben lassen?

    Code:
    VAR_INPUT
        // statische Variablen
        Messwert_IN    : WORD;
        STEIN : INT;
    END_VAR
    
    VAR
        STEIN_1: ARRAY[1..50] OF INT;
        STEIN_2: ARRAY[1..50] OF INT;
        STEIN_3: ARRAY[1..50] OF INT;
        STEIN_4: ARRAY[1..50] OF INT;
        STEIN_5: ARRAY[1..50] OF INT;
    END_VAR
    Zitieren Zitieren Array-Name dynamsich  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.261
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Das geht wohl so nicht. Wie wäre es mit IF-Abfragen oder Case? Anhand der Steinnummer dann das richtige Array bearbeiten. Wenn du es öfter benötigst, dann umkopieren in ein internes Arbeitsarray und mit diesem rechnen.

    PS: Was meinst du mit "ganzen Namen übergeben"?
    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. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    hulla66 (05.12.2008)

  4. #3
    hulla66 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.11.2008
    Beiträge
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke. Habs jetzt anders gelöst. Aber da ist mir noch eine andere Frage gekommen: Gibt es eine Art sleep Befehl oder ähnliches in SCL? Ich will letztlich mit meinem FB alle 100 ms einen Messwert aufnehmen.

    Gruß

  5. #4
    Registriert seit
    12.05.2008
    Beiträge
    23
    Danke
    1
    Erhielt 5 Danke für 4 Beiträge

    Standard

    FB im OB13 alle 100ms aufrufen

  6. #5
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von 8051 Beitrag anzeigen
    FB im OB13 alle 100ms aufrufen
    oder den CPU-taktmerker Mx.0 benutzen ... für die meisten anwendungen ist das schon ausreichend
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.261
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Zitat Zitat von hulla66 Beitrag anzeigen
    Danke. Habs jetzt anders gelöst. Aber da ist mir noch eine andere Frage gekommen: Gibt es eine Art sleep Befehl oder ähnliches in SCL? Ich will letztlich mit meinem FB alle 100 ms einen Messwert aufnehmen.

    Gruß
    Nein, das geht in der SPS so nicht, das Programm läuft ja immer. Entweder du bildest dir einen 100ms-Flanken-Impuls und nimmst jedesmal, wenn der Impuls True ist einen Meßwert auf oder du packst deinen FC in einen Zeit-OB, den du so parametrierst, daß er alle 100ms aufgerufen wird. Du kannst natürlich auch den kompletten FC umspringen, wenn der Zeitimpuls False ist, aber einen Input am FC fände ich schöner.

    PS: In der Hardwarekonfig der SPS kann man ein Byte angeben, das dann je Bit unterschiedliche Impulse ausgibt! Allerdings mußt du aus dem Signal noch eine Flanke machen.
    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

  8. #7
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    276
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    Am elegantesten kannst du dieses Problem mit einem 2-dimensionalen Array lösen.

    etwa so ähnlich (weiß jetzt nicht ob es ein Semikolon sein muß bei der ARRAY-Deklaration

    Code:
    VAR_INPUT
        // statische Variablen
        Messwert_IN    : WORD;
        STEIN_NR : INT;
    END_VAR
     
    VAR
        STEIN: ARRAY[1..5, 1..50] OF INT;
    END_VAR
     
    BEGIN
     
    STEIN[STEIN_NR, 33] := Messwert_IN ;
    ...
    Zitat Zitat von hulla66 Beitrag anzeigen
    Moin, Moin.

    Ich bin derzeit auf der Suche der Lösung folgenden Problems:

    Ich habe in SCL eine INPUT-Variable, die mir eine sog. Steinnr liefert. Außerdem habe ich Arrays mit dem Namen STEIN_1, STEIN_2,...

    Nun möchte ich in einer Schleife das Array ansprechen, das mir in der Übergabevariable gleifert wurde, ich brauche also eine Verknüpfung von "Array_" & STEIN[i]

    Gibt es da was, oder muss ich mir den ganzen Namen übergeben lassen?

    Code:
    VAR_INPUT
        // statische Variablen
        Messwert_IN    : WORD;
        STEIN : INT;
    END_VAR
     
    VAR
        STEIN_1: ARRAY[1..50] OF INT;
        STEIN_2: ARRAY[1..50] OF INT;
        STEIN_3: ARRAY[1..50] OF INT;
        STEIN_4: ARRAY[1..50] OF INT;
        STEIN_5: ARRAY[1..50] OF INT;
    END_VAR

  9. #8
    hulla66 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.11.2008
    Beiträge
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen Sarek.

    Genau das habe ich nach dem Post auch getan und was soll ich sagen? So ein 2D Array ist gar nicht sooo schlecht. Danke für eure Hilfen!

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. Array in Nov Ram
    Von COOLT im Forum CODESYS und IEC61131
    Antworten: 41
    Letzter Beitrag: 22.09.2009, 20:19
  3. In: Array ???
    Von husox81 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 15.12.2008, 07:07
  4. Array?????
    Von Adenauer im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 20.04.2006, 10:32
  5. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12

Lesezeichen

Berechtigungen

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