Timer in Multiinstanz

Moin

Wenn ich in einem Multiinstanz FB einen Timer zur Laufzeitüberwachung definiere, beispielsweise T100, was passiert dann, wenn ich den FB mehrfach instanziiere? T100 kann doch nur einmal exisitieren. Funktioniert das überhaupt?

Gruß
Beren


Nein - wie du schon vermutest geht das nicht.

Es geht nur mit den IEC-Timer...
 
oder mit übergabe der timer-nummer an der schnittstelle des bausteins :ROFLMAO:


ich vermeide "tausendfache" Verwendung von S5-Timern.
Ich habe pro Projekt - pro Seq.-ablauf max. einen, d.h.
im gesamten Projekt 15-20.

Wenn ich bei jedem einzelnen Antrieb - oder was auch immer
ein bis zwei S5-Timer verbrate wird das sehr fehleranfällig.
Und auch das hin- und her-kopieren zwischen Projekten wird
aufwändiger.
Es bischen "Codesys-Totalinstanziierung" innerhalb von STEP7
ist schon von Vorteil.


Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@IBFS: ich wollte nur auf eine andere möglichkeit hinweisen, bei dir klang das so absolut :rolleyes: ... und es gibt auch noch eine dritte möglichkeit: cpu-takt an baustein übergeben und damit inkrementieren oder dekrementieren, ist eine wirklich praktikable, speichersparende lösung für zeitunkritische anwendungen. wobei: wo fängt zeitkritisch an? und benutzt man dafür dann nicht einen interrupt? :rolleyes:
 
vierlagig schrieb:
es gibt auch noch eine dritte möglichkeit: cpu-takt an baustein übergeben und damit inkrementieren oder dekrementieren, ist eine wirklich praktikable, speichersparende lösung für zeitunkritische anwendungen.

genau!

OB1
Code:
   L     #OB1_PREV_CYCLE
   T     MDxxx

FCxx
Code:
      L     MDxxx                           
      L     Ablaufzeit_Station_01        
      +D    
      T     Ablaufzeit_Station_01         
      T     #Zeit

(alles Variablen vom Typ TIME)

...und bei jedem Verlassen des "SPL-Schrittes" wird

Ablaufzeit_Station_01

mit T#0MS überschieben.

So hat man die Abgelaufene Zeit im jeweiligen Schritt (vgl.: Schritt.U bei GRAPH)
und damit Vergleichen.

Gruß
 
Danke die Idee find ich Klasse, ich hab das bisher so gelöst, dass ich
über eine aus dem Taktmerkerbyte erzeugte Flanke an den entsprechenden
Stellen Zeitwerte bedingt inkrementiert habe. (Is sicher nicht schlecht
wenn man ne geringe auflösung braucht)


Gruß
Michi


Den Tipp werd ich gleich mal wo umsetzen :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich in einem Multiinstanz FB einen Timer zur Laufzeitüberwachung definiere, beispielsweise T100, was passiert dann, wenn ich den FB mehrfach instanziiere? T100 kann doch nur einmal exisitieren.

Hier noch mal ein Beispiel für die Verwendung des IEC-Timers SFB4 TON als Störmeldeverzögerung in einem Multiinstanz-FB:

http://www.sps-forum.de/showpost.php?p=122573&postcount=31

Gruß Kai
 
Bei den IEC Timern stört mich, dass pro Timer 20 DW notwendig sind, der Timer nur lokal geprüft werden kann.
Es nicht möglich ist mal eben in eine VAT t1 schreiben und sehen was los ist.
Ausserdem gehen die IEC Timer saumässig auf die Zykluszeit der PLC


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei den IEC Timern stört mich, dass pro Timer 20 DW notwendig sind, der Timer nur lokal geprüft werden kann.
Es nicht möglich ist mal eben in eine VAT t1 schreiben und sehen was los ist.
Ausserdem gehen die IEC Timer saumässig auf die Zykluszeit der PLC


bike



Gott sei Dank sind die Zeiten vorbei, wo man die NOP's weggekratzt hat, um weiteren kostenbaren Speicher für noch benötigte Erweiterungen zu erhalten. Vorbei auch die Zeiten, wo man mit 256 Timern und 'ner Menge Trickschaltungen sich selber Verzögerungen gebaut hat und bei großen Projekten Zykluszeiten gegen 1/2 Sekunde erreichen konnte - selbst bei einigen hundert Aufrufen von TON's ist das auf einer S7 kein Thema mehr.

MIt der Argumentation sollte man von großen Projekten und PCS7 die Finger lassen ;)

Bei Kleinsteuerungen reichen dann wohl auch die vorhandenen S5-Timer.
 
Also da muss ich dir leider widersprechen.
Wenn mal Software für grosse CNC Bearbeitungszeiten, bei denen z.B. Werkzeugwechsler zeitkritisch sind, entwickelst, dann ist jede Millisekunde wichtig.
Und wenn man nur kleine Steuerungen hat, die wenig Speicher haben, auch dann erinnert man sich gern an die S5 Timer.
Und wenn bei komplexen Abläufen Fehler gesucht werden, freut man sich wenn man in einer VAT einen Timer auf die Schnelle anschauen kann.

Ausserdem braucht und brauchte ein Nop so weit ich weiss keinen Speicher.

Zum Glück sind Entwickler Künstler und haben die künstlerische Freiheiten.


bike
 
Also da muss ich dir leider widersprechen.
Wenn mal Software für grosse CNC Bearbeitungszeiten, bei denen z.B. Werkzeugwechsler zeitkritisch sind, entwickelst, dann ist jede Millisekunde wichtig.
Und wenn man nur kleine Steuerungen hat, die wenig Speicher haben, auch dann erinnert man sich gern an die S5 Timer.
Und wenn bei komplexen Abläufen Fehler gesucht werden, freut man sich wenn man in einer VAT einen Timer auf die Schnelle anschauen kann.

Ausserdem braucht und brauchte ein Nop so weit ich weiss keinen Speicher.

Zum Glück sind Entwickler Künstler und haben die künstlerische Freiheiten.


bike

Eine Millisekunde ist ja auch ein riesige Zeit. Es gibt SPSen die in einer Millisekunde recht große Programme mit vielen IEC Timern abarbeiten können.

Und zu dem Thema Timer (in Sepp7) selber bauen... wenn dann mit dem OB1_PREV_CYCLE (siehe z.B. das Beispiel von IBFS). Wobei ich die IEC Timer als Standardlösung besser finde.
 
Zurück
Oben