Zuweisung einen Zyklus lang aktiv?

anne

Level-1
Beiträge
347
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich brauche euch mal wieder. ;)


Die Steuerung mehrerer Förderbänder wird über Lichtschranken (LS) gesteuert. Wenn nun die Lichtschranke 2 und die Lichtschranke 4 gleichzeitig eine Ware erkennen, so soll über die Zuweisung "Status" eines beider Bänder Vorrang erhalten.

Meine Frage:

Ist der Merker "Status", der über zwei pos. Flanken gebildet wird, genau für einen Zyklus aktiv - also z.B. in der FC1 an der Stelle, wo er erzeugt wird bis zum Ende des Bausteins?

Lieben Dank…
 

Anhänge

  • Flanke..jpg
    Flanke..jpg
    9,7 KB · Aufrufe: 42
Hallo Anne,
ich finde deine Verknüpfung äußerst ungünstig, eine Flankenauswertung
ist ja immer nur für einen Zyklus aktiv. In deinem Fall müssten deine
LS ja Zyklusgleich belegt werden, damit die "UND" Verknüpfung jemals
"1" wird. Wenn du das Regelmäßig hinbekommst, solltest du Lotto spielen.

Wäre es nicht besser die Flankenauswertung anders zu gestalten z.b. für
die "UND" Verknüpfung.

gruß Helmut
 
Meine Frage:

Ist der Merker "Status", der über zwei pos. Flanken gebildet wird, genau für einen Zyklus aktiv - also z.B. in der FC1 an der Stelle, wo er erzeugt wird bis zum Ende des Bausteins?

Noch zur Ergänzung zur eigendlichen Frage, wenn dann der Merker mal "1"
wird, bleibt er von der Stelle wo er erzeugt wird "1", bis zur erneuten
zuweisung, also über die "FC1" Grenze hinaus, für einen ganzen SPS-Zyklus.
Wenn er denn nicht noch mal woanders zugewiesen wird.
 
In deinem Fall müssten deine
LS ja Zyklusgleich belegt werden, damit die "UND" Verknüpfung jemals
"1" wird. Wenn du das Regelmäßig hinbekommst, solltest du Lotto spielen.

gruß Helmut

@Helmut: Weiß jetzt nicht, ob ich dich ganz richtig verstanden habe, aber dass beide Lichtschranken zeitgleich belegt werden, ist ein Ausnahmefall, d.h., normalerweise kommt das nicht vor. Und nur für diesen Ausnahmefall soll die Vorrangsregelung gelten.

wenn dann der Merker mal "1" wird, bleibt er von der Stelle wo er erzeugt wird "1", bis zur erneuten zuweisung, also über die "FC1" Grenze hinaus, für einen ganzen SPS-Zyklus.
Nun, der SPS-Zyklus geht doch vom ersten Bausteinaufruf im OB1 bis zum letzten Bausteinaufruf. Wenn nun der Merker in FC1 zugewiesen wird, so ist er das doch solange, bis der letzte Baustein im OB1 aufgerufen wurde, oder?

Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Helmut: Weiß jetzt nicht, ob ich dich ganz richtig verstanden habe, aber dass beide Lichtschranken zeitgleich belegt werden, ist ein Ausnahmefall, d.h., normalerweise kommt das nicht vor. Und nur für diesen Ausnahmefall soll die Vorrangsregelung gelten.
überleg mal wie lang ein zyklus ist. das sind in der regal maximal 50ms. bei schnelle cpus und wenig programm 1-2 ms.
in diesen ms müssten beide ls geschaltet haben.
in der praxis ist die chance dafür extreeem klein
 
1.)
In Deinem Beispiel kommt die Zuweisung "Status" NUR DANN, wenn beide LS exakt im gleichen Zyklus belegt werden, da die Flankenauswertungen jeweils nur für einen Zyklus aktiv sind.
2.)
Die Flankenauswertung behalten ihr TRUE (normalerweise) jeweils exakt einen Zyklus lang, allerdings nicht von OB1 Anfang bis OB1 Ende sondern exakt von der Stelle, wo sie aufgerufen werden bis zu der Stelle, wo sie wieder aufgerufen werden, was normalerweise im nächsten OB1 Zyklus an exakt der gleichen Stelle ist.
 
überleg mal wie lang ein zyklus ist. das sind in der regal maximal 50ms. bei schnelle cpus und wenig programm 1-2 ms.
in diesen ms müssten beide ls geschaltet haben.
in der praxis ist die chance dafür extreeem klein

