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

Ergebnis 1 bis 7 von 7

Thema: Ein Array mit 1 bzw. 0 überschreiben..

  1. #1
    Registriert seit
    25.02.2010
    Beiträge
    93
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe eine Frage, vielleicht läßt es sich ganz schnell lösen, aber wie das immer so ist...man sieht den Wald.....etc pp.

    Ich würde gerne ein Array mit 50 Boolschen Var. mit einsen oder nullen per Sel. Baustein überschreiben...
    Was muss ich dafür machen ?

    Habe mal Probiert, dem Array vorher einen Status zu geben, aber da geht nur die erste von 50....

    Ich danke für eure Hilfe...

    Gruß
    Step7Neuling
    Zitieren Zitieren Ein Array mit 1 bzw. 0 überschreiben..  

  2. #2
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    989
    Danke
    114
    Erhielt 125 Danke für 100 Beiträge

    Standard

    Hi und moin,

    Also du hast versucht, das Array zu initialisieren meinst du mit "Status zu geben", oder?
    Dazu ist die Codesys Hilfe ganz hilfreich und übersichtlich, wenn du nach Array suchst.

    Und dann hoffe ich mal, dass du nicht eine 1 oder 0 an dein Array überträgst, da dies eingentlich ein TRUE oder FALSE sein muss.

    Wenn du es als ARRAY [1..50] OF INT; deklarierst kannst du natürlich auch 1er und 0er nehmen.
    Ansonsten als ARRAY [1..50] OF BOOL; und dann mit TRUEern und FALSEen

    Wenn du dann Werte zuweist, einfach nur das entsprechende Array oder einen ganzen Bereich auswählen und die Werte zuweisen:

    arMeinArray [1] := TRUE;
    arMeinArray [3..5]:=FALSE, TRUE, FALSE;

    Grüße,
    Flo

  3. #3
    Registriert seit
    25.02.2010
    Beiträge
    93
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ja selbstverständlich mit TRUE bzw. FALSE...
    aber muss ich jetzt 50 mal TRUE bzw. FALSE schreiben...


    Gibt es da nicht eine einfachere Lösung....wenn es ein INT wäre...habe ich gelesen, das man es auch mit :=1,3(40) machen könnte, geht das nicht auch bei BOOL? bzw. warum geht das nicht bei BOOL?

  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

    Variante 1 - eine Schleife.
    Variante 2 - Du legst die gleiche Struktur noch einmal in eine Variable und belegst diese per Default mit False oder True (wie gewünscht). Zum Beschreiben kopierst du diese "Leervariable" auf deine Arbeitsvariable.
    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
    25.02.2010
    Beiträge
    93
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ja das hatte ich auch schon überlegt...also Var. 2...
    Aber ich hab eigentlich keine Struktur, entweder alle 1 oder 0....

    und sonst gibt es keine möglichkeit?

    blöde Frage, wie mache ich eine Schleife mit Zähler im FUP?

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Variante 2 meint:
    Du legst Dir noch ein zweites identisches Array an, in dem alle Bits mit FALSE initialisiert sind.
    Wenn Du zur Programmlaufzeit im ersten Array alle Bits löschen willst, dann kopiere Array2 auf Array1. Das sollte auch in FUP gehen, wenn es für Deine CPU einen Baustein gibt, der Arrays kopieren kann.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    Registriert seit
    24.04.2008
    Ort
    Lübeck
    Beiträge
    324
    Danke
    8
    Erhielt 63 Danke für 62 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Bei einem ARRAY[x..y] OF BOOL ist es doch viel einfacher:

    Code:
    VAR
        arrBools : ARRAY[x..y] OF BOOL;
    END_VAR
    
    MEMSET(ADR(arrBools), 0, SIZEOF(arrBools)); // setzte alle einträge auf false.
    MEMSET(ADR(arrBools), 1, SIZEOF(arrBools)); // setzte alle einträge auf true.

Ähnliche Themen

  1. Aus einem ARRAY ausgewählte Werte in ein anderes ARRAY kopieren
    Von lacosta19 im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 06.08.2014, 15:42
  2. mit einem Zeiger auf ein komplettes ARRAY zeigen???
    Von fk- princess im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 25.09.2012, 11:49
  3. Sicherheitsgerichtete Ein/Aus-Schaltung bzw. Umschaltung mit mehreren Tastern
    Von Amaryl im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 0
    Letzter Beitrag: 18.02.2010, 16:29
  4. Sicherheitsgerichtete Ein/Aus-Schaltung bzw. Umschaltung mit mehreren Tastern
    Von Amaryl im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 0
    Letzter Beitrag: 18.02.2010, 14:18
  5. Antworten: 5
    Letzter Beitrag: 08.12.2008, 09:16

Lesezeichen

Berechtigungen

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