REAL Wert einlesen und speichern

Franzmann

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen !
Ich bin noch recht neu in der Simatic Welt und habe hier eine vielleicht recht "dumme" Frage.
Ich moechte einen Analogwert (REAL) einmalig einlesen . Danach moechte ich eine Zeit X warten und den Wert erneut einlesen ohne den anderen zu überschreiben. Wenn ich beide Werte habe moechte ich Sie miteinander vergleichen.
Das ist auch nicht das Problem , ich weiss nur nicht wie ich mir die Momentaufnahmen der Werte holen kann / abspeichern kann.
Wenn mir hier jemand einen Tip geben koennte / mir helfen koennte waere das echt klasse !
Ich benutze den Simatic Manager und habe STEP7 V5.2 SP1 Hotfix8
mfg
Frank
 
... da will ich mal versuchen, dir auf die Sprünge zu helfen ...

Die Geschichte mit den Zeiten bekommst du warscheinlich hin ...?

In dem Moment, wo "Zeit 1" abgelaufen ist liest du den ersten Wert ein und bildest dir eine Flanke für "Eingelesen". Diese Flanke benutzt du um "Zeit 2" zu starten. Ist diese abgelaufen, so verfährst du wie bei Wert 1 mit einer weiteren Flanke. Diese Flanke benutzt du dann für "Start Auswertung". Nun kannst du ggf. wieder von vorn anfangen.

Deine Stichworte hier um ggf. im Forum weitere Info's zu finden sind "Schrittkette" und "Flanken-Auswertung".

Vielleicht versuchst du dich erstmal an der Sache und bei Problemen stellst du hier dann dein bisheriges Werk vor und es geht dann schon weiter ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
du liest 32bit ein? alldieweil, da steht REAL ... oder hast du den analogwert schon in einen REAL-wert gewandelt? dann hast du ihn ja schon einmal gespeichert, wenn du ihn dann kopieren möchtest nutze in KOP/FUP den block MOVE in AWL

Code:
*
L    "REALWERT1"
T    "REALWERT2"
 
Danke erstmal fuer die super schnellen Antworten.

Nein, ich speichere den Wert bis jetzt nicht ab.
Ich hole ihn mir an meinem Analogen Eingangstreiber ab , welcher mir den Wert als REAL liefert.

Das mit den Zeiten bekomme ich hin .
Nur das Problem ist, worin lege ich dann diesen Wert den ab ???
Ich muss ihn ja irgendwo ablegen wo ich ihn mir bei Bedarf wieder abholen kann .

Ich hoffe ich habe mich halbwegs verstaendlich ausgedrueckt .
Ich moechte dies alles im CFC machen und nicht noch ein SFC dafür aufmachen.

und nochmal Danke fuer die schnellen Infos !

Frank
 
Zuletzt bearbeitet:
du kannst die werte global in einem merkerdoppelwort (MDxy) oder in einem datenbausteindoppelwort (DBxy.DBDuvw) ablegen ... aber eben auch lokal, wenn du einen FB machst, in der STAT-deklaration - dann liegt der wert im instanzdatenbaustein des FB ... bei einem FC wirst du über die globale adressierung, möglichst über die schnittstelle, nicht vorbei kommen ...
 
Deine Erklärung habe ich verstanden.
Ich habe glaube ich ein Logik-Problem.

Bei meinen Versuchen gelingt es mir bisher nicht einen Wert zu speichern.
Er ändert sich immer wieder.
Da ich mit DB und Merkern bis jetzt noch nicht gearbeitet habe liegt da glaube ich mein Problem.
Also :
Das Hauptproblem was ich habe, ist den REAL-Wert einzufangen / zu speichern um ihn spaeter wieder zu verarbeiten.

Toll wie Ihr euch in Zeug legt !!!!
:D

Frank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok, also doch der ablauf ... larry, sorry ...


wenn deine zeit abgelaufen ist, bekommst du ein high oder ein low signal, das wertest du auf die steigende oder fallende flanke aus und nutzt diesen impuls um:

1. den ALTEN wert von z.b. MD10 in MD14 zu schieben und
2. den NEUEN wert in MD10 zu schreiben

dann brauchst du nur noch den vergleich MD10 zu MD14 machen ...
 
Das Speichern von nur einem Wert (Flanken-Auswertung) funktioniert so :
Code:
U -Start Speichern
UN M10.0
SPBN nSav
 
L -Quell_DBD
T -Ziel_DBD
 
nSav: 
U -Start Speichern
= M10.0
M10.0 ist hier die Flanke, die dafür sorgt, dass nur ein Wert eingelesen wird solange "Start Spoeichern" ansteht ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK !
Ich programmiere grafisch im Simatic Manager im CFC.
Deshalb ist der Code verwirrend für mich.

Ich habe bis jetzt versanden.

1. Aktion , ich habe mein Einsignal , (steigende Flanke) ich nutze dies und speichere das erste Mal in den Doppelmerker DM1.
2. Meine 1. Aktion laesst ein Zeitglied starten , welches nach Zeit X abgelaufen ist und mir die naechste positive Signal zum speichern gibt.
In das Doppelmerkerwort DM2.
3. Danach kann ich meine DM wieder holen und verwerten.

Aber nun, weiss ich wirklich nicht (Sorry , sorry , sorry) wie ich das in meinem CFC "grafisch" in das DMW schreiben soll.

WOW , schwere Geburt mit mir was ???
Und ich wuerde hier niemanden anranzen !!!!
Bin echt uber jede Hilfe dankbar....


Frank
 
@4L:
Ich glaube, deine Kugel könnte ich auch ab und an mal gebrauchen ...

@Franzmann:
Ich habe keine Ahnung was CFC ist ... Ich kann dir nur mit "richtigen Programm-Beispielen" weiterhelfen ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also ich würde vorschlagen, du schreibst für diese aktion einen baustein in einer gängigeren sprache KOP/AWL/FUP und bindest diesen dann in deinen CFC-Plan ein ... der funktionsvorrat von CFC ist nicht so überwältigend und ich hab jetzt auf die schnelle auch keine lösungsmöglichkeit gefunden

@larry: das mit dem CFC stand da irgendwo im subtext und hier kannste mal nachlesen, worum es sich handelt :rolleyes:

CFC

FUP Programmierung

mööööp - falsch!
 
@Franzmann:
Ich habe keine Ahnung was CFC ist ... Ich kann dir nur mit "richtigen Programm-Beispielen" weiterhelfen ...[/quote]

Hallo,
CFC ist nix anders als ein AWL oder SCL code aber nur grafisch dargestellt.
Du kannst deinein AWL-Code schreiben uns nach dem Übersetzen hast du bei dir in CFC_Plan einen CFC-Baustein.

Also wenn du CFC hast , nehme ich an du hast auch SFC (Graph)---> Mit SFC ist es easier, wenn du Problem hast einen AWL-Code zu verstehen

Gruß johnij
 
Zuletzt bearbeitet:
das ist doch quatsch, jede popelige 300er kann mit CFC programmiert werden ... ebenso wie mit SCL ... weil es eben alles noch compiliert wird - informatik 7. klasse: unterschiedliche darstellungsformen von code und ihre übersetzung :rolleyes:

hää?:confused:

FUP<>CFC das soll dir klar sein
Informatik hatte ich an der Uni gehabt und nicht in der 7 klasse
So dumme bemerkungen braucht man hier nicht. Die kannst du dir irgendwo einstecken
 
Zurück
Oben