Werte in Db schreiben (100ms)

Domi55

Level-1
Beiträge
111
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!
Habe ein problem und komme so nicht weiter!
Ich muß 5 Werte aufnehmen, die ich im OB35 alle 100ms aufrufe.
Wie bekomme ich diese werte in einen DB. Kann ein umlaufarchiv sein!
Bedeutet, das ca 10s ein archiv gefüllt wird und wenn es zu keinem "Ausreißer" kommt es überschrieben wird! Anschließend soll dieser DB dann an ein Mobile Panel 277 übertragen werden und auf abfrage in einer kurve dargestellt werden. Finale archivierung dann als .csv datei!

Danke schonmal!
Gruß Domi
 
Hallo,
hast du diesen Beitrag aus der FAQ schon gelesen ?
Darüber hinaus würde ich einen Baustein erstellen (eventuell ein FB), der pro Aufruf des OB35 an Ppointerstelle einen neuen Wert in einen DB schreibt. Anschließend wird der Pointer erhöht. Hast du die max. Anzahl von Werten gelesen wertest du diese aus (ggf.) oder du fängst wieder von vorne an den DB mit Werten aufzufüllen.

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke schonmal!
Deine Idee hört sich nicht schlecht an! Aber da ich mich mit den pointern schwer tue ist das nicht so leicht für mich!
Hättest du (LL) Beispiele oder ein kleines programm welches das macht? Also in einen DB schreiben?
Arbeite oder probiere es gerade mir dem AR_SEND baustein. SFB37.
Hört sich für mich so an als ob das mein Baustein wäre! Was sagt ihr dazu?
 
Zuletzt bearbeitet:
er hat doch in seinem posting schon einen link zum beispiel eines umlaufpuffers gepostet...

wenn ich deine aufgabenstellung richtig interpretiere, solltest du dir eher SFC20 (Blockmove) ansehn
 
Das Programm im OB 35 aufrufen

L MD 150
L L#98 <-- Ablage-Endwert DW 100
<D
SPB M001

L L#0 <-- Ablage-Anfangswert DW 2
T MD 150

M001:NOP 0

L MD 150
L L#2
+D
SLD 3
T MD 150

L DB101.DBW0 <-- der Wert wird gespeichert

AUF DB 100 <-- Speicher DB
T DBW [MD 150]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Domi,
ein kleines Beisspiel-AWL-Programm habe ich dafür nicht. Ich mache so etwas auf SCL-Basis. Es ist allerdings nicht so schrecklich schwer, anhang des FAQ-Beitrages, den ich dir genannt habe, so ein Beispiel zu entwicklen. Dabei könnte ich dich unterstützen. Mein Vorschlag hier wäre jedoch (da du ja schreibst, dass du kein Pointer-Fan bist), dass du die erstenm Schritte erstmal selbst gehst - sprich: du stellst mal etwas zusammen und wir bauen dann gemeinsam weiter ...

Um Werte in einen DB zu schreiben benötigt man keinen zusätzlichen Baustein und den SFB37 in deinem Fall m.E. überhaupt nicht.
Lies dir bitte den FAQ-Link gut durch - damit beantwortet sich schon vieles ...

Gruß
LL
 
Danke an euch alle! Hab mir den link angeschaut und auch das beispiel! Versuche und probiere das heut alles mal aus und bei weiteren Fragen melde ich mich! Ihr habt echt was drauf!

Gruß Dominik
 
Hallo zusammen!
Habe mal das beispiel von taddy benutzt! Allerdings geht die cpu in den Sammelfehler! Wie muß ich den DB anlegen? Also welche variablen müssen das rein? Meine 5 Werte? Den baustein hab ich schon!
Danke schonmal!

Schade das winccflex07 nur mit 1s in das archiv schreiben kann!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Dominik,
der DB muß schon vorhanden sein und groß genug (mehr ist hier auch mehr - lieber ein paar DBW's mehr anlegen als eins zuwenig).
Das Beispiel von Taddy speichert 100 Worte - die mußt du natürlich auch schon haben ...

Gruß
LL
 
Hallo zusammen! bekomme alles in den db! Gehen wir jetzt mal gavon aus ich habe 5 Variablen. Pro variable möchte ich 100 werte! Bedeutet bei mir 10 sek aufzeichnung! Mit am ende 500 werten! Also muß ich 5 db anlegen oder einen und 500 variablen reinschreiben? Wäre viel arbeit!
 
:confused: ... du mußt wissen, was du haben willst ...
Wenn du 5 x 100 Werte aufzeichnen willst / mußt, dann wirst du es so machen müssen. Arbeit hat man doch mit Allem - wo ist also das Problem ? Ich verstehe diesen Ansatz jetzt nun nicht.
Ich würde mir hier jetzt einen schicken FB erstellen, der die Aufzeichnung (und ggf. deren Auswertung) für mich übernimmt und den dann 5 x aufrufen. Dann hast du was du willst.

Gruß
LL
 
Hallo Ihr!
Mit den 100 werten war jetzt mal so eine überlegung! Kann man denn 500 werte in einem db schreiben?
Habe aber noch ein problem mit der schleife vom taddy! Habe mal die Änderung gemacht wie vorher beschrieben wurdden aber sauber läuft es noch nicht!
Teste erst mal mit 20 werten! Jetzt gibt er mir anstatt alle werte nur 3 aus! Seht ihr noch ein Fehler?
Bilder im anhang ( Das DB Bild war noch mit Taddys beschreibung)

Danke schonmal
 

Anhänge

  • ob35_3.jpg
    ob35_3.jpg
    27,1 KB · Aufrufe: 19
  • strom.jpg
    strom.jpg
    80,9 KB · Aufrufe: 10
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
....
....

L MD 150
L L#2
+D
SLD 3
T MD 150

L DB101.DBW0 <-- der Wert wird gespeichert

AUF DB 100 <-- Speicher DB
T DBW [MD 150]

L MD 150
SRD 3
T MD 150


Das habe ich vergessen. Zu schnell geschrieben.
 
Man kann einen DB nutzen mit 5 Array Variablen jeweils 100 DW als Integer.
Sehr schnell hat DB mit 500 DW.
 
Danke Jungs!
So läuft das schonmal! Ihr seid echt fit!
Jetzt muss ich es nour noch schaffen falls ein wert außerhalb einer grenze liegt zu speichern bzw zum TP auf die sd karte schieben!

Danke euch echt! Habt mir bis jetzt sehr geholfen!
 
Db

Hallo,
die Grenzen setzen sich je nach CPU, wieviel ein DB gross sein darf.
Wenn der DB die erlaubte Länge nicht überschreitet, können es auch mehr als 500 DWs sein..

V.
 
Das ist eine 315F 2PN/DP !
Oder wo kann man sehen was die so kann? In der Hardware konfig?
Weiß denn jemand wie man nun die Daten in das Mobile panel schiebt? Und welches format man dort bekommt? .csv?
 
Zuletzt bearbeitet:
Zurück
Oben