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

Ergebnis 1 bis 6 von 6

Thema: zwei Integer wahlweise auf Analogausgang schreiben

  1. #1
    Registriert seit
    26.07.2005
    Beiträge
    454
    Danke
    22
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte mit TwinCAT PLC in ST folgendes realisieren:
    Wahlweise einen Analogwert (INT) auf einen Analogausgang schreiben:
    Wenn Variable (Bool) "vorwärts" TRUE ist soll der Wert (INT) "vorwärtsgeschwindigkeit" auf den Ausgang "ventil" geschrieben werden.

    Wenn Variable (Bool) "rückwärts" TRUE ist soll der Wert (INT) "rückwärtsgeschwindigkeit" auf den Ausgang "ventil" geschrieben werden.

    Wenn keine der beiden Varianten aktiv ist, soll der Ausgang '0' sein.

    Vielen Dank
    Oli
    Press "Play" on Tape
    -------------------------------
    TwinCAT
    Step7
    Barber-Colman MacoDS
    Schneider Momentum SPS
    Wonderware 8.0
    Concept 2.2 SR2
    Vipa
    Allen-Bradley
    Zitieren Zitieren zwei Integer wahlweise auf Analogausgang schreiben  

  2. #2
    Registriert seit
    20.08.2003
    Beiträge
    275
    Danke
    38
    Erhielt 32 Danke für 31 Beiträge

    Standard

    Veruch es mal mit SEL,
    Auszug aus der Hilfe in Codesys:
    SEL Auswahl-IEC-Operator: Binäre Selektion.
    OUT := SEL(G, IN0, IN1) bedeutet:
    OUT := IN0 if G=FALSE;
    OUT := IN1 if G=TRUE.


    mfg. Rayk

  3. #3
    olitheis ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.07.2005
    Beiträge
    454
    Danke
    22
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Rayk,

    daran hatte ich auch schon gedacht, allerdings müsste ich dazu 3 x diesen SEL verwenden, damit ich auch die gew. Funktion habe. Wenn ich nur einen verwenden würde, biebe immer einer der beiden Werte am Ausgang anstehen. Ich dachte vielleicht an eine etwas elegantere Lösung in ST?

    Gruß
    Oli
    Press "Play" on Tape
    -------------------------------
    TwinCAT
    Step7
    Barber-Colman MacoDS
    Schneider Momentum SPS
    Wonderware 8.0
    Concept 2.2 SR2
    Vipa
    Allen-Bradley

  4. #4
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Code:
     (* Variante 1 *)
    IF Vorwaerts THEN
      Speed := VorwaertsSpeed;
    ELSIF Rueckwaert THEN
      Speed := RueckwaertsSpeed;
    ELSE
      Speed := 0;
    END_IF
    Dann musst Du aber noch verraten was gesehen soll wenn "aus einem dummen Zufall" vorwärts und rückwärts aktiv sind. (z.B. einfach stehen bleiben)

    Code:
     (* Variante 2 *)
    IF Vorwaerts AND NOT Rueckwaerts THEN
      Speed := VorwaertsSpeed;
    ELSIF Rueckwaerts AND NOT Vorwaerts THEN
      Speed := RueckwaertsSpeed;
    ELSE
      Speed := 0;
    END_IF
    Ich nutze für solche Fälle meistens eine bool Variable für an/aus und eine für positive/negative Drehrichtung.

    Code:
    (* Variante 3 *)
    IF MotorAn THEN
      IF DrehrichtungPositiv THEN
        Speed := VorwaertsSpeed;
      ELSE
        Speed := RueckwaertsSpeed;
      END_IF
    ELSE
      Speed := 0;
    END_IF;
    If you open your Mind too much, your Brain will fall out.

  5. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    olitheis (01.12.2008)

  6. #5
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.726
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Warum brauch du 3x SEL?

    AOUT := 0 ;
    G := Vorw AND NOT Rueckw ;
    G := Rueckw AND NOT Vorw ;
    IF Vorw OR Rueckw
    AOUT := SEL(G, Wert_VW, Wert_RW) ;
    END_IF;
    Wobei ich persönlich hier SEL durch ein IF bzw. ELSIF ersetzen würden,
    aber das ist hier Geschmackssache.
    Edit: (in etwa wie es Zotos hier vormacht) ...

    Mfg
    Manuel
    Geändert von MSB (01.12.2008 um 19:20 Uhr)
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  7. #6
    olitheis ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.07.2005
    Beiträge
    454
    Danke
    22
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Super, vielen Dank.
    So hatte ich mir das vorgestellt.
    Press "Play" on Tape
    -------------------------------
    TwinCAT
    Step7
    Barber-Colman MacoDS
    Schneider Momentum SPS
    Wonderware 8.0
    Concept 2.2 SR2
    Vipa
    Allen-Bradley

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 05.04.2011, 18:56
  2. integer 32Bit in integer 16 Bit wandeln
    Von slk230-power im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 09.11.2009, 22:35
  3. EB in Integer schreiben
    Von ottopaul im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 12.01.2007, 21:45
  4. Integer mit AGLink in MW schreiben
    Von Reto im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 30.10.2006, 07:19
  5. Umwandlung Integer(32bit) in Integer(16bit)
    Von Kojote im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.08.2005, 10:56

Lesezeichen

Berechtigungen

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