SFB4 funktioniert nicht richtig auf 416-2DP

Astralavista

Level-1
Beiträge
799
Reaktionspunkte
112
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Hatte am WE eine Inbetriebnahme und dabei trat folgendes Problem auf:

Es wurden mehrere Timer mit SFB4 programmiert. Wenn man auf dem Eingang PT den Wert 0 vorgibt, bleibt der Ausgang Q des Timers immer auf FALSE.
Sobald der Zeitwert größer als 0 ist funktioniert der Timer wieder ohne Probleme.
Festgestellt wurde das ganze auf einer 416-2DP CPU mit Firmware V1.1.2.
Könnte es sein das vielleicht durch ein Firmwareupgrade das Problem gelöst wird?
Auf PLCSim funktioniert das Programm auch mit Zeitwerten T#0ms, deswegen kam die Frage auf.

Gruß Ingo
 
Hallo,
ich kann mich erinnern, dass wir das Thema vor einiger Zeit schon mal hatten - mit gleichem Ausgang. Danach (so meine Erinnerung) laufen die SFB ohne Zeit-Vorgabe nicht (ich meine sogar unabhängig von der CPU).

Wäre es denn ein Problem, grundsätzlich 1ms auf die Vorgabe zu addieren um diesen Zustand zu vermeiden ? Oder ggf. sogar in einer eventuellen HMI-Eingabe den Vorgabewert "0" zu verhindern ?

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wäre eine Möglichkeit, die ich aber verhindern wollte.
Ich wollte jetzt erstmal versuchen das Problem an der Ursache anzupacken und nicht drum herum zu programmieren.
Mit der Visu gibts schonmal Probleme, da dort die 0 eingegeben werden muss und das bleibt auch so. Der / die Parameter in denen die 0 jetzt drin steht sind qualifiziert (Pharma-Industrie).
Und zusätzlichen Programmcode um einen "Bug" von Siemens zu umgehen brauche ich auch nicht wirklich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
..It's not a bug, it's a feature ! ;)
It's not a feature, it's our future! Solche Peinlichkeiten sind nach Auslieferung leider nicht mehr zu korrigieren. Oder hat es wirklich einen einen Grund dass es so ist?

Eine relativ einfache Möglichkeit wäre, einen eigenen FB zu schreiben, der die SFB4 aufruft und der Zeitvorgabe 1ms hinzu addiert. Oder halt gleich etwas eigenes.


Gruß, Onkel
 
It's not a feature, it's our future! Solche Peinlichkeiten sind nach Auslieferung leider nicht mehr zu korrigieren. Oder hat es wirklich einen einen Grund dass es so ist?

Eine relativ einfache Möglichkeit wäre, einen eigenen FB zu schreiben, der die SFB4 aufruft und der Zeitvorgabe 1ms hinzu addiert. Oder halt gleich etwas eigenes.


Gruß, Onkel

Hat aber den Nachteil das der "Ausgang" der Zeit um einen Zyklus verzögert wird.

Übrigens: Die Speed7 verhält sich hier anders als die S7, Ausgang wird sofort durchgeschaltet.
Hab ich auch erst gemerkt nachdem ich ein Programm auf der VIPA 313SC getestet habe und in der realen Maschine mit S7-313C liefs dann nicht.
 
In meinen Augen bleibt das auch ein Fehler: eine Verzögerung von 0ms bedeutet nun mal direktes durchschalten und nicht unendliches warten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... ich muß hier noch etwas anhängen - einfach weil es mir noch unter den Nägeln brennt :

Es ist aus meiner Sicht nicht so schlimm, wenn Siemens einen nicht richtig funktionierenden SFB auf den Markt bringt. Das kann jedem passieren ...:rolleyes:
Viel schlimmer ist es nach meiner Meinung, die dann bekannter Weise nicht korrekt funktionierende Applikation trotzdem einzusetzen.
Wie von Onkel Dagobert schon geschrieben ist es doch nicht so schwer, sich einen "eigenen" Baustein zu erstellen, der so funktioniert, wie man es braucht (das ist übrigens ganz generell der Weg, den ich hier beschreite). Fehler, die ich selber mache kann ich auch korrigieren - bei den Fehlern anderer wird das schon erheblich schwieriger ...

Gruß
LL
 
Ob die Funktion nun als richtig oder falsch bewertet wird, in der Beschreibung steht eindeutig:
Falls Instanzen dieses SFB nach Neustart (Warmstart) initialisiert sein sollen, müssen Sie im OB 100 die zu initialisierenden Instanzen mit PT = 0 ms aufrufen.
wer also PT= 0 eingibt muss wissen, dass er damit den SFB initialisiert

