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

Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 43 von 43

Thema: Arbeiten mit Integer-Werten ?!?

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Jackjackson Beitrag anzeigen
    An die SPS werden die IDs der Fördergüter gesendet, welches die 10 IDs speichert, auf die man zugreifen kann...
    Zitat Zitat von Kai Beitrag anzeigen
    Welchen Wertebereich (INT oder DINT) haben die IDs?
    Zitat Zitat von Jackjackson Beitrag anzeigen
    DINT wär am günstigsten
    Hier ist noch einmal ein neues Programmbeispiel für die Speicherung von Werten in einen FIFO-Speicher.

    Eine beliebige Fördergut ID-Nummer wird im MD100 ID_NUMMER im Datenformat DINT eingetragen.

    Bei einem positiven Flankenwechsel am M110.0 SIGNAL wird die ID-Nummer im FIFO-Speicher im DB100 DB_FOERDERGUT gespeichert.

    Im FIFO-Speicher werden die letzten 10 ID-Nummern gespeichert.

    Code:
    ORGANIZATION_BLOCK OB 1
    TITLE = Hauptprogramm
    //18
    AUTHOR : KAI
    FAMILY : SPSFORUM
    NAME : FIFO
    VERSION : 1.0
     
    VAR_TEMP
      OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
      OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
      OB1_PRIORITY : BYTE ; //Priority of OB Execution
      OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
      OB1_RESERVED_1 : BYTE ; //Reserved for system
      OB1_RESERVED_2 : BYTE ; //Reserved for system
      OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
      OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
      OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
      OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
    END_VAR
    BEGIN
    NETWORK
    TITLE =FIFO Foerdergut
     
          U     M    110.0; 
          FP    M    110.1; 
          SPBNB _001; 
          CALL FC   100 (
               DB_FOERDERGUT            := DB   100,
               ANZAHL_ID_NUMMERN        := 10,
               ID_NUMMER                := MD   100);
    _001: NOP   0; 
     
    END_ORGANIZATION_BLOCK
    Code:
    FUNCTION FC 100 : VOID
    TITLE =FIFO Foerdergut
    AUTHOR : KAI
    FAMILY : SPSFORUM
    NAME : FIFO
    VERSION : 1.0
     
    VAR_INPUT
      DB_FOERDERGUT : BLOCK_DB ; 
      ANZAHL_ID_NUMMERN : INT ; 
      ID_NUMMER : DINT ; 
    END_VAR
    VAR_TEMP
      DB_REGISTER : WORD ; 
      AR1_REGISTER : DWORD ; 
      ZWISCHENWERT : DINT ; 
      SCHLEIFE : INT ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Register sichern
     
          L     DBNO; // DB-Register
          T     #DB_REGISTER; 
     
          TAR1  #AR1_REGISTER; // AR1-Register
     
    NETWORK
    TITLE =FIFO Foerdergut
     
          AUF   #DB_FOERDERGUT; // DB Foerdergut
     
          L     P#0.0; 
          LAR1  ; 
     
          L     #ID_NUMMER; // ID-Nummer
          T     #ZWISCHENWERT; // Zwischenwert
     
          L     #ANZAHL_ID_NUMMERN; // Anzahl ID-Nummern
    M01:  T     #SCHLEIFE; 
     
          L     DBD [AR1,P#0.0]; // ID-Nummer
          L     #ZWISCHENWERT; // Zwischenwert
          T     DBD [AR1,P#0.0]; // Zwischenwert => ID-Nummer
          TAK   ; 
          T     #ZWISCHENWERT; // ID-Nummer => Zwischenwert
     
          L     P#4.0; 
          +AR1  ; 
     
          L     #SCHLEIFE; 
          LOOP  M01; 
     
    NETWORK
    TITLE =Register wiederherstellen
     
          AUF   DB [#DB_REGISTER]; // DB-Register
     
          LAR1  #AR1_REGISTER; // AR1-Register
     
    END_FUNCTION
    Gruß Kai
    Angehängte Dateien Angehängte Dateien
    Geändert von Kai (04.02.2009 um 19:14 Uhr)

  2. Folgende 2 Benutzer sagen Danke zu Kai für den nützlichen Beitrag:

    Jackjackson (05.02.2009),roadrunner (23.07.2009)

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

    Standard

    Und noch ein paar Bilder aus der Simulation mit PLCSIM.

    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken

  4. #43
    Avatar von Jackjackson
    Jackjackson ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2008
    Beiträge
    156
    Danke
    97
    Erhielt 6 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Hinweise
    Ist es auch möglich für jeden gespeicherten Wert, sagen wir für ein Array von 1000 Werten, jeweils einen Ausgangsimpuls zu senden in einem Intervall von 50ms?

Ähnliche Themen

  1. integer 32Bit in integer 16 Bit wandeln
    Von slk230-power im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 09.11.2009, 22:35
  2. Hex Darstellung von INT werten
    Von misconduct im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 24.08.2009, 06:55
  3. Anfängerfragen: Arbeiten mit Analogen Werten
    Von TheMCP im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 10.02.2009, 12:07
  4. Umwandlung Integer(32bit) in Integer(16bit)
    Von Kojote im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.08.2005, 10:56
  5. Umwandeln von HEX-Werten
    Von capri-fan im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 27.04.2005, 08:59

Lesezeichen

Berechtigungen

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