Aufgabe zur SPS Programmierung - Flanke in FBS

Scat1980

Level-2
Beiträge
22
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.
Ich bin Neu hier und habe seit paar Wochen angefangen SPS zur studieren.
Eine der ersten Aufgaben kann ich irgendwie nicht verstehen.

Aufgabe lautet:

Es geht in dieser Aufgabe darum, einen vorgegebenen Text so genau wie möglich in Funktionsbausteinsprache (FBS) zu übersetzen.
Sie sollen ein Programm mit dem Namen „Flanke“ erstellen. Darin wird aus dem booleschen Eingangssignal „EIN“ mit der in folgendem Text angegebenen Logik ein boolesches Ausgangssignal „AUS“ ermittelt.

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 aktuellen Wert des Eingangs, indem man den Eingang „EIN“ mit der Funktion „AND“ mit sich selbst verknüpft und dann dem internen Signal „EIN_ALT“ zuweist. Dadurch wird am Ende eines jeden Rechenzyklus der Eingangswert „EIN“ als „EIN_ALT“ abgespeichert, damit im nächsten Rechenzyklus der Wert von „EIN“ aus dem vorherigen Rechenzyklus als „EIN_ALT“ wieder zur Verarbeitung zur Verfügung steht.

Erstellen Sie das Programm „Flanke“ mit Deklarationsteil und Rumpf, den Sie in Funktionsbausteinsprache (FBS) zeichnen.

Können sie mir helfen?
Danke.
 
Zuletzt bearbeitet von einem Moderator:
indem man den Eingang „EIN“ mit der Funktion „AND“ mit sich selbst verknüpft und dann dem internen Signal „EIN_ALT“ zuweist.
Wo wird eine Programmieraufgabe derart umständlich formuliert? Soll da wirklich wegen "so genau wie möglich" ein Signal mit sich selbst AND-verknüpft werden? Dann müsste das ungefähr so aussehen:
Code:
    +---+  EIN_ALT
EIN-| & |   +---+
EIN-|   |---| = |
    +---+   +---+
So programmiert aber niemand.

Für welches Programmiersystem oder welche SPS das programmiert werden soll, ist nicht vorgeschrieben?
Hast du schon eine KI gefragt mit der Aufgabenstellung? Versteht die KI die Aufgabe nicht oder verstehst du die Antwort nicht? ;)

Du tust mir richtig leid, dass du nach ein paar Wochen SPS-Studium noch nicht einmal 3 total ausführlich formulierte Sätze 1:1 in FBS übersetzen kannst. Woran hängt es bei dir?
Die Übersetzung des ersten Satzes zeige ich dir aber trotzdem nicht. Tipp: der sieht fast genau so aus wie die gezeigte Übersetzung des zweiten Satzes. Das solltest du schon selber hinkriegen, damit an der Lösung überhaupt etwas von dir ist...

PS: Es wäre besser gewesen, wenn du für deine Hausaufgabe ein eigenes Thema erstellt hättest, weil deine Frage mit dem Thema hier fast nichts zu tun hat, außer den Wörtchen "SPS" und "ich verstehe nichts"...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wo wird eine Programmieraufgabe derart umständlich formuliert? Soll da wirklich wegen "so genau wie möglich" ein Signal mit sich selbst AND-verknüpft werden? Dann müsste das ungefähr so aussehen:
Code:
    +---+  EIN_ALT
EIN-| & |   +---+
EIN-|   |---| = |
    +---+   +---+
So programmiert aber niemand.

Für welches Programmiersystem oder welche SPS das programmiert werden soll, ist nicht vorgeschrieben?
Hast du schon eine KI gefragt mit der Aufgabenstellung? Versteht die KI die Aufgabe nicht oder verstehst du die Antwort nicht? ;)

Du tust mir richtig leid, dass du nach ein paar Wochen SPS-Studium noch nicht einmal 3 total ausführlich formulierte Sätze 1:1 in FBS übersetzen kannst. Woran hängt es bei dir?
Die Übersetzung des ersten Satzes zeige ich dir aber trotzdem nicht. Tipp: der sieht fast genau so aus wie die gezeigte Übersetzung des zweiten Satzes. Das solltest du schon selber hinkriegen, damit an der Lösung überhaupt etwas von dir ist...

PS: Es wäre besser gewesen, wenn du für deine Hausaufgabe ein eigenes Thema erstellt hättest, weil deine Frage mit dem Thema hier fast nichts zu tun hat, außer den Wörtchen "SPS" und "ich verstehe nichts"...
Danke für nichts.
Beleidigent werden muß man auch nicht nur weil ich Anfänger bin.
 
Hast du schon eine KI gefragt mit der Aufgabenstellung? Versteht die KI die Aufgabe nicht oder verstehst du die Antwort nicht? ;)
Du tust mir richtig leid, dass du nach ein paar Wochen SPS-Studium noch nicht einmal 3 total ausführlich formulierte Sätze 1:1 in FBS übersetzen kannst. Woran hängt es bei dir?
Das war tatsächlich nicht notwendig.
 
