Positive Flanke erstellen -HILFE-

C

chipchap

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo. Ich will mich erstmal kurt vorstellen. Mein Name ist chipchap und komme aus der Nähe von Koblenz. Ich habe mich vor einem Monat an der Fernschule Weber für den SPS Lehrgang angemeldet.
Und num kommt schon mein erstes Problem, wo ich hoffe das mir jemand helfen kann.

Die Aufgabe lautet:

Mit einem Programm soll erkannt werden, ob ein Eingangssignal EIN eine positive Flanke aufweist. Das Programm "Positive Flanke" soll auf eine solche Flanke am Eingang mit einem Impuls am Ausgang reagieren, der eine Zykluszeit andauert.Der R_TRIG Baustei darf man nicht verwenden, sondern nur nachbauen.

Die Aufgabe kann mit folgender Logik gelöst werden:

Im 1. Netzwerk wird er Ausgang AUS dann gleich 1, wenn der Eingang EIN=1 ist und im Rechenzyklus zuvor 0 war (EIN_ALT = 0). Den Wert des Eingangs im Zyklus zuvor rhält man z.B.: dadurch das man im 2. Netzwerkden Eingang EIN mit sich selbst UND_Verknüpft. Das Ergebnis dieser UND-Verknüpfung weist man an der Variablen EIN-ALT zu.
Dadurch wird am Ende eines jeden Rechenzyklus der Eingangswert EIN abgespeichert, um im nöchsten Rechenzyklus als EIN_ALT zur Verarbeitung zur Verfügung zu stehen.


Diese Hausaufgaben soll man machen ohne noch einmal in das Script zu schauen. Entweder stehe ich so auf dem Schlauch oder es ist eine etwas ungenaue Formulierung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, ich bin Anfänger und sitz den ganzen Tag davor. Ich verstehe nicht warum ich 2 Netzwerke brauch.
Der erste Satz ist klar: Eingang 1 = Ausgang =1
aber und im Rechenzyklus zuvor 0 war. Da fängt es schon an. Soll das heißen das er enfach aus war ??

Sorry, ich schnalls einfach nicht

Wie ist zum Beispiel der R_TRIG aufgebaut. Der wurde noch nicht einmal erwähnt.
 
Zuletzt bearbeitet:
1. Netzwerk

1 UND-Glied mit einem Eingang "EIN" und einem Eingang EIN_ALT negiert

2. Netzwerk

1 UND-GLIED mit einem Eingan "EIN". --> von diesem dann nochmals an das UND-Glied aber negiert und mit dem Namen EIN-ALT

Stimmt das so??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du mußt dir klarmachen, dass eine SPS zyklisch arbeitet.
Es wird also das Programm immer von NW 1 bei NW X abgearbeitet, wenn das Programm dann am Ende ist, beginnt es wieder von vorn.

Wenn du also in NW 1 wie im Text beschrieben, der Eingang direkt mit dem Ausgang verknüpft ist, dann ist er erst einmal False, wenn auch der Eingang False ist.
Nun kommst du ins 2. NW und merkst dort in einem Hilfsbit (ein Merker), wie denn der Zustand deines Eingangs ist.
Logischer Weise ist er nun auch noch False.
Also hast du den Ausgang auf False und den Hilfsmerker False.
Nun kommst du an das Ende des Programms, zwischen den Ende des Programms und dem Anfang werden die Eingänge eingelesen und die Ausgänge geschrieben.
Wenn sich nun der Eingang auf True geändert hat, wird im NW 1 der Ausgang True.
Nun überlegen wir kurz, was der Hilfsmerker zu diesem Zeitpunkt (NW1!!!) für ein Signal führt, Achtung NW2 ist noch nicht bearbeitet worden.
Nächste Überlegung: Welches Signal führt der Merker, wenn auch das NW 2 abgearbeitet ist?

Wenn du das rausgefunden hast, mußt du nur noch überlegen, wie du das im NW 1 durch eine zusätzlich einzufügende Verknüpfung nutzen kannst.
Es soll ja der Ausgang nur genau einen Zyklus lang True sein.

PS: Ich hab das mal noch nicht komplett für sich aufgelöst, denk mal nach, vielleicht klingelte ja nun. ;-)
 
Zuletzt bearbeitet:
Vielen Dank Ralle für die Antwort. Das ist schonmal ne gute Beschreibung und werde mich jetzt mal ransetzen und überlegen?