und außerdem:
PT INPUT TIME E, A, M, D, L, Konst. Zeitdauer, um die die steigende Flanke am Eingang IN verzögert wird. PT muß positiv sein.
positiv ist halt > 0.
 
Auszug aus Wikipedia

In der mathematischen Literatur und speziell auch in der Informatik ist es teilweise auch gebräuchlich, die Null zu den positiven Zahlen hinzuzunehmen (in der Informatik wird teilweise auch zwischen −0, 0 und +0 unterschieden). Deshalb gibt es auch den einheitlich verwendeten Begriff der echt positiven Zahlen, bei denen die Null nicht hinzugerechnet wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ob die Funktion nun als richtig oder falsch bewertet wird, in der Beschreibung steht eindeutig:

wer also PT= 0 eingibt muss wissen, dass er damit den SFB initialisiert

und außerdem:

positiv ist halt > 0.

Die Zahl 0 hat gar kein Vorzeichen - oder wenn schon, dann beide.

Wie kann man so einen blöden Fehler nur schön reden wollen?


Eine Verzögerung von 0ms ist NICHT unendlich verzögern- PUNKT.
Ich kenne bisher keinen anderen Steuerungs- Hersteller, der das so handhabt, wie Siemens das beim TON macht.


Im übrigen bin ich davon überzeugt, dass diese Initalisierungsbeschreibung erst NACH Bekanntmachung dieses Verhaltens entstanden ist.
Eine Initalisierung fehlt als getrennter, binärer Eingang nicht nur am TON, bei TOF ist es noch tragischer, hier kann man nicht so einfach wie beim alten S5 - SA - Timer per R-Eingang und den Ausgang vorzeitig zurücksetzen.
 
Zuletzt bearbeitet:
nee!

der negative Zahlenraum eines Integers von -32768 bis -1 ist genau so groß, wie der positive Zahlenraum von 0 bis 32767.

Logisch nachvollziehbar wäre, den SFB mit Eingabe von einem negativen Zeitwert (z.B. -1) zu initialisieren;)

Jetzt mal ne ganz andere Frage in diesem Zusammenhang.... Warum muss man diesen Baustein initialisieren können ? Muss man das machen ? Ich setze die Bausteine auch ein ( bei mir kommen 0 msec nicht vor hatte das Problem aber schon mal bei einer Fehleingabe :ROFLMAO: die nicht abgefangen wurde )
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt mal ne ganz andere Frage in diesem Zusammenhang.... Warum muss man diesen Baustein initialisieren können ? Muss man das machen ? Ich setze die Bausteine auch ein ( bei mir kommen 0 msec nicht vor hatte das Problem aber schon mal bei einer Fehleingabe :ROFLMAO: die nicht abgefangen wurde )

Ein TON könnte bzw. initalisiert bei LOW auf dem IN - Eingang - beim TOF geht das aber leider nicht :(

Blöd kann es werden, wenn der Wert auf einer HMI-Station eingegeben werden kann und dort jemand, der keine Verzögerung möchte, eine 0 einträgt.
 
Zuletzt bearbeitet:
Blöd kann es werden, wenn der Wert auf einer HMI-Station eingegeben werden kann und dort jemand, der keine Verzögerung möchte, eine 0 einträgt.

Zumindest bei WinCC flexible kannst du die Grenzen des Wertes festlegen. Damit kann man diesen Fehler recht einfach umgehen. Wenn es Situationen gibt in dem eine Zeit von 0ms gebraucht wird, darf man halt diesen Baustein nicht verwenden.

Siemens ist halt Siemens ........
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Ding hat noch ein weiteres "Feature" :
Bekommt es den "0 nach 1"-Wechsel am Eingang nicht mit - also im ersten Zyklus ist der Eingang noch 0 und im zweiten Zyklus ist er 1 - dann startet es möglicherweise auch nicht.
 
Das Ding hat noch ein weiteres "Feature" :
Bekommt es den "0 nach 1"-Wechsel am Eingang nicht mit - also im ersten Zyklus ist der Eingang noch 0 und im zweiten Zyklus ist er 1 - dann startet es möglicherweise auch nicht.

Das ist aber nun mal bei flankengetriggerten Funktionen so, die Flanke sollte schon korrekt kommen. Oder was genau meinst du mit "nicht mitbekommen"?
 
Nur mal so als Info bevor ihr nur über S7 schimpft.

BEI MITSUBISHI ISTS GENAU DAS GLEICHE !!!

Eine Zeit mit 0 vorbelegt schaltet nie.

peter(R)
 
Zurück
Oben