AlexWillburger
Level-1
- Beiträge
- 8
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo,
ich habe für ein Spiel ein kleines SPS Programm geschrieben. Dabei gibt es vier Spielerplätze und acht verschiedene Felder, die sich auf einer Drehplatte befinden. Über drei Sensoren, die sich am ersten Spielerplatz befinden, wird erfasst, welches Feld sich vor welchem Spieler befindet. An jedem Spielerplatz befinden sich zwölf LEDs. Diese werden abhängig vom Feld und von einer Zufallszahlt zwischen -1-6 angesteuert. Es werden immer 4 LEDs pro Spielerplatz gleichzeitig angesteuert, also insgesamt werden 16 LEDs gleichzeitig angesteuert. Da ich noch recht neu in Sachen SPS bin habe ich für jede LED einzeln alle Zustände, die diese schalten sollen verknüpft. Ein solche Zuweisung wäre z.B.
Zufallszahl =1 & Feld 1 aktiv (als Merker "W1_LT1") ODER Zufallszahl 5 & Feld 1 aktiv ("W5_LT1") UND Feld 1 bei Spieler 1 ("P1_LT1").
Für die erste LED habe ich nun 8 verschiedene Zuweisung in dieser Form, die mit einem ODER Verknüpft sind. Meine Netzwerke sind also riesengroß und furchtbar unübersichtlich. Ich würde das ganz nun gerne etwas optimieren und für andere leserlicher gestalten. Dabei wurde mir der Tipp gegeben ich soll mich mal zu Multidimensionalen Arrays informieren. Leider bin ich dadurch nicht wirklich schlauer geworden. Ich hab mir das so überlegt: Ich könnte alle LEDs in ein Array packen. Also jeweils 12 LEDs ins untergeordnete und das ganze dann viermal für die jeweiligen Spielerplätze.
Allerdings habe ich keine Ahnung wie mir das weiterhelfen soll, wenn es um die einzelnen Zustände geht, die eine LED leuchten lassen.
Kann mir jemand ein paar allgemeine Tipps zum Umgang mit Arrays geben, oder hat jemand eine Idee wie ich mein Programm mit Hilfe von Arrays optimieren kann? Ich hänge noch einen Screenshot an, ich hoffe man kann meine Erklärung hier halbwegs nachvollziehen. Bei der UND Verknüpfung auf dem Screenshot ´mit "M_LED1.1" & "X1" handelt es sich um ein Lauflicht, das kann man zunächst mal ignorieren. Mir geht es darum, dass ich jeden Zustand einzeln im Programm definieren muss, sondern dass ich quasi einen Baustein habe, der dann mit verschiedenen Parametern gefüttert wird. Kann man mir da halbwegs folgen. In etwa so wurde mir das erklärt, dass man das so machen kann, ich hab es allerdings nicht so ganz verstanden.
ich habe für ein Spiel ein kleines SPS Programm geschrieben. Dabei gibt es vier Spielerplätze und acht verschiedene Felder, die sich auf einer Drehplatte befinden. Über drei Sensoren, die sich am ersten Spielerplatz befinden, wird erfasst, welches Feld sich vor welchem Spieler befindet. An jedem Spielerplatz befinden sich zwölf LEDs. Diese werden abhängig vom Feld und von einer Zufallszahlt zwischen -1-6 angesteuert. Es werden immer 4 LEDs pro Spielerplatz gleichzeitig angesteuert, also insgesamt werden 16 LEDs gleichzeitig angesteuert. Da ich noch recht neu in Sachen SPS bin habe ich für jede LED einzeln alle Zustände, die diese schalten sollen verknüpft. Ein solche Zuweisung wäre z.B.
Zufallszahl =1 & Feld 1 aktiv (als Merker "W1_LT1") ODER Zufallszahl 5 & Feld 1 aktiv ("W5_LT1") UND Feld 1 bei Spieler 1 ("P1_LT1").
Für die erste LED habe ich nun 8 verschiedene Zuweisung in dieser Form, die mit einem ODER Verknüpft sind. Meine Netzwerke sind also riesengroß und furchtbar unübersichtlich. Ich würde das ganz nun gerne etwas optimieren und für andere leserlicher gestalten. Dabei wurde mir der Tipp gegeben ich soll mich mal zu Multidimensionalen Arrays informieren. Leider bin ich dadurch nicht wirklich schlauer geworden. Ich hab mir das so überlegt: Ich könnte alle LEDs in ein Array packen. Also jeweils 12 LEDs ins untergeordnete und das ganze dann viermal für die jeweiligen Spielerplätze.
Allerdings habe ich keine Ahnung wie mir das weiterhelfen soll, wenn es um die einzelnen Zustände geht, die eine LED leuchten lassen.
Kann mir jemand ein paar allgemeine Tipps zum Umgang mit Arrays geben, oder hat jemand eine Idee wie ich mein Programm mit Hilfe von Arrays optimieren kann? Ich hänge noch einen Screenshot an, ich hoffe man kann meine Erklärung hier halbwegs nachvollziehen. Bei der UND Verknüpfung auf dem Screenshot ´mit "M_LED1.1" & "X1" handelt es sich um ein Lauflicht, das kann man zunächst mal ignorieren. Mir geht es darum, dass ich jeden Zustand einzeln im Programm definieren muss, sondern dass ich quasi einen Baustein habe, der dann mit verschiedenen Parametern gefüttert wird. Kann man mir da halbwegs folgen. In etwa so wurde mir das erklärt, dass man das so machen kann, ich hab es allerdings nicht so ganz verstanden.