@ hucki, das sehe ich gebauso. Ein und mit einem Eingang. Aber ein Eingang soll man ja mit sich selber verknüpfen der dann EIN-ALT heißt. Brauch man nicht auch ein SR-Baustein?

Ich finde die Aufgabe ehrlich gesagt kompliziert, da der R_TRIG nicht einmalerwähnt wurde. Aber im Prinzip ist das Teil ja nicht mehr wie eine Abzweigdose, nur erkennt er halt ob positive oder negative Flanke.

Das es Netzwerke gibt ist mir klar, nur wird nicht jedes Netzwerk am Ende zusammen mit dem Ausgang verbunden?. Sorry wenn ich solch komischen FRagen stelle aber mir ist obwohl ich das SCript verstehe hier einigen unklar? Aber Gott sei Dank bin ich nicht der einzige wie ich woanders schon feststellen musste.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So.

Ich habe das jetzt mal wie folgt auf Papier gebracht.

Netzwerk 1: Eingang False --> Baustein --> Ausgang False

Netzwerk 2: Eingang False --> Merker mit negiertem Eingang --> True

Netzwerk 1 wechselt dann auf True und gibt es an Netzwerk 2 weiter.
Und der Zyklus wird dann wieder False.


Passt das??

Was mir halst noch fehlt ist der selbstverknüpfte Eingang. Brauch ich nicht noch ein SR Glied?
 
Zuletzt bearbeitet:
Im Netzwerk 2 mußt du nicht unbedingt negieren.
Du mußt dir überlegen, was du mit dem Merker aus Netzwerk 2 machen willst und machen kannst! Der muß ja schließlich für irgendwas gut sein!!! :)

Das Problem ist, du kannst das nicht so ohne weiteres im Status sehen, wenn du eine SPS oder einen Simulator hast, ein Zyklus ist zu schnell.
Deswegen kann man sich in NW 3 einen 2. Merker setzen, der z.Bsp. mit

U A …
S M 2.0

verknüpft ist.