Hast du schon eine KI gefragt mit der Aufgabenstellung?
Also mich hat es gerade intressiert was GEMINI daraus macht und den Text 1 zu 1 Kopiert das Ergebniss....
Eingabe:
Es geht in dieser Aufgabe darum, einen vorgegebenen Text so genau wie möglich in Funktionsbausteinsprache (FBS) zu übersetzen.
Sie sollen ein Programm mit dem Namen „Flanke“ erstellen. Darin wird aus dem booleschen Eingangssignal „EIN“ mit der in folgendem Text angegebenen Logik ein boolesches Ausgangssignal „AUS“ ermittelt.

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 aktuellen Wert des Eingangs, indem man den Eingang „EIN“ mit der Funktion „AND“ mit sich selbst verknüpft und dann dem internen Signal „EIN_ALT“ zuweist. Dadurch wird am Ende eines jeden Rechenzyklus der Eingangswert „EIN“ als „EIN_ALT“ abgespeichert, damit im nächsten Rechenzyklus der Wert von „EIN“ aus dem vorherigen Rechenzyklus als „EIN_ALT“ wieder zur Verarbeitung zur Verfügung steht.

Erstellen Sie das Programm „Flanke“ mit Deklarationsteil und Rumpf, den Sie in Funktionsbausteinsprache (FBS) zeichnen.
Ausgabe:
**FBS Flanke**

**Deklarationsteil:**

VAR
EIN: BOOL; // Eingangssignal
AUS: BOOL; // Ausgangssignal
EIN_ALT: BOOL; // Hilfsvariable zum Speichern des alten Eingangswerts

**Rumpf:**

AUS := (EIN = 1) AND (EIN_ALT = 0);

EIN_ALT := EIN AND EIN;

**ENDE_FBS**
Erläuterung:

  • Im Deklarationsteil werden die Variablen EIN, AUS und EIN_ALT deklariert. EIN und AUS sind vom Typ BOOL, d.h. sie können die Werte TRUE oder FALSE annehmen. EIN_ALT dient als Hilfsvariable zum Speichern des alten Eingangswerts.
  • Im Rumpf des Funktionsbausteins wird zunächst der Wert des Ausgangssignals AUS berechnet. Dazu wird eine logische Verknüpfung (AND) der beiden Signale EIN und EIN_ALT verwendet. Das Ergebnis dieser Verknüpfung ist nur dann TRUE, wenn beide Signale TRUE sind. Dies bedeutet, dass das Ausgangssignal AUS nur dann auf TRUE gesetzt wird, wenn das Eingangssignal EIN auf TRUE wechselt, nachdem es zuvor auf FALSE war.
  • Im Anschluss wird der aktuelle Wert des Eingangssignals EIN in die Hilfsvariable EIN_ALT kopiert. Dies geschieht durch eine erneute logische Verknüpfung des Signals EIN mit sich selbst. Dadurch wird sichergestellt, dass EIN_ALT am Ende jedes Rechenzyklus den aktuellen Wert von EIN enthält.
Funktionsweise:

Das Programm "Flanke" erzeugt ein Flankensignal am Ausgangssignal AUS, wenn das Eingangssignal EIN von FALSE auf TRUE wechselt. Das Ausgangssignal bleibt solange auf TRUE, bis das Eingangssignal wieder auf FALSE fällt.

Beispiel:

Angenommen, das Eingangssignal EIN hat folgende Werte:

0 0 1 1 0 0 0 1

Das Ausgangssignal AUS hat dann folgende Werte:

0 0 1 0 0 0 0 1

Wie man sieht, erzeugt das Programm "Flanke" ein Flankensignal am Ausgangssignal AUS, wenn das Eingangssignal EIN von FALSE auf TRUE wechselt. Das Ausgangssignal bleibt solange auf TRUE, bis das Eingangssignal wieder auf FALSE fällt.

Hinweis:

Dieses Programm ist ein einfaches Beispiel für die Implementierung einer Flankenauswertung in FBS. In der Praxis können komplexere Flankenauswertungen erforderlich sein, die z.B. die Unterscheidung zwischen steigenden und fallenden Flanken oder die Berücksichtigung von Impulsen mit einer bestimmten Mindestdauer erfordern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also mich hat es gerade intressiert was GEMINI daraus macht und den Text 1 zu 1 Kopiert das Ergebniss....
Schade. Die KI versteht die explizite Forderung "in Funktionsbausteinsprache (FBS) übersetzen" also nicht. Und das "mit sich selbst verknüpft" macht die KI tatsächlich so sinnfrei 1:1 ... Diese Antwort kann der sich beleidigt fühlende Anfänger also nicht präsentieren. Muss er wohl noch weiter warten. Oder die eine noch fehlende Zeile selbst in FBS programmieren. Und einen richtigen Deklarationsteil mit INPUT, OUTPUT und VAR erstellen.
 
Gemini ist nur ne Textverabeitung visuell wirds schwierig. Hab den Text vor dem Programm nicht Kopiert in dem Gesagt wird dass es so in FBS implementiert werden kann. hab mal nach codesys FUP gefragt das wirds richtig lustig das ist nicht lesbar.
Siemens FUP:

