Step 7 Eine Frage zum IEC-Timer

spirit

Level-1
Beiträge
961
Reaktionspunkte
23
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe eine Frage zum IEC-Timer (z.B. TON-SFB4).

Ich verwende diesen 1x im FB2 und habe den Menüpunkt "Ändern in Multiinstanz-Aufruf…" angewählt.

Im FB1 rufe ich 3x den FB2 auf; in der STAT-Schnittstelle ist somit als Datentyp 3x FB2 eingetragen. Der FB1 wird dann im OB1 mit seinem Instanz-DB aufgerufen.


Frage:

Zwar läuft das Programm; aber ist es wirklich zulässig den "gleichen" Timer in allen drei Aufrufen zu verwenden?

Würde man das Ganze mit den S5-Timern machen, dann würde man doch theoretisch auch drei verschiede Timer (z.B. T1, T2, T3) beim Aufruf erhalten…


Vielen Dank!
 
Hallo Spirit,
eine Information fehlt mir da noch "zwischen den Zeilen". Du verwendest den SFB4 in der Instanz des FB2 ?
Wenn ja dann ist es so, das der SFB4 (den gibt es von der Funktion her nur ein Mal) in jeder neuen Instanz von ihm oder dem Baustein in dem er eingelagert ist (was ja auch wieder eine neue Instanz von ihm ist) mit den jeweils anderen Daten versorgt wird und somit vollkommen unabhängig von allen anderen SFB4-Aufrufen (mit anderer Instanz) läuft.
Quasi so als wenn du jedes Mal einen neuen S7-Timer verwenden würdest.

War das die Frage ...?

Gruß
Larry
 
Hi Larry,

tue mich irgendwie mit den Fachausdrücken etwas schwer. Also in dem FB1 (glaube den nennt man dann Multiinstanz-FB?) wird der FB2 dreimal aufgerufen. Und ja, der SFB4 ist einmal im FB2 programmiert.


Würde ich nun die gleiche Vorgehensweise mit den S5-Timern bewerkstelligen, so hätte ich doch im FB1 dann auch für jeden FB2-Aufruf einen anderen Timer, also insgesamt drei Timer T1, T2 und T3.

In diesem Fall (also mit SFB4) habe ich trotz dreimaligem Aufruf des FB2 jedoch immer den selben SFB4.


War das die Frage ...?

Gruß
Larry


Die Frage war, ob das so korrekt ist, dass also alle drei Aufrufe mit nur einem SFB4 arbeiten?


Fazit: Wenn das so richtig ist, dann spare ich mir durch den IEC-Timer quasi einfach Timer!

Danke...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm, also ich sehe da aber nur dreimal den selben SFB4!
Du siehst dreimal alle die für SFB4 reservierte Daten:
.IN
.PT
.Q
.ET
.STATE
.STIME
.ATIME

Und für jeden Timer hast du eine Name in der Deklaration.
Und weil du die Timer in FB2 gesammelt hast sieht es irgendwie so aus:

(instanz-DB für FB1 Aufruf in OB1)
..
..
MehrereTimer.Timer_1.IN
MehrereTimer.Timer_1.PT
(usw.)
MehrereTimer.Timer_2.IN
MehrereTimer.Timer_2.PT
(usw)
MehrereTimer.Timer_3.IN
MehrereTimer.Timer_3.PT
..
..

Wenn das nicht so aussieht, oder etwas in diesen Stil, dann mach ein Schreenshot von was du hast.
 
Der SFB4 kann genauso mehrfach verwendet werden wie Deinen FB2... natürlich mit jeweils anderem Instanz-DB oder halt als Multiinstanz im aufrufenden Baustein...

Es ist doch grad der Sinn von FBs FCs sie mehrfach zu verwenden. Die gibt's nicht nur deswegen, damit der Code im OB1 nicht zu lang wird...

Gruß.
 
Nein, eben nicht Jasper!

Es sieht in etwa so aus...

PW_AuftrZaehler.TON_Timer_1.IN
PW_AuftrZaehler.TON_Timer_1.PT

(usw.)

PW_FertTeilZaehler.TON_Timer_1.IN
PW_FertTeilZaehler.TON_Timer_1.PT

(usw)

PW_SchlTeilZaehler.TON_Timer_1.IN
PW_SchlTeilZaehler.TON_Timer_1.PT


Programm läuft aber...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK, erst nun verstehe ich wie du es strukturiert hast.

Es ist nicht 1 Timer.
Es sind 3 Zäher, und pro Zähler 1 Timer. Also 3 Timer.

Wie 3 Familien, "Berg", "Schmidt" und "Fischer", und in jeden Familie ein Junge "Hans".
Obwohl die Jungen heissen alle "Hans", dann sind es unterschiedliche Jungen, und seine volle Namen sind "Hans Berg", Hans Schmidt" und "Hans Fischer".
 
Ist doch nur ein Name wie Huber, Sepp, Maier, besser wäre es sowieso statt Timer_1 irgendwas der Funktion entsprechendes zu verwenden ...

Aber davon ab:
PW_AuftrZaehler.TON_Timer_1.IN
PW_FertTeilZaehler.TON_Timer_1.IN

ist unterschiedlich, also sind es unterschiedliche Instanzen, folglich unterschiedliche Speicherstellen, und folglich in keinster Weise dasselbe.

Zwar zu langsam, aber @Jesper, Top Erklärung :)

Mfg
Manuel
 
OK, erst nun verstehe ich wie du es strukturiert hast.

Es ist nicht 1 Timer.
Es sind 3 Zäher, und pro Zähler 1 Timer. Also 3 Timer.

Wie 3 Familien, "Berg", "Schmidt" und "Fischer", und in jeden Familie ein Junge "Hans".
Obwohl die Jungen heissen alle "Hans", dann sind es unterschiedliche Jungen, und seine volle Namen sind "Hans Berg", Hans Schmidt" und "Hans Fischer".

Doch, es ist schon nur 1 Timer!

Dieser eine Timer (SFB4) ist im FB2 im Netzwerk xy programmiert.

Der FB2 wird im FB1 dreimal aufgerufen - dabei ist die Eingangsbeschaltung bei jedem Aufruf am Timer etwas anders (siehe mein Thread Nr. 8!).


Sorry, weiß nicht wie ich mich noch klarer ausdrücken kann... :confused:
 
Aber davon ab:
PW_AuftrZaehler.TON_Timer_1.IN
PW_FertTeilZaehler.TON_Timer_1.IN

ist unterschiedlich, also sind es unterschiedliche Instanzen, folglich unterschiedliche Speicherstellen, und folglich in keinster Weise dasselbe.

Mfg
Manuel

Aja ok, danke Manuel.

Das heißt also Timer_1 wäre hier ein Name wie Maier, Huber, Müller, usw.

Worauf es ankommt ist das vor dem Namen?


Es macht ja eigentlich auch keinen Sinn den FB2 online zu betrachten; ich sehe da nur die Eingangsbeschaltung der 1. Instanz
 
Führbaustein Öffnen -> TEST -> Betrieb... Testbetrieb auswählen, speichern und laden

Führbaustein ONLINE öffnen -> Rechtsklick auf zu beobachtenden Baustein -> Beobachten mit Aufrufpfad.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK, habe Folgendes gefunden:

quote_icon.png
Zitat von Frank
1. cpu in testbetrieb versetzen
2. aufrufenden baustein online öffnen
3. zu beobachtenden baustein mit rechter maustaste anklicken
und "beobachten mit aufrufpfad" wählen


Nun aber das Problem, dass ich beim Anklicken mit der rechten Maus nicht "beobachten mit aufrufpfad" habe!

Vermutlich scheitert es noch daran, dass ich nicht weiß wie ich die CPU in Testbetrieb versetzen soll; arbeite hier momentan mit PLCSIM...
 
Doch, es ist schon nur 1 Timer!
Dieser eine Timer (SFB4) ist im FB2 im Netzwerk xy programmiert.
Du musst zwischen Code und Daten unterscheiden.
Wenn man von "Instanzen" redet, meint man die Daten.
Die Timer sind die Daten (3-mal). Der Code gibt es nur 1-mal aber wird 3-mal aufgerufen jeweils mit die passender Instanzdaten.
Das Prinzip gelt nicht nur für SFB4, aber für alle Funktionsbausteine, FBs oder SFBs.
 
Zurück
Oben