Puffer Initialisierung

PHANTOMIAS

Level-1
Beiträge
30
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle!

Hänge nochmals an einem Problem bzw. daran ob das was ich umgesetzt habe korrekt ist.
Aufgabenstellung:
info.jpg
init.jpg


Folgendes habe ich nun im OB1 realisiert:
Code:
       U    "PufferReset"
       CC   "InitPuffer"
und im FC "InitPuffer":
Code:
       L    P#       40.0
       T    "Pointer"
       S    "PufferFrei"
       R    "PufferVoll"
Ich rufe den FC "InitPuffer" nur dann auf wenn "PufferReset" gedrückt bzw. 1 ist.
Danach lade ich den Pointer und transferiere ihn in "Pointer".
Dann Setzen bzw. Rücksetzen von "PufferFrei" und "PufferVoll".
Ist dies so korrekt von mir gedacht oder vergesse ich da etwas? habe noch gedacht, dass ich vielleicht im FC schreiben sollte:
Code:
       U    "PufferVoll"
       SPB  INIT
       BE
INIT  :NOP  1
       L    P#       40.0
       T    "Pointer"
       S    "PufferFrei"
       R    "PufferVoll"
Was meint ihr dazu?

Gruß -PHANTOMIAS-
 
Die ersten beiden Codeschnipsel passen für mich zu der Aufgabe ...
Was du mit dem dritten bezweckst, kann ich nicht nachvollziehen.
Das Eintragen der Messwerte in den Puffer fehlt mir noch vollständig ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay, wunderbar, dann kann ich ja weitermachen mit der Aufgabe.
Das Schreiben in den Puffer kommt als Nächstes und ist zugleich das Letzte, da ich alles Andere schon programmiert habe oder es vorgegeben ist.

Gruß -PHANTOMIAS-
 
Hallo PHANTOMIAS,

den dritten Codeschnippsel solltest du noch einmal überdenken.

Code:
       U    "PufferVoll"
       SPB  INIT
       BE
INIT  :NOP  1

...könntest du vereinfachen durch
Code:
       UN    "PufferVoll"
       BEB

..aber:

Da es sich um eine Function (FC) handelt, sollten alle Ausgänge in jedem Zyklus beschrieben werden! Bei deine Ausgängen, die nach dem bedingten BE kommen, ist das ncht der Fall!


Gruß, Onkel
 
Hallo Onkel,

den dritten Code-Teil verwende ich gar nicht.
Nach "Larry Laffer" brauche ich den gar nicht, sondern es reicht der zweite Code-Teil und darin ist kein Sprung enthalten und es sollte alles gesetzt sein, oder?

Aber deine Vereinfachung zu
UN "PufferVoll"
BEBist mir nicht ganz klar.
Bedeudet das, ich brauche keinen Sprung, sondern es läuft weiter wenn das VKE 1 ist? Also ist "PufferVoll" 0 so läuft das einfach über BEB drüber weg und bei "PufferVoll" 1 hört es bei BEB auf.

Gruß -PHANTOMIAS-
 
Okay, aber ich kann den zweiten Code-Teil verwenden und somit brauche ich den dritten Code-Teil nicht mehr zu beachten.

Aber wieder was gelernt, sehr gut :)
 
Zurück
Oben