Also ich frage mich ja in Zeiten von KI warum man das nicht vorher mal abklappert, vor allem wenn du ja schon einen guten prompt lieferst?... aber bitte.
Hallo! Schön, dass du dich mit SPS-Programmierung in der Ausbildung beschäftigst. Die Farbsortierstrecke mit Farbsensor ist ein typisches Einsteigerprojekt – perfekt, um den Umgang mit
analogen Signalen in Step7 zu lernen. Ich erkläre dir Schritt für Schritt, wie du den Farbsensor auswertest und im
FUP (Funktionsplan) programmierst.
1. Grundlagen: Wie funktioniert der Farbsensor?
Der Farbsensor gibt
analoge Spannungswerte (z. B. 0–10 V) oder
Stromwerte (z. B. 4–20 mA) aus – je nachdem, welche Farbe er erkannt hat. Diese analogen Signale werden über eine
analoge Eingangskarte (z. B. SM 331 AI) in die SPS eingelesen.
Beispiel:
Farbe | Analogwert (0–27648 bei 10 V) |
---|
Weiß | ca. 20000 |
Rot | ca. 12000 |
Blau | ca. 6000 |
Die genauen Werte musst du durch Messen / Testen herausfinden!
2. Analogwerte einlesen
Bausteine:
In Step7 greifst du den Wert mit dem
„ANALOGEN EINGANG“ über die Prozessabbildadresse ab, z. B.:
- Eingang PIW 288 → das ist ein „Peripherie-Wort“, also der Wert vom Analogeingang.
🛠 Beispiel:
Code:
L PIW 288 // Lade den Analogwert vom Farbsensor
T MW 10 // Speichere den Wert in Merkerwort MW10
3. Analogwert auswerten (Farbe bestimmen)
Jetzt musst du den Messwert in
Bereiche aufteilen, z. B.:
- Blau: 0 – 8000
- Rot: 8001 – 16000
- Weiß: 16001 – 27648
Das machst du in FUP mit
Vergleichsbausteinen:
Bausteine:
>=I
→ größer-gleich Vergleich
<=I
→ kleiner-gleich Vergleich
- UND / ODER → Logikverknüpfung
Beispiel für "ROT erkannt":
Code:
MW10 >= 8001 ------+
|--- UND -----> Merker M0.1 = TRUE (Rot)
MW10 <= 16000 ------+
So kannst du für jede Farbe einen Merker setzen:
- M0.0 = Blau
- M0.1 = Rot
- M0.2 = Weiß
4. Sortierlogik programmieren
Je nach gesetztem Merker kannst du z. B. eine Weiche ansteuern oder ein Förderband umleiten.
Beispiel:
Code:
M0.1 (Rot erkannt) ----> Ausgang Q0.0 (Weiche links)
M0.2 (Weiß erkannt) ---> Ausgang Q0.1 (Weiche rechts)
M0.0 (Blau erkannt) ---> Ausgang Q0.2 (Band geradeaus)
5. Tipps zum Testen
- Mache dir ein kleines Testprogramm, das nur den Analogwert auf ein Merkerwort schreibt.
- Gib diesen Wert z. B. auf einem HMI / Display oder im Watch Table aus.
- Erkenne die Farbwerte per Hand (Kalibrierung!) und schreibe sie auf.
- Füge Hysterese ein, damit das Programm bei Werten nahe an den Grenzen nicht springt.
Zusammenfassung
Schritt | Aufgabe |
---|
1. Analogkarte finden | Adresse z. B. PIW 288 herausfinden |
2. Analogwert einlesen | Mit L PIW 288 und T MW10 |
3. Wertebereiche definieren | Durch Testen (z. B. Blau < 8000 etc.) |
4. Vergleichslogik bauen | Mit >=I , <=I , UND → Merker setzen |
5. Sortierung ansteuern | Je nach Merker einen Ausgang setzen |
Wenn du möchtest, kann ich dir ein kleines FUP-Screenshot-Layout als Vorlage machen oder dir den Code in AWL geben (für besseren Überblick). Sag einfach Bescheid!
Viel Erfolg bei der Umsetzung!