Danke volker,

also ist bei meiner "Programmierweise" nicht berücksichtigt, dass die Reaktionszeit einer jeden LS größer ist, als die Zykluszeit, richtig?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn das noch eine Ausnahmesituation ist kommen wir den Lotospiel immer näher ;)
Überlege mal, wenn so ein SPS-Zyklus 10ms dauert und doch noch Tolleranzen bei
der Erfassung wie Sensoren und Eingangskarten einrechnen
musst, wie Synchron die Ereignisse sein müssen. Das ist dann wirklich ein
Glücksfall. Wahrscheinlich wirst du deine Ausnahmesituation nie erfassen.
Schau dir mal das Beispiel von Verpolt an, das ist schon eine bessere Lössung.

Bei den Merker musst du dir das so vorstellen, er wird im FC1 gesetzt, das
Programm durchläuft noch die restlichen Programmzeilen im FC1 und alles
was danach folgt, also was du nach dem Aufruf vom FC1 noch so ausführst.
Dann irgendwann, vlt. nach unendlichen 10ms ist deine CPU am Ende vom
OB1 angekommen und fängt dann einfach wieder von vorne an durchläuft
alles was vor dem Aufruf des FC1 steht, bis es endlich wieder am FC1 an-
kommt. Erst jetzt wird der Merker halt wieder zu "0".
 
1.)
2.)
Die Flankenauswertung behalten ihr TRUE (normalerweise) jeweils exakt einen Zyklus lang, allerdings nicht von OB1 Anfang bis OB1 Ende sondern exakt von der Stelle, wo sie aufgerufen werden bis zu der Stelle, wo sie wieder aufgerufen werden, was normalerweise im nächsten OB1 Zyklus an exakt der gleichen Stelle ist.

Hallo M-Ott,

aber bevor die Zuweisung in der FC1 ein zweites Mal erfolgen könnte, werden ja doch erst noch alle nachfolgenden Bausteine im OB1 durchlaufen. D.h. während diesen ganzen Bausteinaufrufen hat die Flankenauswertung noch immer ihr TRUE, richtig?
 
Ja, und auch im darauffolgenden Durchlauf in allen Bausteinen, die vor dem FC1 aufgerufen werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo M-Ott,

aber bevor die Zuweisung in der FC1 ein zweites Mal erfolgen könnte, werden ja doch erst noch alle nachfolgenden Bausteine im OB1 durchlaufen. D.h. während diesen ganzen Bausteinaufrufen hat die Flankenauswertung noch immer ihr TRUE, richtig?

ja.


Aber wie schon oben gesagt worden ist, müssten in deinem Beispiel die LS beide gleichzeitig am Anfang EINES SPS-Zyklus ein 1-Signal liefern. Dann klappt die Flankenauswertung
 
Wenn das noch eine Ausnahmesituation ist kommen wir den Lotospiel immer näher ;)
Überlege mal, wenn so ein SPS-Zyklus 10ms dauert und doch noch Tolleranzen bei
der Erfassung wie Sensoren und Eingangskarten einrechnen
musst, wie Synchron die Ereignisse sein müssen. Das ist dann wirklich ein
Glücksfall. Wahrscheinlich wirst du deine Ausnahmesituation nie erfassen.
Schau dir mal das Beispiel von Verpolt an, das ist schon eine bessere Lössung.

Lieben Dank für die ausführliche Erklärung, Helmut.

Habe hier nicht an die Zykluszeit gedacht - dachte einfach, wenn die LS2 Ware sieht, so wird eine pos. Flanke gebildet und wenn die LS4 Ware sieht, wird erneut eine pos. Flanke gebildet. So und wenn beide LS gleichzeitig Ware sehen, so werden halt auch die beiden pos. Flanken zeitgleich (also synchron) gebildet...
 
Lieben Dank nochmals an Alle für die Hilfe/Erklärung!

Im Grunde müsste es ja dann auch so klappen, wie im Anhang dargestellt, oder?

Erklärung:

Der Ausgang "Status" wird für einen Programmzyklus gesetzt, wenn der Signalzustand am Eingang der Anweisungsbox von "0" auf "1" wechselt.
 

Anhänge

  • Flanke.jpg
    Flanke.jpg
    5,6 KB · Aufrufe: 22
Zurück
Oben