Flankenabfrage ähnlich wie bei S7-200

blue dun

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

gibt es eigentlich in Step7 eine Flankenabfrage ähnlich der von MicroWin?
Möchte unter anderem das Signal eines Tasters für nur einen Zyklus durchschalten. Habe zwar schon das eine oder hier gefunden, aber irgendwie stehe ich auf dem Schlauch

Vielen Dank und Gruß

blue dun
 
hm, das war ein Mißverständnis, ich habe die Funktion an sich schon gefunden, nur begreife ich nicht, wie sie korrekt gebraucht wird, um das gewünschte Ergebnis zu erzielen

Bei MicroWin sieht es ja stilisiert etwa so aus.

-|e0.0|--|P|--(a0.0)
Wenn der Eingang kommt wird das Signal genau für einen Zyklus durchgeschaltet, der Ausgang kommt also nur für einen Zyklus
Habe das so in Step7 probiert, aber das Signal wird dauerhaft durchgeschaltet.

Gruß

blue dun
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In AWL sieht das ganze so aus!

U E0.0
FP M0.0
= M0.1

Der M0.0 wird als Hilfsmerker verwendet und spiegelt letztendlich nur den E0.0 wieder!
M0.1 ist dann dein gewünschter Impuls der genau für eine Zykluszeit ansteht!

Gruß
SKg
 
Euch allen meinen Dank!

Das was Ihr mir geschrieben habt, stimmte natürlich alles, allein es funzte bei mir nicht - wenn jetzt einer lacht bin ich sauer:
Für die Adresse des Hilfsmerkers habe ich eine temporäre Variable bei den Lokaldaten genommen. Darum hat das Ding jeden Zyklus neu durchgeschaltet.

Bin einfach noch zu unbedarft bei Step7

Danke Euch aber nochmal für die Mühe!

Gruß
blue dun
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Euch allen meinen Dank!

Das was Ihr mir geschrieben habt, stimmte natürlich alles, allein es funzte bei mir nicht - wenn jetzt einer lacht bin ich sauer:
Für die Adresse des Hilfsmerkers habe ich eine temporäre Variable bei den Lokaldaten genommen. Darum hat das Ding jeden Zyklus neu durchgeschaltet.

Bin einfach noch zu unbedarft bei Step7

Danke Euch aber nochmal für die Mühe!

Gruß
blue dun

Du hast doch deinen Fehler schon gefunden.
Nimm einfach wie empfohlen einen Merker

bike
 
hatte es mit dem Merker bereits erfolgreich probiert, wollte aber meinen Fehler "öffentlich machen", so daß andere Suchende zumindest diesen Fehler bei sich ausschließen können...

Gruß

blue dun
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du hast doch deinen Fehler schon gefunden.
Nimm einfach wie empfohlen einen Merker

bike

so einfach und pauschal würd ich das nicht sagen.
schließlich ist ja unklar ob es sich um eine gekapselte Funktion handelt oder nicht.
handelt es sich um eine solche ist die Verwendung eines Merkes nicht zu empfehlen.
 
so einfach und pauschal würd ich das nicht sagen.
schließlich ist ja unklar ob es sich um eine gekapselte Funktion handelt oder nicht.
handelt es sich um eine solche ist die Verwendung eines Merkes nicht zu empfehlen.
Das hast du wohl nicht ganz unrecht, doch die Fragestellung zeigt eigentlich, dass es hier um Grundlagen geht.
Da ist noch ein Weg dazwischen bis zum Schreiben von Bausteinen in Bibliotheken oder ähnliches.

bike
 
Beschreibung einer Flankenbildung

Ich versuch mal die bildung einer Flanke zu erklären und dann wird man sehen warum eine Lokaldaten Variable nicht Funktioniert!

Man kann das Ganze auch anders schreiben!

1.Netwerk

U E0.0
UN A0.0
= M0.1
U M0.1
S M0.0
UN E0.0
R M0.0

2.Netzwerk
U M0.1
= A0.0

Hier ist der M0.1 der Impuls und wichtig ist das in 2 Netzwerken geschrieben wird!

Jetzt zur Beschreibung! (ich hoffe ich bekomme das noch hin, ist lange her)

Im ersten durchlauf wird das PAE und das Verknüpfungergebnis gebildet!
Im zweiten durchlauf wird das PAA geschrieben!

Wenn man anstatt des des M0.0 eine Lokaldatenvariable nemen würde funktioniert das ganze nicht weil die L-Variable seinen zustand nach dem ersten Zyklusdurchlauf verliert.

Lokaldaten sind also nur innerhalb des selben Bausteines zu verwenden!

Gruß
SKg
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
...nicht weil die L-Variable seinen zustand nach dem ersten Zyklusdurchlauf verliert.

Da wär ich mir nicht ganz so sicher. Wenn du eine L-Variable setzt und diesen Baustein nur 1 mal aufrufst, dann ist diese noch vorhanden. Zumindest oftmals. Es ist also nicht ganz sicher, ob diese ihren Zustand verliert...

MFG wolder
 
Da wär ich mir nicht ganz so sicher. Wenn du eine L-Variable setzt und diesen Baustein nur 1 mal aufrufst, dann ist diese noch vorhanden. Zumindest oftmals. Es ist also nicht ganz sicher, ob diese ihren Zustand verliert...

MFG wolder

öhm, nö! :rolleyes:
wenn du nur diesen EINEN Baustein EINMAL aufrufst.
sobald mehr als ein Baustein in der CPU ist funktionierts schon nicht mehr (sicher).
übrigens: im OB1 funktioniert es mit Lokalvariablen ;-)
 
Ich hatte es schon ein paar mal, dass ich einen parametrierbaren FC mit lokalvariablen ausgestattet hatte, die beim nächsten Aufruf dieses FC immer noch vorhanden waren....
Zumindest als ich am Anfang mit den parametrierbaren Bausteinen angefangen habe. Ich hab es dann meistens vermieden mit den L-Variablen in diesen Bausteinen zu arbeiten. Kommt halt immer drauf an wie ich die verwende.

Ich wollte eigentlich nur sagen, dass man sich nicht darauf verlassen darf, dass die L-Variablen nach beendigung des Bausteins vollständig gelöscht werden.

Gruß wolder
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich wollte eigentlich nur sagen, dass man sich nicht darauf verlassen darf, dass die L-Variablen nach beendigung des Bausteins vollständig gelöscht werden.

hättest du das sagen wollen, dann hättest du das sagen sollen!

und evtl. in sofern konkretisieren, dass der Lokalstack beim Bausteinwechsel nicht aktiv gelöscht wird, sondern einfach überschrieben wird.

das hat zur Folge, dass
a) der Zustand nicht immer eindeutig definiert ist und
b) lokale Variablen vor der ersten Verwendung initialisiert werden müssen
 
Zurück
Oben