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

Ergebnis 1 bis 9 von 9

Thema: Schleife 24Byte mit XOR verknüpfen

  1. #1
    Registriert seit
    19.11.2007
    Beiträge
    78
    Danke
    23
    Erhielt 13 Danke für 10 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wer kann mir mal helfen?

    Ich suche eine elegante Lösung einen Datenbereich (24Byte) in einem DB
    Byte für Byte per XOR zu verknüpfen und das letzte Ergebnis auszugeben.

    Es geht um die Überprüfung einer Datenübertragung in der das letzte Byte ein Checkbyte ist.

    In etwa so:
    IN Adresse (DBxyz .DBB0)
    IN Länge (24 Byte)

    dann in einer Schleife
    #Ergebnis = #Ergebnis XOR DBB0
    #Ergebnis = #Ergebnis XOR DBB1
    #Ergebnis = #Ergebnis XOR DBB2
    ...
    #Ergebnis = #Ergebnis XOR DBB23

    OUT Ergebnis (MB xy oder was auch immer)

    Aber wie mache ich so eine Schleife? Im AWL bin ich nicht so gewandt und ohne Pointer geht's sicher nicht so elegant.

    Gruß
    Dieter
    Zitieren Zitieren Schleife 24Byte mit XOR verknüpfen  

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

    Standard

    Ungetestet und in SCL:
    Code:
    FUNCTION FC24 : BYTE
    VAR_INPUT
      DB_No     :WORD;           (* Nummer des Datenbausteins *)
      SByte     :INT;            (* Start Byte Adresse *)
      QByte     :INT;            (* Anzahl der Bytes *)
    END_VAR  
    
    VAR_TEMP
      CByte     :INT;            (* Zähler für die Forschleife *)
      myByte    :BYTE;           (* Zwischenspeicher *)
    END_VAR  
    
      myByte := 0; (* 0 oder 255 je nach Startbedingung *)
      FOR CByte := 0 TO QByte -1 DO
        myByte := myByte XOR WORD_TO_BLOCK_DB(DB_No).DB[SByte + CByte]; 
      END_FOR;
      FC24 := myByte;
    END_FUNCTION
    Geändert von zotos (29.11.2007 um 18:45 Uhr) Grund: nun getestet
    If you open your Mind too much, your Brain will fall out.

  3. #3
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Hier mal ein kurzes Programmbeispiel:

    Code:
    FUNCTION "FC_CHECKBYTE" : VOID
    TITLE =Checkbyte
    AUTHOR : KAI
    FAMILY : SPSFORUM
    NAME : CHECKBYT
    VERSION : 1.0
     
    VAR_INPUT
      ADRESSE : POINTER ;   
      LAENGE : INT ;    
    END_VAR
    VAR_OUTPUT
      ERGEBNIS : BYTE ; 
    END_VAR
    VAR_TEMP
      DB_NUMMER : WORD ;    
      SCHLEIFE : INT ;  
      ZWISCHENERGEBNIS : BYTE ; 
      DB_SPEICHER : WORD ;  
      AR1_SPEICHER : DWORD ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =DB-Register und Adressregister AR1 sichern
     
          L     DBNO; 
          T     #DB_SPEICHER; 
     
          TAR1  #AR1_SPEICHER; 
     
    NETWORK
    TITLE =ADRESSE (POINTER)
     
          L     P##ADRESSE; // POINTER
          LAR1  ; 
     
          L     W [AR1,P#0.0]; // POINTER DB-Nummer
          T     #DB_NUMMER; 
     
          AUF   DB [#DB_NUMMER]; 
     
          L     D [AR1,P#2.0]; // POINTER Bereichszeiger
          LAR1  ; 
     
    NETWORK
    TITLE =BYTE XOR => ZWISCHENERGEBNIS => ERGEBNIS 
     
          L     B [AR1,P#0.0]; 
          T     #ZWISCHENERGEBNIS; 
     
          L     #LAENGE; 
          L     1; 
          -I    ; 
    NEXT: T     #SCHLEIFE; 
     
          L     #ZWISCHENERGEBNIS; 
          L     B [AR1,P#1.0]; 
          XOW   ; 
          T     #ZWISCHENERGEBNIS; 
     
          L     P#1.0; 
          +AR1  ; 
     
          L     #SCHLEIFE; 
          LOOP  NEXT; 
     
          L     #ZWISCHENERGEBNIS; 
          T     #ERGEBNIS; 
     
    NETWORK
    TITLE =DB-Register und Adressregister AR1 wiederherstellen
     
          AUF   DB [#DB_SPEICHER];
     
          LAR1  #AR1_SPEICHER; 
     
    END_FUNCTION
    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: jpg VAT.jpg (306,1 KB, 42x aufgerufen)
    Angehängte Dateien Angehängte Dateien

  4. Folgender Benutzer sagt Danke zu Kai für den nützlichen Beitrag:

    D-DNRN (03.12.2007)

  5. #4
    Registriert seit
    06.10.2004
    Beiträge
    278
    Danke
    17
    Erhielt 34 Danke für 30 Beiträge

    Standard

    Hallo

    FC 104 von Siemens (Standart Library unter TI-S7 Converting Blocks)
    Verknüpfung zwei Tabellen d.h. zwei DB

    #16#07 = UND-Verknüpfung
    #16#08 = ODER-Verknüpfung
    #16#09 = EXKLUSIV ODER-Verknüpfung
    #16#0a = Addieren
    #16#0b = Subtrahieren
    #16#0c = Multiplizieren
    #16#0d = Dividieren

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

    Standard

    Zitat Zitat von Taddy Beitrag anzeigen
    ...
    Verknüpfung zwei Tabellen d.h. zwei DB
    ...
    Wie passt der TBL_TBL (FC104) auf die Aufgabenstellung?
    If you open your Mind too much, your Brain will fall out.

  7. #6
    D-DNRN ist offline Benutzer
    Themenstarter
    Registriert seit
    19.11.2007
    Beiträge
    78
    Danke
    23
    Erhielt 13 Danke für 10 Beiträge

    Standard

    Sorry das ich jetzt erst Antworte, Baustelle ......

    @Zotos & @Kai vielen Dank!

    Ich hab Kai's AWL Version genommen da ich kein SCL habe und was soll ich sagen: Es klappt natürlich wunderbar.

    Mal 'ne Frage:
    Gibt's nicht irgendwo eine Art Downloadbereich in dem solche fertigen Bausteine (auch die ganz einfachen) veröffentlicht und gefunden werden können?

    Wäre das sonst nicht etwas für ein neues Thema hier im Forum?

    Man muss das Rad doch nicht jedesmal neu erfinden!

  8. #7
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von D-DNRN Beitrag anzeigen
    Ich hab Kai's AWL Version genommen da ich kein SCL habe und was soll ich sagen: Es klappt natürlich wunderbar.
    Danke für die Rückmeldung.

    Zitat Zitat von D-DNRN Beitrag anzeigen
    Gibt's nicht irgendwo eine Art Downloadbereich in dem solche fertigen Bausteine (auch die ganz einfachen) veröffentlicht und gefunden werden können?

    Man muss das Rad doch nicht jedesmal neu erfinden!
    Hier im Forum gibt es eine solche Bausteinbibliothek nicht. Ich weiß auch nicht, ob so etwas machbar ist, obwohl ich eine solche Idee grundsätzlich gut finde. Ich sehe aber folgendes Problem:

    Bei den Bausteinen hier handelt es sich um Lösungen für ganz spezielle Aufgaben. Bei einer Bausteinbibliothek reicht es also nicht, einfach nur die Bausteine aufzulisten, man muss zusätzlich eine genaue Aufgabenbeschreibung hinzufügen. Es geht also nicht ohne zusätzliche Arbeit, die jemand machen muss. Und die Frage ist doch, ob die Suchfunktion hier im Form nicht ausreichend ist, um solche Bausteine und Programmbeispiele zu finden.

    Wie eine Bausteinbibliothek grundsätzlich aussehen könnte, kann man hier sehen:

    http://www.oscat.de

    Gruß Kai

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

    Standard

    Zitat Zitat von Kai Beitrag anzeigen
    ...
    Bei den Bausteinen hier handelt es sich um Lösungen für ganz spezielle Aufgaben.
    ...
    100% Ack.

    Ich denke das man jetzt speziell bei einer Aufgabe wie dieser, länger zum Suchen als zum programmieren braucht.

    Ich hoffe dass Du die Frage auch nicht nur gestellt hast um etwas Fertiges zu bekommen. Sondern Dir die Lösungen angeschaut hast und dabei was gelernt hast und ähnliche Aufgaben in Zukunft selbst lösen kannst.

    Ansonsten solltest Du in dem Fall dem Kai ein Honorar anbieten!
    If you open your Mind too much, your Brain will fall out.

  10. #9
    D-DNRN ist offline Benutzer
    Themenstarter
    Registriert seit
    19.11.2007
    Beiträge
    78
    Danke
    23
    Erhielt 13 Danke für 10 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von zotos Beitrag anzeigen
    100% Ack.
    Ich denke das man jetzt speziell bei einer Aufgabe wie dieser, länger zum Suchen als zum programmieren braucht.
    Genau das denke ich nicht, auch beim proggen für PC's gibts extrem viele verschiedene Anforderungen und trotzdem gibt es im Netz überall Bibliotheken in denen speziell die kleinen Lösungen gefunden werden können.
    Überlegt mal wie oft Ihr schon eine Ewigkeit an einer Kleinigkeit gebastelt habt weils einfach nicht klappen wollte und nachher war es doch ganz einfach.

    Hier, nur weil ich gerade drüber gestolpert bin: http://www.sps-forum.de/showthread.php?t=16207
    Ein einfaches Problem, eine einfache Lösung aber trotzdem schon wieder auf 3 Seiten Thread gekommen.

    Ist solch eine Lösung fertig könnte es doch einfach in ein spezielles Forum(Unterthema) kopiert werden und alle hätten was davon.

    Zitat Zitat von zotos Beitrag anzeigen
    Ich hoffe dass Du die Frage auch nicht nur gestellt hast um etwas Fertiges zu bekommen. Sondern Dir die Lösungen angeschaut hast und dabei was gelernt hast und ähnliche Aufgaben in Zukunft selbst lösen kannst.

    Ansonsten solltest Du in dem Fall dem Kai ein Honorar anbieten!
    Danke der Nachfrage: Ich muß zugeben, ich hatte sogar ein schlechtes Gewissen das einfach so zu übernehmen.
    Habe mich aber tatsächlich damit beschäftigt um das genauer zu verstehen.

    Ich bin halt nicht der AWL Freak da ich nicht gerade aus dem Siemens Lager komme. Hatte viel mit Rockwell & GE-Fanuc zu tun, da ist Kop halt Mittel der Wahl. So tue ich mich mit AWL eben schwer und die Sache in Siemens mit Kop zu lösen war mir echt zu suspekt.
    Geändert von D-DNRN (04.12.2007 um 22:31 Uhr)

Ähnliche Themen

  1. Struct mit Peripherie verknüpfen
    Von simon86 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 03.11.2010, 14:06
  2. Not-Aus Relais verknüpfen
    Von Andreas28 im Forum Schaltschrankbau
    Antworten: 16
    Letzter Beitrag: 07.01.2010, 07:50
  3. Inkrementalgeber mit SPS Simatic S7 200 verknüpfen
    Von daniel.rubisoier im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.12.2007, 10:35
  4. Kartenlesegerät mit S7 Steuerung verknüpfen?
    Von tino2512 im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 17.10.2007, 07:58
  5. 30 SPS-Steuerungen verknüpfen
    Von Ralle im Forum Programmierstrategien
    Antworten: 15
    Letzter Beitrag: 02.11.2005, 18:41

Lesezeichen

Berechtigungen

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