Falls du alles richtig hast, muß der Eingang auf True geschaltet werden, dann schaltet der Ausgang auf True, dann der Merker 1 auf True, dann der Merker 2 auf True, dann beginnt das es wieder bei NW1
Der Ausgang sollte nun False werden (das fehlt dir noch in deiner Verknüpfung, der Merker 1 bleibt True (der Eingang ist ja noch True), der Merker 2 ist True (ist ja mit Setze M… beschaltet worden).

Wenn du den Eingang wieder auf False schaltest, dann bleibt der Ausgang auf False, der Merker 1 wird False und Merker 2 bleibt True (den mußt du per Force oder in der Variablentabelle zurücksetzen.)

Merker 2 zeigt dir nur an, dass die Flanke auch wirklich kurz da gewesen ist!
 
Sorry, aber ich verstehe nur Bahnhof.Bei mir gibt es kein 3. Netzwerk Wie kann die Fernschule solch eine Aufgabe im ersten Bogen stellen wo sowas noch nicht einmalordentlich beschrieben ist, wenn überhaupt. Ich lass mir das ganze nochmal durch den Kopf gehen.

Vor 2 Monaten habe ich angefangen für mich SPS zu lernen. Im Internet gibt es da ne super Seite zu. Die Fallen direkt mit der Tür ins Haus ohne einmal die grundliegenden Dinge zu erläutern.
Die kommen komischerweise rst im 2. Bogen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
dadurch das man im 2. Netzwerkden Eingang EIN mit sich selbst UND_Verknüpft
:ROFLMAO:
Vergiss dieses Deutsch, da hat einer hochwissenschaftlich die FUP-Ansicht des gewünschten Codes in Umgangssprache zurückübersetzt :ROFLMAO:*ROFL*
Wo ist der Sinn, etwas mit sich selber UND-Verknüpfen? Etwa "ICH UND ICH = ICH"??

Schalte die FUP-Ansicht in die KOP-Ansicht oder AWL-Ansicht und siehe, daß eine simple Bit-Kopieroperation gemeint ist: Lesen des Bits "EIN" mit U und schreiben in die Variable "EIN_ALT" mit =


Die Aufgabe lautet:

Mit einem Programm soll erkannt werden, ob ein Eingangssignal EIN eine positive Flanke aufweist. Das Programm "Positive Flanke" soll auf eine solche Flanke am Eingang mit einem Impuls am Ausgang reagieren, der eine Zykluszeit andauert.Der R_TRIG Baustei darf man nicht verwenden, sondern nur nachbauen.

Die Aufgabe kann mit folgender Logik gelöst werden:

Im 1. Netzwerk wird er Ausgang AUS dann gleich 1, wenn der Eingang EIN=1 ist und im Rechenzyklus zuvor 0 war (EIN_ALT = 0). Den Wert des Eingangs im Zyklus zuvor rhält man z.B.: dadurch das man im 2. Netzwerkden Eingang EIN mit sich selbst UND_Verknüpft. Das Ergebnis dieser UND-Verknüpfung weist man an der Variablen EIN-ALT zu.
Dadurch wird am Ende eines jeden Rechenzyklus der Eingangswert EIN abgespeichert, um im nöchsten Rechenzyklus als EIN_ALT zur Verarbeitung zur Verfügung zu stehen.
Ich glaube ich kann mich in den Aufgabesteller hineindenken und übersetze mal:
Code:
Netzwerk 1: // AUS = 1 wenn jetzt EIN = 1 ist und vorher EIN = 0 war (jetzt EIN_ALT = 0 ist)
"AUS" := "EIN" AND NOT "EIN_ALT"

Netzwerk 2: // Zustand von EIN für nächsten Zyklus in EIN_ALT merken
"EIN_ALT" := "EIN"

Du mußt nun meinen Pseudocode noch in AWL/KOP/FUP umwandeln - es ist ja Deine Übungsaufgabe.
Es ist nicht einfach die Lösung zu erklären ohne sie direkt hinzuschreiben.

Harald
 
Ich danke Euch für Eure Mühe. Natürlich will ich nicht die direkte Lösung haben. In der Aktualisierung von den Aufgaben steht jetzt:

Projekt „Positive Flanke“

Mit einem Programm soll erkannt werden, ob ein Eingangssignal EIN eine positive Flanke (Signalwechsel von 0 nach 1) aufweist. Das Programm „PositiveFlanke“ soll auf eine solche Flanke am Eingang mit einem Impuls am Ausgang reagieren, der eine Zykluszeit andauert. Sie sollen also den in vielen Steuerungen in einer Bibliothek abgelegten Funktionsbaustein "R_TRIG" nachbilden. Sie dürfen "R-TRIG" nicht verwenden!

Die Aufgabe kann mit folgender Logik gelöst werden:

Zunächst wird der Ausgang AUS dann gleich 1, wenn der Eingang EIN=1 ist und im Rechenzyklus zuvor 0 war (EIN_ALT = 0). Danach bestimmt man für den nächsten Rechenzyklus den alten Wert des Eingangs, indem man den Eingang EIN mit der Funktion „MOVE“ dem internen Signal „EIN_ALT“ zuweist oder dadurch ermittelt, dass man EIN mit sich selbst UND-verknüpft. Dadurch wird am Ende eines jeden Rechenzyklus der Eingangswert EIN abgespeichert, um im nächsten Rechen*zyklus als EIN_ALT zur Verarbeitung zur Verfügung zu stehen


17.2.1 Lösung nach IEC
(8 Punkte)

Zeichnen Sie den Funktionsplan des Programms „PositiveFlanke“ in der IEC-Funktionsbausteinsprache FBS.



Was ist ein MOVE. Hatte noch keine Zeit zum google. Die Kinder lassen mich nicht
 
Du denkst gerade zu kompliziert und siehst dadurch das eigentlich einfache nicht!

Das 1. Netzwerk ist durch, dass hast Du.
2. Netzwerk:
den Eingang EIN mit sich selbst UND_Verknüpft.
Ein UND mit zwei Pins, was steht am ersten, was am zweiten Pin des UNDs?
(Oder den 2. Pin des UNDs ganz weglassen, also ein UND mit nur einem Pin. Das versuchten hier alle zu erklären)

Nach dem UND:
Das Ergebnis dieser UND-Verknüpfung weist man an der Variablen EIN-ALT zu.
 
Aber ganz am Anfang hatte ich solch einen Eingang.
Ja, aber leider auch noch Sachen, die nicht in der Beschreibung standen:
2. Netzwerk

1 UND-GLIED mit einem Eingan "EIN". --> von diesem dann nochmals an das UND-Glied aber negiert und mit dem Namen EIN-ALT
Die bewirken nun mal auch einen Misserfolg!


Und was Du jetzt wirklich verstanden hast oder nicht kann man auch nicht nachvollziehen, da Du es so gut wie nie schaffst, auf gestellte Fragen direkt zu antworten!
:roll:
 
Zurück
Oben