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

Results 1 to 8 of 8

Thread: Array-Name dynamsich

  1. #1
    Join Date
    26.11.2008
    Posts
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Default


    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
    Reply With Quote Reply With Quote Array-Name dynamsich  

  2. #2
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,806
    Danke
    746
    Erhielt 3,127 Danke für 2,231 Beiträge

    Default

    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 is offline Neuer Benutzer
    Themenstarter
    Join Date
    26.11.2008
    Posts
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Default

    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
    Join Date
    12.05.2008
    Posts
    23
    Danke
    1
    Erhielt 5 Danke für 4 Beiträge

    Default

    FB im OB13 alle 100ms aufrufen

  6. #5
    Join Date
    08.08.2007
    Location
    Dresden
    Posts
    9,882
    Danke
    1,064
    Erhielt 2,056 Danke für 1,632 Beiträge

    Default

    Quote Originally Posted by 8051 View Post
    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
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,806
    Danke
    746
    Erhielt 3,127 Danke für 2,231 Beiträge

    Default

    Quote Originally Posted by hulla66 View Post
    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
    Join Date
    05.06.2006
    Location
    PLZ 97xxx
    Posts
    297
    Danke
    37
    Erhielt 46 Danke für 38 Beiträge

    Default

    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 ;
    ...
    Quote Originally Posted by hulla66 View Post
    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 is offline Neuer Benutzer
    Themenstarter
    Join Date
    26.11.2008
    Posts
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Default


    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!

Similar Threads

  1. [TC2] ARRAY OF BOOL in ARRAY OF INT schieben
    By Stefan4863 in forum CODESYS und IEC61131
    Replies: 5
    Last Post: 06.02.2018, 16:13
  2. Replies: 18
    Last Post: 21.12.2016, 17:03
  3. Eindimensionales Array Beschreiben (Codesys 2.3, ARRAY OF BOOL)
    By KingHelmer in forum CODESYS und IEC61131
    Replies: 11
    Last Post: 21.11.2016, 13:14
  4. TIA Array of INT und Array of Bool == Summe bilden
    By zloyduh in forum Simatic
    Replies: 1
    Last Post: 11.11.2016, 17:35
  5. Aus einem ARRAY ausgewählte Werte in ein anderes ARRAY kopieren
    By lacosta19 in forum CODESYS und IEC61131
    Replies: 7
    Last Post: 06.08.2014, 15:42

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •