TIA Betriebsstundenzähler

Bjoen2102

Level-1
Beiträge
76
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich bräuchte mal eure Hilfe bei dem Thema Betriebsstundenzähler selbst programmieren.
Ich weis, dass dieses Thema hier im Form schon etliche male diskutiert wurde.
Leider haben mir die vorhanden Beiträge nicht ganz geholfen.


Welcher mich ein wenig weiter gebracht hat, war in folgenden link
der Beitrag #6 und #7
http://www.sps-forum.de/simatic/36212-betriebsstundenzaehler-wartungsintervalle.html

Da ich mich selbst zu den blutigen Anfänger zähle habe ich Probleme
bei der Umzusetzen.

Zu den oben im link genannten Beitrag #6 habe ich ein paar fragen und hoffe ihr könnt sie mir beantworten.
Ich selbst habe mit dieser Art von Programmierung noch keine Erfahrung gesammelt.


1. Muss ich den Betriebsstundenzähler in einem FC oder in einem FB programmieren damit dieser auch
bei Spannungsausfall remanent ist.?

2. Im Netzwerk 1: (Antrieb ein) was damit gemeint ist, ist mir Klar.
Mit Sekundenimpuls ist ja der Taktmerker. z.b M100.5 gemeint oder?

3. Was ist mit BTZ und L#1 gemeint.

4. Ein watrungsintervall brauche ich nicht, aber ich muss den Betriebsstundenzähler zurücksetzen können.
Somit brauche ich auch das Netzwerk 3?

5. Muss ich noch was anlagen außer das Netzwerk 1 und 3?

6. Beim (Antrieb ein) und (Taktmerker)verwende ich den Datentyp Bool.
Wie sieht es bei den anderen eingängen /ausgängen aus? Verwende ich dort den Datentyp Int?

7. Wie bekomme ich den gezählten Wert des Ausgangs auf mein TP übertragen?


Im Voraus schon mal vielen danke für Ihre Hilfe.
 
Benutz doch den Betriebstundenzähler deiner CPU

Dort hast du bereits die Remanenz gelöst und den Rest auch gleich weil du im TIA einfach F1 drücken kannst auf deinem Betriebstundenbaustein.
 
Erstmal musst du dir überlegen wie genau und in welchem Format die Betriebsstunden angezeigt werden sollen. Reichen dir ganze Stunden, oder willst du auch Minuten oder gar Sekunden haben?
In dem von dir verlinkten Beispiel hättest du einen Betriebssekundenzähler am Panel. Ist das was der Bediener sehen will?

Das Prinzip ist aber mehr oder weniger identisch.
Mit der Betriebsmeldung und einer Sekundentaktflanke addierst du einen Zähler für Betriebssekunden.
Willst du Betriebsstunden, wird wenn der Sekundenzähler 1 Stunde erreicht hat (60*60 = 3600 Sekunden) der Stundenzähler um 1 erhöht und der Sekundenzähler auf Null zurückgesetzt.

Zum Zurücksetzen könntest du dir ein Bit als Befehl anlegen das von Panel zum Zurücksetzen auf true gesetzt wird. Im Programm werden damit beide Zähler auf 0 gesetzt, und das Rücksetzbit wieder auf 0 gesetzt.

L#1 ist eine 32 Bit Konstante. In dem Beispiel werden Betriebssekunden gezählt. Wenn du dieses in ein 16 Bit Integer packen würdest, könntest du nur 32.767 Sekunden zählen, darum wird es in ein 32 Bit Integer gepackt der bis 2.147.483.647 Sekunden zählen kann.

Bei einer S7-300 ist alles remanent was du in Datenbausteinen ablegst.
 
1- kannst in beiden machen, reicht aber auch der FC
2- Sekundenimpuls ist nicht gleich Taktmerkerimpuls! also besser mit Flanke arbeiten
da ansonsten die Zählung für 0,5 Sekunden das Programm durchläuft (Zykluszeit)
3- Schaut nach BeTribsZähler aus --> also dein Betriebsstundenzähler
4- ja, #reset direkt auf EN
5- momentan nicht
6- je nach dem wie lange dies laufen soll, INT --> 32768 , DINT --> 2147483648 Sekunden, reicht dies?
7- je nach Software vom TP
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Erst mal vielen dank für Eure Antworten. Ich habe versucht Ihre Antworten umzusetzen.
Ich schicke dieses mal als Foto mit. Könnt Ihr mir sagen ob ich das soweit richtig, oder falsch gemacht habe? Jetzt habe ich wie Thomas_v2.1 geschrieben hatte einen Betriebssekundenzähler, wie erweitere ich das programmiert um einen Betriebsstundenzähler zu erhalten, das habe ich noch nicht so verstanden. Gruß Björn

