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

Ergebnis 1 bis 4 von 4

Thema: Mit Arrays arbeiten (Werte Speichern etc.) - und "Toggle"-Schalter

  1. #1
    Registriert seit
    28.10.2011
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich hätte da mal ein - zwei Verständnissfragen zur Programmierung mit Codesys.

    1. Versuche ich gerade mit Arrays zu arbeiten und habe versucht die Folgendermaßen zu definieren:


    (*Zuweisung Array BYTE*)
    fluegel_var_byte: ARRAY [1..2,1..2] OF BYTE;
    (*Fluegel 1*)
    fluegel_var_byte[1,1] :BYTE:= 12;
    fluegel_var_byte[1,2] :BYTE:= 16;
    (*Fluegel 2*)
    fluegel_var_byte[2,1] :BYTE:= AT %IB1;
    fluegel_var_byte[2,2] :BYTE:= AT %IB6;

    Das geht so aber scheinbar nicht. Wie ich anfangswerte initialisieren kann ist mir prinzipiell schon klar, aber wie stelle ich das an wenn ich einen Wert nachträglich in den Array schreiben will?

    Wie kann ich ein Byte aus einem Eingang, wie in obigem Beispiel in den Array schreiben?

    Und zweitens würde ich gerne den Array von [1..i,1..5] definieren. Dabei habe ich i: int:=5; definiert, funktioniert allerdings leider auch nicht ...




    Zuletzt noch eine andere Sache: Und zwar würde ich gerne 3 Schalter einbauen um zwischen 3 verschiedenen Betriebsarten umzustellen. Wenn ich Modus 1= true aktiviere, sollen die anderen beiden auf False zurückspringen, bei Modus 2= true dementsprechend Modus 1 und 3 auf False. Da ich Anfänger bin und Momentan mit FUP programmiere, hab ich das nur mit einer Ellenlangen Schaltung gelöst bekommen. Gibts da eine einfachere Lösung?

    Zu diesem Thema auch gleich noch eine Frage wegen der Visualisierung: Ist es möglich ein Feld so zu belegen, dass es bei Modus 1=true den Text "Modus 1" ausgibt, bei Modus 2= true den Text "Modus 2" ausgibt und bei Modus 3= true den Text "Modus 3" ausgibt?



    Jeder fängt mal klein an, vielen Dank schonmal für die Mühe!

    Vincent
    Geändert von bAsKeT (25.01.2012 um 12:29 Uhr)
    Zitieren Zitieren Mit Arrays arbeiten (Werte Speichern etc.) - und "Toggle"-Schalter  

  2. #2
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Zitat Zitat von bAsKeT Beitrag anzeigen
    Das geht so aber scheinbar nicht. Wie ich anfangswerte initialisieren kann ist mir prinzipiell schon klar, aber wie stelle ich das an wenn ich einen Wert nachträglich in den Array schreiben will?
    Also direkte Speicher zuweisen darfst du meines Wissens nicht, das macht Codesys schon für dich

    Code:
    fluegel_var_byte[1,1] := Deine Variable vom Typ BYTE;
    So kannst du jederzeit Daten in ein Feld deines Arrays schreiben (und auch lesen)

    Zitat Zitat von bAsKeT Beitrag anzeigen
    Und zweitens würde ich gerne den Array von [1..i,1..5] definieren. Dabei habe ich i: int:=5; definiert, funktioniert allerdings leider auch nicht ...
    CoDeSys kann den Speicher nicht dynamisch ändern. d.h. du kannst die Grösse des Arrays nur durch erneutes kompilieren+einloggen ändern! (Nicht zur Laufzeit)
    Du kannst aber die INT-Variable der Array-Grösse als VAR_CONSTANT definieren und so beispielsweise mehrere Arrays gleichzeitig verändern...

  3. #3
    bAsKeT ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.10.2011
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank für die schnelle Antwort!

    Hab jetzt mal ein bischen mit ST rumgespielt und das klappt eigentlich so weit auch ganz gut.

    Allerdings hab ich immernoch ein Probelm mit den "dynamischen" Ausgängen.

    Kann ich irgendwie Adressen in einem Array Speichern?

    Ich würde gerne den Ausgang[i=1,1] bis Ausgang [i=5,2] mit Adressen für Ausgänge belegen, die dann für ein bestimmtes i automatisch "belegt" werden. Wie funktioniert denn sowas?

  4. #4
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn du für jede Adresse eine Variable deklarierst und diese dann, je nachdem wo du sie haben möchtest, ins Array legst?
    A programmer is just a tool which converts caffeine into code.

Ähnliche Themen

  1. Antworten: 28
    Letzter Beitrag: 25.06.2015, 14:52
  2. Probleme mit 12/24V "high" und 0V als "low" Auswertung
    Von PraktikantMarkus im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 14.12.2011, 01:37
  3. Arrays mit "IndustrialDataBridge"
    Von logo78 im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 07.04.2010, 21:01
  4. Antworten: 8
    Letzter Beitrag: 17.03.2009, 22:18
  5. Siemens LOGO "Schalter" und Meldetext
    Von thommy im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 16.07.2008, 11:02

Lesezeichen

Berechtigungen

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