Step 7 2 boolsche Eingänge konvertiert auf 2 boolsche Ausgänge nach Flanke 0 auf 1

Hoppi

Level-1
Beiträge
20
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Liebe Simaticer,

mittlerweile bin ich als absoluter Anfänger mit meinem spärlichen SPS-Latain am Ende, und bitte euch um etwas Unterstützung in der Lösung meiner Aufgabe.

Mein Chef kam vorgestern zu mir, und bat mich folgende Funktion in Simatic S7 zu programmieren.




Ein Baustein soll 2 boolsche Eingänge (E0.1, E0.2) und einen postiv-Flanke Eingang E33.0 bekommen.

Am Ausgang sollen 2 Ausgänge (A0.1, A0.2) vorhanden sein.

Jedesmal wenn das Flankensignal (E33.0) von 0 auf 1 wechselt, sollen die Eingangszustände (E0.1, E0.2) konvertiert auf die Ausgänge (A0.1, A0.2) dargestellt werden.

Somit soll aus z.B. aus den Eingängen E0.1 = 0 und E0.2 = 0 nach dem die Flanke E33.0 von 0 auf 1 wechselt ist an den Ausgängen das Ergebnis A0.1 = 1 und A0.2 = 1 enstehen.

Oder anders gesagt:

Aus E0.1=1 und E0.2=1 soll bei Flankenwechsel von 0 auf 1 aus A0.1 = 0 und A0.2 = 0 entstehen
Aus E0.1=1 und E0.2=0 soll bei Flankenwechsel von 0 auf 1 aus A0.1 = 0 und A0.2 = 1 entstehen
Aus E0.1=0 und E0.2=1 soll bei Flankenwechsel von 0 auf 1 aus A0.1 = 1 und A0.2 = 0 entstehen
Aus E0.1=0 und E0.2=0 soll bei Flankenwechsel von 0 auf 1 aus A0.1 = 1 und A0.2 = 1 entstehen


Die Ausgangs Bits sollen nach einem positiven Flankenwechsel also immer im Gegenteil der Eingangsbits gesetzt werden.


Ich habe viele Stunden versucht hier eine Lösung zu erzielen, leider ohne Erfolg. Bitte daher dringend um eure fachkundige Unterstützung.
 
Hi,
nicht zu kompliziert denken.

Einfach einen FB erstellen der bei pos. Flanke von E33.0
folgende Anweisung durchläuft:
.
.
.
UN #Eing1 // dein E0.1
= #Ausg1 // stat. Var. im FB
UN #Eing2 // dein E0.2
= #Ausg2 // stat. Var. im FB

bei fallender Flanke, also E33.0 nicht betätigt ans Ende springen
und dort die stat. Var den Ausgängen zuweisen:

U Ausg1
= Out1 // dein A0.1
U Ausg2
= Out2 // dein A0.2
BE

Gruß
Move
 
Hallo ....

UN E0.1
UN E0.2
FP M 1.0
= A 0.1
= A 0.2

U E 0.1
U E 0.2
FP M 1.1
= A 0.1
= A 0.2

Ich als Anfänger würde das so machen. ...ob das jetzt Sinn macht überlasse ich den Profis

[emoji41]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
[COLOR=#333333]UN E0.1[/COLOR]
[COLOR=#333333]UN E0.2[/COLOR]
[COLOR=#333333]FP M 1.0[/COLOR]
[COLOR=#333333]= A 0.1[/COLOR]
[COLOR=#333333]= A 0.2[/COLOR]

[COLOR=#333333]U E 0.1[/COLOR]
[COLOR=#333333]U E 0.2[/COLOR]
[COLOR=#333333]FP M 1.1[/COLOR]
[COLOR=#333333]= A 0.1[/COLOR]
[COLOR=#333333]= A 0.2[/COLOR]
Ich als Anfänger würde das so machen. ...ob das jetzt Sinn macht überlasse ich den Profis
Ziel mehrfach nicht erreicht!
;)

Doppelte Zuweisungen an Ausgänge - die letze gewinnt!
Genau gleiche Zuweisung an beide Ausgänge - wozu bräuchte man dann 2 davon?!
Verknüpfung zwischen E0.1 und E0.2 war nicht gewünscht.
Eingang E33.0 wird überhaupt nicht beachtet.
 
oder evtl. einfacher gedacht, die Ausgänge sind invertiert zu den Eingängen ...
 
Sollte eigentlich ganz easy sein---

U #E_Flanke
FP #stat_1
SPBN ende

SET
U #E0.1
R #A0.1
NOT
S #A0.1

SET
U #E0.2
R #A0.2
NOT
S #A0.2

ende: NOP 0
 
Wenn die Zuweisung übersprungen wird (so wie auch beim Setzen/Rücksetzen), ändert sich an den Ausgängen was? -> Genau - nichts!
;)
 
Zurück
Oben