**FUP-Programm Flanke**

**Variablen:**

* EIN: Eingang (BOOL)
* AUS: Ausgang (BOOL)
* EIN_ALT: Hilfsvariable (BOOL)

**Netzwerk 1:**

**Flankenauswertung**

| | | | |
|---|---|---|---|
| | | | EIN |
| | | P | AUS |
| | N | | EIN_ALT |

**Netzwerk 2:**

**Zuweisung EIN_ALT**

| | | | |
|---|---|---|---|
| | | | EIN |
| | | | EIN_ALT |

**ENDE_FUP**

Hab auch mal nochmal zusammenfassen lassen was die Aufgabe von einem will um zu verstehen was die KI denn meint lösen zu wollen:

Aufgabe: Flanke in Funktionsbausteinsprache (FBS)​

Ziel:
Erstellen Sie ein SPS-Programm namens "Flanke", welches ein boolesches Ausgangssignal "AUS" basierend auf dem booleschen Eingangssignal "EIN" und der beschriebenen Logik berechnet.
Funktionsweise:
  • Das Ausgangssignal "AUS" wird auf 1 gesetzt, wenn der Eingang "EIN" aktuell 1 ist und im vorherigen Zyklus 0 war.
  • Der aktuelle Wert des Eingangs "EIN" wird für den nächsten Zyklus gespeichert, indem "EIN" mit sich selbst verknüpft ("EIN AND EIN") und dem internen Signal "EIN_ALT" zugewiesen wird.
Ich weiß nicht wer so Aufgaben erstellt aber beliebt hat sich die Person sicher nicht gemacht.... ich hab sie nicht mal gelesen...
 
Hallo zusammen.
Eine der ersten Aufgaben kann ich irgendwie nicht verstehen.

Aufgabe lautet:
...

Können sie mir helfen?
Danke.
Helfen wobei?
Stell doch deine Frage, was du nicht verstehst oder teil hier deinen Lösungsansatz oder oder oder.
Soll die "Hilfe" die fertige Lösung sein?

Ich weiß nicht wer so Aufgaben erstellt aber beliebt hat sich die Person sicher nicht gemacht.... ich hab sie nicht mal gelesen...
Aber für zwei sinnfreie Posts hat's gereicht.
 
Aha, ein Bild mit einem Lösungsansatz. Wir sehen nun, dass das wie Codesys aussieht. Da brauchst du meine Nachfrage nicht mehr beantworten.
Zu deinem Entwurf:
Wo steht in der Aufgabenstellung was von Setzen und Rücksetzen und RS/SR?
Versuche nicht, alles in eine einzige Verknüfung zu quetschen, das wird nichts. Die Lösung ist zwei unabhängige Verknüpfungen, jeweils mit 1x AND und eine Zuweisung. Nichts weiter.
Dann sehe ich keine Eingänge und keine Ausgänge, sondern nur Variablen. Soll das Programm (sinnvollerweise) vielleicht in einem FB (Function Block) erstellt werden?
 
Es gibt dem Move Befehl.
Das war die Antwort auf meine Frage:
PS: Frage an die Experten: gibt es in Codesys FBS den Operator AND auch mit nur einem Eingang? Oder wie sieht simples Kopieren eines BOOL aus?

Danke. Bis jetzt habe ich nur AND, OR, RS, SR im Programm daher glaube ich nicht das das richtig ist.
Du sollst ja laut Aufgabenstellung EIN mit sich selbst per AND verknüpfen. Jetzt verstehe ich auch den Sinn dahinter, weil es hier um Codesys geht, was du uns aber nicht mitgeteilt hast. (man sieht es nur an deinem Bild).

Hast du nun die eine noch fehlende Zeile in FBS übersetzt oder wartest du, das das jemand für dich macht?
 
Das war die Antwort auf meine Frage:



Du sollst ja laut Aufgabenstellung EIN mit sich selbst per AND verknüpfen. Jetzt verstehe ich auch den Sinn dahinter, weil es hier um Codesys geht, was du uns aber nicht mitgeteilt hast. (man sieht es nur an deinem Bild).

Hast du nun die eine noch fehlende Zeile in FBS übersetzt oder wartest du, das das jemand für dich macht?
Es geht nicht nur um CODESYS, die Aufgabe soll auch in STEP7 und TIA gelöst werden
 

Anhänge

  • Screenshot 2024-07-10 082637.png
    Screenshot 2024-07-10 082637.png
    12,9 KB · Aufrufe: 60
Es geht nicht nur um CODESYS, die Aufgabe soll auch in STEP7 und TIA gelöst werden
Der Ansatz ist schon gut, aber die Zuweisungen sind noch falsch.

Überleg am besten mal laut für dich, was gerade in deinem Code steht. Ich hab für solche Zwecke eine kleine Stoffschildkröte an meinem Arbeitsplatz, weil eine Quietsche-Ente nicht so cool aussieht. (Stichwort: Quietscheentchen-Debugging)
 
Zurück
Oben