Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
21.10.2014, 22:17 (Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2014 22:21 von lola2014.)
Hallo zusammen,
ich habe eine Frage an euch, und zwar möchte gern eine Case Strukture mit 3 Fälle erstellen. Es geht darum: ich steure 3 Schríttmotoren mit einem Start und die sollen alle auschalten, wenn der Endschlaten ausgeht.
also ich muss fragen: if Endschalter1 =0 ist, dann MOT 1=0, if Endschalter2 =0 ist, dann MOT 2=0, if Endschalter3 =0 ist, dann MOT 3=0. Ich das alles in einer If Schleife progrmmieren und nicht in 3 If Schleife.
hat jemand eine Idee wie man das realisieren kann?
danke
Gruß Lola
Anzeige
22.10.2014, 07:40 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2014 07:43 von GerdW.)
arr := BuildArray(Endschalter1, Endschalter2, Endschalter3)
num := Search1DArray(arr, FALSE)
Case(num)
Was ist eine If-Schleife?
Ansonsten:
Du hast 3 Endschalter für 3 Motoren. Die würde ich weiterhin parallel und unabhängig voneinander abfragen und auswerten! Oder wie definierst du den Fall "Endschalter1 UND Endschalter2 = Null" mit deiner Fragestellung?
arr := BuildArray(Endschalter1, Endschalter2, Endschalter3)
num := Search1DArray(arr, FALSE)
Case(num)
Was ist eine If-Schleife?
ich meine damit Case Strukture
Ansonsten:
Du hast 3 Endschalter für 3 Motoren. Die würde ich weiterhin parallel und unabhängig voneinander abfragen und auswerten! Oder wie definierst du den Fall "Endschalter1 UND Endschalter2 = Null" mit deiner Fragestellung?
(22.10.2014 09:07 )lola2014 schrieb:
(22.10.2014 07:40 )GerdW schrieb: Hallo Lola,
PseudoCode, der deine Frage beantwortet:
Code:
arr := BuildArray(Endschalter1, Endschalter2, Endschalter3)
num := Search1DArray(arr, FALSE)
Case(num)
Was ist eine If-Schleife?
ich meine damit Case Strukture
Ansonsten:
Du hast 3 Endschalter für 3 Motoren. Die würde ich weiterhin parallel und unabhängig voneinander abfragen und auswerten! Oder wie definierst du den Fall "Endschalter1 UND Endschalter2 = Null" mit deiner Fragestellung?
was meinst du mit: num := Search1DArray(arr, FALSE)
Gruss Lola
Zitat:was meinst du mit: num := Search1DArray(arr, FALSE)
Search1DArray erwartet als Parameter ein Aray und das zu suchende Element und gibt eine Zahl (den gefundenen Index) aus.
Hast du mal die Hilfe zu dieser Funktion angeschaut?
Zitat:wie kann ich Enum mit mit dem Zustand von Sensoren verbinden
wo du jetzt dieses Enum hergezaubert hast…
Wozu brauchst du das jetzt?
Entweder du folgst meinem PseudoCode: dann bekommst du eine Zahl, die du direkt an die Case-Struktur verdrahtest.
Oder du ersetzt deine IF-THEN-ELSE- Abfragen durch ein einfaches AND: MOT_x := MOT_x-Vorgabe AND Endschalter_x…
Zitat:wie kann ich Enum mit mit dem Zustand von Sensoren verbinden
wo du jetzt dieses Enum hergezaubert hast…
Wozu brauchst du das jetzt?
Entweder du folgst meinem PseudoCode: dann bekommst du eine Zahl, die du direkt an die Case-Struktur verdrahtest.
Oder du ersetzt deine IF-THEN-ELSE- Abfragen durch ein einfaches AND: MOT_x := MOT_x-Vorgabe AND Endschalter_x…
Hallo GerdW,
kannst du mir bitte deine Code als Funktion zeigen.
Gruß Lola
Hallo GerdW,
ich habe das geändert. Der läuft noch nicht. Ich muss gucken woran das liegt.
ich bin jetzt müde, ich gehe schlafen und morgen gucke ich mal weiter.
LG Lola
- die Array-Suche hast du programmiert. Nur das die Array-Indices bei Null anfange, hast du nicht beachtet! Wenn "INI M1" = 0 ist, dann ist der gefundene Index auch Null - und nicht "1", wie es deine Case-Struktur erwartet…
- Ich bin ja der Meinung, dass man Endschalter ständig abfragen sollte, und nicht nur während eines "Init"-States. Aber das muss ja nicht für dich gelten…