Zustandsautomat und frei programmierbare Kommuniaktion

latexp

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

ich habe in meiner Diploamarbeit unter anderem die Aufgabe erhalten eine Palettenförderanlage zu einem RFID-Demomodell auszubauen.
Hierbei wird es notwendig den Palettenförderer von einem Linux-PC aus gesteuert mit unterschiedlichen Geschwindigkeiten vor und zurück fahren zu können.

Für die Umsetzung habe ich mir ein S7-Starterpaket (S7-CPU222) besorgt. Dazu noch ein Erweiterungsmodul EM 223 und einen Sinamics G110 Frequenzumrichter.

Folgendes soll geleistet werden:

Hand/Automatikbetrieb (Tasten an der Anlage / Steuersignale vom PC über frei programmierbare Kommuniaktion)

Im Handbetrieb wird die Anlage lediglich über direkte Schütze bewegt.

Für den Automatikbetrieb sollen zu der direkten Motoransteuerung über Schütze noch drei Drehfrequenzen über den Frequenzumrichter zur Verfügung stehen.

Ich würde den Automatikbetrieb jetzt gerne in einer Art Zustandautomat abbilden. Als Weiterschaltbedingungen zwischend den Zuständen kommen dann zum einen Signale von Lichtschranken zum Einsatz und zum anderen empfangene Zeichen über die frei programmierbare Kommunikation.

Da meine letzten SPS-Erfahrungen noch aus meiner Ausbildung stammen möchte ich euch bitten mir Lösungsansätze zukommen zu lassen.

Wie realisiert man einen Zustandautomaten in der S7?
Wie nutzt man empfangene Zeichen zum weiterschalten?

MfG
Andreas Pauli
 
latexp schrieb:
Wie realisiert man einen Zustandautomaten in der S7?
z.B. für jeden Zustand einen Merker festlegen. Eine "1" in diesem Merker heißt, der Automat ist in diesem Zustand. Es darf immer nur einer der Zustands-Merker zugleich gesetzt sein.

Typisches Programm (S7-200-AWL):

LD MZustand1 // sind wir im Zustand 1?
U WeiterSchaltBedingung1nach2_1 // und haben wir alle der folgenden
U WeiterSchaltBedingung1nach2_2 // Weiterschaltbedingungen zum Zustand 2 ?
R MZustand1,1 // Zustand 1 vorbei
S MZustand2,1 // Zustand 2 aktiviert

//
// Verzweigung. Annahme, auf Zustand1 könnte neben 2 auch 11 folgen:
//
LD MZustand1 // sind wir im Zustand 1?
U WeiterSchaltBedingung1nach11_1 // und haben wir alle der folgenden
U WeiterSchaltBedingung1nach11_2 // Weiterschaltbedingungen zum Zustand 11 ?
R MZustand1,1 // Zustand 1 vorbei
S MZustand2,1 // Zustand 11 aktiviert


Wie nutzt man empfangene Zeichen zum weiterschalten?
Habe noch nie selber freie Kommunikation gemacht. Wenn ich es richtig weiß, hat man ein Interruptprogramm, das aufgerufen wird, wenn ein Zeichen empfangen wird.
Dort solltest du das Zeichen aus dem SMB in ein MB oder VB kopieren:

MOVB SMBx,letztesZeichen

Im Zustandsautomaten setzt du nun als Weiterschaltbedingung:

LD ZustandWarteAufA // ein Zustand, wo wir auf ein "A" warten
UB='A',letztesZeichen //Bytevergleich einer Konstante 'A' mit letztesZeichen

Das funktioniert, solange du nicht eine Folge von 2 oder mehr gleichen Zeichen erwartest

LD ZustandWarteAufA // ein Zustand, wo wir auf ein "A" warten
UB='A',letztesZeichen //Bytevergleich einer Konstante 'A' mit letztesZeichen
R ZustandWarteAufA,1
S ZustandWarteAufZweitesA,1

LD ZustandWarteAufZweitesA // ein anderer Zustand, wo wir auf ein "A" warten
UB='A',letztesZeichen //Bytevergleich einer Konstante 'A' mit letztesZeichen
R ZustandWarteAufZweitesA,1
S irgendeinZustand

würde bis "irgendeinZustand" "durchrauschen".

Abhilfe:
Im Interruptprogramm eine Merker "neuesZeichen" setzen.
Im Zustandsautomaten Merker "neuesZeichen" als zusätzliche Weiterschaltbedingung heranziehen
Immer wenn "neuesZeichen" als Weiterschaltbedingung auftritt, beim Zustandswechsel "neuesZeichen" zurücksetzen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Viele Dank schon mal dafür.

Habe mir von den Siemens-Seiten den Tip52 heruntergeladen.

Dort wird beschrieben wie ich aus einem Terminalprogramm über die Eingabe von ON bzw. OFF die Ausgänge der SPS direkt steuern kann.
Wollte jetzt mit 2 VB's einen Zustandsautomaten aufbauen. Ein VB enthält den aktuellen Zustand als dezimalwert, und ein anderer den nächsten Sollzustand laut Nachricht auf dem Freeport.

Hierdurch ist automatisch verhindert dass ich mich in 2 Zuständen gleichzeitig befinden kann.

Wie gesagt, vielen Dank schon mal und macht weiter so.
 
Zurück
Oben