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

Ergebnis 1 bis 7 von 7

Thema: Array? String? helft mir bitte!!!

  1. #1
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen!

    Ich bin derzeit dabei eine Visu zu erstellen, bei der die Lichtintensität von 3 verschiedenen Farben dargestellt wird.
    Dazu würde ich den folgenden Code verwenden, um die Analogwerte an den 3 Ausgängen auf 40 Schritte einzuteilen:

    Code:
    IF %QW0 >= ((32761/40)*2) THEN     
    RMR2 := TRUE;                                        (*RMR2 = "RückMeldungRot2*)
    ELSE RMR2 := FALSE;
    END_IF;
    Ich denke, die Logik dürfte klar sein...

    Aber wie kann ich mir nun die Arbeit sparen, dieses 120 Mal (40x pro Farbe) aufzuschreiben.
    Gibt es hier irgendwas? Ich hatte etwas von Arrays oder ähnlichem gehört, könnt ihr mir ein wenig weiterhelfen?

    Danke im Voraus und Grüße,

    Florian
    Zitieren Zitieren Array? String? helft mir bitte!!!  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Ganz ehrlich, ich verstehe nicht wirklich was du machen willst.
    Soll die Lichtintensität von jedem Farbkanal als Zahlenwert dargestellt werden? Oder willst du wirklich 40 Meldebits je Farbe setzen und die dann mit Textmeldungen in der Visu verknüpfen?

    Warum gibtst du die Intensität nicht einfach als prozentualen Wert an? (Prozent := (WORD_TO_REAL(%QW0) / 32767) * 100; ) -> 0...100%

    PS:
    Tue dir selber einen Gefallen und benenne alle Variablen die du verwendest. Wenn du später in dein Programm schaust wirst du mit %QW0 nicht mehr viel anfangen können ......

  3. #3
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    Hi,

    also ich erkläre es etwas genauer:

    ich habe 3 Lichtfarben (ROT, GRÜN, BLAU) welche gesteuert werden.
    Nun will ich in der CODESYS Visu deren Intensität über einen Balken anzeigen lassen, der aus 40 kleinen "Bälkchen besteht.
    Also praktisch so: [][][][][][][][][][][][]

    Der erste Balken soll ab 1/40 der Lichtstärke auf Farbe Rot (bzw. grün oder blau) wechseln. Der 2. soll dann ab 2/40 der Lichtstärke mit angehen.

    Man kann es sich vorstellen wie ein Ladebalken bei Windows....
    Das funktioniert so auch, allerdings müsste ich nun für jede Farbe 40 eigene Variablen deklarieren und 40 IF ELSE Codes schreiben.

    Das mit dem %QW0 schreibe ich hier nur so. Im Programm heisst die Variable dafür AWR. (*AnalogWertRot*)
    Das war nur damit ihr seht, dass es ein Analogausgang ist

    Grüße, Florian

  4. #4
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hallo,

    Den Wert analog zur Visu schicken. ( 0-100% oder 0-32767()

    Die einzelnen Balken über eine Wertüberschreitung einblenden.
    Anzeige/Farbwechsel Kästchen 1= Wert > 2,5
    Anzeige/Farbwechsel Kästchen 2= Wert > 5
    Anzeige/Farbwechsel Kästchen 3= Wert > 7,5
    Anzeige/Farbwechsel Kästchen 4= Wert > 10
    ...

    Ich würde aber einen analogen Balken/Skala auswählen, Skalieren 0-100% und fertig

  5. #5
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    Hallo Verpolt,

    Danke schomal!

    wie kann ich die Skalierung einstellen?
    Bzw. was kommt in das frei Feld bei "Skalierung"?

    Einfach nur die Variable des Analogwertes? Wie lege ich dann die Grenze von 32761 fest?

    Grüße,

    Florian!

  6. #6
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Du legst dir eine analoge Balkenanzeige ins Bild

    maximum des Balkens sollte maximum der Variable entsprechen. Entweder die Rohvariable 0-32767 von der SPS
    0=min, max 32767

    oder der skalierte Wert von der SPS 0-100%
    dann 0=min, max=100

    Dann hast du, je nach Auflösung/Schritte des Balkens, evtl. mehr als 40 verschiedene "Lämpchen" (analog)

  7. Folgender Benutzer sagt Danke zu Verpolt für den nützlichen Beitrag:

    KingHelmer (10.04.2012)

  8. #7
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo nochmal,

    das ist genau das, was ich gesucht habe! Vielen Dank!

    Sieht sogar ganz gut aus

    Beste Grüße,

    Florian

Ähnliche Themen

  1. String in Array
    Von bige im Forum CODESYS und IEC61131
    Antworten: 17
    Letzter Beitrag: 02.07.2014, 18:26
  2. Array of Byte to String[12] ,S7
    Von sb9674 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.09.2009, 19:15
  3. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  4. String array in SQL
    Von dannyli im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 30.05.2009, 02:54
  5. kann mir das bitte mal einer erklären
    Von Garog im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.08.2006, 18:37

Lesezeichen

Berechtigungen

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