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

Page 5 of 5 FirstFirst ... 345
Results 41 to 43 of 43

Thread: Arbeiten mit Integer-Werten ?!?

  1. #41
    Join Date
    30.03.2005
    Posts
    2,134
    Danke
    0
    Erhielt 681 Danke für 545 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by Jackjackson View Post
    An die SPS werden die IDs der Fördergüter gesendet, welches die 10 IDs speichert, auf die man zugreifen kann...
    Quote Originally Posted by Kai View Post
    Welchen Wertebereich (INT oder DINT) haben die IDs?
    Quote Originally Posted by Jackjackson View Post
    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
    Attached Files Attached Files
    Last edited by Kai; 04.02.2009 at 19:14.

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

    Jackjackson (05.02.2009),roadrunner (23.07.2009)

  3. #42
    Join Date
    30.03.2005
    Posts
    2,134
    Danke
    0
    Erhielt 681 Danke für 545 Beiträge

    Default

    Und noch ein paar Bilder aus der Simulation mit PLCSIM.

    Gruß Kai
    Attached Images Attached Images

  4. #43
    Jackjackson's Avatar
    Jackjackson is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    17.09.2008
    Posts
    156
    Danke
    97
    Erhielt 6 Danke für 5 Beiträge

    Default


    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?

Similar Threads

  1. Step 5 S5 Vergleich von Integer Werten
    By Holle-52499 in forum Simatic
    Replies: 10
    Last Post: 21.03.2016, 18:06
  2. integer 32Bit in integer 16 Bit wandeln
    By slk230-power in forum Simatic
    Replies: 11
    Last Post: 09.11.2009, 22:35
  3. Replies: 2
    Last Post: 10.02.2009, 12:07
  4. Replies: 11
    Last Post: 19.08.2005, 21:16
  5. Umwandlung Integer(32bit) in Integer(16bit)
    By Kojote in forum Simatic
    Replies: 4
    Last Post: 18.08.2005, 10:56

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •