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

Ergebnis 1 bis 7 von 7

Thema: Mit ARRAY OF BOOL Ausgänge schalten?

  1. #1
    Registriert seit
    29.11.2014
    Beiträge
    21
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Morgen,

    ich hab hier ein Problem und zwar ich will mit Hilfe von ARRAY OF BOOL Ausgänge der Baugruppe schalten.

    Globale_Variablen
    Code:
    VAR_GLOBAL
        xTaster1 AT %IX0.0 : BOOL;
        xTaster2 AT %IX0.1 : BOOL;
    
        xLampe AT %QB0 : ARRAY[0..1] OF BOOL := 2(FALSE);
    
    END_VAR
    PLC_PRG
    Code:
    xTaster1 := xLampe[0];
    
    xTaster2 := xLampe[1];
    Wenn ich xTaster1 drücke geht Variable xLampe[0] und Ausgang %QX0.0 an. Wenn ich aber xTaster2 drücke geht zwar Variable xLampe[1] an aber nicht ausgang %QX0.1. Wieso?


    mfg
    Zitieren Zitieren Mit ARRAY OF BOOL Ausgänge schalten?  

  2. #2
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Weil ein BOOL nicht einzelnes Bit ist, sondern ein Byte, von dem nur das unterste Bit genutzt wird. xLampe[0] liegt auf QX0.0, xLampe[1] auf QX1.0.

  3. #3
    spec ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.11.2014
    Beiträge
    21
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also kann ich die restliche Ausgänge mit diese Schreibweise nicht benutzen? Gibt es eine andere Möglichkeit ohne, dass ich das so schreibe:

    Code:
    VAR_GLOBAL
        xTaster1 AT %IX0.0 : BOOL;
        xTaster2 AT %IX0.1 : BOOL;
    
        xLampe1 AT %QX0.0 : BOOL;
        xLampe2 AT %QX0.1 : BOOL;
    
    END_VAR

  4. #4
    Registriert seit
    12.05.2010
    Ort
    Dortmund
    Beiträge
    889
    Danke
    57
    Erhielt 121 Danke für 89 Beiträge

    Standard

    Du könntest das Ausgangsbyte Q0 als Byte deklarieren:

    xLampe AT %QB0 : Byte;

    und dann mit

    xLampe.0
    xLampe.1
    usw.
    die einzelnen Bits ansteuern
    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.184
    Danke
    923
    Erhielt 3.290 Danke für 2.659 Beiträge

    Standard

    Ein-/Ausgänge als Array oder Slice-Zugriffe darauf empfinde ich als unsauberen Programmierstil.

    Bei Ein-/Ausgängen als Array verliert man die Möglichkeit, den einzelnen E/A unterschiedliche Symbole und unterschiedliche Kommentare zu geben. Das Programm wird undurchsichtig. Auch ein eventuell mal nötiges Umverdrahten gestaltet sich schwierig.

    Ich betrachte die E/A-Zuordnung als Rangierfeld, wo ich wahlfrei jeden einzelnen Eintrag bearbeiten können will.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    spec ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.11.2014
    Beiträge
    21
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Kann es sein, dass es bei TwinCad anders ist??

  7. #7
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja. bei TwinCat sind das PLC-IO-Abbild und das Hardware-IO-Abbild voneinander getrennt, die Verknüpfung zwischen beiden wird im Systemmanager vorgenommen. Im PLC-Abbild würden Deine Array-Ausgänge ebenfalls auf QX0.0 und QX1.0 stehen, Du könntest sie aber mit zwei aufeinanderfolgenden Ausgängen einer Busklemme verknüpfen, z. B. mit QX0.0 und QX0.1 des Hardware-Abbildes.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 07.11.2014, 16:11
  2. Antworten: 10
    Letzter Beitrag: 01.08.2014, 06:17
  3. Antworten: 8
    Letzter Beitrag: 27.03.2010, 21:59
  4. mit einem eingang 2 ausgänge schalten !!
    Von DynaMight im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 06.03.2008, 22:10
  5. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12

Lesezeichen

Berechtigungen

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