SPS Frage zur richtigen anwenden

M

Michael180877

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe ein kleines Problem beim Verarbeiten auflaufenden Signalen im Transportsystem.
Ich schildere einmal die Aufgabe des Transportsystems und vielleicht kann mir jemand bei der Lösung und Umsetzung helfen. Vielen Dank im vorraus.

Aufgabe des Systems:

Das Transportsystem hat 7 Stationen an denen 7 verschiedene Materialien liegen die in unregeläßiger Reihenfolge angefahren werden sollen.
Ich bekomme jeweils das Signal von einer anderen Anlage welches dieser Materialien benötigt wird. Diesen Material wird dann an die Ausgabestelle transportiert, die immer den selben Ort hat.

Mein Problem ist es die Verarbeitung zu programmieren. Wie kann ich die Signale speichern und so verarbeiten das die Reihenfolge der anfordernden Anlage mit dem Anfahren meiner 7 Stationen übereinstimmt.

Ich würde mich über ein paar Vorschläge freuen da ich sonst keine andere Möglichkeit hab Infos zu meinem Problem zu bekommen.

Gruß Michael
 
Hallo,

ich würde für jede Station einen DB oder Merker zuweisen. Und je nach
dem wer oder was Angefordert wird nach und nach abarbeiten.

Vielleicht kannst du das ganze noch ein bischen genauer beschreiben.


Robert
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

gibt es in deiner Anlage eine Vorrangschaltung?
D.H., hat eine der Anlagen immer Voprrang zu den Anderen, oder ist es egal wer gerade Material anfordert?

Wenn egal, wäre es, wie Robert schon beschrieben hat, sinnvoll.
Die Abarbeitung der Anlagen erfolgt dann nach dem FIFO Prinzip.

Gruß
Christian
 
genau fifo ist gut

hier mal ein auszug aus einem prog wo ich sowas schon mal gemacht habe. es wird in der reihenfolge abgearbeitet wie die signale eintreffen

Code:
      U     M     93.3 //pos Flanke am Ende einer vorrangigen Bearbeitung, dient zum rausschieben aus dem lifo-db wenn die station bearbeitet wurde.
      SPBNB _022
      CALL  FC   172 //lifo
       Datenbaustein:=DB33
       Datenanfang  :=2
       Datenende    :=10
       Eintrag      :=0
_022: NOP   0
 
//position für eintrag im lifo-db
      U(    
      O     M    101.0 //pos Flanke Absperrschieber UA1 vorranging behandeln
      O     M    101.1
      O     M    101.2
      O     M    101.3
      O     M    101.4
      )     
      ZV    Z     33
      U     M     93.3
      ZR    Z     33
      NOP   0
      NOP   0
      U     DB30.DBX   52.0 //reset
      R     Z     33
      NOP   0
      NOP   0
      NOP   0
 
//station in lifo-db eintragen
      U(    
      O     M    101.0
      O     M    101.1
      O     M    101.2
      O     M    101.3
      O     M    101.4
      )     
      SPBNB in01
      AUF   DB    33
      L     Z     33
      L     2
      *I    
      SLD   3
      LAR1  
      L     DB33.DBW    0
      T     DBW [AR1,P#0.0]
in01: NOP   0
der lifo (awl-quelle). schiebt die dw's von unten nach oben. der oberste fällt raus
Code:
FUNCTION FC 172 : VOID
TITLE =LiFo für 1 Wort
AUTHOR : Lischnew
FAMILY : ARCHIV
NAME : LiFo_1DW
VERSION : 1.1
 
VAR_INPUT
  Datenbaustein : BLOCK_DB ; //FiFo-DB für die Werte des 'Eintrag'
  Datenanfang : INT ; //erstes Datenwort
  Datenende : INT ; //letztes Datenwort
  Eintrag : INT ; //zu Archivierendes Wort
END_VAR
VAR_TEMP
  index : DINT ; //aktuelles Datenwort (Index)
END_VAR
BEGIN
NETWORK
TITLE =
      AUF   #Datenbaustein; 
      L     #Datenanfang; 
      T     #index; 
anf:  NOP   0; //Schleifenanfang
      L     #index; 
      SLD   3; 
      LAR1  ; 
      L     DBW [AR1,P#2.0]; 
      T     DBW [AR1,P#0.0]; 
      L     #index; 
      L     2; 
      +I    ; 
      T     #index; 
      L     #Datenende; 
      >=I   ; 
      SPB   ende; 
      SPA   anf; 
ende: NOP   0; 
      L     #Eintrag; 
      T     DBW [AR1,P#2.0]; 
 
END_FUNCTION
 
Zuletzt bearbeitet:
Zurück
Oben