Stapelspeicher Strukturierte Text

Warum setzt Du Deinen ersten Thread nicht fort? Ich könnte mich jetzt dumm stellen und fragen: Welche SPS? LIFO oder FIFO?
Ich gehe aber davon aus, dass es immer noch um den FIR-FB in ST nach IEC61131-3 geht. Da musst Du den FIFO selbst programmieren, also mit einem Array für die Daten und normalwerweise mit Indexvariablen für die aktuelle Schreib- und Leseposition. Für die konkrete Anwendung kommst Du aber auch mit nur einem Indexzeiger aus, weil Du mit dem Lesen erst beginnst, nachdem der FIFO voll ist und er dann auch voll bleibt.
 
Zuletzt bearbeitet:
Du brauchst ein Array[0..n-1] of irgendwas und eine INT-Indexvariable. Wenn Du einen Wert eintragen willst, schreibst Du ihn in Array[Index] und erhöhst danach den Index um 1. Wenn der Index dabei n erreicht, setzt Du ihn wieder auf 0.
So, und jetzt bist Du an der Reihe. Schreib mal was und poste das hier, dann sehen wir weiter.
 
Ich habe dies Bsp im forum gefunden und kannst das auch für meine aufgabe anweden aber da ich die Dateb von Sensoren bekomme und diese nur in einem festen Zeitraster brauche ich einen Zeitgeber, welcher mir sagt wann die Werte zur Verfügung sind. Nur dann kann ich den Wert in meinem Array speichern. M.a.W möchte ich wissen wie man eine Zeitfunktion in ST abfrägt? Danke für die Anwort.
VAR_GLOBAL
LISTE:ARRAY[0..n-1] OF INT;
zeige_start:INT:= 1;
zeige_ende:INT:= 0;
END_VAR



FUNCTION FIFO : BOOL
VAR_INPUT
WERT:INT;
END_VAR
VAR

(*FIFO Funktion zum Schreiben der Werte.*)

LISTE[zeige_start]:= WERT;

IF zeige_start >= n-1 THEN

zeige_start:=1;

ELSE

zeige_start:=zeige_start+1;

END_IF;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit "schreib mal was" meinte ich, dass Du selbst ein Programm schreibst, und nicht ein irgendwo gefundenes Code-Schnipsel postest und dessen Ungereimtheiten auch noch unkommentiert lässt. Wenn es immer noch um den FIR-FB geht, dann sollst Du einen beliebig oft instanziierbaren Funktionsbaustein für eine Bibliothek schreiben. Das bedeutet
1) Der Aufruf des FB's gehört nicht zu Deiner Aufgabe,
2) Du kannst da nicht mit globalen Variablen und einer Funktion ankommen.
Bevor wir hier weitermachen, sollten wir prüfen, ob das überhaupt Sinn macht:
Welche SPS-Kenntnisse bringst Du mit?
Wieviel Zeit hast Du für die Aufgabe?
Hast Du ein IEC61131-Entwicklungssystem auf Deinem PC, mit dem Du Programme auch simulieren kannst (z. B. Beckhoff TwinCat)?
 
Ich habe SPS Grundkenntnisse (Vorlesungen, laboren) die Aufgabe muss ich bis Freitag machen,
ich habe kein IEC61131-Entwicklungssystem aber ich werde TwinCAT installieren
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe SPS Grundkenntnisse (Vorlesungen, laboren) die Aufgabe muss ich bis Freitag machen,
ich habe kein IEC61131-Entwicklungssystem aber ich werde TwinCAT installieren
Das wird eine ziemlich sportliche Angelegenheit, aber man soll nichts unversucht lassen. Nimm TwinCat 2, das reicht für die Aufgabe völlig aus. Wenn Du das installiert hast, versuch mal, das von Dir gefundene Codebeispiel in einem Projekt einzugeben und zu übersetzen.
 
Zurück
Oben