Programm Strategie

Rockwell

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich habe folgendes Problem.

Siemens S7 314 IFM

Ich möchte ein Programm realisieren das 5 Pakete abfragt nach dem Inhalt
und dann zu einem späteren Punkt auswirft wenn was nicht passen sollte mit dem Paket.
Ein INI gibt vor wenn ein schritt durchlaufen ist .

Und die abfrage soll fortlaufen stattfinden d.h wenn schritt 5 durchlaufen ist soll er sich wieder rücksetzen und bei schritt 1 anfangen.

Ich möchte keine Lösung wissen sondern nur wie man das realisiert .
Ob man da einen Datenbaustein her nimmt oder mit SR glieder arbeitet oder ne schrittkette?!? um die information auszulesen ob das Paket i.O ist oder ob es ausgesondert werden muss.

Ich zerbreche mir jetzt schon lang den Kopf wie ich das programmieren soll.
 
Zuletzt bearbeitet:
da es offensichtlich nur ein bit ist, dass sagt "paket ok" würde ich hier ein schiebe register zur hand nehmen und dies in einer art schrittkette benutzen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... hört sich für mich nach einer fortlaufend taktenden Einheit (Rundtisch ?) an. Wenn dem so ist, dann wäre hier ein Schiebespeicher (Array of Bool oder vielleicht auch Array of Byte) angebracht. Du müßtest hier so viele Array-Elemente wie Belegungs-Plätze haben und trägst bei deiner "Bewertungsstation" die entsprechende Kennung ein. Mit jedem Takt deiner Einheit muß natürlich auch der "Schiebespeicher" weitertakten. An der "Auslesestation" fragst du dann den Schiebespeicher ab und reagierst entsprechend ...

Gruß
LL
 
Nach dem abfragen des jeweiligen Paket´s muss ich dann das Register wieder zurücksetzen das ich abgefragt hab um es wieder neu belegen zu können mit 0 oder 1


Das Problem an der ganzen Sache ich das es alle Zustände erst nach dem fünften Takt an der Lichtschranke beim Auswerfer ausgelesen werden dürfen
entweder das Paket geht durch wenn es vollständig ist oder es wird ausgeworfen weil teile im Paket fehlen .

Bin noch ziemlicher Anfänger auf diesem Gebiet und wird bestimmt knifflig die Aufgabe, will mich aber da durchbeissen.
 
Beschreib doch die Hardware mal etwas genauer ...
Liege ich mit meinem Ansatz in etwa richtig ?

Mein Lösungsvorschlag hört sich komplizierter an als er ist ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also es ist eine Verschließstation für Faltkartons

Abfragen muss ich ich den Inhalt des Kartons wenn er noch offen ist
d.h direkt nach dem befüllen.
Danach durchläuft der Karton noch 4 Stationen wo der deckel zugemacht wird.
Danach geht das Paket auf ein Förderband zum Abtransport weiter und da soll es dann ausgeworfen werden wenn es die Lichtschranke durchläuft, falls im Paket was fehlen sollte. Eine möglichkeit direkt nach der Kontrolle des Inhaltes es auszuwerfen habe ich leider ich nicht. sonst wäre die ganze geschichte kein Problem.

Deshalb muss ich vom Startpunkt aus abfragen wenn die erste kontrolle stattfindet und nach dem 5 ten Schritt es bewerten lassen ob gut oder schlecht.

Ich hab noch nie mit schieberegister gearbeitet und muss mich da jetzt erst so richtig durchwühlen.

Wenn ich mal eine Zeichnung zum Ablauf Posten soll werde ich das mal heut Abend machen und es verständlich zu machen
 
Ich denke, eine Zeichnung ist nicht nötig.
Wahrscheinlich ist mein Vorschlag sogar ein wenig zu "über-kandidelt" für deine Anwendung. Ein einfaches Schieberegister sollte hier wirklich reichen. Du nimmst hier z.B. ein Byte (ich nenn es mal MB100). In diesem kannst du 8 Positionen abbilden. Wenn deine Überprüfung an Station 1 fehlerfrei war, dann setzt du das erste Bit (M100.0). Nun erfolgt der erste Schiebetakt deiner Strecke. Für das Byte bedeutet das als Befehl "SLW 1".
Wenn du an Position 5 entscheiden möchtest ob dein Paket OK oder nicht OK ist, so wäre das dann das 5. Bit (also M100.4). Ist das Bit =1 , dann ist das Paket OK, sonst nicht.

Hilft dir das weiter ?

Gruß
LL
 
sag ich doch - schieberegister ... du brauchst auch nichts zurücksetzen, einfach shiften. die bits nach dem 5ten interessieren dich ja nicht, bzw. kannst du diese in bis zu 3 anderen stationen noch auswerten ... nimmst du ein wort schaffst du 16 stationen insgesamt ...
 
der FC92 ist natürlich wesentlich unkomplizierter als

Code:
*
      U    "next_step"
      SPBN none
      L    "shift_register"
      SLW  1
      T    "shift_register"
none: NOP 0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@ vierlagig
Klar das ist die einfache SLW Funktion, jetzt musst du aber bitte noch erklären wie man das "Quellbit" von "shift register" setzt.
Da gibts ja dann noch das Lo und Hi byte :)
Ich finde die Hilfefunktion über F1 beim FC92 für einen Anfänger schon ganz okay.

Gruß
 
"shift_register" ist ein MB ... wir schieben nach links, also nehmen wir als quelle das LSB an, weil wir es ja so einfach wie möglich halten wollen...

bsp: "shift_register" ist MB10 - quellbit M10.0, zielbit nach 5 stationen, wie larry schon richtig sagte, M10.4 ...

denn: SLW arbeitet auch mit bytes ;)
 
Habe den FC 92 jetzt hergenommen
Am eingang N will er jetzt die Größe der Bits wissen , nur weiss ich leider nicht
wie ich das eintragen soll also 8 Bit

In der Hilfe steht dann nur ein Wert drin
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rockwell,

wenn dein sbr 8 bit lang sein soll, kannst Du entweder C#8 am Eingang N eintragen oder du lädst dir ein Netzwerk vorher oder nachher mit dem MOVE (in FUP) Befehl die Zahl 8 in z.B. MW20, das MW20 schreibst Du dann an den Eingang N.

Wichtig: Der Impuls zum schieben des Registers am Eingang EN muss eine Flanke sein.

Am Eingang DATA wird z.B das Signal deines Initiators zum Abfragen des Kartoninhalts angelegt. Also "Guter Karton" setze Bit im sbr oder umgekehrt wie Du möchtest.

S_Bit ist das erste Bit deines Merkerbytes oder Wort das dein Schiebergister darstellt.

Im angehangenen jpeg mal eine typische Beschaltung.
 

Anhänge

  • SHRB.JPG
    SHRB.JPG
    139,1 KB · Aufrufe: 31
nee, da sag ich nischts mehr zu ... FC92 ist für ein 5-bit-shift echt nicht mein ding ... wenn du DW-übergreifend schieben willst, bitte schön, aber so? man kann auch über moskau nach rom fahren, klar, kein ding ... ich bin raus
 
Zurück
Oben