TIA globaler DB: Daten nachträglich schreiben

trockenpaule

Level-1
Beiträge
14
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
TIA v.13 S7-1200:
Ich habe einen Stundenzähler nachträglich im Programm eingefügt und statt Merker in der Variablentabelle einen globalen DB erstellt.
Hierdrin ist jetzt sozusagen nach aufspielen der Wert null hinterlegt, da der Zähler ja neu ist.
Wie schaffe ich es die Variable im globalen DB händisch zu beschreiben?
Eine Visu gibt es auch.
Habs versucht mit einer "ein- Ausgabe" über die Visu per Hand einzugeben, funktioniert aber leider nicht.
Das hätte ich danach ja wieder zu einer reinen Ausgabe ändern können.
Wie machen das profis? Was mach ich falsch?
 
TIA v.13 S7-1200:
Habs versucht mit einer "ein- Ausgabe" über die Visu per Hand einzugeben, funktioniert aber leider nicht.
Das hätte ich danach ja wieder zu einer reinen Ausgabe ändern können.

Genau so sollte es funktionieren. Ansonsten db online beobachten rechtsklick auf den zu ändernen wert und "Schreiben"

Was für ein Stundenzähler hast du denn eingefügt? Selbst programmiert oder irgendwas fertiges das womöglich den Wert nur Als OUT ausgibt.

mfG René
 
Wie sieht denn der selbst gemachte Code aus?
Vielleicht beschreibst Du von der Visu die falsche Variable - z.B. eine Kopie des Zählerstandes statt den Zählerstand selber?

Harald
 
ein TON 1s, der zweite TON 5m59s (damit erhalte ich industriezeit), bei wiederanlauf des ersten TON (1s) wird per TP (Pulse) der CU (countUp) eins nach oben gezählt.
Der CU schreibt seinen Wert dann in die DB-Variable.
Genau diese rufe ich in der Visu auf und versuche sie zu ändern, was aber nur kurz anhält bevor sie wieder auf ihren alten Wert switcht.
(aktuallisierung der Anzeige).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also klar - Du mußt den Zähler (CU) auf den gewünschten Wert setzen und nicht die Kopie in der DB-Variable.

PS: ich würde gar keinen Zähler (Counter) benutzen, sondern direkt die DB-Variable inkrementieren (1 addieren)
Wie hoch mußt Du denn zählen?

Harald
 
Genau diese rufe ich in der Visu auf und versuche sie zu ändern, was aber nur kurz anhält bevor sie wieder auf ihren alten Wert switcht.
(aktuallisierung der Anzeige).

Das hört sich nach System oder BibliotheksZähler an. Da ist der Zählwert halt ein OUT. Der lässt sich natürlich nicht beschreiben.
Wieso incrementierst du die Variable in deinem DB nicht einfach mit deinem Puls?

mfG René
 
Stimmt, wieso bin ich da bnicht gleich drauf gekommen (auf inkrementieren)
Wenns dann funktioniert....
Ich bin sicher das geht, DANKE!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ein TON 1s, der zweite TON 5m59s (damit erhalte ich industriezeit), bei wiederanlauf des ersten TON (1s) wird per TP (Pulse) der CU (countUp) eins nach oben gezählt.
Das klingt aber reichlich umständlich (und relativ ungenau). Ein einziger TON (60 Minuten) und ein Merker reicht für die Erzeugung eines 1 Zyklus langen Stunden-Zählimpulses. (Wofür ist der TON 1s?)

Harald
 
Das klingt aber reichlich umständlich (und relativ ungenau). Ein einziger TON (60 Minuten) und ein Merker reicht für die Erzeugung eines 1 Zyklus langen Stunden-Zählimpulses. (Wofür ist der TON 1s?)

Gibts einen Grund der gegen die Benutzung des 1HZ SystemTaktmerker spricht? Der dürfte recht genau sein und keine Fehler im Betriebsstundenzähler generieren was vermutlich jeder Softwaretimer verursachen könnte.

mfG René
 
Ich verwende bei meinen Betriebsstundenzählern den 1 Hz SystemTaktmerker.

Mit meinem Hinweis auf "ein einziger TON" wollte ich nicht den TON für Betriebsstundenzähler empfehlen sondern lediglich anmerken, daß man für eine Taktpulserzeugung keine 3 Timer braucht, sondern schon ein einziger TON ausreicht.

