Betriebsstundenzähler S7-313 läuft nicht

Naruna

Level-1
Beiträge
51
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

leider habe ich über die Suchfunktion nichts gefunden was mein Problem erklären würde.
folgendes Problem ich habe alle Bausteine SFC2-4 eingefügt funktioniert auch soweit nur das was eben nicht
funktioniert ist das die Stunden wirklich gezählt werden.

vielleicht kann der ein oder andere mal drüber schauen und mir vielleicht sagen wo ich meinen Fehler habe :(
hoffe nicht gleich gesteinigt zuwerden das es schon häufig hier besprochen wurde, bin aber noch relativ am Anfang und bitte
das zu entschuldigen =)

besten Dank vorab
 

Anhänge

  • BSZ.jpg
    BSZ.jpg
    66,8 KB · Aufrufe: 68
Das EN auf 0 Setzen wenn du den zähler nicht zurücksetzen willst. Z.B. mit einem Resetbutton verbinden, oder mit irgendeiner Bedingung die den Zähler zurücksetzen soll.

mfG René
 
Hey René, hab ich nun gemacht, leider tut sich immer noch nix :( müsste ich nicht an dem Wert im DB sehen ob sich überhaupt etwas verändert?

Gruß
Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mach nochmal n Printscreen

Im DB landen natürlich nur volle Betriebsstunden.

Der Nachteil des integrierten Betriebsstundenzählers. Ich bevorzuge einen Softwarezähler der mir die Betriebsstunden direkt in Sekunden in ein Doppelwort schreibt (ONTIME aus der Oscat Lib).

mfG René
 
Zuletzt bearbeitet:
hier nochmal das neue Bild.

Könntest du mir vielleicht behilflich sein bei einem Softwarezähler? Das steht mir noch bevor :p möchte nämlich gerne noch 2 Motoren auswerten bzw. der
Betriebsstunden und da wären Minuten nicht schlecht.

Gruß Daniel
 

Anhänge

  • BSZ2.jpg
    BSZ2.jpg
    61,4 KB · Aufrufe: 31
Lass ihn noch ne Stunde rennen, der Kommt dann schon.

zum Softwarezähler. Zum starten bilde dir mal n Sekundentakt. Damit incrementierst du mal ein DBD in einem DB.

Ungefähr so.
Code:
U #Sekundentakt ;Darf jede Sekunde nur ein Zyklus anstehen.
U #Betrieb
SPBN sp1
L DB1.DBD0
L 1
+D
T DB1.DBD0
sp1: nop 0

mfG René
 
Bedenke das ist nur ein sehr einfacher Betriebsstundenzähler so. Der ist stark Zykluszeitabhängig und weicht schnell mal ab. Für genauere Betriebstundenzählung ist der ONTIME aus der Oscat Library wesentlich besser geeignet.

http://www.oscat.de/
 
Hey René, habe nun das sekundentaktbit in die Programmzeilen eingefügt und es funktioniert auch. Jetzt muss ich ja nur die Sekunden noch
in Minuten und später dann in Stunden umrechnen? Wie funktioniert das denn genau?
 
dem war ich mir schon bewusst nur muss ich meinen DB1.DBW0 das Ergebnis daraus umrechnen und da war die Frage wie ich das mache?:confused:
 
... möchte nämlich gerne noch 2 Motoren auswerten bzw. der
Betriebsstunden und da wären Minuten nicht schlecht.
Was heißt auswerten?
Nur anzeigen oder auch vergleichen und danach die Einschaltreihenfolge bestimmen?

Wenn letzteres, dann schau' Dir mal zotos' Motorenpendel an. Dabei werden übrigens die Einschaltzeiten (Betriebsstunden bzw. genauer geagt die Betriebsmillisekunden) zyklusgenau aufaddiert.
Bayernburn hat dann an dem FC60 von zotos ein wenig herumgeschraubt, um ihn an seine Bedürfnisse anzupassen. Das Ergebnis findest Du im FC500 einen Post unter zotos' Beitrag bzw. im 2. verlinkten Thread.


Vlt. hilft's Dir ja weiter.
 
Hey danke nochmal, hab es jetzt hinbekommen etwas selbst geschrieben und so funktioniert es Super ;)

werde morgen den Code mal einstellen.

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo allerseits,

vor einiger Zeit hatte ich auch nach einem Betriebsstundenzähler gesucht und den OHM_BSZ gefunden. Dieser Baustein arbeitet mit dem SFC1 Read_Clk und ist damit sicherlich sehr genau. Aber: ich musste feststellen, dass er als Multiinstanz zum hängenbleiben neigt, wenn eine gestartete Zählung über einen CPU Stop hinaus geht (zum Beispiel wenn die Maschine ausgeschaltet wird, aber noch weiter gezählt werden soll). Die Ursache für das Hängenbleiben konnte ich bisher nicht herausfinden.

Ich habe mir kurzerhand selbst einen gebaut der nicht hängen bleibt. Mein Baustein ist wesentlich kleiner, simpler und verliert maximal 1 Stunde wenn der Instanz DB überschrieben wird. Es ist jedoch anzumerken, dass er durch den Aufbau mittels Oszilator recht ungenau ist.

Hier die Quelle:

FUNCTION_BLOCK "Hour Counter"
TITLE =
AUTHOR : HJG
NAME : 'Time'
VERSION : 1.1


VAR_INPUT
Set_H : DINT ; //Hours to be set
En : BOOL ; //Enable Counter
Set : BOOL ; //Set Hours
Clr : BOOL ; //Clr Hours
END_VAR
VAR_IN_OUT
Hours : DINT ; //Hours
END_VAR
VAR
TON1 : "TON";
Sec : BYTE ;
Min : BYTE ;
M1 : BOOL ;
END_VAR
VAR_TEMP
M0 : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =

// Close Function
UN #En;
UN #Set;
UN #Clr;
BEB ;

// Load Hours
U #Set;
SPBN M010;
L #Set_H;
T #Hours;
BEA ;
M010: SET ;

// Clr Hours
U #Clr;
SPBN M020;
L L#0;
T #Sec;
T #Min;
T #Hours;
BEA ;
M020: SET ;

// Build Oszilator
UN #M1;
= #M0;
CALL #TON1 (
IN := #M0,
PT := T#1S,
Q := #M1);

// Count Seconds
U #M1;
SPBN END;
L #Sec;
INC 1;
T #Sec;
L 60;
>=I ;
SPBN END;

// Count Minuts
L 0;
T #Sec;
L #Min;
INC 1;
T #Min;
L 60;
>=I ;
SPBN END;

// Count Hours
L 0;
T #Min;
L #Hours;
L L#1;
+D ;
T #Hours;
END: SET ;

END_FUNCTION_BLOCK


PS: Falls dennoch jemand Interesse am OHM_BSZ hat, einfach ein PN an mich senden
 
Zurück
Oben