Anhang anzeigen 28082
 
Zuletzt bearbeitet:
Man kann nicht ganz viel auf dem Bild erkennen.
Den Flankenmerker würde ich in den Static-Bereich verschieben.
Ob du den Betriebszähler im Out oder im InOut-Bereich anlegst ist Geschmackssache. Wobei ich nicht weiß ob sich das TIA-Portal in deiner Version daran stört wenn du den Out lesend verwendest (sieht im Bild orange aus).

Wenn du den Baustein universell verwenden willst, würde ich die Bezeichnungen auch universeller gestalten. D.h. nicht "Brenner ein" sondern allgemein "Betriebsmeldung".
Und an der Parameterbezeichnung BTZ und dem Kommentar kann man nicht erkennen ob dieser nun Betriebsstunden, Sekunden oder Mondzyklen zählt (BTZ sagt mir auch überhaupt nichts wofür das stehen soll).

Wie du auf Betriebsstunden kommst habe ich doch im Prinzip schon geschrieben.
Tip: Du brauchst in FUP einen Vergleicher, einen Addierer und eine Move-Box.
 
Ich habe es versucht weiter zu programmieren, bin mir aber nicht sicher ob das richtig ist.
Könnt ihr mir sagen, ob man das so machen kann?

Leider habe ich nicht alles auf ein Foto bekommen.


Bildschirmfoto 2015-04-01 um 23.40.02.jpgBildschirmfoto 2015-04-01 um 23.42.12.jpgBildschirmfoto 2015-04-01 um 23.42.25.jpg
 
ja der muss zurück gesetzt werden, das ist mein Problem, da hänge ich und komm nicht weiter.
Muss ich bei der Move Box den Out1 auf BSecZ legen?
 
Du kannst die Move Box welche den Sekundenzähler zurücksetzt hinter den Addierer für die Stunden hängen.

Es gibt noch eine andere Möglichkeit von einem Sekundenzähler (als DInt) auf die Stunden zu kommen. Aber mach erstmal dieses hier fertig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und ich weiß nicht warum du die Werte L#0, L#1 und L#2 als Konstanten angelegt hast. Das ist eigentlich für etwas anderes vorgesehen.
Oder macht deine TIA-Portal Version das automatisch? Man weiß ja nie was Siemens sich da hat einfallen lassen.
 
Ne Automatisch leg das Tia nicht an, ich hatte das so bei dem Link gesehen den ich in meinem ersten
Betrag genannt hatte und dachte das muss so sein. Also kann ich die Konstanten löschen?
Wenn ich das aber mache mault TIA Ist das mit der Move Box so richtig? Siehe Foto


Bildschirmfoto 2015-04-02 um 00.19.00.jpgBildschirmfoto 2015-04-02 um 00.18.45.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Als du ganz zu Anfang geschrieben hattest das es eine Konstante ist, dachte ich das ich diese in das Feld eingetragen muss, okay wieder etwas dazu gelernt. Doch kann L#1 eintragen, trage ich überall L#1 ein, oder so wie ich es zu anfangt hatte mit L#1 L#2 L#0?
 
Hallo Thomas_v2.1,

vielen dank für deine Tipps und Hilfe.

Ich habe den Betriebsstundenzähler heute Mittag mal getestet, habe bei den Addieren mit
der Konstante L#1 und bei der Move Box mit der L#0 gearbeitet, es hat alles funktioniert, zusätzlich
habe ich noch eine manuell rücksetzfunktion eingebaut um den Betriebsstundenzähler manuell zurücksetzen zu können.

Vielleicht kannst du mir, oder einer deiner Forumkollegen auch hier helfen?

http://www.sps-forum.de/simatic/76289-fuellstand-heizoel-visualisieren.html
 
Zurück
Oben