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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Anfängerfrage "clear" Array

  1. #11
    max_sho ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.12.2010
    Beiträge
    29
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    es geht weiter mit den Arrays

    wie kann ich denn in SCL feststellen ob mindestens ein Mal in myArray[0..20] of bool ein true vorhanden ist?


    Gibt es eine Möglichkeit mit myAT_Sicht AT myArray : INT;

    Oder läuft es auf eine FOR mit Merker setzen, falls einmal oder mehrmal die 1 im array steht(würde genügen, aber geht`s mit AT_Sicht?)

    Danke

    max (neu dabei in SCL)
    Zitieren Zitieren bool Array in SCL auslesen und auf 1 prüfen  

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    @Maxi:
    was wolltest du mir mit deiner Code-Korrektur sagen ? Aus meiner Sicht war mein Beispiel in Ordnung ...

    @Max_Sho:
    Das was du vorhast ginge genauso - die AT-Sicht hast du ja nun. Du brauchst jetzt nur die Variable der AT-Sicht auf <>0 zu überprüfen ...

    Gruß
    Larry

  3. #13
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    also ...
    Code:
    if (myAT_Sicht <> 0) then ...

  4. #14
    max_sho ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.12.2010
    Beiträge
    29
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Larry,

    mit myAT_Sicht AT myArray : DINT ; schreibt mir der Compiler " Der Typ der Sicht ist nicht mit dem Typ der Variablen verträglich"
    Ich habe dann einfach das Double weggelassen. Da ich die "myAT_Sicht..." erst heute von dir gelernt habe (Danke!), kann ich die Meldung noch nicht so richtig einschätzen.
    Benötige ich den großen Zahlenraum?

    Bei einem zweiten Array, dass ich gerade angelegt habe, gibt es die gleiche Meldung bei DINT und INT, BOOL geht.

    Das bei INT geht:
    myArray [0..17] of BOOL;
    my_Sicht AT myArray :INT;



    Das bei bool geht:
    myArray [0..4] of bool;
    my_Sicht AT myArray : BOOL;

    Was hat es denn damit auf sich?

    Probier jetzt gleich noch das Sicht <> o prüfen, Danke!

    Grüße max

  5. #15
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    leider habe ich dir den Code gepostet ohne ihn gegenzuchecken - deshalb der Fehler darin - sorry.

    Du kannst mit AT eine komplett andere Sicht auf ein gleich großes oder größeres Objekt erstellen.
    Mein Fehler war, dass das Array [0..17] of Bool zwar den Platz von einem DWORD (z.B.) benötigt - das ist dem Compiler allerdings scheinbar nicht klar/egal. Du könntest also das Array einfach auf [0..31] vergrößern damit der Compiler nicht mehr meckert. Du hast dadurch dann zwar ein zu groß deklariertes Array gegenüber dem, was du brauchst - du kannst dann aber den Befehl so einsetzen.

    Das gilt natürlich für jeden der beiden Vorschläge ...

    Die AT-Sicht kannst du dir so vorstellen, wie die Speicherverwaltung in Step7 schlechthin.
    Du kannst in einem DB ein DINT an Stelle 0 anlegen, deshalb kannst du dann aber trotzdem jedes Bits(bei absoluter Adressierung) noch einzeln adressieren und natürlich jedes Byte und Word etc.
    AT ist/erzeugt eine andere Form der Betrachtung eines festgelegten Speicherbereichs. Das geht dann natürlich auch für komplexe Strukturen oder ARRAY's oder oder ...
    Entscheidend ist, was ich oben schon erwähnte :
    ... mit AT eine komplett andere Sicht auf ein gleich großes oder größeres Objekt erstellen.
    Gruß
    Larry

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

    max_sho (14.12.2010)

  7. #16
    max_sho ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.12.2010
    Beiträge
    29
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ja super, das klappt! gut erklärt und toller Trick mit dem größeren
    Array[0..31]

    Grüße Max

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 16.03.2012, 18:20
  2. "Index Pulse", "Home Switch" und "Position Limit Switch"
    Von senmeis im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 07.03.2011, 11:21
  3. Antworten: 2
    Letzter Beitrag: 14.12.2007, 15:09
  4. Wago "Anfängerfrage"
    Von Peru im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 06.11.2007, 20:28
  5. Antworten: 4
    Letzter Beitrag: 29.11.2006, 08:59

Stichworte

Lesezeichen

Berechtigungen

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