TIA Genaueren ISTwert bei RTM Betriebsstundenzähler auslesen?

ChristianVogel

Level-2
Beiträge
434
Reaktionspunkte
55
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich nutze die Standard-Funktionen der TIA-Bibliothek, zum Beispiel den "RTM Betriebsstundenzähler"... so, nun gefällt einem Kunden nicht, dass da nur "ganze Stunden" zu sehen sind. :mad: Anscheinend ist er der Meinung, dass die Zwischenzeiten nicht zählen, sondern immer nur volle beendete Stunden gezählt werden, keine Ahnung wie solche Vermutungen zustande kommen, zumal ich eine "Zähler läuft"-Anzeige am HMI einblende...

1690810758945.png

Am Ausgang habe ich einen DINT beim RTM-Baustein, mit der Angabe der vollen Stunden, bekomme ich das irgendwie hin, dass die Angabe einen Wert darstell mit einer Kommastelle? (Ich habe da keinen Bock wieder 3600 Sekunden zu zählen, oder 60Sekunden und das dann aufzusummieren, etc. ...

Jemand einen Tipp für mich?

Gruß Christian
 
Hallo zusammen,

ich nutze die Standard-Funktionen der TIA-Bibliothek, zum Beispiel den "RTM Betriebsstundenzähler"... so, nun gefällt einem Kunden nicht, dass da nur "ganze Stunden" zu sehen sind. :mad: Anscheinend ist er der Meinung, dass die Zwischenzeiten nicht zählen, sondern immer nur volle beendete Stunden gezählt werden, keine Ahnung wie solche Vermutungen zustande kommen, zumal ich eine "Zähler läuft"-Anzeige am HMI einblende...

Anhang anzeigen 70449

Am Ausgang habe ich einen DINT beim RTM-Baustein, mit der Angabe der vollen Stunden, bekomme ich das irgendwie hin, dass die Angabe einen Wert darstell mit einer Kommastelle? (Ich habe da keinen Bock wieder 3600 Sekunden zu zählen, oder 60Sekunden und das dann aufzusummieren, etc. ...

Jemand einen Tipp für mich?

Gruß Christian
wo kommt der Zähler denn her und was macht der? Im InstanzDB müssen ja irgendwo Sekunden gezählt werden...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Zähler läuft auf der CPU direkt, Einblick über den Daten-Stand habe ich nicht.

Es gibt 2 Zähler, einen der dauernd läuft (Einschaltzähler) und einen den ich anstoße wenn tatsächlhc die Produktion läuft...

1690813045301.png
 
Also der interne Betriebsstundenzähler der SPS scheint eben nur ganze abgelaufene Stunden auszugeben.
Falls du da etwas brauchst, was genauer die Betriebsdauer ausgibt, wird es wohl auf eine eigene Lösung hinauslaufen.
 
Naja, es ist ein Betriebsstunden-Zähler....¯\(°_o)/¯

Für genauere Angaben wirst du um nen Selbstbau (soweit ich weiß) nicht drum rum kommen.
Du kannst beispielsweise jede Stunde einen DINT inkrementieren & den Stundenbruchteil mit "TIME_TCK" seit dem letzten inkrementieren ermitteln.
Oder halt ganz klassisch per Taktmerker zählen :D
Kommt drauf an wie genau du es brauchst...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, es ist ein Betriebsstunden-Zähler....¯\(°_o)/¯
Naja... ich habe im Auto ja auch eine Kilometeranzeige und trotzdem sehe ich den Kilomterstand auf 100m "genau", aber ich weiß was Du meinst...

Ich will eben "Standards" verwenden und versuche auf "Selbstbau" zu verzichten. Mir persönlich ist es ja auch :poop: egal, ob die Maschine 5522,3 oder 5522,7 Stunden hat, Der Kunde wollte das geändert haben... Ob der Taktmerker SOOOgenau ist, das will ich jetzt garnicht bewerten...
 
Also der interne Betriebsstundenzähler der SPS scheint eben nur ganze abgelaufene Stunden auszugeben.
Falls du da etwas brauchst, was genauer die Betriebsdauer ausgibt, wird es wohl auf eine eigene Lösung hinauslaufen.
...naja, ich hatte die Hoffnung, dass ich irgendwie über einen anderen Baustein, genauere Daten auslesen kann. Die CPU-Zeit bekomme ich ja auch Sekundengenau ausgelesen... ABER eben auch nur mit einem dafür gesonderten Baustein...

Ggf.kann ich da irgendwo einen SFC angreifen, Die Lösung sollte eben auf der 1200er und auf der 1500er laufen. Ich meine auf der 1500er kann ich den SFC100 direkt ansprechen, müsste ich mal nachkucken...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich nutze die Standard-Funktionen der TIA-Bibliothek, zum Beispiel den "RTM Betriebsstundenzähler"... so, nun gefällt einem Kunden nicht, dass da nur "ganze Stunden" zu sehen sind. :mad: Anscheinend ist er der Meinung, dass die Zwischenzeiten nicht zählen, sondern immer nur volle beendete Stunden gezählt werden, keine Ahnung wie solche Vermutungen zustande kommen, zumal ich eine "Zähler läuft"-Anzeige am HMI einblende...
Kannst du dem Kunden nicht einfach beweisen, dass der Betriebstundenzähler funktioniert? z.B. mit pos. Flanke eines Taktes den RTM starten und mit der neg. Flanke des selben Taktes den Zähler stoppen, das ganze 2 Stunden laufen lassen und der Zähler zeigt dann 1.
1690868025506.png
 
Kannst du dem Kunden nicht einfach beweisen, dass der Betriebstundenzähler funktioniert?
naja.... dass der Zähler funktioniert ist unumstritten, denke ich. Der Knackpunkt ist eben, dass es eine Stunde dauert bis eine Änderung erkennbar ist. An sich ist diese Funktion ja recht "unspektakulär". Hätte ich eine Änderung um 0,1 Stunden, würde sich zumindest alle 6 Minuten was tun....

Also wenn eine Pume 100000 Betriebsstunden packt, bevor Sie gewartet werden muss, macht es keinen sinn hier Sekunden zu zählen, wie gesagt st nur ein Kundenwunsch...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kannst du mit AWL was anfangen?


Code:
FUNCTION_BLOCK "BSZ"
TITLE =
AUTHOR : Kabelaeffle
VERSION : 0.1

VAR_INPUT
  Ein : BOOL ;    //Zeit wird im 1s-Takt erfasst
  Takt_1Hz : BOOL ;    //Takt mit 1Hz für internen Zähler
  Reset : BOOL ;    //Zählwert wird auf 0 zurückgesetzt
  SZ_h : DINT ;    //Meldung bei X-Stunden
END_VAR
VAR_OUTPUT
  Q_LZ : BOOL ;    //Laufzeit erreicht
END_VAR
VAR
  LZ_s : DINT ;    //Sekunden
  LZ_m : DINT ;    //Minuten
  LZ_h : DINT ;    //Stunden
  b_fp_Takt_1Hz : BOOL ;  
  b_fpi_Takt_1Hz : BOOL ;  
END_VAR
BEGIN
NETWORK
TITLE =Flanke

      U     #Takt_1Hz;
      FP    #b_fp_Takt_1Hz;
      =     #b_fpi_Takt_1Hz;
NETWORK
TITLE =Sekunden zählen

      U     #Ein;
      U     #b_fpi_Takt_1Hz;
      SPBN  INCs;
      L     1;
      L     #LZ_s;
      +D    ;
      T     #LZ_s;

INCs: NOP   0;

NETWORK
TITLE =bei Überlauf Minuten Zählen

      CLR   ;
      L     60;
      L     #LZ_s;
      <=D   ;

      SPBN  INCm;
      L     1;
      L     #LZ_m;
      +D    ;
      T     #LZ_m;

      L     0;
      T     #LZ_s;
INCm: NOP   0;


NETWORK
TITLE =bei Überlauf Stunden Zählen

      CLR   ;
      L     60;
      L     #LZ_m;
      <=D   ;

      SPBN  INCh;
      L     1;
      L     #LZ_h;
      +D    ;
      T     #LZ_h;

      L     0;
      T     #LZ_m;
INCh: NOP   0;

NETWORK
TITLE =Ablöschen der Zeiten

      CLR   ;
      U     #Reset;
      SPBN  Re_1;

      L     0;
      T     #LZ_s;
      T     #LZ_m;
      T     #LZ_h;

Re_1: NOP   0;

NETWORK
TITLE =Laufzeit erreicht

      CLR   ;
      U(    ;
      L     #LZ_h;
      L     #SZ_h;
      >=D   ;
      )     ;
      =     #Q_LZ;
END_FUNCTION_BLOCK
 
Zuletzt bearbeitet:
Zurück
Oben