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

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

Thema: Mehrfache AND Verknüpfung

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    [Offtopic AN]

    Zitat Zitat von Verpolt Beitrag anzeigen
    @PN/DP

    Das war der TE selbst
    Das war nicht der TE sondern JanB1. Der bezeichnet andere Programmierer auch schnell als Depp, welche unverständlicherweise nicht so programmieren, wie er sich das vorstellt. Da muß er solche derbe Kritik-Äußerung auch selber abkönnen.

    [Offtopic AUS]

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Verpolt (19.09.2014)

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

    Standard

    Heijeijei,

    bin irgendwie in den Beiträgen durcheinander gekommen.

    Ja, ich DEPP

  4. #13
    Registriert seit
    12.08.2014
    Ort
    Basel
    Beiträge
    208
    Danke
    23
    Erhielt 20 Danke für 19 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    [Offtopic AN]


    Das war nicht der TE sondern JanB1. Der bezeichnet andere Programmierer auch schnell als Depp, welche unverständlicherweise nicht so programmieren, wie er sich das vorstellt. Da muß er solche derbe Kritik-Äußerung auch selber abkönnen.

    [Offtopic AUS]

    Harald
    Bemerkt, zur Kenntiniss genommen. Aber halt, es braucht recht viel bis ich einen Programmierer als Depp betitle. Aber wenn die betreffende Person 2 Monate später keine Ahnung mehr hat wie ihr Programm funktioniert und mir auch nicht erkären kann wie er denn die Webvisu gemacht hat (er sagt die Webvisu sei bei Wago auf Servern abgelegt. Natürlich, deshalb kann ich die Visu auch aufrufen von einem Computer der nur mit der CPU verbunden ist und gar keinen Webzugriff hat...)

    Ich bin wirklich nicht die Person die eine andere schnell verflucht oder als "Depp" bezeichnet. Aber wenn ich das denn doch tue, so hat das ganz sicher einen triftigen Grund.

  5. #14
    Registriert seit
    12.08.2014
    Ort
    Basel
    Beiträge
    208
    Danke
    23
    Erhielt 20 Danke für 19 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Das muß echt ein Depp gewesen sein, wer derart umständlich Bits in ein Byte kopiert

    Harald
    Ich habs hier vereinfacht und aus dem Kopf gemacht, irgendwo hab ich das mal vor nem halben Jahrhundert gmacht.

    Wie meinen? Wie hättest du denn so etwas gemacht? Bin offen für neues.
    Geändert von JanB1 (19.09.2014 um 18:21 Uhr)

  6. #15
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Ungefähr so mach' ich das gewöhnlich. Allerdings erst seit ca. 35 Jahren
    Code:
    FUNCTION Bits2INT : INT
    VAR_INPUT
      I1 : BOOL ;
      I2 : BOOL ;
      I3 : BOOL ;
      I4 : BOOL ;
      I5 : BOOL ;
      I6 : BOOL ;
      I7 : BOOL ;
      I8 : BOOL ;
    END_VAR
    
      Bits2INT := 0 ;
      Bits2INT.0 := I1 ;
      Bits2INT.1 := I2 ;
      Bits2INT.2 := I3 ;
      Bits2INT.3 := I4 ;
      Bits2INT.4 := I5 ;
      Bits2INT.5 := I6 ;
      Bits2INT.6 := I7 ;
      Bits2INT.7 := I8 ;
    Variante ohne Bitzugriff
    Code:
    FUNCTION Bits2INT : INT
    VAR_INPUT
      I1 : BOOL ;
      I2 : BOOL ;
      I3 : BOOL ;
      I4 : BOOL ;
      I5 : BOOL ;
      I6 : BOOL ;
      I7 : BOOL ;
      I8 : BOOL ;
    END_VAR
    VAR
      tempWord : WORD ;
    END_VAR
    
      tempWord := 0 ;
      IF I1 THEN tempWord := tempWord OR 16#01 ; END_IF ;
      IF I2 THEN tempWord := tempWord OR 16#02 ; END_IF ;
      IF I3 THEN tempWord := tempWord OR 16#04 ; END_IF ;
      IF I4 THEN tempWord := tempWord OR 16#08 ; END_IF ;
      IF I5 THEN tempWord := tempWord OR 16#10 ; END_IF ;
      IF I6 THEN tempWord := tempWord OR 16#20 ; END_IF ;
      IF I7 THEN tempWord := tempWord OR 16#40 ; END_IF ;
      IF I8 THEN tempWord := tempWord OR 16#80 ; END_IF ;
    
      Bits2INT := tempWord ;
    Varianten mit absoluten Speicherzugriffen laß ich jetzt mal weg.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #16
    Registriert seit
    12.08.2014
    Ort
    Basel
    Beiträge
    208
    Danke
    23
    Erhielt 20 Danke für 19 Beiträge

    Standard

    Funktioniert deine Lösung bei CoDeSys?

    Oder einfach die Funktion "PACK" der "Util.lib" bei CoDeSys. Okayokay, ich hab da nicht wirklich nachgedacht, ich hab das mal bei Excel gebraucht, natürlich geht es hier VIEL einfacher. ^^

  8. #17
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.713
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Und wenn man schon unbedingt einzelne INT-Werte haben möchte, würde ich das machen, was eh hinter den Bits in einem INT-Wert steckt:
    Code:
        a:= BOOL_TO_INT( I1 ) *   1;
        b:= BOOL_TO_INT( I2 ) *   2;
        c:= BOOL_TO_INT( I3 ) *   4;
        d:= BOOL_TO_INT( I4 ) *   8;
        e:= BOOL_TO_INT( I5 ) *  16;
        f:= BOOL_TO_INT( I6 ) *  32;
        g:= BOOL_TO_INT( I7 ) *  64;
        h:= BOOL_TO_INT( I8 ) * 128;
    Aber letztendlich ist m.M.n. so ziemlich alles übersichtlicher als dieses ständige IF...THEN...ELSE-Gewurschtel über zig Zeilen.
    Selbst wenn man die IFs nur durch eine SEL-Zeile ersetzt, was ja eigentlich auch nichts anderes als ein Wenn...dann...sonst ist:
    Code:
        a:= SEL (G:= I1, IN0:= 0, IN1:=   1);
        b:= SEL (G:= I2, IN0:= 0, IN1:=   2);
        c:= SEL (G:= I3, IN0:= 0, IN1:=   4);
        d:= SEL (G:= I4, IN0:= 0, IN1:=   8);
        e:= SEL (G:= I5, IN0:= 0, IN1:=  16);
        f:= SEL (G:= I6, IN0:= 0, IN1:=  32);
        g:= SEL (G:= I7, IN0:= 0, IN1:=  64);
        h:= SEL (G:= I8, IN0:= 0, IN1:= 128);

  9. #18
    Registriert seit
    12.08.2014
    Ort
    Basel
    Beiträge
    208
    Danke
    23
    Erhielt 20 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja, doch, sieht super aus. Sehr übersichtlich. Das erste gefällt mir, deutlich schlanker als meines wobei es auf dem gleichen Prinzip basiert.

    Das zweite Beispiel ist natürlich auch sehr schick.

    Ich muss zugeben (wie ich schon mal erwähnt habe) bin ich mal wieder um die einfachste Lösung herumgeschippert und habs ein wenig komplizierter gemacht als nötig. *facepalm*

Ähnliche Themen

  1. UND Verknüpfung
    Von ETechniker2011 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 20.01.2011, 11:06
  2. Schaltplanerstellung: mehrfache Zwischenklemmung
    Von Drain im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 08.05.2009, 08:02
  3. DWORD AND-Verknüpfung
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 23.02.2009, 17:41
  4. Und Verknüpfung
    Von Computerliebe im Forum HMI
    Antworten: 8
    Letzter Beitrag: 17.12.2007, 12:19
  5. mehrfache Zuweisung von Ausgängen im Programm
    Von mitchih im Forum Programmierstrategien
    Antworten: 7
    Letzter Beitrag: 18.09.2007, 19:19

Lesezeichen

Berechtigungen

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