Harald
 
Ich will einen Betriebsstundenzähler in Industriezeit, also Dezimal mit einer Stelle hinter dem Komma.
Deswegen brauch ich 5m59s + 1s (=6min = 0,1h).
der 1s-TON löst das Aufwärtszählen aus.
1HZ wäre ja ein Betriebssekundenzähler. Das brauch ich auch nicht.
Umständlich ist das nicht, was ich gebastelt habe. Des taugt schon.

Trotzdem Danke an alle
 
Ein eiziger TON reicht nicht, da ich den ja neu starten muss. Ausserdem hab ich dann nur ganze Stunden.
Ein TON kann sich selbst neu starten, indem man seinen Ausgang Q negiert auf den Eingang gibt. Damit man diesen sehr kurzen 1-Puls im nachfolgenden Programm sieht und verarbeiten kann schaltet man da noch eine Boolsche Variable (z.B. einen Merker) dazwischen (also an den Ausgang).

Ich will aber Industriezeit haben, also Dezimal eine Stelle hinter dem Komma.
So sind alle normalerweise Betriebsstundenzähler aufgebaut.
Was ist "Industriezeit"? Wie sieht so eine "Industriezeit" aus? Und wie erhältst Du eine Stelle hinter dem Komma?

"Normalerweise" zählen Betriebsstundenzähler keine Stunden-Pulse sondern kleinere Zeiteinheiten. So entstehen automatisch Stunden-Nachkommastellen. Wie viele Nachkommastellen der Zähler intern hat und wie viele man davon zur Anzeige bringt muß nicht das selbe sein. Man könnte z.B. je 360 Sekundenpulse (0.1 Stunde) zählen und ein zweiter Zähler zählt die Überträge (359/360-->0) des ersten Zählers.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1HZ wäre ja ein Betriebssekundenzähler. Das brauch ich auch nicht.
Umständlich ist das nicht, was ich gebastelt habe. Des taugt schon.

ähm eine Betriebsstunde ist ein Vielfaches einer Betriebssekunde. Scheissegal ob das industriezeit oder Normalzeit ist.
Das vielfache musst du halt einfach richtig interpretieren.
Am besten zählst du industrieminuten hoch. und teilst das resultat durch 100.0. dann hast du industriestunden.

Also alle 36sek eine Min hochzählen.

Du kannst aber auch normale Zeit hochzählen und die Stunden dann durch 100.0 Teilen. Dann hast du auch Industriestunden. Industriestunden und Normalstunden ist eine reine Darstellungssache. Wenn du es als Dezimal (oder Realzahl) darstellst sind es industriestunden. Wenn du es im Format TIME darstellst ist es halt normale Stunden.
Das hat eigentlich für den Betriebsstundenzähler überhaupt keinen Einfluss.
Du kannst das zwar einfliessen lassen, macht das Programm aber nur sinnlos komplizierter.

mfg René
 
Zuletzt bearbeitet:
Deine TON-Lösung hat noch weiteres Problem: es werden nur vollständige 6-Minuten-Betriebszeiten gezählt. Kürzere Betriebszeiten "am Stück" erhöhen den Betriebsstundenzähler nicht, weil der TON bei jedem Betriebsmittel-Stop/Start neu startet. Oder falls der 1s-TON zuerst im Programm ist und gezählt wird, dann führt jeder Betriebsmittelstart > 1 Sekunde zu einer Erhöhung des Betriebsstundenzählers um 6 Minuten.

Harald
 
Ich persönlich ziehe dieses Vorgehen für Betriebsstundenzähler vor.

mit dem 1HZ Taktmerker einen DINT hochzählen. Dann hat man die Betriebssekunden. DINT reicht für fast 70 Betriebsjahre.

Diese Sekunden kann man dann als Betriebsstunden, BetriebsIndustriestunden, Betriebsminuten, BetriebsIndustrieminuten darstellen wie man lustig ist, nur durch Umrechnung. Man hat dann auch nur eine Variable die man verändern muss um den Zähler von Hand im Panel anzupassen.

Alles sauber und keine 5 Zeilen Code.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nicht schlecht.
Also ich gewöhn mich gerade an die 1Hz-Version.
Des überzeugt mich echt.
Und es stimmt, dass mein Zählwerk falsch sein wird, daran hab ich nicht gedacht.
Also ---> Taktmerker
Sänks!
 
Zurück
Oben