TIA Probleme FB Erstellung

TECO

Level-2
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe folgendes Problem
Ich habe 6 Eingänge und 6 Ausgänge in einem FB die verschalten sind, so das nur 1 Ausgang immer angesteuert wird.
Das funktioniert soweit.

Das Problem dabei ist das Mehrere Eingänge gleichzeitig oder nacheinander kommen können.
z.B.
Eingang 1xAusgang 1o
Eingang 2oAusgang 2o
Eingang 3xAusgang 3xEingang 3 ist als letztes gekommen
Eingang 4oAusgang 4o
Eingang 5oAusgang 5o
Eingang 6oAusgang 6o
Aktivex
Inaktiveo

Das funktioniert soweit.
Jetzt kommt aber Eingang 2 dazu und Ausgang 2 soll aktive werden.
Das funktioniert nicht, da Eingang 3 im Ablaufprogramm weiter unten steht.
Sprich immer der letzte Eingang soll kommen.

Hat dazu jemand eine Idee?

Danke schon mal für eure Hilfe
Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Glaskugel_CrystalBall.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, auch ich bin nur ein Mensch
also es ist eine CPU 1515-2PN
die Programmsprache ist aktuell in FUP, da ich SCL noch am lehren bin.
Ein Programmauszug kann ich morgen noch anhängen.

Jetzt bin ich mal gespannt auf die Lösungsvorschläge.

Danke und sorry
 
Sprich immer der letzte Eingang soll kommen.

Hat dazu jemand eine Idee?
Ich würde mir die aktuellen Eingänge als Bitmuster in ein Byte (oder Word) schreiben.
Nun würde ich es mit dem Byte (oder Word) des letzten Durchlaufs vergleichen.
Das, was jetzt unterschiedlich ist, hat sich geändert.
Nun das aktuelle Bitmuster verspeichern für den nächsten Aufruf.
 
Ich weiß zwar nicht wofür das gut sein soll..

Aber eventuell von von 6 nach 1 auswerten? Sprunglisten/IF Abfragen? Zuerst alle Ausgänge zurücksetzen und dann schauen welcher Eingang als erstes an ist?

Bitmuster wäre aber die bessere Option, denke ich.

Jetzt bin ich mal gespannt auf die Lösungsvorschläge.
und jetzt du ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen,
hier ist ein kleiner Auszug aus meinem Programm.

Erklärung:
Kontakt 1 - 6 sind die Eingänge
Im FB werden die Ausgänge direkt geschaltet, da dieser FB nur einmal im Programm verwendet wird.

In dem Beispiel seht ihr jetzt nur das ganze mit den ersten 2 Eingängen, der Rest ist genau so aufgebaut nur mit den entsprechenden Eingängen

1713511307617.png

Danke
 
Du wirst nicht daran vorbei zu kommen, dir die Eingangssignale irgendwo/irgendwie abzuspeichern. (wie von Larry schon geschrieben)
So kannst du dann vergleichen, ob sich irgendwelche Eingänge geändert haben.
 
OK.
Ich habe alle Eingänge schon auf ein Byte geschoben.
Sobald sich ein Eingang ändert sehe ich das im Byte.
Wie mach ich das dann mit dem Bitmuster?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK.
Ich habe alle Eingänge schon auf ein Byte geschoben.
Sobald sich ein Eingang ändert sehe ich das im Byte.
Wie mach ich das dann mit dem Bitmuster?
Kannst wahrscheinlich auch einfach die Summen vergleichen. Entspricht ja dem Bitmuster als Zahlenwert.. oder du speicherst dir noch mal das Bitmuster weg auf Boolsche Variablen
 
Wie mach ich das dann mit dem Bitmuster?
Eine Flankenauswertung (weiter unten auch in FUP) sagt Dir, wenn was Neues passiert.
Wenn diese ungleich 0 ist, speicherst Du sie als Ausgang.


PS:
Wie eigentlich immer, gibt's auch hier Unklarheiten:
Was soll passieren, wenn 2 oder mehr Eingänge genau gleichzeitig kommen?
Dann alle diese Eingänge als Ausgang ausgeben (macht die obige Flankenauswertung so) oder soll's eine Prioritätenliste geben?

PPS:
Und sollen die Ausgänge auch noch was anzeigen, wenn alle Eingänge wieder aus sind?

PPPS:
Und was soll angezeigt werden, wenn der gerade angezeigte Eingang ausgeht, aber noch andere an sind?


Fragen über Fragen...
🤷‍♂️
 
Zuletzt bearbeitet:
Zurück
Oben